/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-spensers-death { background: linear-gradient(180deg, #1a1820 0%, #2a2225 40%, #1f181a 100%), radial-gradient(ellipse at 50% 30%, #3a2a20 0%, transparent 70%); }
.scn-spensers-death .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(0deg, #1f1a1c 0%, #2a2225 100%); }
.scn-spensers-death .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); }
.scn-spensers-death .table { position:absolute; bottom:30%; left:50%; width:120px; height:16px; transform:translateX(-50%); background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-spensers-death .candle { position:absolute; bottom:44%; left:52%; width:8px; height:32px; background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius:2px 2px 0 0; }
.scn-spensers-death .fig-dead { position:absolute; bottom:31%; left:43%; width:40px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sd-fig 6s ease-in-out infinite; }
.scn-spensers-death .glass { position:absolute; bottom:32%; left:58%; width:14px; height:18px; background: rgba(180,160,140,.2); border:1px solid rgba(180,160,140,.4); border-radius:0 0 4px 4px; }
.scn-spensers-death .shadow { position:absolute; bottom:28%; left:38%; width:80px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); }
@keyframes sd-fig { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-burial-in-westminster-abbey { background: linear-gradient(180deg, #1c1c2e 0%, #2a2a40 50%, #1a1a30 100%), radial-gradient(ellipse at 50% 10%, #3a3a60 0%, transparent 80%); }
.scn-burial-in-westminster-abbey .arch { position:absolute; top:0; left:20%; right:20%; height:50%; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-burial-in-westminster-abbey .pillar-l { position:absolute; bottom:30%; left:18%; width:20px; height:70%; background: linear-gradient(90deg, #2a2a4a 0%, #3a3a5a 50%, #2a2a4a 100%); animation: ba-pillar 12s ease-in-out infinite alternate; }
.scn-burial-in-westminster-abbey .pillar-r { position:absolute; bottom:30%; right:18%; width:20px; height:70%; background: linear-gradient(90deg, #2a2a4a 0%, #3a3a5a 50%, #2a2a4a 100%); animation: ba-pillar 12s ease-in-out infinite alternate-reverse; }
.scn-burial-in-westminster-abbey .tomb { position:absolute; bottom:25%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); border-radius:6px; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); }
.scn-burial-in-westminster-abbey .pall { position:absolute; bottom:28%; left:50%; width:130px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius:4px; animation: ba-pall 8s ease-in-out infinite; }
.scn-burial-in-westminster-abbey .mourner-a { position:absolute; bottom:35%; left:30%; width:24px; height:60px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ba-mourn 5s ease-in-out infinite; }
.scn-burial-in-westminster-abbey .mourner-b { position:absolute; bottom:35%; right:30%; width:24px; height:60px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ba-mourn 5s ease-in-out infinite 2s; }
.scn-burial-in-westminster-abbey .light-ray { position:absolute; top:5%; left:40%; right:40%; height:60%; background: linear-gradient(180deg, rgba(200,200,255,.08) 0%, transparent 100%); clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%); animation: ba-light 20s ease-in-out infinite alternate; }
@keyframes ba-pillar { 0% { filter: brightness(1); } 50% { filter: brightness(1.2); } 100% { filter: brightness(1); } }
@keyframes ba-pall { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } }
@keyframes ba-mourn { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ba-light { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.6; transform: scaleY(1.1); } 100% { opacity:0.3; transform: scaleY(1); } }

.scn-stopford-brookes-tribute { background: linear-gradient(180deg, #f0e8d0 0%, #d8d0b8 50%, #c8c0a8 100%), radial-gradient(ellipse at 50% 80%, #e8d8b8 0%, transparent 70%); }
.scn-stopford-brookes-tribute .window { position:absolute; top:8%; left:30%; right:30%; height:40%; background: linear-gradient(180deg, #b8d0e0 0%, #d8e8f0 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.1); animation: sb-window 12s ease-in-out infinite alternate; }
.scn-stopford-brookes-tribute .bookshelf { position:absolute; bottom:20%; left:10%; right:70%; height:50%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,.3); }
.scn-stopford-brookes-tribute .desk { position:absolute; bottom:25%; left:30%; right:30%; height:8%; background: linear-gradient(180deg, #b0a080 0%, #908060 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-stopford-brookes-tribute .bust { position:absolute; bottom:34%; left:48%; width:30px; height:40px; background: linear-gradient(180deg, #c0b8a0 0%, #a09880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); }
.scn-stopford-brookes-tribute .book-open { position:absolute; bottom:30%; left:38%; width:50px; height:8px; background: linear-gradient(90deg, #d0c090 0%, #e8d8b0 50%, #d0c090 100%); border-radius:2px; transform: rotate(5deg); animation: sb-book 16s ease-in-out infinite; }
.scn-stopford-brookes-tribute .sunbeam { position:absolute; top:8%; left:40%; right:40%; height:60%; background: linear-gradient(180deg, rgba(255,240,200,.3) 0%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%); animation: sb-sunbeam 20s ease-in-out infinite alternate; }
@keyframes sb-window { 0% { filter: brightness(1); } 50% { filter: brightness(1.15); } 100% { filter: brightness(1); } }
@keyframes sb-book { 0%,100% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } }
@keyframes sb-sunbeam { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.3; transform: scaleX(1); } }

.scn-spensers-influence-on-milton-and-others { background: linear-gradient(180deg, #f0d8b0 0%, #d8c090 50%, #c8b080 100%), radial-gradient(ellipse at 50% 50%, #e8c898 0%, transparent 80%); }
.scn-spensers-influence-on-milton-and-others .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #c8b890 0px, #c8b890 20px, #b8a880 20px, #b8a880 40px); }
.scn-spensers-influence-on-milton-and-others .wall-panel { position:absolute; top:0; bottom:25%; left:10%; right:10%; background: linear-gradient(180deg, #e0c8a0 0%, #d0b890 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.1); }
.scn-spensers-influence-on-milton-and-others .chair { position:absolute; bottom:30%; left:15%; width:40px; height:50px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 30% 30% 10% 10%; }
.scn-spensers-influence-on-milton-and-others .poet-a { position:absolute; bottom:30%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: si-poet 8s ease-in-out infinite; }
.scn-spensers-influence-on-milton-and-others .poet-b { position:absolute; bottom:28%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: si-poet 8s ease-in-out infinite 2s; }
.scn-spensers-influence-on-milton-and-others .poet-c { position:absolute; bottom:30%; right:25%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: si-poet 8s ease-in-out infinite 4s; }
.scn-spensers-influence-on-milton-and-others .scroll { position:absolute; bottom:38%; left:38%; width:60px; height:12px; background: linear-gradient(90deg, #d0c090 0%, #e8d8b0 50%, #d0c090 100%); border-radius:4px; transform: rotate(-10deg); animation: si-scroll 20s ease-in-out infinite; }
.scn-spensers-influence-on-milton-and-others .lamp { position:absolute; top:10%; left:50%; width:14px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius:2px 2px 0 0; }
@keyframes si-poet { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes si-scroll { 0%,100% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(1.05); } }

/* glossary-a: study desk with window */
.scn-glossary-a {
  background: linear-gradient(135deg, #f5e6c8 0%, #e8d5b0 50%, #d4b896 100%),
              radial-gradient(ellipse at 60% 30%, #fff5e0 0%, transparent 60%);
}
.scn-glossary-a .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #ffe8c8 0%, #dac09a 100%); opacity:0.7; }
.scn-glossary-a .window-light { position:absolute; left:5%; top:8%; width:28%; height:55%; background: linear-gradient(180deg, rgba(255,255,240,0.9) 0%, rgba(255,245,220,0.3) 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 40px 15px rgba(255,240,200,0.5); animation: ga-window 6s ease-in-out infinite alternate; }
.scn-glossary-a .bookshelf { position:absolute; right:5%; top:10%; width:30%; height:70%; display:flex; flex-direction:column; justify-content:space-around; }
.scn-glossary-a .book { height:12%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 2px 4px 4px 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.3); }
.scn-glossary-a .book-1 { width:70%; align-self:flex-start; }
.scn-glossary-a .book-2 { width:85%; align-self:center; }
.scn-glossary-a .book-3 { width:60%; align-self:flex-end; }
.scn-glossary-a .open-book { position:absolute; bottom:15%; left:20%; width:35%; height:20%; background: linear-gradient(135deg, #fef8e0 0%, #f0e0c0 50%, #dcc8a0 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); transform: perspective(400px) rotateX(10deg); animation: ga-book 4s ease-in-out infinite; }
.scn-glossary-a .lamp-glow { position:absolute; bottom:35%; left:15%; width:12px; height:12px; background: radial-gradient(circle, #ffd680 0%, #d09040 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,200,120,0.6); animation: ga-glow 3s ease-in-out infinite alternate; }
.scn-glossary-a .shadow-reader { position:absolute; bottom:10%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: ga-shadow 7s ease-in-out infinite; }
@keyframes ga-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ga-book { 0% { transform: perspective(400px) rotateX(10deg) translateY(0); } 50% { transform: perspective(400px) rotateX(12deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(10deg) translateY(0); } }
@keyframes ga-glow { 0% { box-shadow: 0 0 20px 8px rgba(255,200,120,0.4); opacity:0.8; } 50% { box-shadow: 0 0 40px 15px rgba(255,200,120,0.7); opacity:1; } 100% { box-shadow: 0 0 25px 10px rgba(255,200,120,0.5); opacity:0.9; } }
@keyframes ga-shadow { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(4px); } 100% { transform: rotate(5deg) translateX(0); } }

/* glossary-b: desk with candle and scrolls */
.scn-glossary-b {
  background: linear-gradient(180deg, #e3d6c0 0%, #d4c4a8 50%, #c2b090 100%),
              radial-gradient(circle at 70% 40%, #fff8e0 0%, transparent 70%);
}
.scn-glossary-b .bg-shelf { position:absolute; inset:0; background: linear-gradient(180deg, #b8a080 0%, #9a7e60 100%); opacity:0.3; }
.scn-glossary-b .candle { position:absolute; bottom:30%; left:45%; width:12px; height:40px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b090 100%); border-radius: 4px 4px 2px 2px; transform: translateX(-50%); }
.scn-glossary-b .candle-glow { position:absolute; bottom:55%; left:46%; width:20px; height:20px; background: radial-gradient(circle, #ffd48a 0%, #e8a050 60%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(255,200,100,0.6); animation: gb-flame 2s ease-in-out infinite alternate; }
.scn-glossary-b .stack-left { position:absolute; bottom:15%; left:10%; width:25%; height:30%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.3); }
.scn-glossary-b .stack-right { position:absolute; bottom:20%; right:10%; width:20%; height:25%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 2px; }
.scn-glossary-b .scroll { position:absolute; bottom:10%; left:40%; width:30%; height:8%; background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a0 100%); border-radius: 0 0 50% 50% / 0 0 80% 80%; transform: rotate(-5deg); animation: gb-scroll 8s ease-in-out infinite; }
.scn-glossary-b .inkwell { position:absolute; bottom:25%; left:25%; width:16px; height:18px; background: radial-gradient(circle, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
@keyframes gb-flame { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1) translateY(-2px); opacity:1; } 100% { transform: scale(0.95); opacity:0.85; } }
@keyframes gb-scroll { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }

/* glossary-c: reading chair with tea */
.scn-glossary-c {
  background: linear-gradient(135deg, #f0e4d0 0%, #e0d0b8 50%, #c8b8a0 100%),
              radial-gradient(ellipse at 50% 70%, #fff8f0 0%, transparent 60%);
}
.scn-glossary-c .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #dcc8b0 0%, #c0ac90 100%); opacity:0.4; }
.scn-glossary-c .chair-back { position:absolute; bottom:20%; left:30%; width:35%; height:45%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; animation: gc-chair 6s ease-in-out infinite; }
.scn-glossary-c .chair-seat { position:absolute; bottom:8%; left:32%; width:30%; height:15%; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%); border-radius: 20% 20% 10% 10%; }
.scn-glossary-c .rug { position:absolute; bottom:0; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #8a6a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2); }
.scn-glossary-c .side-table { position:absolute; bottom:12%; right:15%; width:12%; height:18%; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 4px 4px 2px 2px; }
.scn-glossary-c .tea-cup { position:absolute; bottom:25%; right:18%; width:10px; height:12px; background: radial-gradient(circle, #f0e0c0 0%, #d0b090 100%); border-radius: 50% 50% 40% 40%; }
.scn-glossary-c .steam { position:absolute; bottom:32%; right:19%; width:6px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: gc-steam 4s ease-in-out infinite; }
@keyframes gc-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes gc-steam { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-10px) scale(1.2); opacity:0.3; } 100% { transform: translateY(0) scale(1); opacity:0.6; } }

/* glossary-d: arched doorway with planter */
.scn-glossary-d {
  background: linear-gradient(180deg, #e8dcc8 0%, #d8c8b0 50%, #c4b49c 100%),
              radial-gradient(circle at 50% 30%, #fff5e0 0%, transparent 70%);
}
.scn-glossary-d .bg-arch { position:absolute; inset:0; background: linear-gradient(180deg, #b8a890 0%, #9a8a70 100%); opacity:0.3; }
.scn-glossary-d .arch-frame { position:absolute; left:50%; top:5%; width:40%; height:80%; transform:translateX(-50%); border: 8px solid #7a6a5a; border-radius: 50% 50% 0 0 / 60% 60% 0 0; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,0.1); }
.scn-glossary-d .arch-light { position:absolute; left:51%; top:6%; width:36%; height:75%; transform:translateX(-50%); background: linear-gradient(180deg, rgba(255,255,240,0.8) 0%, rgba(255,245,220,0.2) 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; animation: gd-light 8s ease-in-out infinite alternate; }
.scn-glossary-d .floor-tiles { position:absolute; bottom:0; left:0; width:100%; height:15%; background: repeating-linear-gradient(90deg, #c8b898 0px, #c8b898 20px, #b8a888 20px, #b8a888 40px); opacity:0.6; }
.scn-glossary-d .doorway-shadow { position:absolute; left:45%; top:20%; width:10%; height:60%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); transform: skewX(-5deg); animation: gd-shadow 12s ease-in-out infinite; }
.scn-glossary-d .planter { position:absolute; bottom:12%; left:42%; width:16%; height:12%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 10% 10% 20% 20%; }
.scn-glossary-d .leaf { position:absolute; bottom:22%; left:44%; width:8px; height:16px; background: radial-gradient(circle at 30% 30%, #6a9a4a 0%, #3a6a2a 100%); border-radius: 0 50% 50% 50%; transform: rotate(-30deg); animation: gd-leaf 5s ease-in-out infinite; }
@keyframes gd-light { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes gd-shadow { 0% { transform: skewX(-5deg) translateX(0); } 50% { transform: skewX(-3deg) translateX(3px); } 100% { transform: skewX(-5deg) translateX(0); } }
@keyframes gd-leaf { 0% { transform: rotate(-30deg) scale(1); } 50% { transform: rotate(-20deg) scale(1.05); } 100% { transform: rotate(-30deg) scale(1); } }

.scn-notes-cocytus-styx{background:linear-gradient(180deg,#1a1430 0%,#0f0a20 60%),radial-gradient(ellipse at 50% 100%,#1a1240 0%,transparent 80%);position:relative;overflow:hidden;height:100%;}
.scn-notes-cocytus-styx .cave-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,#2a2a3e 0%,transparent 70%);animation:co-cave 12s ease-in-out infinite alternate;}
.scn-notes-cocytus-styx .river{position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(180deg,#2a3a5a 0%,#0f1a2a 100%);border-radius:0 0 30% 30%/0 0 50% 50%;animation:co-river 8s ease-in-out infinite;}
.scn-notes-cocytus-styx .bank{position:absolute;bottom:38%;left:10%;right:10%;height:10%;background:linear-gradient(180deg,#2a1a10 0%,#1a0a08 100%);border-radius:0 0 40% 40%/0 0 60% 60%;}
.scn-notes-cocytus-styx .boat{position:absolute;bottom:42%;left:45%;width:40px;height:12px;background:linear-gradient(180deg,#4a3a2a 0%,#2a1a10 100%);border-radius:0 0 40% 40%;animation:co-boat 15s ease-in-out infinite;}
.scn-notes-cocytus-styx .figure{position:absolute;bottom:43%;left:46%;width:12px;height:20px;background:linear-gradient(180deg,#3a3a4a 0%,#1a1a2a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:co-fig 6s ease-in-out infinite;}
.scn-notes-cocytus-styx .rock-a{position:absolute;bottom:35%;left:20%;width:30px;height:20px;background:linear-gradient(180deg,#3a2a2a 0%,#1a1212 100%);border-radius:50% 40% 30% 30%;animation:co-rock 20s ease-in-out infinite alternate;}
.scn-notes-cocytus-styx .rock-b{position:absolute;bottom:35%;right:15%;width:25px;height:18px;background:linear-gradient(180deg,#3a2a2a 0%,#1a1212 100%);border-radius:30% 50% 40% 40%;animation:co-rock 25s ease-in-out infinite alternate-reverse;}
@keyframes co-cave{0%{opacity:.7}50%{opacity:1}100%{opacity:.8}}
@keyframes co-river{0%{transform:translateY(0) scaleY(1)}50%{transform:translateY(-3px) scaleY(1.02)}100%{transform:translateY(2px) scaleY(1)}}
@keyframes co-boat{0%{transform:translateX(0) rotate(-1deg)}25%{transform:translateX(5px) rotate(2deg)}50%{transform:translateX(-5px) rotate(-2deg)}75%{transform:translateX(3px) rotate(1deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes co-fig{0%{transform:translateX(0) rotate(0)}50%{transform:translateX(2px) rotate(-3deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes co-rock{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.05)}100%{transform:translateY(2px) scale(0.95)}}

.scn-notes-ariosto-false-spirit{background:linear-gradient(180deg,#1a1a2e 0%,#0f0f1a 60%),radial-gradient(ellipse at 30% 50%,#2a2a3e 0%,transparent 80%);position:relative;overflow:hidden;height:100%;}
.scn-notes-ariosto-false-spirit .cave-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 60% 20%,#2a2a3e 0%,transparent 70%);animation:ar-cave 14s ease-in-out infinite alternate;}
.scn-notes-ariosto-false-spirit .hermit{position:absolute;bottom:30%;left:25%;width:20px;height:40px;background:linear-gradient(180deg,#4a3a2a 0%,#2a1a0a 100%);border-radius:30% 30% 20% 20%/50% 50% 30% 30%;transform-origin:bottom center;animation:ar-hermit 8s ease-in-out infinite;}
.scn-notes-ariosto-false-spirit .altar{position:absolute;bottom:25%;left:40%;width:50px;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,.5);}
.scn-notes-ariosto-false-spirit .spirit{position:absolute;top:20%;left:50%;width:40px;height:50px;background:radial-gradient(ellipse at 50% 50%,rgba(200,220,255,0.4) 0%,rgba(150,180,220,0.1) 60%,transparent 100%);border-radius:50% 50% 30% 30%;filter:blur(4px);animation:ar-spirit 6s ease-in-out infinite alternate;}
.scn-notes-ariosto-false-spirit .fire{position:absolute;bottom:30%;left:45%;width:20px;height:30px;background:radial-gradient(ellipse at 50% 100%,#ff8c42 0%,#b05020 40%,#2a1a0a 70%,transparent 100%);border-radius:50% 50% 0 0;animation:ar-fire 2s ease-in-out infinite alternate;}
.scn-notes-ariosto-false-spirit .shadow{position:absolute;bottom:0;left:20%;right:20%;height:30%;background:linear-gradient(180deg,rgba(0,0,0,0.3) 0%,rgba(0,0,0,0.7) 100%);border-radius:50% 50% 0 0;animation:ar-shadow 10s ease-in-out infinite;}
@keyframes ar-cave{0%{opacity:.8}50%{opacity:1}100%{opacity:.6}}
@keyframes ar-hermit{0%{transform:translateX(0) rotate(-2deg)}50%{transform:translateX(3px) rotate(2deg)}100%{transform:translateX(-2px) rotate(0)}}
@keyframes ar-spirit{0%{transform:translateY(0) scale(1);opacity:.5}50%{transform:translateY(-10px) scale(1.1);opacity:.8}100%{transform:translateY(5px) scale(0.95);opacity:.4}}
@keyframes ar-fire{0%{transform:scaleY(1) rotate(0)}50%{transform:scaleY(1.2) rotate(3deg)}100%{transform:scaleY(0.9) rotate(-2deg)}}
@keyframes ar-shadow{0%{opacity:.7}50%{opacity:1}100%{opacity:.6}}

.scn-notes-tethys{background:linear-gradient(180deg,#1a2430 0%,#0f1a2a 60%),radial-gradient(ellipse at 50% 20%,#1a2a3e 0%,transparent 80%);position:relative;overflow:hidden;height:100%;}
.scn-notes-tethys .wall{position:absolute;inset:0;background:linear-gradient(180deg,#2a2a3e 0%,#1a1a2a 100%);border:2px solid #3a3a4a;animation:te-wall 20s ease-in-out infinite alternate;}
.scn-notes-tethys .window{position:absolute;top:20%;left:25%;width:50%;height:50%;background:radial-gradient(ellipse at 50% 50%,#2a4a6a 0%,#0a1a2a 100%);border:6px solid #4a3a2a;border-radius:10% 10% 5% 5%;box-shadow:inset 0 0 30px rgba(0,0,0,.5);}
.scn-notes-tethys .sea{position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(180deg,#1a3a5a 0%,#0a1a2a 100%);border-radius:40% 60% 0 0;animation:te-sea 12s ease-in-out infinite;}
.scn-notes-tethys .moon{position:absolute;top:30%;left:40%;width:30px;height:30px;background:radial-gradient(circle,#d0d0e0 0%,#b0b0c0 60%,transparent 100%);border-radius:50%;box-shadow:0 0 30px 10px rgba(180,180,220,0.3);animation:te-moon 10s ease-in-out infinite alternate;}
.scn-notes-tethys .stars{position:absolute;top:10%;left:30%;width:2px;height:2px;background:#fff;box-shadow:10px 20px 0 0 #fff, -30px 10px 0 1px #fff, 50px -5px 0 0 rgba(255,255,255,0.8), -70px 30px 0 1px rgba(255,255,255,0.6);animation:te-stars 30s linear infinite;}
.scn-notes-tethys .shelf{position:absolute;bottom:40%;left:60%;width:60px;height:8px;background:linear-gradient(180deg,#4a3a2a 0%,#3a2a1a 100%);border-radius:2px;}
.scn-notes-tethys .bowl{position:absolute;bottom:40%;left:65%;width:15px;height:10px;background:radial-gradient(ellipse at 50% 50%,#4a4a5a 0%,#2a2a3a 100%);border-radius:50% 50% 30% 30%;}
@keyframes te-wall{0%{opacity:.9}50%{opacity:1}100%{opacity:.7}}
@keyframes te-sea{0%{transform:translateY(0) scaleY(1)}50%{transform:translateY(-2px) scaleY(1.02)}100%{transform:translateY(2px) scaleY(0.98)}}
@keyframes te-moon{0%{transform:translateX(0) scale(1)}50%{transform:translateX(-5px) scale(1.02)}100%{transform:translateX(3px) scale(0.98)}}
@keyframes te-stars{0%{transform:translateX(0)}100%{transform:translateX(-200px)}}

.scn-notes-dream-gates{background:linear-gradient(180deg,#1a1a2e 0%,#0f0f1a 60%),radial-gradient(ellipse at 50% 50%,#2a2a3e 0%,transparent 80%);position:relative;overflow:hidden;height:100%;}
.scn-notes-dream-gates .floor{position:absolute;bottom:0;left:0;right:0;height:20%;background:linear-gradient(180deg,#3a3a4a 0%,#2a2a3a 100%);border-radius:0 0 20% 20%;}
.scn-notes-dream-gates .wall-left{position:absolute;top:0;left:0;width:30%;height:100%;background:linear-gradient(180deg,#2a2a3e 0%,#1a1a2e 100%);border-right:4px solid #4a4a5a;}
.scn-notes-dream-gates .wall-right{position:absolute;top:0;right:0;width:30%;height:100%;background:linear-gradient(180deg,#2a2a3e 0%,#1a1a2e 100%);border-left:4px solid #4a4a5a;}
.scn-notes-dream-gates .gate-silver{position:absolute;bottom:20%;left:35%;width:30%;height:50%;background:linear-gradient(180deg,#c0c0d0 0%,#9090a0 100%);border:6px solid #a0a0b0;border-radius:20% 20% 10% 10%;box-shadow:0 0 20px rgba(192,192,210,0.4);animation:dg-gate-s 10s ease-in-out infinite alternate;}
.scn-notes-dream-gates .gate-ivory{position:absolute;bottom:20%;right:35%;width:30%;height:50%;background:linear-gradient(180deg,#e8e0d0 0%,#c0b8a0 100%);border:6px solid #d0c8b0;border-radius:20% 20% 10% 10%;box-shadow:0 0 20px rgba(232,224,208,0.4);animation:dg-gate-i 10s ease-in-out infinite alternate-reverse;}
.scn-notes-dream-gates .mist{position:absolute;top:0;left:0;right:0;height:100%;background:radial-gradient(ellipse at 50% 30%,rgba(200,200,220,0.15) 0%,transparent 70%);animation:dg-mist 12s ease-in-out infinite;}
.scn-notes-dream-gates .figure{position:absolute;bottom:20%;left:50%;width:16px;height:30px;transform:translateX(-50%);background:linear-gradient(180deg,#3a3a4a 0%,#1a1a2a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:dg-fig 8s ease-in-out infinite;}
@keyframes dg-gate-s{0%{transform:scaleY(1) rotate(0)}50%{transform:scaleY(1.03) rotate(1deg)}100%{transform:scaleY(0.97) rotate(-1deg)}}
@keyframes dg-gate-i{0%{transform:scaleY(1) rotate(0)}50%{transform:scaleY(1.03) rotate(-1deg)}100%{transform:scaleY(0.97) rotate(1deg)}}
@keyframes dg-mist{0%{opacity:.4}50%{opacity:.7}100%{opacity:.5}}
@keyframes dg-fig{0%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-5px)}100%{transform:translateX(-50%) translateY(2px)}}

/* knight-desires-death */
.scn-knight-desires-death { background: linear-gradient(180deg, #1a0b0b 0%, #2c1414 40%, #3a1a1a 70%, #1a0b0b 100%), radial-gradient(ellipse at 40% 70%, #4a2a2a 0%, transparent 60%); }
.scn-knight-desires-death .ground-dark { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a1a 0%, #0d0505 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-knight-desires-death .fire { position:absolute; bottom:30%; left:20%; width:40px; height:60px; background: radial-gradient(ellipse 80% 60% at 50% 100%, #ff8020 0%, #c04010 40%, #602008 80%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: kdd-fire 1.2s ease-in-out infinite alternate; }
.scn-knight-desires-death .knight { position:absolute; bottom:25%; left:50%; width:50px; height:90px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2020 0%, #0d0505 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: -4px 0 12px rgba(0,0,0,.6); animation: kdd-knight 3s ease-in-out infinite; }
.scn-knight-desires-death .sword { position:absolute; bottom:28%; left:55%; width:6px; height:50px; background: linear-gradient(180deg, #808080 0%, #404040 100%); transform-origin: bottom center; border-radius: 2px; box-shadow: 0 0 6px #c0c0c0; animation: kdd-sword 4s ease-in-out infinite; }
.scn-knight-desires-death .smoke-a, .scn-knight-desires-death .smoke-b { position:absolute; bottom:50%; left:18%; width:30px; height:30px; background: radial-gradient(circle, rgba(80,60,40,.5) 0%, transparent 70%); filter: blur(6px); border-radius: 50%; animation: kdd-smoke 5s ease-in-out infinite; }
.scn-knight-desires-death .smoke-b { left:24%; animation-delay: -2.5s; width:25px; height:25px; }
.scn-knight-desires-death .ember-a, .scn-knight-desires-death .ember-b { position:absolute; bottom:40%; left:22%; width:4px; height:4px; background: #ffa040; border-radius: 50%; box-shadow: 0 0 6px 2px #ff8020; animation: kdd-ember 0.8s ease-in-out infinite alternate; }
.scn-knight-desires-death .ember-b { left:16%; animation-delay: -0.4s; width:3px; height:3px; }
@keyframes kdd-fire { 0% { opacity:.7; transform: scaleY(0.9) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.8; transform: scaleY(0.95) } }
@keyframes kdd-knight { 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 kdd-sword { 0% { transform: rotate(-10deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(10deg) } }
@keyframes kdd-smoke { 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(-20px) scale(1.5); opacity:.2 } 100% { transform: translateY(-40px) scale(2); opacity:0 } }
@keyframes kdd-ember { 0% { transform: translateY(0) scale(1); opacity:1 } 100% { transform: translateY(-15px) scale(0.5); opacity:0 } }

/* item-well-of-life */
.scn-item-well-of-life { background: linear-gradient(180deg, #7ab0d0 0%, #b8d8e8 30%, #e0f0f8 60%, #f0f8ff 100%), radial-gradient(ellipse at 50% 0%, #fff8d0 0%, transparent 70%); }
.scn-item-well-of-life .sky-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0d0e8 0%, #d8f0f8 100%); }
.scn-item-well-of-life .sun-ray { position:absolute; top:10%; left:30%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,240,180,.4) 0%, transparent 100%); transform: rotate(-15deg); filter: blur(8px); animation: iwl-sunray 6s ease-in-out infinite alternate; }
.scn-item-well-of-life .well { position:absolute; bottom:30%; left:50%; width:80px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,.3); }
.scn-item-well-of-life .water-flow { position:absolute; bottom:32%; left:50%; width:30px; height:20px; transform: translateX(-50%); background: linear-gradient(180deg, #a0d8f0 0%, #70b8d8 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; animation: iwl-water 3s ease-in-out infinite; }
.scn-item-well-of-life .flowers-a, .scn-item-well-of-life .flowers-b { position:absolute; bottom:28%; left:45%; width:10px; height:10px; background: radial-gradient(circle, #f0c080 0%, #c89050 60%); border-radius: 50%; box-shadow: 0 0 6px #d0a060; animation: iwl-flower 4s ease-in-out infinite alternate; }
.scn-item-well-of-life .flowers-b { left:55%; animation-delay: -2s; }
.scn-item-well-of-life .stone { position:absolute; bottom:30%; left:46%; width:24px; height:16px; background: #706050; border-radius: 40% 40% 30% 30%; transform: rotate(-10deg); }
@keyframes iwl-sunray { 0% { opacity:.3; transform: rotate(-20deg) scaleX(0.9) } 50% { opacity:.6; transform: rotate(-10deg) scaleX(1.1) } 100% { opacity:.4; transform: rotate(-15deg) scaleX(1) } }
@keyframes iwl-water { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.2) translateY(2px) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes iwl-flower { 0% { transform: scale(0.8); opacity:.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.9); opacity:.8 } }

/* night-falls-well */
.scn-night-falls-well { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a6e 60%, #6a5a8e 100%), radial-gradient(ellipse at 70% 60%, #8a7aae 0%, transparent 60%); }
.scn-night-falls-well .sky-dusk { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a6e 0%, #8a5a3e 40%, #c08040 70%, #ffa040 100%); animation: nfw-sky 10s ease-in-out infinite alternate; }
.scn-night-falls-well .sun-setting { position:absolute; bottom:40%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #ffc060 0%, #ff8020 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,128,32,.5); animation: nfw-sun 4s ease-in-out infinite alternate; }
.scn-night-falls-well .dragon-silhouette { position:absolute; bottom:25%; left:30%; width:80px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); transform: rotate(5deg); clip-path: polygon(0% 100%, 30% 20%, 50% 50%, 70% 10%, 100% 100%); animation: nfw-dragon 6s ease-in-out infinite; }
.scn-night-falls-well .well-dark { position:absolute; bottom:20%; left:60%; width:40px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; }
.scn-night-falls-well .ground-twilight { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 60% 40% 0 0 / 40% 60% 0 0; }
.scn-night-falls-well .bird-a, .scn-night-falls-well .bird-b { position:absolute; top:20%; right:10%; width:20px; height:8px; background: #2a2a3e; border-radius: 50% 50% 0 0; transform: rotate(20deg); animation: nfw-bird 8s ease-in-out infinite; }
.scn-night-falls-well .bird-b { top:25%; right:15%; animation-delay: -4s; width:16px; height:6px; }
@keyframes nfw-sky { 0% { opacity:.8; background-position: 0% 0% } 50% { opacity:1; background-position: 0% 10% } 100% { opacity:.7; background-position: 0% 0% } }
@keyframes nfw-sun { 0% { transform: scale(0.9); opacity:.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(1); opacity:.8 } }
@keyframes nfw-dragon { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-4px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes nfw-bird { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(25deg) translateX(-10px) } 100% { transform: rotate(15deg) translateX(0) } }

/* una-mourns-night */
.scn-una-mourns-night { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2a2a5e 70%, #1a1a3e 100%), radial-gradient(ellipse at 50% 10%, #3a3a7e 0%, transparent 70%); }
.scn-una-mourns-night .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4e 100%); animation: umn-sky 12s ease-in-out infinite alternate; }
.scn-una-mourns-night .moon { position:absolute; top:12%; right:28%; width:40px; height:40px; background: radial-gradient(circle, #e0e8f0 0%, #c8d0e0 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,208,224,.3), 0 0 60px 20px rgba(200,208,224,.1); animation: umn-moon 5s ease-in-out infinite alternate; }
.scn-una-mourns-night .una-figure { position:absolute; bottom:30%; left:50%; width:30px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 0 12px rgba(0,0,0,.5); animation: umn-una 4s ease-in-out infinite; }
.scn-una-mourns-night .tree-left, .scn-una-mourns-night .tree-right { position:absolute; bottom:25%; width:12px; height:80px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; transform-origin: bottom center; }
.scn-una-mourns-night .tree-left { left:20%; transform: rotate(5deg); animation: umn-tree-l 7s ease-in-out infinite; }
.scn-una-mourns-night .tree-right { right:20%; transform: rotate(-5deg); animation: umn-tree-r 7s ease-in-out infinite; }
.scn-una-mourns-night .star-a, .scn-una-mourns-night .star-b, .scn-una-mourns-night .star-c { position:absolute; width:3px; height:3px; background: #e0e8f0; border-radius: 50%; box-shadow: 0 0 4px 2px rgba(224,232,240,.3); animation: umn-star 3s ease-in-out infinite alternate; }
.scn-una-mourns-night .star-a { top:20%; left:15%; animation-delay: 0s; }
.scn-una-mourns-night .star-b { top:30%; left:75%; animation-delay: -1s; width:2px; height:2px; }
.scn-una-mourns-night .star-c { top:15%; left:50%; animation-delay: -2s; width:4px; height:4px; }
@keyframes umn-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes umn-moon { 0% { transform: scale(0.95); opacity:.8 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(1); opacity:.9 } }
@keyframes umn-una { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes umn-tree-l { 0% { transform: rotate(3deg) } 50% { transform: rotate(7deg) } 100% { transform: rotate(5deg) } }
@keyframes umn-tree-r { 0% { transform: rotate(-3deg) } 50% { transform: rotate(-7deg) } 100% { transform: rotate(-5deg) } }
@keyframes umn-star { 0% { opacity:.3; transform: scale(0.8) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.5; transform: scale(0.9) } }

/* house-of-holiness-fidelia-school */
.scn-house-of-holiness-fidelia-school { background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 50%, #b8a88a 100%), radial-gradient(ellipse at 80% 20%, #fff9e6 0%, transparent 60%); }
.scn-house-of-holiness-fidelia-school .interior-bg { position:absolute; inset:0; background: linear-gradient(135deg, #e8dcc4 0%, #c8b89a 100%); }
.scn-house-of-holiness-fidelia-school .window { position:absolute; top:10%; left:15%; width:30%; height:45%; background: linear-gradient(180deg, #cfe0ff 0%, #a0b8e0 100%); border:6px solid #8a7a5a; border-radius:8px; box-shadow:inset 0 0 30px rgba(255,255,200,0.6); }
.scn-house-of-holiness-fidelia-school .desk { position:absolute; bottom:20%; left:25%; width:50%; height:6%; background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.2); }
.scn-house-of-holiness-fidelia-school .book { position:absolute; bottom:23%; left:40%; width:12%; height:10%; background: linear-gradient(180deg, #c0a070 0%, #a08050 100%); border-radius:2px; transform:skewY(-3deg); animation: fsc-book 6s ease-in-out infinite; }
.scn-house-of-holiness-fidelia-school .figure-pupil { position:absolute; bottom:26%; left:30%; width:8%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fsc-fig 4s ease-in-out infinite; }
.scn-house-of-holiness-fidelia-school .figure-teacher { position:absolute; bottom:26%; left:55%; width:9%; height:22%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fsc-fig 5s ease-in-out infinite reverse; }
.scn-house-of-holiness-fidelia-school .sunbeam { position:absolute; top:12%; left:18%; width:20%; height:50%; background: linear-gradient(180deg, rgba(255,255,210,0.4) 0%, rgba(255,255,210,0) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); filter:blur(8px); animation: fsc-beam 8s ease-in-out infinite alternate; }
@keyframes fsc-book { 0% { transform: skewY(-3deg) translateY(0); } 50% { transform: skewY(-1deg) translateY(-2px); } 100% { transform: skewY(-3deg) translateY(0); } }
@keyframes fsc-fig { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes fsc-beam { 0% { opacity:0.3; transform:scaleX(1); } 50% { opacity:0.7; transform:scaleX(1.1); } 100% { opacity:0.4; transform:scaleX(0.9); } }

/* house-of-holiness-coelia-counsel */
.scn-house-of-holiness-coelia-counsel { background: linear-gradient(180deg, #d4c4a0 0%, #b8a88a 40%, #9a8a6a 100%), radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 60%); }
.scn-house-of-holiness-coelia-counsel .chamber { position:absolute; inset:0; background: linear-gradient(135deg, #c8b89a 0%, #a89070 100%); }
.scn-house-of-holiness-coelia-counsel .coelia { position:absolute; bottom:25%; left:60%; width:12%; height:25%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: coc-fig 6s ease-in-out infinite; }
.scn-house-of-holiness-coelia-counsel .seeker { position:absolute; bottom:25%; left:30%; width:10%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: coc-fig 7s ease-in-out infinite reverse; }
.scn-house-of-holiness-coelia-counsel .hand-light { position:absolute; bottom:40%; left:55%; width:6%; height:6%; background: radial-gradient(circle, #ffe080 0%, #d4a050 60%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,224,128,0.5); animation: coc-glow 3s ease-in-out infinite alternate; }
.scn-house-of-holiness-coelia-counsel .pillar { position:absolute; bottom:0; left:10%; width:8%; height:80%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:6px; box-shadow:inset 0 0 10px rgba(0,0,0,0.3); }
.scn-house-of-holiness-coelia-counsel .drape { position:absolute; top:0; right:10%; width:15%; height:100%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:0 0 20px 20px; opacity:0.8; animation: coc-drape 12s ease-in-out infinite alternate; }
@keyframes coc-fig { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes coc-glow { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.7; transform:scale(0.9); } }
@keyframes coc-drape { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.97); } 100% { transform:scaleY(1); } }

/* house-of-holiness-patience */
.scn-house-of-holiness-patience { background: linear-gradient(180deg, #e0d0b8 0%, #c0b098 40%, #a09078 100%), radial-gradient(ellipse at 70% 40%, #fff0d0 0%, transparent 50%); }
.scn-house-of-holiness-patience .bedroom { position:absolute; inset:0; background: linear-gradient(135deg, #c8b8a0 0%, #a89880 100%); }
.scn-house-of-holiness-patience .bed { position:absolute; bottom:20%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:10px; box-shadow:0 6px 12px rgba(0,0,0,0.3); }
.scn-house-of-holiness-patience .knight { position:absolute; bottom:20%; left:30%; width:14%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pa-knight 5s ease-in-out infinite; }
.scn-house-of-holiness-patience .healer { position:absolute; bottom:20%; left:55%; width:12%; height:22%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-healer 4s ease-in-out infinite; }
.scn-house-of-holiness-patience .salve-jar { position:absolute; bottom:30%; left:50%; width:6%; height:8%; background: linear-gradient(180deg, #c0a070 0%, #a08050 100%); border-radius:30% 30% 10% 10%; box-shadow:0 0 10px rgba(0,0,0,0.2); animation: pa-salve 7s ease-in-out infinite alternate; }
.scn-house-of-holiness-patience .curtain { position:absolute; top:0; left:5%; width:12%; height:100%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:0 0 20px 20px; opacity:0.7; animation: pa-curtain 10s ease-in-out infinite alternate; }
@keyframes pa-knight { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes pa-healer { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes pa-salve { 0% { transform: skewX(0deg); } 50% { transform: skewX(3deg); } 100% { transform: skewX(0deg); } }
@keyframes pa-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }

/* house-of-holiness-penance */
.scn-house-of-holiness-penance { background: linear-gradient(180deg, #2a221a 0%, #1a120a 50%, #0a0805 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%); }
.scn-house-of-holiness-penance .cell { position:absolute; inset:0; background: linear-gradient(135deg, #1a120a 0%, #0a0805 100%); }
.scn-house-of-holiness-penance .sackcloth { position:absolute; bottom:20%; left:25%; width:50%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10%; opacity:0.8; }
.scn-house-of-holiness-penance .figure-penitent { position:absolute; bottom:25%; left:35%; width:12%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pe-fig 6s ease-in-out infinite; }
.scn-house-of-holiness-penance .chain { position:absolute; bottom:35%; left:42%; width:16%; height:4%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; transform:rotate(15deg); animation: pe-chain 8s ease-in-out infinite alternate; }
.scn-house-of-holiness-penance .candle { position:absolute; bottom:10%; left:15%; width:3%; height:12%; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius:5px 5px 20% 20%; box-shadow:0 0 20px 10px rgba(200,150,50,0.3); animation: pe-candle 4s ease-in-out infinite alternate; }
.scn-house-of-holiness-penance .pincers { position:absolute; bottom:35%; left:55%; width:10%; height:8%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:50% 50% 10% 10%; transform:rotate(-20deg); animation: pe-pincers 10s ease-in-out infinite; }
.scn-house-of-holiness-penance .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.3) 0%, transparent 50%); animation: pe-shadow 12s ease-in-out infinite alternate; }
@keyframes pe-fig { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pe-chain { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(20deg) translateX(3px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes pe-candle { 0% { opacity:0.6; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.1); } 100% { opacity:0.7; transform:scaleY(0.9); } }
@keyframes pe-pincers { 0% { transform: rotate(-20deg) skewX(0deg); } 50% { transform: rotate(-15deg) skewX(5deg); } 100% { transform: rotate(-20deg) skewX(0deg); } }
@keyframes pe-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-hell-rivers {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 30%, #2a0a0a 60%, #0f0f0f 100%),
              radial-gradient(ellipse at 30% 70%, #3a1a0a 0%, transparent 70%);
}
.scn-hell-rivers .river-acheron {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 15%;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a1a1a 30%, #3a2a1a 60%, #1a1a2a 100%);
  border-radius: 0 0 30% 30% / 0 0 100% 100%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
  animation: hr-wave 8s ease-in-out infinite alternate;
}
.scn-hell-rivers .river-phlegeton {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(90deg, #4a1a00 0%, #7a3a00 40%, #4a1a00 100%);
  border-radius: 40% 60% 20% 40% / 60% 40% 40% 60%;
  filter: blur(2px);
  animation: hr-fireflow 6s ease-in-out infinite alternate;
}
.scn-hell-rivers .bank {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0f0f0f 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.8);
}
.scn-hell-rivers .figure-charon {
  position: absolute; bottom: 42%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0f0f 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hr-pole 5s ease-in-out infinite;
}
.scn-hell-rivers .souls-mist {
  position: absolute; bottom: 25%; left: 10%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(60,40,30,.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: hr-mist 20s ease-in-out infinite alternate;
}
.scn-hell-rivers .fire-ember {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle, #ff8a00 0%, #cc5500 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #cc5500;
  animation: hr-ember 4s ease-in-out infinite;
}
.scn-hell-rivers .e1 { bottom: 10%; left: 20%; animation-delay: 0s; }
.scn-hell-rivers .e2 { bottom: 8%; left: 50%; animation-delay: 1.5s; }
.scn-hell-rivers .e3 { bottom: 12%; left: 75%; animation-delay: 3s; }

@keyframes hr-wave {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes hr-fireflow {
  0% { transform: translateX(0) skewX(-2deg); opacity: .9; }
  50% { transform: translateX(10px) skewX(2deg); opacity: 1; }
  100% { transform: translateX(0) skewX(-2deg); opacity: .9; }
}
@keyframes hr-pole {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
}
@keyframes hr-mist {
  0% { transform: translateX(0) scale(1); opacity: .4; }
  50% { transform: translateX(20px) scale(1.1); opacity: .6; }
  100% { transform: translateX(-10px) scale(.95); opacity: .3; }
}
@keyframes hr-ember {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  30% { transform: translateY(-12px) scale(1.3); opacity: .8; }
  60% { transform: translateY(18px) scale(.7); opacity: .6; }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}

.scn-hell-entrance-cerberus {
  background: linear-gradient(180deg, #0a0a0f 0%, #1f0a0a 40%, #2a0a00 80%, #0f0f0f 100%),
              radial-gradient(ellipse at 50% 30%, #3a1a0a 0%, transparent 60%);
}
.scn-hell-entrance-cerberus .gate-arch {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 50%;
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 50%, #1a0a0a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.8);
  border: 2px solid #3a2a1a;
}
.scn-hell-entrance-cerberus .gate-shadow {
  position: absolute; bottom: 28%; left: 25%; right: 25%; height: 30%;
  background: rgba(0,0,0,.7);
  filter: blur(8px);
  border-radius: 50%;
}
.scn-hell-entrance-cerberus .cerberus-head {
  position: absolute; bottom: 40%; width: 30px; height: 36px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ec-snap 3s ease-in-out infinite;
}
.scn-hell-entrance-cerberus .h1 { left: 30%; }
.scn-hell-entrance-cerberus .h2 { left: 42%; animation-delay: .3s; }
.scn-hell-entrance-cerberus .h3 { left: 54%; animation-delay: .6s; }
.scn-hell-entrance-cerberus .cerberus-tongue {
  position: absolute; bottom: 38%; left: 48%; width: 8px; height: 16px;
  background: radial-gradient(ellipse at 50% 0%, #cc3300 0%, #660000 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 0 16px 4px #660000;
  animation: ec-tongue 2s ease-in-out infinite alternate;
}
.scn-hell-entrance-cerberus .cerberus-bristle {
  position: absolute; bottom: 55%; left: 35%; width: 30%; height: 8px;
  background: linear-gradient(90deg, transparent 0%, #1a0a00 20%, #2a1a0a 50%, #1a0a00 80%, transparent 100%);
  filter: blur(2px);
  animation: ec-bristle 4s ease-in-out infinite;
}

@keyframes ec-snap {
  0% { transform: translateY(0) rotate(0); }
  20% { transform: translateY(-5px) rotate(5deg); }
  40% { transform: translateY(2px) rotate(-3deg); }
  60% { transform: translateY(-2px) rotate(0); }
  80% { transform: translateY(0) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ec-tongue {
  0% { transform: translateX(-50%) scaleY(1); opacity: .8; }
  50% { transform: translateX(-50%) scaleY(1.3); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(1); opacity: .8; }
}
@keyframes ec-bristle {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.2) translateY(2px); }
  100% { transform: scaleX(1) translateY(0); }
}

.scn-hell-torments {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 30%, #0f0f0f 100%),
              radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, transparent 70%);
}
.scn-hell-torments .bg-abyss {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0px, rgba(30,20,10,.1) 1px, transparent 2px);
  animation: htr-abyss 30s linear infinite;
}
.scn-hell-torments .wheel-ixion {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 50%, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(0,0,0,.6);
  animation: htr-wheel 6s linear infinite;
}
.scn-hell-torments .rock-sisyphus {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 28px;
  background: linear-gradient(135deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,.8);
  animation: htr-rock 12s ease-in-out infinite;
}
.scn-hell-torments .tantalus-fruit {
  position: absolute; top: 20%; right: 15%; width: 12px; height: 14px;
  background: radial-gradient(circle at 30% 30%, #cc6600 0%, #994400 100%);
  border-radius: 50%;
  animation: htr-fruit 5s ease-in-out infinite alternate;
}
.scn-hell-torments .vulture-tityus {
  position: absolute; top: 10%; left: 35%; width: 20px; height: 18px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0f0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: htr-vulture 8s ease-in-out infinite;
}
.scn-hell-torments .chain-typhoeus {
  position: absolute; top: 40%; left: 50%; width: 8px; height: 80px;
  background: repeating-linear-gradient(0deg, #4a3a2a 0px, #2a1a0a 4px, #4a3a2a 8px, transparent 8px, transparent 12px);
  transform: translateX(-50%);
  animation: htr-chain 4s ease-in-out infinite;
}

@keyframes htr-abyss {
  0% { transform: translateY(0); }
  100% { transform: translateY(-10px); }
}
@keyframes htr-wheel {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(180deg) translateY(-5px); }
  100% { transform: rotate(360deg) translateY(0); }
}
@keyframes htr-rock {
  0% { transform: translateX(0) rotate(0); opacity: .8; }
  25% { transform: translateX(20px) rotate(90deg); opacity: .9; }
  50% { transform: translateX(40px) rotate(180deg); opacity: .8; }
  75% { transform: translateX(20px) rotate(270deg); opacity: .9; }
  100% { transform: translateX(0) rotate(360deg); opacity: .8; }
}
@keyframes htr-fruit {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-20px) scale(1.2); }
}
@keyframes htr-vulture {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  25% { transform: translateX(10px) translateY(-5px) rotate(5deg); }
  50% { transform: translateX(0) translateY(-10px) rotate(0); }
  75% { transform: translateX(-10px) translateY(-5px) rotate(-5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes htr-chain {
  0%,100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.15); }
}

.scn-hell-asclepius {
  background: linear-gradient(180deg, #050810 0%, #0a0a1a 40%, #1f0a1a 80%, #0a0a0a 100%),
              radial-gradient(ellipse at 40% 60%, #1a0a30 0%, transparent 70%);
}
.scn-hell-asclepius .night-mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(40,20,60,.3) 0%, transparent 70%);
  filter: blur(20px);
  animation: ha-mist 15s ease-in-out infinite alternate;
}
.scn-hell-asclepius .wagon-waine {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 20px;
  background: linear-gradient(90deg, #1a1a3a 0%, #2a2a4a 50%, #1a1a3a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.7);
  animation: ha-wagon 12s ease-in-out infinite;
}
.scn-hell-asclepius .knight-fallen {
  position: absolute; bottom: 25%; left: 50%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%) rotate(15deg);
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: ha-knight 5s ease-in-out infinite alternate;
}
.scn-hell-asclepius .asclepius-figure {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ha-asclepius 8s ease-in-out infinite;
}
.scn-hell-asclepius .healing-herb {
  position: absolute; bottom: 28%; left: 28%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-20deg);
  animation: ha-herb 4s ease-in-out infinite;
}
.scn-hell-asclepius .salve-glow {
  position: absolute; bottom: 32%; left: 40%; width: 12px; height: 12px;
  background: radial-gradient(circle, #4a9a4a 0%, #2a6a2a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(74,154,74,.5);
  animation: ha-salve 3s ease-in-out infinite alternate;
}

@keyframes ha-mist {
  0% { opacity: .4; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.05); }
  100% { opacity: .3; transform: scale(.95); }
}
@keyframes ha-wagon {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ha-knight {
  0% { transform: translateX(-50%) rotate(15deg) translateY(0); opacity: .9; }
  50% { transform: translateX(-50%) rotate(10deg) translateY(-3px); opacity: 1; }
  100% { transform: translateX(-50%) rotate(15deg) translateY(0); opacity: .9; }
}
@keyframes ha-asclepius {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes ha-herb {
  0% { transform: rotate(-20deg) scaleY(1); }
  50% { transform: rotate(-15deg) scaleY(1.1); }
  100% { transform: rotate(-20deg) scaleY(1); }
}
@keyframes ha-salve {
  0% { box-shadow: 0 0 16px 4px #4a9a4a; opacity: .7; }
  100% { box-shadow: 0 0 32px 12px #6aba6a; opacity: 1; }
}

.scn-notes-rigour-outrageous {
  background:
    linear-gradient(180deg, #2a1b0e 0%, #1c1108 40%, #0f0a05 100%),
    radial-gradient(ellipse at 30% 70%, #4a2a10 0%, transparent 60%);
}
.scn-notes-rigour-outrageous .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3e2b1a 0%, #2a1b0e 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.6);
  animation: nr-w 12s ease-in-out infinite alternate;
}
.scn-notes-rigour-outrageous .candle {
  position: absolute; bottom: 40%; left: 25%;
  width: 12px; height: 30px;
  background: linear-gradient(180deg, #d4a04a 0%, #8c5c2a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,0.3);
  animation: nr-c 5s ease-in-out infinite alternate;
}
.scn-notes-rigour-outrageous .knight {
  position: absolute; bottom: 25%; left: 40%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #1f1a15 0%, #0d0b09 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nr-k 8s ease-in-out infinite;
}
.scn-notes-rigour-outrageous .sword {
  position: absolute; bottom: 40%; left: 52%;
  width: 6px; height: 50px;
  background: linear-gradient(180deg, #a09480 0%, #5c5450 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: nr-s 4s ease-in-out infinite;
}
.scn-notes-rigour-outrageous .glow-blade {
  position: absolute; bottom: 40%; left: 52%;
  width: 14px; height: 54px;
  background: radial-gradient(ellipse at center, rgba(255,220,160,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: nr-g 3s ease-in-out infinite alternate;
}
.scn-notes-rigour-outrageous .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1c120a 0%, #0f0a05 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.7);
  animation: nr-f 15s ease-in-out infinite;
}
@keyframes nr-w { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes nr-c { 0%,100% { box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,0.3); } 50% { box-shadow: 0 0 28px 12px #d09450, 0 0 56px 24px rgba(208,148,80,0.5); } }
@keyframes nr-k { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes nr-s { 0%,100% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-13deg) scaleY(1.02); } }
@keyframes nr-g { 0%,100% { opacity:0.6; } 50% { opacity:1; } }
@keyframes nr-f { 0%,100% { background: linear-gradient(180deg, #1c120a 0%, #0f0a05 100%); } 50% { background: linear-gradient(180deg, #2a1a0e 0%, #1c120a 100%); } }

.scn-notes-flesh-part {
  background:
    linear-gradient(180deg, #2a1e14 0%, #1c130a 50%, #0e0a05 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a16 0%, transparent 70%);
}
.scn-notes-flesh-part .curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4d2e20 0%, #2a1a0e 100%);
  border-radius: 0 0 30% 30%;
  animation: nf-c 20s ease-in-out infinite alternate;
}
.scn-notes-flesh-part .throne {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5c3a20 0%, #2a1a0e 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: nf-t 12s ease-in-out infinite;
}
.scn-notes-flesh-part .duessa {
  position: absolute; bottom: 28%; left: 32%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6e402e 0%, #3a2014 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: nf-d 8s ease-in-out infinite;
}
.scn-notes-flesh-part .tiara {
  position: absolute; bottom: 76%; left: 34%; width: 18px; height: 10px;
  background: linear-gradient(180deg, #b08040 0%, #704a20 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 6px 2px rgba(176,128,64,0.4);
  animation: nf-a 6s ease-in-out infinite alternate;
}
.scn-notes-flesh-part .staff {
  position: absolute; bottom: 40%; left: 55%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #a08040 0%, #604a20 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: nf-s 5s ease-in-out infinite;
}
.scn-notes-flesh-part .floor-glow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,160,100,0.2) 0%, transparent 70%);
  animation: nf-g 4s ease-in-out infinite alternate;
}
@keyframes nf-c { 0%,100% { opacity:0.95 } 50% { opacity:1 } }
@keyframes nf-t { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes nf-d { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes nf-a { 0%,100% { box-shadow: 0 0 6px 2px rgba(176,128,64,0.4); } 50% { box-shadow: 0 0 12px 6px rgba(176,128,64,0.6); } }
@keyframes nf-s { 0%,100% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(12deg) scaleY(1.02); } }
@keyframes nf-g { 0%,100% { opacity:0.5; } 50% { opacity:1; } }

.scn-notes-dainty-dearth {
  background:
    linear-gradient(180deg, #1e1610 0%, #140e0a 50%, #0a0705 100%),
    radial-gradient(ellipse at 60% 40%, #2a1a0e 0%, transparent 70%);
}
.scn-notes-dainty-dearth .arch {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 60%;
  border: 4px solid #3a2214;
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: nd-a 15s ease-in-out infinite alternate;
}
.scn-notes-dainty-dearth .knight {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1c1815 0%, #0c0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nd-k 9s ease-in-out infinite;
}
.scn-notes-dainty-dearth .duessa {
  position: absolute; bottom: 20%; left: 55%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #5e3a28 0%, #2e1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nd-d 7s ease-in-out infinite alternate;
}
.scn-notes-dainty-dearth .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #18100c 0%, #0a0705 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.9);
}
.scn-notes-dainty-dearth .shadow {
  position: absolute; bottom: 15%; left: 25%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: nd-s 6s ease-in-out infinite alternate;
}
@keyframes nd-a { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes nd-k { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes nd-d { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes nd-s { 0%,100% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.1); } }

.scn-notes-myrtle-bleeds {
  background:
    linear-gradient(180deg, #161210 0%, #0e0a08 50%, #080605 100%),
    radial-gradient(ellipse at 70% 30%, #2a1a1a 0%, transparent 60%);
}
.scn-notes-myrtle-bleeds .window {
  position: absolute; top: 5%; left: 30%; right: 30%; height: 50%;
  background: radial-gradient(ellipse at center, #3a4a5a 0%, #1a222a 100%);
  border: 3px solid #2a1a12;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: nm-w 20s ease-in-out infinite alternate;
}
.scn-notes-myrtle-bleeds .moonbeam {
  position: absolute; top: 20%; left: 40%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(200,220,255,0.08) 0%, rgba(200,220,255,0.02) 100%);
  transform: skewX(-10deg);
  filter: blur(10px);
  animation: nm-b 25s linear infinite alternate;
}
.scn-notes-myrtle-bleeds .pot {
  position: absolute; bottom: 15%; left: 40%; right: 40%; height: 20%;
  background: linear-gradient(180deg, #4a2e1c 0%, #2a1a0e 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: nm-p 10s ease-in-out infinite;
}
.scn-notes-myrtle-bleeds .trunk {
  position: absolute; bottom: 35%; left: 47%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1c140e 100%);
  border-radius: 2px;
  animation: nm-t 8s ease-in-out infinite;
}
.scn-notes-myrtle-bleeds .branches {
  position: absolute; bottom: 55%; left: 40%; right: 40%; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #2a1e12 0%, transparent 70%);
  border-radius: 50%;
  animation: nm-r 12s ease-in-out infinite alternate;
}
.scn-notes-myrtle-bleeds .droplets {
  position: absolute; bottom: 40%; left: 45%; width: 6px; height: 6px;
  border-radius: 50%;
  background: radial-gradient(circle, #aa3a2a 0%, #7a221a 100%);
  box-shadow:
    8px 6px 0 2px #aa3a2a,
    -4px 12px 0 1px #aa3a2a,
    12px 18px 0 1px #aa3a2a;
  animation: nm-d 4s ease-in-out infinite;
}
@keyframes nm-w { 0%,100% { opacity:0.7; } 50% { opacity:0.9; } }
@keyframes nm-b { 0% { transform: skewX(-10deg) translateX(-10px); } 100% { transform: skewX(-10deg) translateX(10px); } }
@keyframes nm-p { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes nm-t { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes nm-r { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes nm-d { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(2px) scale(1.2); } }

/* recognition-as-poet – warm sunlit */
.scn-recognition-as-poet {
  background:
    linear-gradient(180deg, #fff8e7 0%, #fde4b0 40%, #d4a76a 100%),
    radial-gradient(ellipse at 70% 40%, #ffeaa7 0%, transparent 60%);
}
.scn-recognition-as-poet .rap-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fff3d4 0%, transparent 50%);
  animation: rap-bg 10s ease-in-out infinite alternate;
}
.scn-recognition-as-poet .rap-window {
  position: absolute; top: 10%; left: 15%; width: 70%; height: 50%;
  border: 6px solid #8b6522; border-radius: 4px;
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, transparent 100%);
  box-shadow: inset 0 0 30px rgba(255,214,128,0.4);
}
.scn-recognition-as-poet .rap-sunbeam {
  position: absolute; top: 12%; left: 25%; width: 20%; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,200,0.5) 0%, transparent 80%);
  filter: blur(8px);
  animation: rap-sunbeam 6s ease-in-out infinite alternate;
}
.scn-recognition-as-poet .rap-desk {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #6b4226 0%, #4a2c14 100%);
  border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-recognition-as-poet .rap-manuscript {
  position: absolute; bottom: 24%; left: 30%; width: 14%; height: 10%;
  background: #f5e6c8;
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: rap-manuscript 4s ease-in-out infinite;
}
.scn-recognition-as-poet .rap-laurel {
  position: absolute; top: 38%; left: 60%; width: 16%; height: 12%;
  background:
    radial-gradient(circle at 30% 50%, #c8a24a 30%, transparent 30%),
    radial-gradient(circle at 70% 50%, #c8a24a 30%, transparent 30%);
  border-radius: 50%;
  filter: blur(1px);
  animation: rap-laurel 5s ease-in-out infinite alternate;
}
.scn-recognition-as-poet .rap-figure {
  position: absolute; bottom: 18%; left: 35%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rap-figure 8s ease-in-out infinite;
}
@keyframes rap-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rap-sunbeam { 0% { transform: translateX(-10px) rotate(-2deg); opacity: 0.4; } 50% { transform: translateX(0) rotate(0); opacity: 0.7; } 100% { transform: translateX(10px) rotate(2deg); opacity: 0.5; } }
@keyframes rap-manuscript { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes rap-laurel { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes rap-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }

/* clerk-in-ireland – calm overcast */
.scn-clerk-in-ireland {
  background:
    linear-gradient(180deg, #6b7b8a 0%, #4a5a6a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 30%, #7a8a9a 0%, transparent 70%);
}
.scn-clerk-in-ireland .cir-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #5a6a7a 0%, transparent 100%); animation: cir-bg 12s ease-in-out infinite alternate; }
.scn-clerk-in-ireland .cir-window { position: absolute; top: 8%; left: 20%; width: 60%; height: 40%; border: 5px solid #3a4a5a; border-radius: 3px; background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.2); }
.scn-clerk-in-ireland .cir-desk { position: absolute; bottom: 22%; left: 15%; width: 70%; height: 7%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 3px; }
.scn-clerk-in-ireland .cir-parchment { position: absolute; bottom: 26%; left: 30%; width: 20%; height: 10%; background: #d4c8a0; border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: cir-parchment 5s ease-in-out infinite; }
.scn-clerk-in-ireland .cir-quill { position: absolute; bottom: 30%; left: 45%; width: 2%; height: 16%; background: linear-gradient(180deg, #d4c8a0 0%, #8a7a5a 100%); border-radius: 0 0 50% 50%; transform: rotate(15deg); transform-origin: bottom; animation: cir-quill 3s ease-in-out infinite alternate; }
.scn-clerk-in-ireland .cir-inkwell { position: absolute; bottom: 24%; left: 55%; width: 6%; height: 6%; background: #2a2a3a; border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-clerk-in-ireland .cir-figure { position: absolute; bottom: 20%; left: 30%; width: 12%; height: 28%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cir-figure 6s ease-in-out infinite; }
@keyframes cir-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes cir-parchment { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes cir-quill { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.05); } 100% { transform: rotate(12deg) scaleY(1); } }
@keyframes cir-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }

/* work-on-faerie-queene-at-kilcolman – calm overcast */
.scn-work-on-faerie-queene-at-kilcolman {
  background:
    linear-gradient(180deg, #a8b8a0 0%, #7a8a6a 40%, #4a5a3a 100%),
    radial-gradient(ellipse at 50% 70%, #6a7a5a 0%, transparent 60%);
}
.scn-work-on-faerie-queene-at-kilcolman .wfq-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #b8c8b0 0%, #8a9a7a 100%); animation: wfq-sky 15s ease-in-out infinite alternate; }
.scn-work-on-faerie-queene-at-kilcolman .wfq-hills { position: absolute; bottom: 35%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.3); animation: wfq-hills 18s ease-in-out infinite alternate; }
.scn-work-on-faerie-queene-at-kilcolman .wfq-castle { position: absolute; bottom: 45%; left: 50%; width: 12%; height: 18%; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-work-on-faerie-queene-at-kilcolman .wfq-trees { position: absolute; bottom: 38%; left: 10%; width: 20%; height: 25%; background: radial-gradient(ellipse at 50% 100%, #4a5a3a 40%, transparent 40%); filter: blur(2px); animation: wfq-trees 20s ease-in-out infinite alternate; }
.scn-work-on-faerie-queene-at-kilcolman .wfq-path { position: absolute; bottom: 18%; left: 25%; width: 50%; height: 4%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2px; transform: skewX(-10deg); }
.scn-work-on-faerie-queene-at-kilcolman .wfq-figure { position: absolute; bottom: 22%; left: 30%; width: 8%; height: 22%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wfq-figure 10s ease-in-out infinite; }
@keyframes wfq-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes wfq-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes wfq-trees { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes wfq-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }

/* death-of-sidney – dark dusk */
.scn-death-of-sidney {
  background:
    linear-gradient(180deg, #2a1a3a 0%, #4a2a3a 30%, #6a3a2a 60%, #8a4a2a 100%),
    radial-gradient(ellipse at 50% 30%, #8a4a2a 0%, transparent 70%);
}
.scn-death-of-sidney .dos-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #3a2a4a 0%, #5a3a3a 50%, #7a4a3a 100%); animation: dos-sky 20s ease-in-out infinite alternate; }
.scn-death-of-sidney .dos-sun { position: absolute; top: 15%; left: 60%; width: 20%; height: 20%; background: radial-gradient(circle, #c07a3a 0%, #8a4a1a 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(192,122,58,0.5); animation: dos-sun 8s ease-in-out infinite; }
.scn-death-of-sidney .dos-knight { position: absolute; bottom: 25%; left: 35%; width: 14%; height: 30%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-10deg); transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,0.6); animation: dos-knight 12s ease-in-out infinite; }
.scn-death-of-sidney .dos-spear { position: absolute; bottom: 30%; left: 48%; width: 2%; height: 40%; background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%); transform: rotate(-15deg); transform-origin: bottom; animation: dos-spear 6s ease-in-out infinite alternate; }
.scn-death-of-sidney .dos-mourner { position: absolute; bottom: 22%; left: 60%; width: 10%; height: 25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dos-mourner 14s ease-in-out infinite; }
.scn-death-of-sidney .dos-monument { position: absolute; bottom: 20%; left: 10%; width: 8%; height: 30%; 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); }
@keyframes dos-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dos-sun { 0% { transform: scale(1) translateY(0); opacity: 0.8; } 50% { transform: scale(1.05) translateY(-4px); opacity: 1; } 100% { transform: scale(1) translateY(0); opacity: 0.9; } }
@keyframes dos-knight { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes dos-spear { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-12deg) scaleY(1.02); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes dos-mourner { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(6px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }

/* sansloy-seizes-una */
.scn-sansloy-seizes-una { background: linear-gradient(180deg, #7aa8c4 0%, #d4b87a 40%, #b2803a 100%), radial-gradient(ellipse at 40% 20%, #ffe680 0%, transparent 60%); }
.scn-sansloy-seizes-una .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a9ac4 0%, #b4d0e0 100%); animation: ssu-sky 8s ease-in-out infinite alternate; }
.scn-sansloy-seizes-una .sun { position:absolute; top:15%; right:25%; width:60px; height:60px; background: radial-gradient(circle, #ffdd66 0%, #ffb040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px #ffcc66; animation: ssu-sun 6s ease-in-out infinite alternate; }
.scn-sansloy-seizes-una .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #8a7a50 0%, #5a4a2a 100%); border-radius: 20% 30% 0 0 / 10% 15% 0 0; }
.scn-sansloy-seizes-una .palfrey { position:absolute; bottom:30%; left:20%; width:80px; height:50px; background: linear-gradient(135deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%; animation: ssu-palfrey 3s ease-in-out infinite; }
.scn-sansloy-seizes-una .una { position:absolute; bottom:30%; left:25%; width:20px; height:45px; background: linear-gradient(180deg, #e0c0a0 0%, #b08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ssu-una 4s ease-in-out infinite; }
.scn-sansloy-seizes-una .sansloy { position:absolute; bottom:30%; left:40%; width:28px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ssu-sansloy 5s ease-in-out infinite; }
.scn-sansloy-seizes-una .shield { position:absolute; bottom:32%; left:48%; width:22px; height:28px; background: radial-gradient(ellipse, #b08040 0%, #6a4020 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(0,0,0,.3); animation: ssu-shield 3s ease-in-out infinite; }
.scn-sansloy-seizes-una .dust { position:absolute; bottom:30%; left:30%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(180,150,80,.4) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: ssu-dust 2s ease-in-out infinite; }
@keyframes ssu-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ssu-sun { 0% { transform: translateY(0) scale(1); opacity:.9 } 50% { transform: translateY(5px) scale(1.05); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:.9 } }
@keyframes ssu-palfrey { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes ssu-una { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-5deg) } 50% { transform: translateX(0) rotate(5deg) } 75% { transform: translateX(-2px) rotate(-3deg) } }
@keyframes ssu-sansloy { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(3deg) } 60% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes ssu-shield { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(3px) scale(1.1) } }
@keyframes ssu-dust { 0%,100% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.2) } }

/* lion-attacks-sansloy */
.scn-lion-attacks-sansloy { background: linear-gradient(180deg, #7aa8c4 0%, #d4b87a 40%, #b2803a 100%), radial-gradient(ellipse at 60% 30%, #ffe680 0%, transparent 50%); }
.scn-lion-attacks-sansloy .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a9ac4 0%, #b4d0e0 100%); animation: las-sky 10s ease-in-out infinite alternate; }
.scn-lion-attacks-sansloy .sun-hard { position:absolute; top:20%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #ffee88 0%, #ffcc44 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #ffdd66; }
.scn-lion-attacks-sansloy .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #8a7a50 0%, #5a4a2a 100%); border-radius: 10% 20% 0 0 / 5% 10% 0 0; }
.scn-lion-attacks-sansloy .lion { position:absolute; bottom:35%; left:30%; width:60px; height:35px; background: linear-gradient(135deg, #b08040 0%, #8a6020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: las-lion 2s ease-in-out infinite; }
.scn-lion-attacks-sansloy .sansloy { position:absolute; bottom:30%; left:50%; width:28px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: las-sansloy 3s ease-in-out infinite; }
.scn-lion-attacks-sansloy .shield { position:absolute; bottom:32%; left:55%; width:24px; height:30px; background: radial-gradient(ellipse, #b08040 0%, #6a4020 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(0,0,0,.3); animation: las-shield 2s ease-in-out infinite; }
.scn-lion-attacks-sansloy .sword { position:absolute; bottom:35%; left:52%; width:4px; height:32px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 2px; transform: rotate(30deg); animation: las-sword 3s ease-in-out infinite; }
.scn-lion-attacks-sansloy .dust { position:absolute; bottom:30%; left:40%; width:70px; height:20px; background: radial-gradient(ellipse, rgba(180,150,80,.4) 0%, transparent 70%); border-radius: 50%; filter: blur(5px); animation: las-dust 1.5s ease-in-out infinite; }
@keyframes las-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes las-lion { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-5px) } }
@keyframes las-sansloy { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-3px) rotate(-10deg) } 60% { transform: translateX(0) rotate(5deg) } }
@keyframes las-shield { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(1.15) } }
@keyframes las-sword { 0%,100% { transform: rotate(30deg) } 50% { transform: rotate(20deg) } }
@keyframes las-dust { 0%,100% { opacity:.3; transform: scale(1) } 50% { opacity:.7; transform: scale(1.3) } }

/* lion-killed */
.scn-lion-killed { background: linear-gradient(180deg, #b06030 0%, #804020 35%, #5a2a1a 100%), radial-gradient(ellipse at 50% 30%, #ff9944 0%, transparent 50%); }
.scn-lion-killed .sky-evening { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b07050 0%, #d09060 100%); animation: lik-sky 12s ease-in-out infinite alternate; }
.scn-lion-killed .sun-low { position:absolute; bottom:50%; left:20%; width:70px; height:70px; background: radial-gradient(circle, #ff8844 0%, #ff6633 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 100px 40px #ff7744; animation: lik-sun 8s ease-in-out infinite alternate; }
.scn-lion-killed .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 30% 20% 0 0 / 15% 10% 0 0; }
.scn-lion-killed .lion-body { position:absolute; bottom:30%; left:30%; width:70px; height:30px; background: linear-gradient(135deg, #b08040 0%, #7a5a2a 100%); border-radius: 40% 60% 30% 50% / 50% 40% 60% 50%; transform: rotate(15deg); animation: lik-lion 4s ease-in-out infinite; }
.scn-lion-killed .una { position:absolute; bottom:30%; left:45%; width:20px; height:45px; background: linear-gradient(180deg, #e0c0a0 0%, #b08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lik-una 5s ease-in-out infinite; }
.scn-lion-killed .tears { position:absolute; bottom:35%; left:47%; width:2px; height:10px; background: linear-gradient(180deg, #aaccee 0%, transparent 100%); border-radius: 50%; box-shadow: -4px 6px 6px #aaccee, 4px 8px 8px #aaccee; animation: lik-tears 3s ease-in-out infinite; }
.scn-lion-killed .spear { position:absolute; bottom:35%; left:25%; width:3px; height:40px; background: linear-gradient(180deg, #a08060 0%, #6a4a2a 100%); border-radius: 1px; transform: rotate(-20deg); animation: lik-spear 6s ease-in-out infinite; }
@keyframes lik-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes lik-sun { 0% { transform: translateY(0) scale(1); opacity:.9 } 50% { transform: translateY(5px) scale(1.1); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:.8 } }
@keyframes lik-lion { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(10deg) } }
@keyframes lik-una { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } }
@keyframes lik-tears { 0%,100% { opacity:.3; transform: translateY(0) } 50% { opacity:.7; transform: translateY(-3px) } }
@keyframes lik-spear { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } }

/* una-carried-away */
.scn-una-carried-away { background: linear-gradient(180deg, #7aa8c4 0%, #d4b87a 40%, #b2803a 100%), radial-gradient(ellipse at 70% 30%, #ffe680 0%, transparent 50%); }
.scn-una-carried-away .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a9ac4 0%, #b4d0e0 100%); animation: uca-sky 10s ease-in-out infinite alternate; }
.scn-una-carried-away .sun { position:absolute; top:15%; right:30%; width:55px; height:55px; background: radial-gradient(circle, #ffdd66 0%, #ffb040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 70px 25px #ffcc66; animation: uca-sun 7s ease-in-out infinite alternate; }
.scn-una-carried-away .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #8a7a50 0%, #5a4a2a 100%); border-radius: 15% 25% 0 0 / 8% 12% 0 0; }
.scn-una-carried-away .sansloy { position:absolute; bottom:30%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uca-sansloy 4s ease-in-out infinite; }
.scn-una-carried-away .una { position:absolute; bottom:30%; left:35%; width:18px; height:40px; background: linear-gradient(180deg, #e0c0a0 0%, #b08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: uca-una 3s ease-in-out infinite; }
.scn-una-carried-away .tear-stream { position:absolute; bottom:32%; left:33%; width:2px; height:25px; background: linear-gradient(180deg, #aaccee 0%, transparent 100%); border-radius: 50%; box-shadow: 3px 4px 4px #aaccee, -2px 6px 6px #aaccee; animation: uca-tears 2s ease-in-out infinite; }
.scn-una-carried-away .palfrey { position:absolute; bottom:30%; left:50%; width:70px; height:45px; background: linear-gradient(135deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%; animation: uca-palfrey 5s ease-in-out infinite; }
.scn-una-carried-away .tree { position:absolute; bottom:30%; left:10%; width:8px; height:60px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 4px; transform-origin: bottom center; animation: uca-tree 12s ease-in-out infinite; }
@keyframes uca-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes uca-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(3px) scale(1.08) } 100% { transform: translateY(0) scale(1) } }
@keyframes uca-sansloy { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(2px) rotate(3deg) } 60% { transform: translateX(-1px) rotate(-2deg) } }
@keyframes uca-una { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(10deg) } }
@keyframes uca-tears { 0%,100% { opacity:.4; transform: translateY(0) } 50% { opacity:.8; transform: translateY(-5px) } }
@keyframes uca-palfrey { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes uca-tree { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }

.scn-glossary-i {
  background: 
    linear-gradient(180deg, #f5e6d3 0%, #e8d5b8 30%, #d4c4a8 70%, #c4b49a 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%);
}
.scn-glossary-i .wall { position:absolute; inset:0; background: linear-gradient(135deg, #f5e6d3 0%, #e0d0b8 100%); }
.scn-glossary-i .window { position:absolute; top:8%; left:65%; width:22%; height:35%; background: radial-gradient(ellipse at 50% 50%, #c8d8f0 0%, #a0b8d0 100%); border-radius: 4px 4px 8px 8px; box-shadow: inset 0 0 30px rgba(255,255,240,0.6), 0 0 40px rgba(160,180,200,0.3); animation: glI-window 10s ease-in-out infinite alternate; }
.scn-glossary-i .desk { position:absolute; bottom:10%; left:20%; width:60%; height:35%; background: linear-gradient(180deg, #8b6f4a 0%, #6b4f2a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.15); }
.scn-glossary-i .book-open { position:absolute; bottom:18%; left:42%; width:30%; height:22%; background: linear-gradient(135deg, #c8a878 0%, #a88858 100%); border-radius: 2px 2px 0 0; box-shadow: 0 2px 8px rgba(0,0,0,0.2); animation: glI-book 8s ease-in-out infinite; }
.scn-glossary-i .candle { position:absolute; bottom:28%; left:62%; width:4%; height:12%; background: linear-gradient(180deg, #f0e0c0 0%, #d8b080 100%); border-radius: 20% 20% 8% 8%; box-shadow: 0 0 20px #f0d080; }
.scn-glossary-i .inkwell { position:absolute; bottom:20%; left:58%; width:6%; height:7%; background: radial-gradient(circle at 30% 30%, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-glossary-i .quill { position:absolute; bottom:26%; left:56%; width:2%; height:15%; background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a0 50%, #8a8070 100%); border-radius: 50% 50% 10% 10%; transform: rotate(15deg); animation: glI-quill 4s ease-in-out infinite alternate; }
.scn-glossary-i .light-spot { position:absolute; top:15%; left:35%; width:30%; height:30%; background: radial-gradient(ellipse, rgba(255,240,200,0.3) 0%, transparent 70%); animation: glI-light 12s ease-in-out infinite alternate; }
@keyframes glI-window { 0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.85; } }
@keyframes glI-book { 0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.98) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); } }
@keyframes glI-quill { 0% { transform: rotate(12deg) translateX(0); }
  50% { transform: rotate(18deg) translateX(2px); }
  100% { transform: rotate(12deg) translateX(0); } }
@keyframes glI-light { 0% { transform: scale(1) translate(0,0); opacity:0.3; }
  50% { transform: scale(1.1) translate(5px,-5px); opacity:0.5; }
  100% { transform: scale(1) translate(0,0); opacity:0.3; } }

.scn-glossary-k {
  background: 
    linear-gradient(180deg, #f0e4d0 0%, #dcc8b0 40%, #c8b498 100%),
    radial-gradient(ellipse at 30% 80%, #e8dcc8 0%, transparent 60%);
}
.scn-glossary-k .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f0e4d0 0%, #dcc8b0 100%); }
.scn-glossary-k .shelf { position:absolute; top:12%; left:10%; width:80%; height:8%; background: linear-gradient(180deg, #6b5030 0%, #4a3820 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
.scn-glossary-k .book-stack-a { position:absolute; top:17%; left:15%; width:8%; height:20%; background: linear-gradient(180deg, #b08050 0%, #8a6030 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.15); animation: glK-bookA 9s ease-in-out infinite; }
.scn-glossary-k .book-stack-b { position:absolute; top:19%; left:25%; width:10%; height:18%; background: linear-gradient(180deg, #a07040 0%, #785028 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.15); animation: glK-bookB 11s ease-in-out infinite; }
.scn-glossary-k .chair { position:absolute; bottom:15%; left:30%; width:40%; height:45%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-glossary-k .cushion { position:absolute; bottom:15%; left:32%; width:36%; height:18%; background: radial-gradient(ellipse at 50% 40%, #705838 0%, #483020 100%); border-radius: 40% 40% 30% 30%; box-shadow: inset 0 2px 10px rgba(0,0,0,0.2); }
.scn-glossary-k .window { position:absolute; top:10%; right:5%; width:25%; height:40%; background: radial-gradient(ellipse at 50% 50%, #c8d8f0 0%, #a0b8d0 100%); border-radius: 10px; box-shadow: inset 0 0 30px rgba(255,255,240,0.5); animation: glK-window 14s ease-in-out infinite alternate; }
.scn-glossary-k .sunbeam { position:absolute; top:10%; right:10%; width:12%; height:90%; background: linear-gradient(180deg, rgba(255,255,200,0.15) 0%, transparent 80%); transform: rotate(-10deg); animation: glK-sunbeam 20s linear infinite; }
@keyframes glK-bookA { 0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); } }
@keyframes glK-bookB { 0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(2px) scaleY(0.97); }
  100% { transform: translateY(0) scaleY(1); } }
@keyframes glK-window { 0% { opacity:0.7; }
  50% { opacity:0.95; }
  100% { opacity:0.8; } }
@keyframes glK-sunbeam { 0% { opacity:0.1; transform: rotate(-8deg) translateX(0); }
  50% { opacity:0.3; transform: rotate(-12deg) translateX(10px); }
  100% { opacity:0.1; transform: rotate(-8deg) translateX(0); } }

.scn-glossary-l {
  background: 
    linear-gradient(180deg, #f2e6d8 0%, #e0d0bc 40%, #ccb8a2 100%),
    radial-gradient(ellipse at 70% 40%, #fff8ec 0%, transparent 60%);
}
.scn-glossary-l .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f2e6d8 0%, #dcc8b4 100%); }
.scn-glossary-l .window-frame { position:absolute; top:5%; left:20%; width:60%; height:50%; border: 8px solid #4a3820; border-radius: 6px; box-shadow: inset 0 0 40px rgba(200,210,230,0.3); background: radial-gradient(ellipse at 50% 50%, #b0c8e0 0%, #8898b0 100%); animation: glL-window 12s ease-in-out infinite alternate; }
.scn-glossary-l .desk { position:absolute; bottom:10%; left:15%; width:70%; height:30%; background: linear-gradient(180deg, #7a5f3a 0%, #5a3f1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.1); }
.scn-glossary-l .papers { position:absolute; bottom:14%; left:20%; width:50%; height:8%; background: linear-gradient(135deg, #f0e8d8 0%, #e0d0c0 100%); border-radius: 1px; box-shadow: 0 1px 4px rgba(0,0,0,0.1); animation: glL-papers 7s ease-in-out infinite; }
.scn-glossary-l .lamp { position:absolute; bottom:20%; left:72%; width:6%; height:25%; background: linear-gradient(180deg, #c09a70 0%, #8a6a40 100%); border-radius: 30% 30% 10% 10%; }
.scn-glossary-l .candle { position:absolute; bottom:22%; left:73%; width:2%; height:10%; background: linear-gradient(180deg, #f0d8b0 0%, #d0b080 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px #f0c880; animation: glL-candle 4s ease-in-out infinite alternate; }
.scn-glossary-l .blotter { position:absolute; bottom:12%; left:30%; width:15%; height:3%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; }
.scn-glossary-l .shadow { position:absolute; bottom:0; left:0; width:100%; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.08) 100%); animation: glL-shadow 15s ease-in-out infinite; }
@keyframes glL-window { 0% { opacity:0.7; transform: scaleY(1); }
  50% { opacity:0.9; transform: scaleY(1.02); }
  100% { opacity:0.75; transform: scaleY(1); } }
@keyframes glL-papers { 0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); } }
@keyframes glL-candle { 0% { opacity:0.8; transform: translateY(0); }
  50% { opacity:1; transform: translateY(-2px); }
  100% { opacity:0.85; transform: translateY(0); } }
@keyframes glL-shadow { 0% { opacity:0.6; }
  50% { opacity:0.8; }
  100% { opacity:0.6; } }

.scn-glossary-m {
  background: 
    linear-gradient(180deg, #f0e2cf 0%, #ded0bc 40%, #ccbcab 100%),
    radial-gradient(ellipse at 50% 30%, #fff8ec 0%, transparent 50%);
}
.scn-glossary-m .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f0e2cf 0%, #dcccb8 100%); }
.scn-glossary-m .lamp { position:absolute; top:10%; left:45%; width:10%; height:30%; background: linear-gradient(180deg, #c8a880 0%, #a08058 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px #e0c090; }
.scn-glossary-m .chair { position:absolute; bottom:15%; left:30%; width:40%; height:40%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 15% 15% / 50% 50% 15% 15%; box-shadow: 0 4px 12px rgba(0,0,0,0.25); }
.scn-glossary-m .table { position:absolute; bottom:10%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #7a5f3a 0%, #5a3f1a 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
.scn-glossary-m .book-closed { position:absolute; bottom:12%; left:40%; width:20%; height:14%; background: linear-gradient(135deg, #c8a878 0%, #a88858 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: glM-book 10s ease-in-out infinite; }
.scn-glossary-m .mug { position:absolute; bottom:12%; left:55%; width:6%; height:10%; background: radial-gradient(ellipse at 50% 30%, #e8d8c0 0%, #c0a880 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.scn-glossary-m .rays { position:absolute; top:15%; left:42%; width:16%; height:20%; background: radial-gradient(ellipse, rgba(255,220,160,0.3) 0%, transparent 70%); animation: glM-rays 8s ease-in-out infinite alternate; }
.scn-glossary-m .rug { position:absolute; bottom:0; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #705838 0%, #483020 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
@keyframes glM-book { 0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.99) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); } }
@keyframes glM-rays { 0% { transform: scale(1) rotate(0deg); opacity:0.2; }
  50% { transform: scale(1.1) rotate(5deg); opacity:0.4; }
  100% { transform: scale(1) rotate(0deg); opacity:0.2; } }

.scn-questions-canto-ii { background: linear-gradient(180deg, #1a1a2e 0%, #2c2240 50%, #4a3a4e 100%), radial-gradient(ellipse at 30% 60%, #4a3a4e 0%, transparent 70%); }
.scn-questions-canto-ii .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2c2240 0%, #1a1a2e 100%); }
.scn-questions-canto-ii .bookshelf { position:absolute; bottom:30%; left:5%; right:5%; height:45%; background: repeating-linear-gradient(90deg, #3a2a1a 0px 8px, #2a1a0a 8px 10px); border-radius: 4px; box-shadow: inset 0 4px 10px rgba(0,0,0,0.6); }
.scn-questions-canto-ii .desk { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 6px; }
.scn-questions-canto-ii .candle { position:absolute; bottom:27%; left:30%; width:8px; height:30px; background: linear-gradient(180deg, #e0c080 0%, #a08050 100%); border-radius: 2px; transform-origin: bottom; animation: q2-candle 3s ease-in-out infinite alternate; }
.scn-questions-canto-ii .flame-glow { position:absolute; bottom:42%; left:30%; width:30px; height:30px; margin-left:-11px; background: radial-gradient(circle, #ffd080 0%, #b07030 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 10px #ffb040; animation: q2-flame 2s ease-in-out infinite alternate; }
.scn-questions-canto-ii .book { position:absolute; bottom:14%; left:40%; width:40px; height:8px; background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 50%, #6a4a3a 100%); border-radius: 2px; transform: rotate(-5deg); animation: q2-book 8s ease-in-out infinite; }
.scn-questions-canto-ii .figure { position:absolute; bottom:12%; left:45%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: q2-figure 6s ease-in-out infinite; }
.scn-questions-canto-ii .cat { position:absolute; bottom:10%; left:25%; width:20px; height:12px; background: #2a2a1a; border-radius: 50% 50% 30% 30%; animation: q2-cat 4s ease-in-out infinite; }
@keyframes q2-candle { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(1deg); } 100% { transform: scaleY(0.98) rotate(-1deg); } }
@keyframes q2-flame { 0% { opacity:0.8; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.85; transform: scale(0.95); } }
@keyframes q2-book { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg); } }
@keyframes q2-figure { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg) translateY(-2px); } }
@keyframes q2-cat { 0%,100% { transform: translateX(0); } 50% { transform: translateX(8px); } }

.scn-questions-canto-ii-2 { background: linear-gradient(180deg, #1a2a3e 0%, #2c3848 50%, #3a4a5a 100%), radial-gradient(ellipse at 70% 90%, #3a4a5a 0%, transparent 60%); }
.scn-questions-canto-ii-2 .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2c3848 0%, #1a2a3e 100%); }
.scn-questions-canto-ii-2 .window { position:absolute; top:20%; left:25%; right:25%; bottom:50%; background: linear-gradient(180deg, #3a5a7a 0%, #2a4a6a 100%); border: 6px solid #4a3a2a; border-radius: 4px; box-shadow: inset 0 0 20px #4a6a8a; }
.scn-questions-canto-ii-2 .moon { position:absolute; top:25%; left:45%; width:40px; height:40px; background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #c0d0e0; animation: q2a-moon 25s linear infinite; }
.scn-questions-canto-ii-2 .desk-darker { position:absolute; bottom:8%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 6px; }
.scn-questions-canto-ii-2 .inkwell { position:absolute; bottom:16%; left:25%; width:12px; height:16px; background: #1a1a2a; border-radius: 4px 4px 2px 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: q2a-ink 5s ease-in-out infinite; }
.scn-questions-canto-ii-2 .quill { position:absolute; bottom:22%; left:28%; width:20px; height:4px; background: linear-gradient(90deg, #d0c0a0 0%, #a09070 100%); transform: rotate(20deg); border-radius: 1px; animation: q2a-quill 3s ease-in-out infinite alternate; }
.scn-questions-canto-ii-2 .chair { position:absolute; bottom:10%; left:55%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom; animation: q2a-chair 4s ease-in-out infinite; }
.scn-questions-canto-ii-2 .shadow { position:absolute; bottom:6%; left:50%; width:40px; height:8px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: q2a-shadow 6s ease-in-out infinite; }
@keyframes q2a-moon { 0% { transform: translateX(-10px); } 50% { transform: translateX(10px); } 100% { transform: translateX(-10px); } }
@keyframes q2a-ink { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes q2a-quill { 0% { transform: rotate(20deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(18deg); } }
@keyframes q2a-chair { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes q2a-shadow { 0%,100% { opacity:0.3; } 50% { opacity:0.5; } }

.scn-questions-canto-ii-3 { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 50%, #4a3a3a 100%), radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 70%); }
.scn-questions-canto-ii-3 .hearth-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); }
.scn-questions-canto-ii-3 .fireplace { position:absolute; bottom:20%; left:25%; right:25%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 4px 4px; box-shadow: inset 0 8px 20px rgba(0,0,0,0.7); }
.scn-questions-canto-ii-3 .fire-glow { position:absolute; bottom:30%; left:35%; right:35%; height:30%; background: radial-gradient(ellipse at 50% 50%, #c06030 0%, #802010 40%, transparent 70%); box-shadow: 0 0 50px 30px #c06030; animation: q2b-fire 2s ease-in-out infinite alternate; }
.scn-questions-canto-ii-3 .mantel { position:absolute; bottom:58%; left:20%; right:20%; height:4%; background: linear-gradient(90deg, #5a3a2a 0%, #7a5a3a 50%, #5a3a2a 100%); border-radius: 2px; }
.scn-questions-canto-ii-3 .clock { position:absolute; bottom:62%; left:35%; width:20px; height:16px; background: #2a1a0a; border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: q2b-clock 12s linear infinite; }
.scn-questions-canto-ii-3 .vase { position:absolute; bottom:60%; left:55%; width:14px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px 4px 10px 10px; transform-origin: bottom; animation: q2b-vase 5s ease-in-out infinite; }
.scn-questions-canto-ii-3 .armchair { position:absolute; bottom:10%; left:15%; width:40px; height:35px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom; animation: q2b-chair 3s ease-in-out infinite; }
.scn-questions-canto-ii-3 .rug { position:absolute; bottom:0; left:5%; right:5%; height:10%; background: repeating-linear-gradient(45deg, #5a3a2a 0px 10px, #3a2a1a 10px 20px); border-radius: 4px; }
@keyframes q2b-fire { 0% { opacity:0.8; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.85; transform: scaleY(0.95); } }
@keyframes q2b-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes q2b-vase { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes q2b-chair { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg) translateY(-2px); } }

.scn-parnassus-gloss { background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 50%, #a89878 100%), radial-gradient(ellipse at 50% 20%, #f0e4c8 0%, transparent 70%); }
.scn-parnassus-gloss .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); }
.scn-parnassus-gloss .wall-bright { position:absolute; inset:0; bottom:20%; background: linear-gradient(180deg, #f0e4c8 0%, #c8b898 100%); }
.scn-parnassus-gloss .window-large { position:absolute; top:10%; left:20%; right:20%; bottom:30%; background: linear-gradient(180deg, #a8c8e8 0%, #78a8c8 100%); border: 8px solid #806040; border-radius: 6px; box-shadow: inset 0 0 30px rgba(255,255,255,0.3); }
.scn-parnassus-gloss .mountain { position:absolute; top:15%; left:25%; width:50%; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a1a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: pg-mountain 20s ease-in-out infinite alternate; }
.scn-parnassus-gloss .cloud-pass { position:absolute; top:20%; left:10%; width:60px; height:15px; background: rgba(255,255,255,0.6); border-radius: 50%; filter: blur(4px); animation: pg-cloud 30s linear infinite; }
.scn-parnassus-gloss .desk-wood { position:absolute; bottom:22%; left:15%; right:15%; height:10%; background: linear-gradient(90deg, #8a6a4a 0%, #b09070 50%, #8a6a4a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
.scn-parnassus-gloss .open-book { position:absolute; bottom:24%; left:35%; width:50px; height:12px; background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%); border-radius: 2px; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: pg-book 6s ease-in-out infinite; }
.scn-parnassus-gloss .hand { position:absolute; bottom:24%; left:45%; width:8px; height:14px; background: #c8a888; border-radius: 4px 4px 3px 3px; animation: pg-hand 4s ease-in-out infinite alternate; }
@keyframes pg-mountain { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes pg-cloud { 0% { transform: translateX(-50px); opacity:0.6; } 50% { opacity:0.8; } 100% { transform: translateX(120vw); opacity:0.4; } }
@keyframes pg-book { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(-1deg); } }
@keyframes pg-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(0) rotate(-2deg); } }

.scn-saint-george-gloss { background: linear-gradient(180deg, #f5e7c8 0%, #dcc8a8 40%, #b8966e 100%), radial-gradient(circle at 70% 20%, #fff5d6 0%, transparent 60%); }
.scn-saint-george-gloss .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e6d4b0 0%, #c8a880 100%); }
.scn-saint-george-gloss .window { position:absolute; top:8%; left:50%; width:120px; height:180px; transform:translateX(-50%); border-radius:8px; background: linear-gradient(135deg, #9bc5e8 0%, #7fa8c8 50%, #5a7a9a 100%); box-shadow: inset 0 0 30px rgba(255,255,200,0.6); animation: sgg-window 8s ease-in-out infinite alternate; }
.scn-saint-george-gloss .tapestry { position:absolute; bottom:30%; left:50%; width:160px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #8b5a3a 0%, #5c3a1e 100%); border-radius:4px; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-saint-george-gloss .figure-knight { position:absolute; bottom:35%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sgg-knight 5s ease-in-out infinite; }
.scn-saint-george-gloss .figure-dragon { position:absolute; bottom:33%; left:60%; width:60px; height:50px; background: linear-gradient(180deg, #2d5a1a 0%, #1a3a0a 100%); border-radius: 40% 60% 50% 50% / 50% 40% 60% 50%; transform: rotate(-10deg); animation: sgg-dragon 6s ease-in-out infinite; }
.scn-saint-george-gloss .banner { position:absolute; top:5%; left:10%; width:30px; height:50px; background: linear-gradient(180deg, #c8553d 0%, #8b2e1a 100%); clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%); animation: sgg-banner 4s ease-in-out infinite alternate; }
.scn-saint-george-gloss .light-glow { position:absolute; top:20%; left:50%; width:200px; height:200px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,230,150,0.4) 0%, transparent 70%); animation: sgg-glow 6s ease-in-out infinite alternate; }
.scn-saint-george-gloss .shadow-pillar { position:absolute; bottom:0; left:5%; width:20px; height:100%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%); }
@keyframes sgg-window { 0% { opacity:0.7; filter:brightness(0.8); } 50% { opacity:1; filter:brightness(1.1); } 100% { opacity:0.8; filter:brightness(0.9); } }
@keyframes sgg-knight { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sgg-dragon { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(0.9); } 100% { transform: rotate(-10deg) scaleX(1); } }
@keyframes sgg-banner { 0% { transform: rotate(-5deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-5deg); } }
@keyframes sgg-glow { 0% { opacity:0.5; transform: translateX(-50%) scale(1); } 50% { opacity:0.9; transform: translateX(-50%) scale(1.2); } 100% { opacity:0.6; transform: translateX(-50%) scale(0.95); } }

.scn-bequeathed-care-gloss { background: linear-gradient(180deg, #e8dcc8 0%, #d4c0a0 50%, #b09878 100%), radial-gradient(circle at 80% 30%, #fff8e8 0%, transparent 70%); }
.scn-bequeathed-care-gloss .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #d8c8b0 0%, #b8a088 100%); }
.scn-bequeathed-care-gloss .cradle { position:absolute; bottom:25%; left:50%; width:100px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%); border-radius: 20px 20px 40px 40px; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-bequeathed-care-gloss .fairy { position:absolute; bottom:40%; right:25%; width:30px; height:60px; background: linear-gradient(180deg, #aa88cc 0%, #7755aa 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bcg-fairy 3s ease-in-out infinite; }
.scn-bequeathed-care-gloss .baby { position:absolute; bottom:30%; left:45%; width:20px; height:25px; background: radial-gradient(circle, #ffe0c8 0%, #d4a080 70%); border-radius: 50% 50% 40% 40%; }
.scn-bequeathed-care-gloss .moonlight { position:absolute; top:5%; right:20%; width:80px; height:80px; background: radial-gradient(circle, rgba(230,230,255,0.3) 0%, transparent 70%); animation: bcg-moon 10s ease-in-out infinite alternate; }
.scn-bequeathed-care-gloss .curtain { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(180deg, #6a4a38 0%, #3a2a18 100%); border-radius: 0 20px 20px 0; filter: blur(2px); }
.scn-bequeathed-care-gloss .glow-orb { position:absolute; top:35%; left:60%; width:15px; height:15px; background: #ffdd88; border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,221,136,0.6); animation: bcg-orb 5s ease-in-out infinite alternate; }
@keyframes bcg-fairy { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes bcg-moon { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.15); } 100% { opacity:0.5; transform: scale(0.95); } }
@keyframes bcg-orb { 0% { opacity:0.7; transform: translate(0,0); } 50% { opacity:1; transform: translate(5px,-3px); } 100% { opacity:0.8; transform: translate(-2px,2px); } }

.scn-georgos-gloss { background: linear-gradient(180deg, #e0d4bc 0%, #c8b498 40%, #a08868 100%), radial-gradient(ellipse at 50% 80%, #f5ecd0 0%, transparent 60%); }
.scn-georgos-gloss .earth { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #6a5038 0%, #4a3018 100%); border-radius: 30% 70% 0 0 / 20% 50% 0 0; }
.scn-georgos-gloss .furrow { position:absolute; bottom:25%; left:20%; width:70%; height:8px; background: #2a1a0a; border-radius:4px; transform: rotate(5deg); }
.scn-georgos-gloss .plow { position:absolute; bottom:32%; left:30%; width:60px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 10px 30px 30px 10px; transform: rotate(10deg); }
.scn-georgos-gloss .hand-left { position:absolute; bottom:30%; left:38%; width:18px; height:22px; background: #d4a080; border-radius: 50% 40% 50% 40%; transform: rotate(-20deg); animation: ggs-hand 4s ease-in-out infinite alternate; }
.scn-georgos-gloss .hand-right { position:absolute; bottom:30%; left:42%; width:18px; height:22px; background: #d4a080; border-radius: 50% 40% 50% 40%; transform: rotate(10deg); animation: ggs-hand 4s ease-in-out infinite alternate-reverse; }
.scn-georgos-gloss .child-tages { position:absolute; bottom:20%; left:45%; width:24px; height:30px; background: radial-gradient(circle, #f5d4b0 0%, #c89878 70%); border-radius: 50% 50% 40% 40%; animation: ggs-child 6s ease-in-out infinite; }
.scn-georgos-gloss .sunbeam { position:absolute; top:5%; left:40%; width:120px; height:200px; background: linear-gradient(180deg, rgba(255,230,150,0.2) 0%, transparent 80%); transform: rotate(15deg); animation: ggs-beam 12s ease-in-out infinite alternate; }
@keyframes ggs-hand { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.05); } 100% { transform: rotate(-20deg) scaleY(1); } }
@keyframes ggs-child { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ggs-beam { 0% { opacity:0.3; transform: rotate(15deg) scaleY(1); } 50% { opacity:0.7; transform: rotate(12deg) scaleY(1.1); } 100% { opacity:0.4; transform: rotate(15deg) scaleY(1); } }

.scn-canto-x-questions-1 { background: linear-gradient(180deg, #f0e6d6 0%, #dcc9b0 40%, #b8976e 100%), radial-gradient(circle at 30% 30%, #fff8e8 0%, transparent 70%); }
.scn-canto-x-questions-1 .hall { position:absolute; inset:0; background: linear-gradient(180deg, #d8c0a8 0%, #b09878 100%); }
.scn-canto-x-questions-1 .arch-left { position:absolute; bottom:0; left:5%; width:30%; height:80%; background: linear-gradient(180deg, #a08868 0%, #705030 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); }
.scn-canto-x-questions-1 .arch-right { position:absolute; bottom:0; right:5%; width:30%; height:80%; background: linear-gradient(180deg, #a08868 0%, #705030 100%); clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%); }
.scn-canto-x-questions-1 .figure-faith { position:absolute; bottom:30%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cxq-figure 7s ease-in-out infinite; }
.scn-canto-x-questions-1 .figure-hope { position:absolute; bottom:30%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cxq-figure 7s ease-in-out infinite 0.3s; }
.scn-canto-x-questions-1 .figure-charity { position:absolute; bottom:32%; left:70%; width:40px; height:80px; background: linear-gradient(180deg, #8a4a6a 0%, #6a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cxq-figure 7s ease-in-out infinite 0.6s; }
.scn-canto-x-questions-1 .halo-top { position:absolute; top:5%; left:50%; width:150px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(255,230,150,0.3) 0%, transparent 70%); animation: cxq-halo 10s ease-in-out infinite alternate; }
.scn-canto-x-questions-1 .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
@keyframes cxq-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cxq-halo { 0% { opacity:0.4; transform: translateX(-50%) scaleY(1); } 50% { opacity:0.8; transform: translateX(-50%) scaleY(1.2); } 100% { opacity:0.5; transform: translateX(-50%) scaleY(0.9); } }

.scn-orgoglio-castle { background: linear-gradient(180deg, #1a1020 0%, #2a1830 40%, #3a2040 70%), radial-gradient(ellipse at 30% 60%, #5a2a4a 0%, transparent 70%); }
.scn-orgoglio-castle .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1830 0%, #3a2040 100%); box-shadow: inset 0 10px 40px rgba(0,0,0,.6); }
.scn-orgoglio-castle .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1020 0%, #100810 100%); border-top: 2px solid #4a2a3a; box-shadow: inset 0 20px 30px rgba(0,0,0,.8); }
.scn-orgoglio-castle .throne { position:absolute; bottom:22%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(135deg, #5a3a2a 0%, #3a1a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-orgoglio-castle .duessa { position:absolute; bottom:28%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: si1-float 6s ease-in-out infinite; }
.scn-orgoglio-castle .beast { position:absolute; bottom:18%; left:30%; width:120px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%; transform: scaleX(-1); box-shadow: 0 0 30px 10px rgba(80,20,20,.3); animation: si1-beast 12s ease-in-out infinite; }
.scn-orgoglio-castle .torch { position:absolute; bottom:30%; left:15%; width:8px; height:20px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 -10px 30px 10px #c06630; }
.scn-orgoglio-castle .crown { position:absolute; bottom:42%; left:50%; width:40px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #d0a040 0%, #b08030 60%, #8a6020 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 8px rgba(200,160,60,.5); animation: si1-crown 4s ease-in-out infinite alternate; }
.scn-orgoglio-castle .column-left { position:absolute; bottom:0; left:8%; width:20px; height:80%; background: linear-gradient(180deg, #4a2a3a 0%, #2a1828 100%); border-radius: 4px; box-shadow: inset -4px 0 8px rgba(0,0,0,.4); }
.scn-orgoglio-castle .column-right { position:absolute; bottom:0; right:8%; width:20px; height:80%; background: linear-gradient(180deg, #4a2a3a 0%, #2a1828 100%); border-radius: 4px; box-shadow: inset 4px 0 8px rgba(0,0,0,.4); }
@keyframes si1-float { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 50% { transform: translateX(-50%) translateY(-6px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes si1-beast { 0% { transform: scaleX(-1) translateY(0) rotate(0); } 50% { transform: scaleX(-1) translateY(-4px) rotate(-1deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0); } }
@keyframes si1-crown { 0% { opacity: .7; transform: translateX(-50%) scaleY(1); } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.05); } 100% { opacity: .8; transform: translateX(-50%) scaleY(.95); } }

.scn-dwarf-una-meeting { background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 30%, #6a9ac0 100%), radial-gradient(ellipse at 50% 100%, #8ab4d0 0%, transparent 70%); }
.scn-dwarf-una-meeting .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 100%); animation: dw2-sky 20s ease-in-out infinite alternate; }
.scn-dwarf-una-meeting .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.2); }
.scn-dwarf-una-meeting .dwarf { position:absolute; bottom:22%; left:35%; width:24px; height:48px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dw2-dwarf 4s ease-in-out infinite; }
.scn-dwarf-una-meeting .shield { position:absolute; bottom:28%; left:43%; width:40px; height:44px; background: radial-gradient(circle at 50% 50%, #b0a0a0 0%, #706060 60%, #504040 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: dw2-shield 6s ease-in-out infinite; }
.scn-dwarf-una-meeting .spear { position:absolute; bottom:35%; left:50%; width:4px; height:60px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 30%; transform-origin: bottom center; animation: dw2-spear 3s ease-in-out infinite alternate; }
.scn-dwarf-una-meeting .armour { position:absolute; bottom:20%; left:30%; width:36px; height:30px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
.scn-dwarf-una-meeting .hill { position:absolute; bottom:15%; right:10%; width:120px; height:40px; background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.15); }
@keyframes dw2-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes dw2-dwarf { 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 dw2-shield { 0% { transform: rotate(0) translate(0); } 50% { transform: rotate(8deg) translate(2px, -2px); } 100% { transform: rotate(0) translate(0); } }
@keyframes dw2-spear { 0% { transform: rotate(-3deg); } 50% { transform: rotate(0); } 100% { transform: rotate(3deg); } }

.scn-una-lament { background: linear-gradient(180deg, #b0c8d8 0%, #d0e0f0 30%, #8098b0 100%), radial-gradient(ellipse at 50% 0%, #e0f0ff 0%, transparent 60%); }
.scn-una-lament .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d8e8f8 0%, #a8c0d8 100%); animation: ul3-sky 25s ease-in-out infinite alternate; }
.scn-una-lament .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a8a6a 0%, #4a6a4a 100%); border-radius: 40% 60% 0 0 / 50% 50% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.2); }
.scn-una-lament .una-figure { position:absolute; bottom:28%; left:50%; width:28px; height:56px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40%; animation: ul3-una 5s ease-in-out infinite; }
.scn-una-lament .light-shaft { position:absolute; top:0; left:50%; width:30px; height:40%; transform:translateX(-50%); background: linear-gradient(180deg, rgba(255,255,200,.6) 0%, rgba(255,255,200,0) 100%); filter: blur(6px); animation: ul3-shaft 8s ease-in-out infinite alternate; }
.scn-una-lament .abyss { position:absolute; bottom:20%; left:20%; width:80px; height:80px; background: radial-gradient(circle, #0a0a0a 0%, #1a1a2a 60%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: ul3-abyss 12s ease-in-out infinite; }
.scn-una-lament .tear { position:absolute; bottom:35%; left:48%; width:6px; height:8px; background: radial-gradient(circle, #a0c0e0 0%, #6080a0 80%); border-radius: 50%; filter: blur(1px); animation: ul3-tear 2s ease-in-out infinite; }
.scn-una-lament .stone { position:absolute; bottom:25%; left:55%; width:20px; height:20px; background: linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 20% 40% 20% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
@keyframes ul3-sky { 0% { opacity: .8; background-position: 0% 0%; } 50% { opacity: 1; background-position: 10% 5%; } 100% { opacity: .85; background-position: 0% 0%; } }
@keyframes ul3-una { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 30% { transform: translateX(-50%) translateY(-5px) rotate(3deg); } 60% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes ul3-shaft { 0% { opacity: .3; transform: translateX(-50%) scaleY(.8); } 50% { opacity: .7; transform: translateX(-50%) scaleY(1.2); } 100% { opacity: .4; transform: translateX(-50%) scaleY(.9); } }
@keyframes ul3-abyss { 0% { transform: scale(1); opacity: .6; } 50% { transform: scale(1.05); opacity: .8; } 100% { transform: scale(1); opacity: .6; } }
@keyframes ul3-tear { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 70% { opacity: 1; } 100% { opacity: 0; transform: translateY(30px); } }

.scn-dwarf-recounts { background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 30%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #8a6a3a 0%, transparent 70%); }
.scn-dwarf-recounts .bg-dark { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 100%); box-shadow: inset 0 8px 30px rgba(0,0,0,.6); }
.scn-dwarf-recounts .fire { position:absolute; bottom:25%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6020 30%, #b03010 60%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: dr4-fire 3s ease-in-out infinite alternate; }
.scn-dwarf-recounts .dwarf-teller { position:absolute; bottom:22%; left:30%; width:24px; height:48px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40%; animation: dr4-dwarf 4s ease-in-out infinite; }
.scn-dwarf-recounts .tale-symbol-1 { position:absolute; bottom:40%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #d0a060 0%, #a08040 60%, #806030 100%); border-radius: 20% 60% 20% 60%; box-shadow: 0 0 15px rgba(200,160,80,.3); animation: dr4-sym1 8s ease-in-out infinite; }
.scn-dwarf-recounts .tale-symbol-2 { position:absolute; bottom:42%; right:25%; width:24px; height:36px; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a1a 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-10deg); animation: dr4-sym2 6s ease-in-out infinite alternate; }
.scn-dwarf-recounts .tale-symbol-3 { position:absolute; bottom:38%; left:55%; width:20px; height:20px; background: radial-gradient(circle, #c06040 0%, #804020 80%); border-radius: 50%; box-shadow: 0 0 12px rgba(200,80,40,.4); animation: dr4-sym3 10s ease-in-out infinite; }
.scn-dwarf-recounts .ground-fire { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); box-shadow: inset 0 10px 40px rgba(255,128,32,.15); }
@keyframes dr4-fire { 0% { transform: translateX(-50%) scaleY(1) rotate(0); filter: blur(2px); } 50% { transform: translateX(-50%) scaleY(1.15) rotate(5deg); filter: blur(3px); } 100% { transform: translateX(-50%) scaleY(.9) rotate(-5deg); filter: blur(2px); } }
@keyframes dr4-dwarf { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-4px) rotate(2deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dr4-sym1 { 0% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(8px, -6px) rotate(30deg) scale(1.1); } 100% { transform: translate(0, 0) rotate(0); } }
@keyframes dr4-sym2 { 0% { transform: rotate(-10deg); } 50% { transform: rotate(15deg) translateY(-4px); } 100% { transform: rotate(-10deg); } }
@keyframes dr4-sym3 { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: .6; transform: scale(1); } }

/* run-on-lines-and-feminine-endings */
.scn-run-on-lines-and-feminine-endings {
  background: linear-gradient(180deg, #f9f1e0 0%, #e8dcc8 40%, #dcc8b0 100%), radial-gradient(ellipse at 50% 80%, #f0e4d4 0%, transparent 70%);
}
.scn-run-on-lines-and-feminine-endings .rl-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #fff8ee 0%, #f0e4d4 50%, #e0d0bc 100%);
  opacity: 0.6; animation: rl-glow 8s ease-in-out infinite alternate;
}
.scn-run-on-lines-and-feminine-endings .rl-desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #b8977a 0%, #8a6f55 100%);
  border-radius: 12px 12px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
}
.scn-run-on-lines-and-feminine-endings .rl-book {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 80px;
  transform: translate(-50%, 0);
  background: linear-gradient(135deg, #5e4030 0%, #7a5a45 50%, #4d3224 100%);
  border-radius: 3px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: rl-book 12s ease-in-out infinite;
}
.scn-run-on-lines-and-feminine-endings .rl-hand {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #e8c4a8 0%, #d3a58a 100%);
  border-radius: 20px 20px 10px 10px / 40px 40px 10px 10px;
  transform: rotate(-10deg); transform-origin: bottom;
  animation: rl-write 4s ease-in-out infinite alternate;
}
.scn-run-on-lines-and-feminine-endings .rl-candle {
  position: absolute; bottom: 38%; left: 28%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b895 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 0 6px rgba(0,0,0,0.2);
  animation: rl-flicker 3s ease-in-out infinite;
}
.scn-run-on-lines-and-feminine-endings .rl-glow {
  position: absolute; bottom: 40%; left: 26%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe8a0 0%, #ffd080 40%, transparent 70%);
  border-radius: 50%; animation: rl-glow 2s ease-in-out infinite alternate;
}
.scn-run-on-lines-and-feminine-endings .rl-word1,
.scn-run-on-lines-and-feminine-endings .rl-word2 {
  position: absolute; bottom: 45%; height: 6px; border-radius: 3px;
  background: linear-gradient(90deg, transparent 0%, #6a5a4a 30%, #c8b090 70%, transparent 100%);
  filter: blur(1px); opacity: 0.3;
}
.scn-run-on-lines-and-feminine-endings .rl-word1 {
  left: 42%; width: 80px; animation: rl-flow 9s ease-in-out infinite;
}
.scn-run-on-lines-and-feminine-endings .rl-word2 {
  left: 50%; width: 60px; animation: rl-flow 7s ease-in-out infinite 2s;
}
@keyframes rl-glow { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes rl-book { 0% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, -2px); } 100% { transform: translate(-50%, 0); } }
@keyframes rl-write { 0% { transform: rotate(-12deg) translateX(0); } 100% { transform: rotate(-8deg) translateX(8px); } }
@keyframes rl-flicker { 0%,100% { transform: scaleY(1); opacity: 0.9; } 25% { transform: scaleY(1.02); opacity: 1; } 75% { transform: scaleY(0.98); opacity: 0.85; } }
@keyframes rl-flow { 0% { transform: translateX(0); opacity: 0.2; } 50% { transform: translateX(10px); opacity: 0.4; } 100% { transform: translateX(0); opacity: 0.2; } }

/* alliteration-in-spenser */
.scn-alliteration-in-spenser {
  background: linear-gradient(180deg, #ede3d0 0%, #d9cdb8 40%, #c4b69e 100%), radial-gradient(ellipse at 50% 40%, #f2e8d8 0%, transparent 60%);
}
.scn-alliteration-in-spenser .as-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #f7efe0 0%, #e8dcc8 60%, #d4c4ac 100%);
  opacity: 0.7; animation: as-ambient 10s ease-in-out infinite alternate;
}
.scn-alliteration-in-spenser .as-shelf {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 12px;
  background: linear-gradient(180deg, #a08060 0%, #7a6048 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-alliteration-in-spenser .as-book1,
.scn-alliteration-in-spenser .as-book2,
.scn-alliteration-in-spenser .as-book3 {
  position: absolute; top: 20%; width: 30px; height: 55px;
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-alliteration-in-spenser .as-book1 { left: 25%; background: linear-gradient(180deg, #7a3e35 0%, #552a22 100%); animation: as-shift 8s ease-in-out infinite; }
.scn-alliteration-in-spenser .as-book2 { left: 45%; background: linear-gradient(180deg, #3a5a3a 0%, #1e3a1e 100%); animation: as-shift 10s ease-in-out infinite 1s; }
.scn-alliteration-in-spenser .as-book3 { left: 65%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); animation: as-shift 12s ease-in-out infinite 2s; }
.scn-alliteration-in-spenser .as-fleur1,
.scn-alliteration-in-spenser .as-fleur2,
.scn-alliteration-in-spenser .as-fleur3 {
  position: absolute; bottom: 20%; width: 18px; height: 18px;
  border-radius: 50% 0 50% 0; 
  background: radial-gradient(circle, #c8a88a 0%, #a07a5a 100%);
  opacity: 0.5;
}
.scn-alliteration-in-spenser .as-fleur1 { left: 30%; animation: as-float 6s ease-in-out infinite; }
.scn-alliteration-in-spenser .as-fleur2 { left: 50%; animation: as-float 7s ease-in-out infinite 1.5s; }
.scn-alliteration-in-spenser .as-fleur3 { left: 70%; animation: as-float 5s ease-in-out infinite 3s; }
@keyframes as-ambient { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.65; } }
@keyframes as-shift { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes as-float { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-8px) rotate(10deg); } }

/* versification-description */
.scn-versification-description {
  background: linear-gradient(180deg, #cce0d8 0%, #a8c4b8 40%, #7ea89a 100%), radial-gradient(ellipse at 50% 30%, #d0e8e0 0%, transparent 60%);
}
.scn-versification-description .vd-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #daeae2 0%, #c0d8ce 60%, #a0c0b0 100%);
  opacity: 0.8; animation: vd-breathe 12s ease-in-out infinite alternate;
}
.scn-versification-description .vd-water1,
.scn-versification-description .vd-water2 {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  background: linear-gradient(180deg, #6a9a8a 0%, #4a7a6a 100%);
  animation: vd-wave 8s ease-in-out infinite;
}
.scn-versification-description .vd-water2 {
  bottom: 5%; height: 45%;
  background: linear-gradient(180deg, #7aa89a 0%, #5a8a7a 100%);
  border-radius: 60% 40% 0 0 / 70% 80% 0 0;
  animation: vd-wave 10s ease-in-out infinite reverse;
  opacity: 0.6;
}
.scn-versification-description .vd-bank {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 0 0 30% 70% / 0 0 40% 60%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
}
.scn-versification-description .vd-tree {
  position: absolute; bottom: 40%; left: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%);
  border-radius: 10px 10px 5px 5px; box-shadow: 0 8px 8px rgba(0,0,0,0.2);
  animation: vd-sway 6s ease-in-out infinite;
}
.scn-versification-description .vd-figure {
  position: absolute; bottom: 42%; left: 60%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vd-walk 4s ease-in-out infinite alternate;
}
.scn-versification-description .vd-ripple1,
.scn-versification-description .vd-ripple2 {
  position: absolute; bottom: 18%; left: 30%; width: 50px; height: 10px;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 50%; background: transparent;
  animation: vd-ripple 6s ease-out infinite;
}
.scn-versification-description .vd-ripple2 {
  left: 60%; width: 40px; height: 8px;
  animation: vd-ripple 7s ease-out infinite 2s;
}
@keyframes vd-breathe { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes vd-wave { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes vd-sway { 0%,100% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } }
@keyframes vd-walk { 0% { transform: translateX(0); } 100% { transform: translateX(8px); } }
@keyframes vd-ripple { 0% { transform: scale(0.2); opacity: 0.6; } 100% { transform: scale(2); opacity: 0; } }

/* diction-and-style */
.scn-diction-and-style {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0cdb0 40%, #cbb498 100%), radial-gradient(ellipse at 50% 60%, #f0dcc0 0%, transparent 60%);
}
.scn-diction-and-style .ds-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #fff0d8 0%, #f0dec4 60%, #dcc8aa 100%);
  opacity: 0.7; animation: ds-amber 12s ease-in-out infinite alternate;
}
.scn-diction-and-style .ds-shelf {
  position: absolute; top: 15%; left: 5%; right: 5%; height: 14px;
  background: linear-gradient(180deg, #8a7058 0%, #6a553a 100%);
  border-radius: 6px; box-shadow: 0 3px 8px rgba(0,0,0,0.2);
}
.scn-diction-and-style .ds-globe {
  position: absolute; top: 25%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle at 35% 35%, #6a8a6a 0%, #3a5a3a 50%, #2a3a2a 100%);
  border-radius: 50%; box-shadow: inset -4px -4px 12px rgba(0,0,0,0.4), 0 4px 8px rgba(0,0,0,0.2);
  animation: ds-spin 20s linear infinite;
}
.scn-diction-and-style .ds-book1,
.scn-diction-and-style .ds-book2 {
  position: absolute; top: 20%; width: 28px; height: 50px;
  border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.25);
}
.scn-diction-and-style .ds-book1 { left: 45%; background: linear-gradient(180deg, #6a3020 0%, #4a2010 100%); animation: ds-rock 5s ease-in-out infinite; }
.scn-diction-and-style .ds-book2 { left: 65%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: ds-rock 6s ease-in-out infinite 1s; }
.scn-diction-and-style .ds-candle {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 45px;
  background: linear-gradient(180deg, #f0dcc0 0%, #d4b890 100%);
  border-radius: 4px 4px 2px 2px; transform: translateX(-50%);
  animation: ds-tilt 4s ease-in-out infinite;
}
.scn-diction-and-style .ds-sparkle {
  position: absolute; bottom: 40%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffe080 0%, transparent 60%);
  border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,224,128,0.6);
  animation: ds-pulse 2s ease-in-out infinite;
}
.scn-diction-and-style .ds-shadow {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: ds-shadow 8s ease-in-out infinite alternate;
}
@keyframes ds-amber { 0% { opacity: 0.65; } 50% { opacity: 0.85; } 100% { opacity: 0.7; } }
@keyframes ds-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ds-rock { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes ds-tilt { 0%,100% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } }
@keyframes ds-pulse { 0%,100% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.3); opacity: 1; } }
@keyframes ds-shadow { 0%,100% { transform: scaleX(0.8); opacity: 0.5; } 50% { transform: scaleX(1); opacity: 0.7; } }

.scn-didactic-purpose {
  background: 
    linear-gradient(135deg, #f5e6c8 0%, #d6c49a 50%, #b8a07a 100%),
    radial-gradient(ellipse at 20% 30%, #f0d8a0 0%, transparent 60%);
}
.scn-didactic-purpose .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(to bottom, #e8dcc8 0%, #d6c49a 100%); }
.scn-didactic-purpose .window { position: absolute; top: 8%; left: 55%; width: 26%; height: 40%; background: linear-gradient(180deg, #b0d4f0 0%, #87b8e0 100%); border: 4px solid #6a5a4a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,200,0.3), 0 0 40px rgba(200,200,150,0.2); animation: dp-window 12s ease-in-out infinite alternate; }
.scn-didactic-purpose .shelf { position: absolute; top: 22%; left: 5%; right: 55%; height: 8%; background: linear-gradient(180deg, #8a7660 0%, #6a5a4a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-didactic-purpose .books { position: absolute; top: 8%; left: 6%; right: 56%; height: 14%; background: repeating-linear-gradient(90deg, #a04030 0px 10px, #705030 10px 20px, #908060 20px 30px, #505040 30px 40px); border-radius: 2px 2px 0 0; animation: dp-books 20s linear infinite; }
.scn-didactic-purpose .desk { position: absolute; bottom: 18%; left: 5%; right: 50%; height: 18%; 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); }
.scn-didactic-purpose .lamp { position: absolute; bottom: 33%; left: 15%; width: 8%; height: 12%; background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 -10px 30px rgba(255,200,100,0.4); animation: dp-lamp-glow 4s ease-in-out infinite alternate; }
.scn-didactic-purpose .chair { position: absolute; bottom: 12%; left: 28%; width: 20%; height: 30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 0 0 / 80% 80% 0 0; }
.scn-didactic-purpose .figure-seated { position: absolute; bottom: 14%; left: 30%; width: 14%; height: 26%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; animation: dp-figure 8s ease-in-out infinite; }
.scn-didactic-purpose .paper { position: absolute; bottom: 22%; left: 16%; width: 10%; height: 8%; background: #f5f0e0; transform: rotate(-5deg); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.15); animation: dp-paper 10s ease-in-out infinite alternate; }

@keyframes dp-window { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dp-books { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes dp-lamp-glow { 0% { box-shadow: 0 -5px 20px rgba(255,200,100,0.3); } 50% { box-shadow: 0 -10px 40px rgba(255,200,100,0.5); } 100% { box-shadow: 0 -6px 25px rgba(255,200,100,0.35); } }
@keyframes dp-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dp-paper { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(0); } }

.scn-allegory-threefold {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 30%, #14141e 100%),
    radial-gradient(ellipse at 50% 70%, #3a3a4e 0%, transparent 60%);
}
.scn-allegory-threefold .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); }
.scn-allegory-threefold .wall-back { position: absolute; inset: 0 0 25% 0; background: radial-gradient(ellipse at 50% 40%, #4a4a5e 0%, #2a2a3e 100%); }
.scn-allegory-threefold .pillar-left { position: absolute; bottom: 0; left: 10%; width: 6%; height: 75%; background: linear-gradient(90deg, #5a5a6e 0%, #3a3a4a 50%, #5a5a6e 100%); border-radius: 8% 8% 0 0; }
.scn-allegory-threefold .pillar-center { position: absolute; bottom: 0; left: 47%; width: 6%; height: 85%; background: linear-gradient(90deg, #6a6a7e 0%, #4a4a5a 50%, #6a6a7e 100%); border-radius: 8% 8% 0 0; box-shadow: 0 0 20px rgba(200,200,255,0.1); }
.scn-allegory-threefold .pillar-right { position: absolute; bottom: 0; right: 10%; width: 6%; height: 75%; background: linear-gradient(90deg, #5a5a6e 0%, #3a3a4a 50%, #5a5a6e 100%); border-radius: 8% 8% 0 0; }
.scn-allegory-threefold .mirror { position: absolute; top: 12%; left: 38%; width: 24%; height: 45%; background: linear-gradient(180deg, #8a8aaa 0%, #4a4a5a 100%); border: 6px solid #6a6a7a; border-radius: 10%; box-shadow: inset 0 0 30px rgba(255,255,255,0.1), 0 0 40px rgba(200,200,255,0.05); animation: at-mirror 15s ease-in-out infinite alternate; }
.scn-allegory-threefold .figure { position: absolute; bottom: 22%; left: 44%; width: 12%; height: 40%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: at-figure 10s ease-in-out infinite; }
.scn-allegory-threefold .glow { position: absolute; top: 8%; left: 35%; width: 30%; height: 50%; background: radial-gradient(ellipse, rgba(200,200,255,0.15) 0%, transparent 70%); animation: at-glow 12s ease-in-out infinite alternate; }

@keyframes at-mirror { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes at-figure { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-3px) rotate(1deg); } 60% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes at-glow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(0.95); } }

.scn-moral-allegory {
  background:
    linear-gradient(180deg, #1c1824 0%, #2c2434 40%, #14101c 100%),
    radial-gradient(ellipse at 50% 80%, #3c2c44 0%, transparent 60%);
}
.scn-moral-allegory .bg-chamber { position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, #2c2434 0%, #1c1824 100%); }
.scn-moral-allegory .knight-armor { position: absolute; bottom: 10%; left: 50%; width: 16%; height: 45%; transform: translateX(-50%); background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 40%, #2a2a3a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 0 20px rgba(255,255,255,0.1), 0 8px 20px rgba(0,0,0,0.5); animation: ma-knight 12s ease-in-out infinite alternate; }
.scn-moral-allegory .shield { position: absolute; bottom: 28%; left: 42%; width: 10%; height: 18%; background: linear-gradient(135deg, #5a5a6e 0%, #3a3a4a 50%, #2a2a3a 100%); border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%; border: 2px solid #7a7a8a; transform: rotate(-10deg); animation: ma-shield 8s ease-in-out infinite; }
.scn-moral-allegory .sword { position: absolute; bottom: 12%; left: 60%; width: 4%; height: 30%; background: linear-gradient(180deg, #d0d0e0 0%, #808090 100%); border-radius: 2px 2px 40% 40%; transform: rotate(15deg); transform-origin: bottom; animation: ma-sword 6s ease-in-out infinite alternate; }
.scn-moral-allegory .shadow-vice { position: absolute; bottom: 8%; left: 72%; width: 14%; height: 35%; background: linear-gradient(180deg, #0a0a14 0%, #1a1a24 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; opacity: 0.5; animation: ma-shadow 14s ease-in-out infinite; }
.scn-moral-allegory .torch { position: absolute; bottom: 35%; left: 25%; width: 4%; height: 16%; background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%); border-radius: 2px 2px 20% 20%; }
.scn-moral-allegory .torch::after { content: ''; position: absolute; top: -30%; left: -50%; width: 200%; height: 60%; background: radial-gradient(ellipse, #ffb040 0%, #ff8020 40%, transparent 70%); border-radius: 50%; animation: ma-torch-glow 3s ease-in-out infinite alternate; }
.scn-moral-allegory .sparkles { position: absolute; top: 10%; left: 20%; width: 60%; height: 30%; background: radial-gradient(circle at 30% 40%, #ffd090 0%, transparent 5%), radial-gradient(circle at 70% 60%, #ffc080 0%, transparent 6%), radial-gradient(circle at 50% 20%, #ffb060 0%, transparent 4%); opacity: 0.3; animation: ma-sparkles 5s ease-in-out infinite; }

@keyframes ma-knight { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px) skewX(1deg); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ma-shield { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes ma-sword { 0% { transform: rotate(15deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(15deg); } }
@keyframes ma-shadow { 0% { opacity: 0.4; transform: translateY(0); } 50% { opacity: 0.7; transform: translateY(-2px); } 100% { opacity: 0.4; transform: translateY(0); } }
@keyframes ma-torch-glow { 0% { opacity: 0.7; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }
@keyframes ma-sparkles { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-religious-allegory {
  background:
    linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 30%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 50%, #3a3a4e 0%, transparent 70%);
}
.scn-religious-allegory .apse { position: absolute; top: 0; left: 20%; right: 20%; height: 70%; background: radial-gradient(ellipse at 50% 30%, #4a4a5e 0%, #2a2a3e 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; }
.scn-religious-allegory .altar { position: absolute; bottom: 25%; left: 35%; right: 35%; height: 15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-religious-allegory .cross { position: absolute; bottom: 40%; left: 49%; width: 2%; height: 28%; background: #6a5a4a; transform: translateX(-50%); }
.scn-religious-allegory .cross::after { content: ''; position: absolute; top: 10%; left: -80%; width: 260%; height: 20%; background: #6a5a4a; }
.scn-religious-allegory .stained-glass { position: absolute; top: 10%; left: 25%; width: 50%; height: 35%; background: linear-gradient(135deg, #4a6a8a 0%, #6a8a6a 30%, #8a6a4a 60%, #4a4a8a 100%); border: 6px solid #4a3a2a; border-radius: 4px; opacity: 0.7; animation: ra-glass 15s ease-in-out infinite alternate; }
.scn-religious-allegory .candle-left { position: absolute; bottom: 30%; left: 30%; width: 2%; height: 14%; background: linear-gradient(180deg, #d0c0a0 0%, #a09080 100%); border-radius: 2px 2px 10% 10%; }
.scn-religious-allegory .candle-left::after { content: ''; position: absolute; top: -15%; left: -50%; width: 200%; height: 25%; background: radial-gradient(ellipse, #ffd080 0%, transparent 70%); animation: ra-candle-glow 4s ease-in-out infinite alternate; }
.scn-religious-allegory .candle-right { position: absolute; bottom: 30%; right: 30%; width: 2%; height: 14%; background: linear-gradient(180deg, #d0c0a0 0%, #a09080 100%); border-radius: 2px 2px 10% 10%; animation-delay: 2s; }
.scn-religious-allegory .candle-right::after { content: ''; position: absolute; top: -15%; left: -50%; width: 200%; height: 25%; background: radial-gradient(ellipse, #ffd080 0%, transparent 70%); animation: ra-candle-glow 4s ease-in-out infinite alternate-reverse; }
.scn-religious-allegory .figure-knight { position: absolute; bottom: 10%; left: 30%; width: 12%; height: 40%; background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: scaleX(-1); animation: ra-figure 12s ease-in-out infinite; }
.scn-religious-allegory .figure-una { position: absolute; bottom: 12%; right: 28%; width: 10%; height: 36%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; animation: ra-figure 14s ease-in-out infinite reverse; }

@keyframes ra-glass { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes ra-candle-glow { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.3); } }
@keyframes ra-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-false-lady-made {
  background:
    linear-gradient(180deg, #0d0d1a 0%, #1a1428 40%, #2a1a36 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a4a 0%, transparent 70%);
}
.scn-false-lady-made .bg { position:absolute; inset:0; background: radial-gradient(circle at 50% 35%, rgba(90,60,100,0.3) 0%, transparent 60%); animation: flm-breathe 8s ease-in-out infinite; }
.scn-false-lady-made .vapour { position:absolute; left:50%; top:30%; width:200px; height:200px; margin:-100px 0 0 -100px; border-radius:50%; background: radial-gradient(circle, rgba(200,180,220,0.15) 0%, transparent 70%); filter: blur(20px); animation: flm-vapour 12s ease-in-out infinite; }
.scn-false-lady-made .vapour-1 { animation-delay: 0s; }
.scn-false-lady-made .vapour-2 { width:160px; height:160px; margin:-80px 0 0 -80px; animation-delay: -4s; }
.scn-false-lady-made .figure {
  position:absolute; left:50%; bottom:35%; width:40px; height:80px; transform:translateX(-50%);
  background: linear-gradient(180deg, #e0e0f0 0%, #c0b8d0 40%, #a098b0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: flm-figure 10s ease-in-out infinite;
}
.scn-false-lady-made .stole {
  position:absolute; left:50%; top:0; width:60px; height:100px; transform:translateX(-50%) rotate(-5deg);
  background: linear-gradient(180deg, transparent 0%, #1a1a2e 30%, #0d0d1a 100%);
  clip-path: polygon(10% 10%, 90% 10%, 70% 60%, 50% 80%, 30% 60%);
  animation: flm-stole 6s ease-in-out infinite alternate;
}
.scn-false-lady-made .glow {
  position:absolute; left:50%; bottom:42%; width:20px; height:20px; transform:translateX(-50%);
  background: radial-gradient(circle, #c8a8e0 0%, transparent 70%);
  border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,168,224,0.4);
  animation: flm-glow 4s ease-in-out infinite alternate;
}
.scn-false-lady-made .sparkle {
  position:absolute; left:50%; bottom:60%; width:4px; height:4px; margin-left:-2px;
  background:#e0c0f0; border-radius:50%; box-shadow: 0 0 8px 2px rgba(224,192,240,0.8);
  animation: flm-sparkle 5s ease-in-out infinite;
}
@keyframes flm-breathe { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes flm-vapour { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.2) rotate(10deg) } 100% { transform: scale(0.9) rotate(-5deg) } }
@keyframes flm-figure { 0% { transform: translateX(-50%) translateY(0) } 25% { transform: translateX(-50%) translateY(-4px) rotate(2deg) } 75% { transform: translateX(-50%) translateY(2px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes flm-stole { 0% { transform: translateX(-50%) rotate(-8deg) } 50% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(8deg) } }
@keyframes flm-glow { 0% { opacity:0.6; box-shadow:0 0 20px 5px rgba(200,168,224,0.3) } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(200,168,224,0.6) } 100% { opacity:0.8; box-shadow:0 0 25px 8px rgba(200,168,224,0.4) } }
@keyframes flm-sparkle { 0% { opacity:0; transform: translateY(0) scale(0.5) } 20% { opacity:1; transform: translateY(-10px) scale(1) } 80% { opacity:1; transform: translateY(-20px) scale(0.8) } 100% { opacity:0; transform: translateY(-30px) scale(0.2) } }

.scn-dreame-and-false-una {
  background:
    linear-gradient(180deg, #0a0a14 0%, #14142a 30%, #1a1a30 60%, #0d0d1a 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a44 0%, transparent 70%);
}
.scn-dreame-and-false-una .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a28 0%, #0a0a12 100%); border-radius:30% 30% 0 0 / 20% 20% 0 0; animation: dafu-floor 15s ease-in-out infinite; }
.scn-dreame-and-false-una .knight { position:absolute; bottom:20%; left:35%; width:60px; height:90px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a18 100%); border-radius: 60% 60% 40% 40% / 80% 80% 30% 30%; transform: rotate(-10deg); animation: dafu-knight 8s ease-in-out infinite; }
.scn-dreame-and-false-una .false-una { position:absolute; bottom:45%; left:50%; width:50px; height:100px; background: linear-gradient(180deg, #d0c8e0 0%, #a098b8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%) rotate(15deg); animation: dafu-una 12s ease-in-out infinite; }
.scn-dreame-and-false-una .dream-wisp { position:absolute; left:50%; bottom:60%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,180,220,0.5) 0%, transparent 70%); border-radius:50%; filter:blur(8px); }
.scn-dreame-and-false-una .wisp-1 { animation: dafu-wisp 14s ease-in-out infinite; }
.scn-dreame-and-false-una .wisp-2 { width:20px; height:20px; animation: dafu-wisp 18s ease-in-out infinite 2s; }
.scn-dreame-and-false-una .halo { position:absolute; left:50%; top:20%; width:40px; height:40px; margin:-20px 0 0 -20px; background: radial-gradient(circle, rgba(180,160,200,0.3) 0%, transparent 70%); border-radius:50%; animation: dafu-halo 9s ease-in-out infinite; }
.scn-dreame-and-false-una .shadow { position:absolute; left:45%; bottom:10%; width:70px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%); border-radius:50%; animation: dafu-shadow 12s ease-in-out infinite; }
@keyframes dafu-floor { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dafu-knight { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } 100% { transform: rotate(-10deg) translateY(2px) } }
@keyframes dafu-una { 0% { transform: translateX(-50%) rotate(15deg) scale(1) } 30% { transform: translateX(-45%) rotate(20deg) scale(1.05) } 70% { transform: translateX(-55%) rotate(10deg) scale(0.95) } 100% { transform: translateX(-50%) rotate(15deg) scale(1) } }
@keyframes dafu-wisp { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-20px) rotate(30deg) } 100% { transform: translateY(0) rotate(60deg) } }
@keyframes dafu-halo { 0% { opacity:0.3; transform:scale(1) } 50% { opacity:0.6; transform:scale(1.2) } 100% { opacity:0.4; transform:scale(0.9) } }
@keyframes dafu-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.8) } 100% { transform: scaleX(1.1) } }

.scn-dream-of-false-bridal {
  background:
    linear-gradient(180deg, #0a0a14 0%, #141428 30%, #1a1a30 60%, #0d0d1a 100%),
    radial-gradient(circle at 50% 50%, #2a1a30 0%, transparent 60%);
}
.scn-dream-of-false-bridal .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, rgba(60,40,80,0.4) 0%, transparent 70%); animation: dfb-deep 20s ease-in-out infinite; }
.scn-dream-of-false-bridal .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1424 0%, #0a0612 100%); border-radius:40% 40% 0 0 / 30% 30% 0 0; }
.scn-dream-of-false-bridal .queen {
  position:absolute; left:50%; bottom:25%; width:50px; height:110px; transform:translateX(-50%);
  background: linear-gradient(180deg, #d8d0e8 0%, #b0a8c8 50%, #8078a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dfb-queen 12s ease-in-out infinite;
}
.scn-dream-of-false-bridal .dancer { position:absolute; bottom:15%; width:30px; height:60px; background: linear-gradient(180deg, #605070 0%, #302040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-dream-of-false-bridal .dancer-1 { left:20%; animation: dfb-dance1 6s ease-in-out infinite; }
.scn-dream-of-false-bridal .dancer-2 { left:35%; animation: dfb-dance2 7s ease-in-out infinite; }
.scn-dream-of-false-bridal .dancer-3 { left:60%; animation: dfb-dance1 8s ease-in-out infinite 1s; }
.scn-dream-of-false-bridal .dancer-4 { left:75%; animation: dfb-dance2 6.5s ease-in-out infinite 0.5s; }
.scn-dream-of-false-bridal .torch { position:absolute; left:50%; bottom:45%; width:8px; height:12px; margin-left:-4px; background: linear-gradient(180deg, #ffa050 0%, #ff6020 50%, transparent 100%); border-radius:50% 50% 20% 20%; animation: dfb-torch 3s ease-in-out infinite alternate; box-shadow: 0 0 20px 5px rgba(255,160,80,0.6); }
@keyframes dfb-deep { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes dfb-queen { 0% { transform: translateX(-50%) scale(1) rotate(0deg) } 33% { transform: translateX(-50%) scale(1.02) rotate(3deg) } 66% { transform: translateX(-50%) scale(0.98) rotate(-2deg) } 100% { transform: translateX(-50%) scale(1) rotate(0) } }
@keyframes dfb-dance1 { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-10px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes dfb-dance2 { 0% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-8px) rotate(-5deg) } 100% { transform: translateY(0) rotate(5deg) } }
@keyframes dfb-torch { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.2) } 100% { opacity:0.7; transform: scaleY(0.9) } }

.scn-knight-wakes-in-jealousy {
  background:
    linear-gradient(180deg, #0a0a12 0%, #1a1422 40%, #12101a 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a30 0%, transparent 70%);
}
.scn-knight-wakes-in-jealousy .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,15,30,0.5) 0%, transparent 60%); animation: kwj-wall 15s ease-in-out infinite; }
.scn-knight-wakes-in-jealousy .knight { position:absolute; left:30%; bottom:15%; width:55px; height:85px; background: linear-gradient(180deg, #18182a 0%, #0a0a18 100%); border-radius: 60% 60% 40% 40% / 80% 80% 30% 30%; transform: rotate(5deg); animation: kwj-knight 7s ease-in-out infinite; }
.scn-knight-wakes-in-jealousy .lady { position:absolute; left:55%; bottom:35%; width:45px; height:100px; background: linear-gradient(180deg, #d8d0e0 0%, #a098b0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%) rotate(-10deg); animation: kwj-lady 10s ease-in-out infinite; }
.scn-knight-wakes-in-jealousy .stole { position:absolute; left:55%; top:20%; width:55px; height:70px; transform:translateX(-50%) rotate(15deg); background: linear-gradient(180deg, transparent 10%, #0d0d1a 40%, #1a1a2a 100%); clip-path: polygon(10% 0, 90% 0, 70% 50%, 50% 80%, 30% 50%); animation: kwj-stole 8s ease-in-out infinite alternate; }
.scn-knight-wakes-in-jealousy .hook { position:absolute; left:58%; bottom:50%; width:12px; height:20px; background: radial-gradient(circle at 50% 100%, #806050 0%, #706050 100%); border-radius: 50% 50% 0 0; transform: rotate(-20deg); animation: kwj-hook 5s ease-in-out infinite; }
.scn-knight-wakes-in-jealousy .shadow-hand { position:absolute; left:40%; bottom:30%; width:30px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: kwj-hand 6s ease-in-out infinite; }
.scn-knight-wakes-in-jealousy .flicker { position:absolute; left:60%; bottom:50%; width:4px; height:4px; background:#e0c080; border-radius:50%; box-shadow: 0 0 12px 4px rgba(224,192,128,0.5); animation: kwj-spark 1.5s steps(2) infinite; }
@keyframes kwj-wall { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes kwj-knight { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-4px) } 100% { transform: rotate(5deg) translateY(2px) } }
@keyframes kwj-lady { 0% { transform: translateX(-50%) rotate(-10deg) scale(1) } 30% { transform: translateX(-48%) rotate(-8deg) scale(1.03) } 70% { transform: translateX(-52%) rotate(-12deg) scale(0.97) } 100% { transform: translateX(-50%) rotate(-10deg) scale(1) } }
@keyframes kwj-stole { 0% { transform: translateX(-50%) rotate(10deg) } 50% { transform: translateX(-50%) rotate(20deg) } 100% { transform: translateX(-50%) rotate(5deg) } }
@keyframes kwj-hook { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-3px) } 100% { transform: rotate(-25deg) translateY(1px) } }
@keyframes kwj-hand { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes kwj-spark { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.5 } }

/* scene: dwarf-and-others (dim interior, calm) */
.scn-dwarf-and-others {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 30%, #1a120e 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 70%);
}
.scn-dwarf-and-others .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3020 0%, transparent 100%);
  animation: do-room 12s ease-in-out infinite alternate;
}
.scn-dwarf-and-others .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120e 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
}
.scn-dwarf-and-others .table {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(90deg, #5a3a2a 0%, #4a2e1e 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: do-table 9s ease-in-out infinite;
}
.scn-dwarf-and-others .candle {
  position: absolute; bottom: 27%; left: 48%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd680 0%, #b08040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 6px #ffc060, 0 0 32px 14px rgba(255,192,96,0.5);
  animation: do-candle 3s ease-in-out infinite alternate;
}
.scn-dwarf-and-others .dwarf-fig {
  position: absolute; bottom: 16%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2e22 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: do-dwarf 4s ease-in-out infinite;
}
.scn-dwarf-and-others .other-fig {
  position: absolute; bottom: 16%; right: 36%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1414 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: do-other 5s ease-in-out infinite alternate;
}
.scn-dwarf-and-others .glow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: do-glow 6s ease-in-out infinite alternate;
}
@keyframes do-room { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes do-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes do-candle { 0% { box-shadow: 0 0 12px 4px #ffc060, 0 0 24px 8px rgba(255,192,96,0.4); opacity: 0.9 } 50% { box-shadow: 0 0 20px 8px #ffd680, 0 0 40px 16px rgba(255,214,128,0.6); opacity: 1 } 100% { box-shadow: 0 0 14px 5px #ffc060, 0 0 28px 10px rgba(255,192,96,0.45); opacity: 0.95 } }
@keyframes do-dwarf { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes do-other { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes do-glow { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.4 } }

/* scene: spenserian-stanza-description (bright interior, calm) */
.scn-spenserian-stanza-description {
  background: linear-gradient(180deg, #f5f0e8 0%, #e8dfd0 100%),
              radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 60%);
}
.scn-spenserian-stanza-description .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8dfd0 0%, transparent 100%);
  animation: ss-wall 15s ease-in-out infinite alternate;
}
.scn-spenserian-stanza-description .window {
  position: absolute; top: 8%; left: 15%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #d0e0f0 0%, #b0c8e0 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.4), 0 6px 12px rgba(0,0,0,0.1);
  animation: ss-window 8s ease-in-out infinite alternate;
}
.scn-spenserian-stanza-description .desk {
  position: absolute; bottom: 12%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(90deg, #b8a080 0%, #a08868 100%);
  border-radius: 2% 2% 1% 1%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ss-desk 10s ease-in-out infinite;
}
.scn-spenserian-stanza-description .chair {
  position: absolute; bottom: 12%; left: 42%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ss-chair 6s ease-in-out infinite alternate;
}
.scn-spenserian-stanza-description .books {
  position: absolute; bottom: 20%; left: 28%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #c05050 0%, #903838 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.scn-spenserian-stanza-description .scroll {
  position: absolute; bottom: 20%; left: 58%; width: 14%; height: 12%;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  transform-origin: center bottom;
  animation: ss-scroll 12s ease-in-out infinite;
}
.scn-spenserian-stanza-description .pen {
  position: absolute; bottom: 12%; left: 54%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: ss-pen 4s ease-in-out infinite alternate;
}
@keyframes ss-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes ss-window { 0% { opacity: 0.7; box-shadow: inset 0 0 10px rgba(255,255,255,0.3), 0 6px 12px rgba(0,0,0,0.1) } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,255,0.6), 0 6px 12px rgba(0,0,0,0.1) } 100% { opacity: 0.8; box-shadow: inset 0 0 15px rgba(255,255,255,0.4), 0 6px 12px rgba(0,0,0,0.1) } }
@keyframes ss-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ss-chair { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ss-scroll { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes ss-pen { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(-35deg) } }

/* scene: scanning-and-pronunciation (bright interior, calm) */
.scn-scanning-and-pronunciation {
  background: linear-gradient(180deg, #f8f4ec 0%, #ece4d8 100%),
              radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 50%);
}
.scn-scanning-and-pronunciation .bg-light {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e8dc 0%, transparent 100%);
  animation: sp-bg 14s ease-in-out infinite alternate;
}
.scn-scanning-and-pronunciation .podium {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #c0a880 0%, #a08868 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: sp-podium 8s ease-in-out infinite;
}
.scn-scanning-and-pronunciation .book {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #d0c0a8 0%, #b8a890 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform-origin: center bottom;
  animation: sp-book 10s ease-in-out infinite alternate;
}
.scn-scanning-and-pronunciation .hand-left {
  position: absolute; bottom: 16%; left: 32%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: sp-hand-l 4s ease-in-out infinite;
}
.scn-scanning-and-pronunciation .hand-right {
  position: absolute; bottom: 16%; right: 34%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: sp-hand-r 4.5s ease-in-out infinite alternate;
}
.scn-scanning-and-pronunciation .rays {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: sp-rays 20s ease-in-out infinite alternate;
}
@keyframes sp-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes sp-podium { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sp-book { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sp-hand-l { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(18deg) translateY(0) } }
@keyframes sp-hand-r { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-18deg) translateY(-2px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes sp-rays { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }

/* scene: caesural-pause-examples (bright interior, calm) */
.scn-caesural-pause-examples {
  background: linear-gradient(180deg, #f5f0e8 0%, #e0d8cc 100%),
              radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 60%);
}
.scn-caesural-pause-examples .bg-paper {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e8dc 0%, transparent 100%);
  animation: cp-bg 16s ease-in-out infinite alternate;
}
.scn-caesural-pause-examples .page {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 70%;
  background: linear-gradient(180deg, #f8f0e4 0%, #e8dcc8 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.15), inset 0 0 40px rgba(0,0,0,0.05);
  transform-origin: center bottom;
  animation: cp-page 12s ease-in-out infinite;
}
.scn-caesural-pause-examples .magnifier {
  position: absolute; top: 20%; left: 40%; width: 15%; height: 20%;
  background: radial-gradient(circle at 50% 50%, #d0e0f0 0%, #a0b8d0 60%, transparent 70%);
  border: 3px solid #8a705a;
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform-origin: center center;
  animation: cp-mag 6s ease-in-out infinite alternate;
}
.scn-caesural-pause-examples .hand {
  position: absolute; bottom: 12%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: cp-hand 4.5s ease-in-out infinite;
}
.scn-caesural-pause-examples .mark {
  position: absolute; top: 35%; left: 35%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-5deg);
  opacity: 0.6;
  animation: cp-mark 3s ease-in-out infinite alternate;
}
.scn-caesural-pause-examples .mark.delay {
  left: 48%; top: 45%;
  width: 4px; height: 30px;
  transform: rotate(8deg);
  animation-delay: -1.5s;
}
@keyframes cp-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes cp-page { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes cp-mag { 0% { transform: translateX(0) translateY(0) scale(1) } 50% { transform: translateX(5px) translateY(-3px) scale(1.02) } 100% { transform: translateX(-3px) translateY(2px) scale(0.98) } }
@keyframes cp-hand { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(12deg) translateY(1px) } }
@keyframes cp-mark { 0% { opacity: 0.4; transform: rotate(-5deg) scaleY(1) } 50% { opacity: 0.8; transform: rotate(-2deg) scaleY(1.1) } 100% { opacity: 0.5; transform: rotate(-7deg) scaleY(0.95) } }

/* notes-historical-allegory */
.scn-notes-historical-allegory {
  background:
    linear-gradient(180deg, #2a1e1a 0%, #3a2a22 40%, #4a3a32 100%),
    radial-gradient(ellipse at 30% 20%, #7a5a3a 0%, transparent 60%);
}
.scn-notes-historical-allegory .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a22 0%, #2a1e1a 100%); animation: hi-wall 20s ease-in-out infinite alternate; }
.scn-notes-historical-allegory .desk { position:absolute; bottom:10%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.6); }
.scn-notes-historical-allegory .figure { position:absolute; bottom:10%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hi-figure 5s ease-in-out infinite alternate; }
.scn-notes-historical-allegory .candle { position:absolute; bottom:22%; left:35%; width:6px; height:30px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a070 100%); border-radius:20%; box-shadow: 0 0 12px 4px #ffd080; animation: hi-candle 3s ease-in-out infinite; }
.scn-notes-historical-allegory .glow { position:absolute; bottom:25%; left:33%; width:60px; height:60px; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 40%, transparent 70%); filter: blur(10px); animation: hi-glow 4s ease-in-out infinite alternate; }
.scn-notes-historical-allegory .papers { position:absolute; bottom:10%; left:30%; width:40px; height:10px; background: #c8b090; border-radius:10%; transform: rotate(-5deg); box-shadow: 2px 2px 4px rgba(0,0,0,.4); animation: hi-papers 8s ease-in-out infinite; }
.scn-notes-historical-allegory .shadow-cardinal { position:absolute; bottom:10%; right:20%; width:30px; height:60px; background: rgba(0,0,0,0.4); border-radius:30% 30% 20% 20%; filter: blur(3px); transform: skewX(-10deg); animation: hi-shadow 12s ease-in-out infinite alternate; }

@keyframes hi-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes hi-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes hi-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes hi-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.9; transform: scale(1.1) } 100% { opacity:.6; transform: scale(.95) } }
@keyframes hi-papers { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-6deg) translateY(1px) } }
@keyframes hi-shadow { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.6; transform: translateX(-5px) } 100% { opacity:.4; transform: translateX(3px) } }

/* notes-redcross-knight */
.scn-notes-redcross-knight {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, transparent 70%);
}
.scn-notes-redcross-knight .wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a2a3e 0%, #3a3a4e 50%, #2a2a3e 100%); animation: rc-wall 24s ease-in-out infinite alternate; }
.scn-notes-redcross-knight .knight { position:absolute; bottom:15%; left:50%; width:30px; height:70px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(-50%); animation: rc-knight 4s ease-in-out infinite alternate; }
.scn-notes-redcross-knight .shield { position:absolute; bottom:25%; left:48%; width:22px; height:28px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 0 6px 2px #a0461a, inset 0 0 10px #5e1a1d; animation: rc-shield 6s ease-in-out infinite; }
.scn-notes-redcross-knight .sword { position:absolute; bottom:20%; left:35%; width:4px; height:40px; background: linear-gradient(180deg, #e0e0e0 0%, #808080 100%); border-radius:20%; transform: rotate(-15deg); transform-origin: bottom center; animation: rc-sword 5s ease-in-out infinite; }
.scn-notes-redcross-knight .halo { position:absolute; bottom:35%; left:50%; width:40px; height:8px; background: radial-gradient(ellipse, #ffd080 0%, transparent 70%); filter: blur(4px); transform: translateX(-50%); animation: rc-halo 3s ease-in-out infinite alternate; }
.scn-notes-redcross-knight .altar { position:absolute; bottom:10%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-notes-redcross-knight .window-light { position:absolute; top:10%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, rgba(200,180,160,0.3) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); animation: rc-window 8s ease-in-out infinite alternate; }

@keyframes rc-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes rc-knight { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes rc-shield { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(2px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(-1px) translateY(1px) rotate(-1deg) } }
@keyframes rc-sword { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-17deg) } 100% { transform: rotate(-13deg) } }
@keyframes rc-halo { 0% { opacity:.3; transform: translateX(-50%) scaleX(1) } 50% { opacity:.7; transform: translateX(-50%) scaleX(1.2) } 100% { opacity:.4; transform: translateX(-50%) scaleX(.9) } }
@keyframes rc-window { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

/* notes-soveraine-hope */
.scn-notes-soveraine-hope {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a2a3e 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a4a 0%, transparent 70%);
}
.scn-notes-soveraine-hope .throne { position:absolute; bottom:20%; left:30%; right:30%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 5% 5% / 30% 30% 10% 10%; box-shadow: 0 0 20px rgba(0,0,0,.6); animation: sh-throne 12s ease-in-out infinite alternate; }
.scn-notes-soveraine-hope .queen { position:absolute; bottom:28%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sh-queen 5s ease-in-out infinite alternate; }
.scn-notes-soveraine-hope .dragon { position:absolute; bottom:35%; right:15%; width:60px; height:30px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; filter: blur(2px); animation: sh-dragon 8s ease-in-out infinite; }
.scn-notes-soveraine-hope .flame { position:absolute; bottom:40%; right:30%; width:10px; height:20px; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #ff8020 50%, transparent 100%); border-radius:50%; animation: sh-flame 2s ease-in-out infinite; }
.scn-notes-soveraine-hope .column-left { position:absolute; bottom:0; left:5%; width:8%; height:100%; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius:10% 10% 0 0; box-shadow: inset -4px 0 10px rgba(0,0,0,.4); }
.scn-notes-soveraine-hope .column-right { position:absolute; bottom:0; right:5%; width:8%; height:100%; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius:10% 10% 0 0; box-shadow: inset 4px 0 10px rgba(0,0,0,.4); }
.scn-notes-soveraine-hope .shadow { position:absolute; bottom:20%; left:35%; right:35%; height:20%; background: rgba(0,0,0,0.5); filter: blur(12px); animation: sh-shadow 10s ease-in-out infinite alternate; }

@keyframes sh-throne { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes sh-queen { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes sh-dragon { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-5px) scaleX(1.05) } 100% { transform: translateX(3px) scaleX(.95) } }
@keyframes sh-flame { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.2); opacity:1 } 100% { transform: scaleY(.9); opacity:.7 } }
@keyframes sh-shadow { 0% { opacity:.3; transform: scale(.95) } 50% { opacity:.5; transform: scale(1) } 100% { opacity:.4; transform: scale(1.02) } }

/* notes-una-lady */
.scn-notes-una-lady {
  background:
    linear-gradient(180deg, #2a1e22 0%, #3a2a2e 40%, #4a3a3e 100%),
    radial-gradient(ellipse at 40% 30%, #5a4a4a 0%, transparent 60%);
}
.scn-notes-una-lady .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a2e 0%, #2a1e22 100%); animation: ul-wall 18s ease-in-out infinite alternate; }
.scn-notes-una-lady .lady { position:absolute; bottom:25%; left:30%; width:22px; height:55px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ul-lady 6s ease-in-out infinite alternate; }
.scn-notes-una-lady .lamb { position:absolute; bottom:22%; left:38%; width:18px; height:14px; background: radial-gradient(ellipse at 50% 80%, #e8ddd0 0%, #c8b8a0 100%); border-radius:50% 50% 40% 40%; animation: ul-lamb 7s ease-in-out infinite; }
.scn-notes-una-lady .dwarf { position:absolute; bottom:20%; right:25%; width:16px; height:30px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 20% 20% / 50% 50% 20% 20%; transform: scaleX(0.85); animation: ul-dwarf 5s ease-in-out infinite; }
.scn-notes-una-lady .staff { position:absolute; bottom:20%; left:28%; width:3px; height:50px; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius:20%; transform: rotate(-5deg); transform-origin: bottom center; animation: ul-staff 8s ease-in-out infinite; }
.scn-notes-una-lady .window { position:absolute; top:15%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, rgba(150,130,120,0.4) 0%, transparent 100%); border: 2px solid #5a4a3a; border-radius:10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-notes-una-lady .beam { position:absolute; top:20%; left:15%; width:70%; height:2px; background: rgba(255,220,180,0.2); filter: blur(1px); transform: rotate(-20deg); transform-origin: left; animation: ul-beam 15s ease-in-out infinite alternate; }

@keyframes ul-wall { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes ul-lady { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes ul-lamb { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(1px) scale(.98) } }
@keyframes ul-dwarf { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(3deg) } 100% { transform: translateX(-1px) rotate(-2deg) } }
@keyframes ul-staff { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-7deg) } }
@keyframes ul-beam { 0% { opacity:.1; transform: rotate(-20deg) translateX(0) } 50% { opacity:.3; transform: rotate(-18deg) translateX(5px) } 100% { opacity:.15; transform: rotate(-22deg) translateX(-3px) } }

.scn-dragon-death-fall { background: linear-gradient(180deg, #4a6e8e 0%, #6a8ea0 30%, #d4b860 70%, #f0d080 100%), radial-gradient(ellipse at 80% 20%, #ffe080 0%, transparent 60%); }
.scn-dragon-death-fall .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8ab0c0 0%, transparent 100%); animation: ddf-sky 10s ease-in-out infinite alternate; }
.scn-dragon-death-fall .sun { position:absolute; top:8%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #fff0a0 0%, #ffd060 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,208,96,.3); animation: ddf-sun 6s ease-in-out infinite alternate; }
.scn-dragon-death-fall .dragon-body { position:absolute; top:10%; left:20%; width:160px; height:200px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 60%, #0a0606 100%); border-radius:40% 30% 30% 40% / 30% 40% 60% 50%; transform: rotate(15deg); animation: ddf-body 4s ease-in-out infinite; }
.scn-dragon-death-fall .dragon-wing { position:absolute; top:10%; left:10%; width:120px; height:80px; background: linear-gradient(135deg, #3a2a2a 0%, #1a0e0e 100%); border-radius:80% 20% 40% 60% / 60% 30% 70% 40%; transform: rotate(-20deg) skewX(10deg); animation: ddf-wing 2.5s ease-in-out infinite alternate; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-dragon-death-fall .smoke-a { position:absolute; bottom:30%; left:30%; width:100px; height:60px; background: radial-gradient(ellipse, rgba(200,180,140,.4) 0%, transparent 70%); filter: blur(12px); animation: ddf-smoke 8s linear infinite; }
.scn-dragon-death-fall .smoke-b { position:absolute; bottom:20%; left:55%; width:80px; height:50px; background: radial-gradient(ellipse, rgba(200,180,140,.3) 0%, transparent 70%); filter: blur(10px); animation: ddf-smoke 6s linear infinite 3s; }
.scn-dragon-death-fall .debris-a { position:absolute; top:40%; left:15%; width:8px; height:12px; background: #6a4a3a; border-radius:30%; animation: ddf-debris 3s ease-in infinite; }
.scn-dragon-death-fall .debris-b { position:absolute; top:50%; left:70%; width:6px; height:10px; background: #5a3a2a; border-radius:40%; animation: ddf-debris 2.5s ease-in infinite 1s; }
@keyframes ddf-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ddf-sun    { 0% { transform:scale(1); filter:brightness(1) } 50% { transform:scale(1.1); filter:brightness(1.2) } 100% { transform:scale(.95); filter:brightness(.9) } }
@keyframes ddf-body   { 0% { transform: translateY(-20px) rotate(12deg) } 25% { transform: translateY(-10px) rotate(18deg) } 50% { transform: translateY(0) rotate(15deg) } 75% { transform: translateY(10px) rotate(12deg) } 100% { transform: translateY(20px) rotate(15deg) } }
@keyframes ddf-wing   { 0% { transform: rotate(-30deg) skewX(5deg) } 50% { transform: rotate(-10deg) skewX(15deg) } 100% { transform: rotate(-25deg) skewX(8deg) } }
@keyframes ddf-smoke  { 0% { transform: translate(0,0) scale(.8); opacity:.6 } 50% { transform: translate(10px,-20px) scale(1.2); opacity:.3 } 100% { transform: translate(20px,-40px) scale(1.5); opacity:0 } }
@keyframes ddf-debris { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(-20px,60px) rotate(180deg) } 100% { transform: translate(-40px,120px) rotate(360deg); opacity:0 } }

.scn-dragon-death-reaction { background: linear-gradient(180deg, #b0c8d8 0%, #d8e0e8 50%, #f0e8d0 100%), radial-gradient(ellipse at 60% 30%, #fff0d0 0%, transparent 50%); }
.scn-dragon-death-reaction .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; }
.scn-dragon-death-reaction .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c0d8e8 0%, transparent 100%); animation: ddr-sky 12s ease-in-out infinite alternate; }
.scn-dragon-death-reaction .sun { position:absolute; top:12%; left:20%; width:50px; height:50px; background: radial-gradient(circle, #ffe8b0 0%, #ffd080 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,208,128,.2); animation: ddr-sun 8s ease-in-out infinite alternate; }
.scn-dragon-death-reaction .dragon-carcass { position:absolute; bottom:25%; right:10%; width:200px; height:80px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 20% 30% 40% 20% / 60% 50% 40% 30%; transform: rotate(-5deg); box-shadow: 0 4px 12px rgba(0,0,0,.2); animation: ddr-carcass 20s ease-in-out infinite; }
.scn-dragon-death-reaction .knight { position:absolute; bottom:25%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ddr-stand 6s ease-in-out infinite; }
.scn-dragon-death-reaction .lady { position:absolute; bottom:25%; left:43%; width:18px; height:36px; background: linear-gradient(180deg, #6a4a5a 0%, #4a2a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ddr-stand 6s ease-in-out infinite 1s; }
.scn-dragon-death-reaction .cloud-a { position:absolute; top:20%; right:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(8px); animation: ddr-cloud 40s linear infinite; }
.scn-dragon-death-reaction .cloud-b { position:absolute; top:30%; left:5%; width:60px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.05) 100%); border-radius:50%; filter: blur(6px); animation: ddr-cloud 50s linear infinite reverse; }
@keyframes ddr-sky     { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ddr-sun     { 0% { transform:scale(1); filter:brightness(1) } 50% { transform:scale(1.05); filter:brightness(1.1) } 100% { transform:scale(.98); filter:brightness(.95) } }
@keyframes ddr-carcass { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-2px) rotate(-4deg) } }
@keyframes ddr-stand   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ddr-cloud   { 0% { transform: translateX(0) } 100% { transform: translateX(200px) } }

.scn-landing-haven-poet { background: linear-gradient(180deg, #c8d8e0 0%, #e0e8f0 40%, #f0e8d0 80%, #d8c8a0 100%), radial-gradient(ellipse at 50% 80%, #ffe8c0 0%, transparent 60%); }
.scn-landing-haven-poet .sea { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #80a0b0 0%, #608090 100%); border-radius: 30% 40% 0 0 / 60% 50% 0 0; animation: lhp-sea 15s ease-in-out infinite alternate; }
.scn-landing-haven-poet .shore { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, #c8b88a 0%, #a89868 100%); border-radius: 20% 30% 0 0 / 50% 60% 0 0; }
.scn-landing-haven-poet .ship { position:absolute; bottom:35%; left:20%; width:60px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; transform: rotate(-3deg); animation: lhp-ship 12s ease-in-out infinite; }
.scn-landing-haven-poet .sail { position:absolute; bottom:38%; left:22%; width:30px; height:40px; background: linear-gradient(135deg, #e8d0b0 0%, #c8a880 100%); border-radius: 20% 30% 10% 10% / 50% 60% 30% 30%; transform: rotate(10deg); animation: lhp-sail 8s ease-in-out infinite alternate; }
.scn-landing-haven-poet .figure-left { position:absolute; bottom:18%; left:43%; width:16px; height:32px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lhp-figure 5s ease-in-out infinite; }
.scn-landing-haven-poet .figure-right { position:absolute; bottom:18%; left:48%; width:16px; height:32px; background: linear-gradient(180deg, #6a4a5a 0%, #4a2a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lhp-figure 5s ease-in-out infinite 1.5s; }
.scn-landing-haven-poet .tree-a { position:absolute; bottom:20%; left:10%; width:12px; height:50px; background: linear-gradient(180deg, #3a5a2a 0%, #2a3a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; animation: lhp-tree 20s ease-in-out infinite; }
.scn-landing-haven-poet .tree-b { position:absolute; bottom:20%; right:8%; width:10px; height:45px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; animation: lhp-tree 20s ease-in-out infinite 5s; }
@keyframes lhp-sea    { 0% { background-position:0% 0% } 50% { background-position:10% 0% } 100% { background-position:0% 0% } }
@keyframes lhp-ship   { 0%,100% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(5px) rotate(-1deg) } }
@keyframes lhp-sail   { 0% { transform: rotate(8deg) scaleY(1) } 50% { transform: rotate(12deg) scaleY(1.05) } 100% { transform: rotate(10deg) scaleY(1) } }
@keyframes lhp-figure { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes lhp-tree   { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) scaleX(.98) } }

.scn-squire-sees-dragon-dead { background: linear-gradient(180deg, #f0d8a0 0%, #e8c880 30%, #d0b060 60%, #c0a050 100%), radial-gradient(ellipse at 70% 30%, #ffe8b0 0%, transparent 50%); }
.scn-squire-sees-dragon-dead .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e0c0 0%, transparent 100%); animation: ssd-sky 8s ease-in-out infinite alternate; }
.scn-squire-sees-dragon-dead .sunburst { position:absolute; top:10%; right:20%; width:80px; height:80px; background: radial-gradient(circle, #fff0c0 0%, #ffd060 20%, #e8a030 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 100px 50px rgba(255,208,96,.4); animation: ssd-sunburst 10s ease-in-out infinite; }
.scn-squire-sees-dragon-dead .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20% 30% 0 0 / 50% 60% 0 0; }
.scn-squire-sees-dragon-dead .dragon-shape { position:absolute; bottom:30%; left:10%; width:180px; height:70px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 20% 40% 30% 20% / 50% 60% 40% 30%; transform: rotate(5deg); box-shadow: 0 6px 20px rgba(0,0,0,.3); animation: ssd-carcass 15s ease-in-out infinite; }
.scn-squire-sees-dragon-dead .squire { position:absolute; bottom:25%; left:45%; width:22px; height:42px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ssd-jump 3s ease-in-out infinite; }
.scn-squire-sees-dragon-dead .arm { position:absolute; bottom:30%; left:48%; width:18px; height:6px; background: linear-gradient(90deg, #4a5a4a 0%, #3a4a3a 100%); border-radius: 30% 50% 30% 20% / 50% 60% 40% 30%; transform: rotate(30deg); transform-origin: left center; animation: ssd-arm 2s ease-in-out infinite alternate; }
.scn-squire-sees-dragon-dead .sparkle-a { position:absolute; top:20%; left:30%; width:8px; height:8px; background: #ffe8a0; border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,232,160,.6); animation: ssd-sparkle 2.5s ease-in-out infinite; }
.scn-squire-sees-dragon-dead .sparkle-b { position:absolute; top:15%; left:55%; width:6px; height:6px; background: #ffe8a0; border-radius:50%; box-shadow: 0 0 10px 3px rgba(255,232,160,.5); animation: ssd-sparkle 3s ease-in-out infinite 1s; }
.scn-squire-sees-dragon-dead .sparkle-c { position:absolute; top:25%; left:70%; width:7px; height:7px; background: #ffe8a0; border-radius:50%; box-shadow: 0 0 14px 5px rgba(255,232,160,.7); animation: ssd-sparkle 2s ease-in-out infinite 0.5s; }
@keyframes ssd-sky      { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ssd-sunburst { 0% { transform:scale(1); filter:brightness(1) } 50% { transform:scale(1.15); filter:brightness(1.2) } 100% { transform:scale(.95); filter:brightness(.9) } }
@keyframes ssd-carcass  { 0%,100% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-2px) rotate(4deg) } }
@keyframes ssd-jump     { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-10px) rotate(0deg) } 60% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ssd-arm      { 0% { transform: rotate(20deg) } 100% { transform: rotate(40deg) } }
@keyframes ssd-sparkle  { 0% { transform:scale(0); opacity:0 } 30% { transform:scale(1.5); opacity:1 } 60% { transform:scale(1); opacity:.8 } 100% { transform:scale(0); opacity:0 } }

.scn-plan-of-the-poem {
  background: linear-gradient(180deg, #f5e6d3 0%, #d4c4a8 50%, #b8a68e 100%), radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-plan-of-the-poem .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #e8d8c0 0%, #f0e0c8 50%, #e0d0b8 100%); }
.scn-plan-of-the-poem .window-light { position:absolute; top:10%; right:12%; width:100px; height:140px; background: linear-gradient(180deg, #fff4dd 0%, #ffe8c0 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 0 40px 20px rgba(255,232,192,0.3); animation: pop-window 6s ease-in-out infinite alternate; }
.scn-plan-of-the-poem .desk { position:absolute; bottom:0; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #8b6f4c 0%, #6b5439 100%); border-radius:6% 6% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-plan-of-the-poem .book { position:absolute; bottom:22%; left:35%; width:70px; height:18px; background: linear-gradient(90deg, #9c7c54 0%, #b8946a 100%); border-radius:2px; transform: rotate(-4deg); box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: pop-book 10s ease-in-out infinite; }
.scn-plan-of-the-poem .letter { position:absolute; bottom:28%; left:48%; width:80px; height:10px; background: linear-gradient(90deg, #f5eed0 0%, #ffffff 100%); border-radius:1px; transform: rotate(2deg); box-shadow: 0 1px 4px rgba(0,0,0,0.15); }
.scn-plan-of-the-poem .quill { position:absolute; bottom:30%; left:58%; width:6px; height:50px; background: linear-gradient(180deg, #f0e0c0 0%, #c8a87a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: 50% 90%; animation: pop-quill 4s ease-in-out infinite alternate; }
.scn-plan-of-the-poem .inkwell { position:absolute; bottom:25%; left:60%; width:18px; height:22px; background: radial-gradient(circle at 50% 40%, #3a2a1a 0%, #1a1008 100%); border-radius:30% 30% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
@keyframes pop-window { 0% { opacity:0.7; box-shadow:0 0 20px 10px rgba(255,232,192,0.2); } 50% { opacity:1; box-shadow:0 0 60px 30px rgba(255,232,192,0.5); } 100% { opacity:0.8; box-shadow:0 0 30px 15px rgba(255,232,192,0.3); } }
@keyframes pop-book { 0%,100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-2px) rotate(-3deg); } }
@keyframes pop-quill { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-6deg); } }

.scn-prince-arthur-central-figure {
  background: linear-gradient(180deg, #2c1a4a 0%, #4a2a6e 30%, #6a4a8e 60%, #8a6a9e 80%, #a88aae 100%), radial-gradient(ellipse at 50% 0%, #ffe8a0 0%, transparent 50%);
}
.scn-prince-arthur-central-figure .sky-dusk { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a0a2e 0%, #3a1a5e 40%, #5a2a7e 70%, #7a4a8e 100%); animation: pac-sky 12s ease-in-out infinite alternate; }
.scn-prince-arthur-central-figure .ground-mist { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(100,80,120,0.4) 100%); filter: blur(8px); animation: pac-mist 15s ease-in-out infinite alternate; }
.scn-prince-arthur-central-figure .figure { position:absolute; bottom:15%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0a1a 0%, #0a050a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 4px rgba(200,180,255,0.3); animation: pac-figure 8s ease-in-out infinite; }
.scn-prince-arthur-central-figure .armor-shoulder { position:absolute; bottom:50%; left:52%; width:22px; height:18px; background: radial-gradient(circle at 40% 30%, #8a7a9a 0%, #4a3a5a 100%); border-radius:50%; transform: rotate(20deg); box-shadow: 0 0 8px rgba(200,180,255,0.2); animation: pac-shoulder 8s ease-in-out infinite; }
.scn-prince-arthur-central-figure .shield { position:absolute; bottom:30%; left:55%; width:28px; height:34px; background: linear-gradient(180deg, #6a4a7a 0%, #3a2a4a 100%); border-radius:30% 30% 20% 20%; transform: rotate(10deg); box-shadow: inset 0 0 10px rgba(200,180,255,0.4); animation: pac-shield 6s ease-in-out infinite alternate; }
.scn-prince-arthur-central-figure .sword { position:absolute; bottom:35%; left:46%; width:4px; height:50px; background: linear-gradient(180deg, #c0b0d0 0%, #8070a0 100%); border-radius:2px; transform: rotate(-15deg); transform-origin: 50% 80%; animation: pac-sword 7s ease-in-out infinite; }
.scn-prince-arthur-central-figure .aura-glow { position:absolute; bottom:15%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,232,160,0.2) 0%, transparent 70%); border-radius:50%; animation: pac-aura 5s ease-in-out infinite alternate; }
@keyframes pac-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes pac-mist { 0% { transform: translateY(0); opacity:0.6; } 50% { transform: translateY(-4px); opacity:0.8; } 100% { transform: translateY(0); opacity:0.5; } }
@keyframes pac-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-48%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(0deg); } 75% { transform: translateX(-52%) translateY(-2px) rotate(-1deg); } }
@keyframes pac-shoulder { 0%,100% { transform: rotate(20deg); } 50% { transform: rotate(18deg) translateY(-1px); } }
@keyframes pac-shield { 0% { transform: rotate(8deg) scale(1); } 100% { transform: rotate(14deg) scale(1.02); } }
@keyframes pac-sword { 0%,100% { transform: rotate(-15deg); } 50% { transform: rotate(-12deg) translateY(-2px); } }
@keyframes pac-aura { 0% { opacity:0.3; transform: translateX(-50%) scale(0.95); } 100% { opacity:0.7; transform: translateX(-50%) scale(1.05); } }

.scn-moral-framework {
  background: linear-gradient(180deg, #d4c4a8 0%, #c8b898 50%, #b8a88a 100%), radial-gradient(ellipse at 80% 20%, #f5e8d0 0%, transparent 50%);
}
.scn-moral-framework .bg-shelves { position:absolute; inset:0; background: linear-gradient(90deg, #8b7050 0%, #a08565 50%, #8b7050 100%); }
.scn-moral-framework .shelf-left { position:absolute; top:10%; left:5%; width:18%; height:80%; background: linear-gradient(180deg, #6b5439 0%, #4a3828 100%); border-radius:4px; box-shadow: inset 0 0 12px rgba(0,0,0,0.3); animation: mfw-shelf 20s ease-in-out infinite alternate; }
.scn-moral-framework .shelf-right { position:absolute; top:10%; right:5%; width:18%; height:80%; background: linear-gradient(180deg, #6b5439 0%, #4a3828 100%); border-radius:4px; box-shadow: inset 0 0 12px rgba(0,0,0,0.3); animation: mfw-shelf 25s ease-in-out infinite alternate-reverse; }
.scn-moral-framework .desk { position:absolute; bottom:0; left:25%; right:25%; height:45%; background: linear-gradient(180deg, #9c7c54 0%, #7a5e3a 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-moral-framework .open-book { position:absolute; bottom:22%; left:38%; width:80px; height:14px; background: linear-gradient(90deg, #e8dcc8 0%, #ffffff 100%); border-radius:2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: mfw-book 12s ease-in-out infinite; }
.scn-moral-framework .lamp { position:absolute; bottom:32%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #c0a070 0%, #8a6a4a 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,200,120,0.5); animation: mfw-lamp 4s ease-in-out infinite alternate; }
.scn-moral-framework .chair { position:absolute; bottom:2%; left:45%; width:50px; height:40px; background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%); border-radius:10% 10% 30% 30%; transform: rotate(-2deg); box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
@keyframes mfw-shelf { 0% { transform: translateY(0); opacity:1; } 50% { transform: translateY(-2px); opacity:0.95; } 100% { transform: translateY(0); opacity:1; } }
@keyframes mfw-book { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes mfw-lamp { 0% { box-shadow: 0 0 20px 6px rgba(255,200,120,0.3); opacity:0.8; } 50% { box-shadow: 0 0 40px 15px rgba(255,200,120,0.6); opacity:1; } 100% { box-shadow: 0 0 25px 8px rgba(255,200,120,0.35); opacity:0.9; } }

.scn-influence-of-new-learning {
  background: linear-gradient(180deg, #e8d8c0 0%, #d4c4a8 50%, #c0b090 100%), radial-gradient(ellipse at 30% 10%, #fff8e7 0%, transparent 40%);
}
.scn-influence-of-new-learning .bg-arch { position:absolute; inset:0 10% 0 10%; background: linear-gradient(180deg, #a08870 0%, #88705a 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.2); }
.scn-influence-of-new-learning .bookshelf { position:absolute; top:15%; left:5%; width:25%; height:70%; background: linear-gradient(180deg, #6b5439 0%, #4a3828 100%); border-radius:4px; box-shadow: 4px 0 12px rgba(0,0,0,0.3); }
.scn-influence-of-new-learning .pedestal { position:absolute; bottom:20%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #b8a88a 0%, #8a7a64 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-influence-of-new-learning .bust { position:absolute; bottom:55%; left:40%; width:26px; height:30px; background: linear-gradient(180deg, #d0c0a8 0%, #a89078 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 8px rgba(0,0,0,0.2); transform: rotate(5deg); animation: inl-bust 10s ease-in-out infinite; }
.scn-influence-of-new-learning .table { position:absolute; bottom:0; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #9c7c54 0%, #7a5e3a 100%); border-radius:6% 6% 0 0; box-shadow: inset 0 6px 16px rgba(0,0,0,0.3); }
.scn-influence-of-new-learning .scroll { position:absolute; bottom:12%; left:35%; width:100px; height:8px; background: linear-gradient(90deg, #f5eed0 0%, #ffffff 100%); border-radius:2px; transform: rotate(3deg); box-shadow: 0 2px 4px rgba(0,0,0,0.15); animation: inl-scroll 14s ease-in-out infinite alternate; }
.scn-influence-of-new-learning .sunbeam { position:absolute; top:0; left:25%; width:50px; height:100%; background: linear-gradient(180deg, rgba(255,248,224,0.3) 0%, rgba(255,248,224,0) 100%); transform: skewX(10deg); filter: blur(4px); animation: inl-beam 8s ease-in-out infinite alternate; }
.scn-influence-of-new-learning .dust-mote { position:absolute; top:20%; left:30%; width:4px; height:4px; background: radial-gradient(circle, rgba(200,180,150,0.6) 0%, transparent 100%); border-radius:50%; filter: blur(1px); animation: inl-dust 20s linear infinite; }
@keyframes inl-bust { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes inl-scroll { 0% { transform: rotate(2deg) scaleX(1); } 100% { transform: rotate(5deg) scaleX(1.02); } }
@keyframes inl-beam { 0% { opacity:0.3; transform: skewX(8deg) translateX(-5px); } 100% { opacity:0.7; transform: skewX(12deg) translateX(5px); } }
@keyframes inl-dust { 0% { transform: translate(0, 0) scale(1); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translate(30px, -60px) scale(1.5); opacity:0; } }

.scn-king-perplexed {
  background:
    linear-gradient(135deg, #f5e6c8 0%, #c9a96e 50%, #8b6f4c 100%),
    radial-gradient(ellipse at 80% 30%, #fff4e0 0%, transparent 60%);
}
.scn-king-perplexed .wall { position:absolute; inset:0 0 25% 0; background:linear-gradient(180deg, #d4b882 0%, #a8885a 100%); }
.scn-king-perplexed .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #7a5a3a 0%, #4a3420 100%); }
.scn-king-perplexed .throne { position:absolute; bottom:20%; left:30%; width:80px; height:90px; background:linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow:0 8px 20px rgba(0,0,0,.4); }
.scn-king-perplexed .king { position:absolute; bottom:22%; left:34%; width:40px; height:60px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation:kp-king 3s ease-in-out infinite; }
.scn-king-perplexed .king-head { position:absolute; bottom:68%; left:36%; width:24px; height:24px; background:linear-gradient(180deg, #c4956a 0%, #a07050 100%); border-radius:50%; box-shadow:inset -2px -2px 6px rgba(0,0,0,.3); animation:kp-head 3s ease-in-out infinite; }
.scn-king-perplexed .king-hand { position:absolute; bottom:44%; left:32%; width:14px; height:16px; background:#a07050; border-radius:50% 50% 40% 40%; transform-origin:top center; animation:kp-hand 3s ease-in-out infinite; }
.scn-king-perplexed .tapestry { position:absolute; top:5%; left:10%; width:120px; height:130px; background:linear-gradient(180deg, #a04020 0%, #602010 100%); border-radius:4px; opacity:.7; animation:kp-tapestry 8s ease-in-out infinite; }
.scn-king-perplexed .window-glow { position:absolute; top:2%; right:5%; width:50px; height:60px; background:radial-gradient(circle, #fff4d0 0%, #e0c080 60%, transparent 100%); box-shadow:0 0 40px 20px rgba(255,244,208,.3); animation:kp-window 5s ease-in-out infinite alternate; }
@keyframes kp-king { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-3px) rotate(1deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes kp-head { 0% { transform:rotate(0deg); } 50% { transform:rotate(-4deg); } 100% { transform:rotate(0deg); } }
@keyframes kp-hand { 0% { transform:rotate(0deg) scaleY(1); } 50% { transform:rotate(-8deg) scaleY(1.05); } 100% { transform:rotate(0deg) scaleY(1); } }
@keyframes kp-tapestry { 0% { transform:scaleX(1); opacity:.7; } 50% { transform:scaleX(1.03); opacity:.8; } 100% { transform:scaleX(1); opacity:.7; } }
@keyframes kp-window { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }

.scn-king-questions-knight {
  background:
    linear-gradient(180deg, #e8d4b0 0%, #c8a880 50%, #9a7a5a 100%),
    radial-gradient(ellipse at 60% 40%, #fff0d0 0%, transparent 60%);
}
.scn-king-questions-knight .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #6a5030 0%, #3a2818 100%); }
.scn-king-questions-knight .wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #c8b090 0%, #a08060 100%); }
.scn-king-questions-knight .throne { position:absolute; bottom:18%; left:15%; width:60px; height:70px; background:linear-gradient(180deg, #5a4020 0%, #2a1a0a 100%); border-radius:15% 15% 5% 5%; }
.scn-king-questions-knight .king-standing { position:absolute; bottom:20%; left:22%; width:35px; height:75px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; }
.scn-king-questions-knight .king-arm { position:absolute; bottom:40%; left:16%; width:30px; height:8px; background:#3a2a1a; border-radius:40%; transform-origin:right center; animation:kqk-arm 2s ease-in-out infinite; }
.scn-king-questions-knight .knight-silhouette { position:absolute; bottom:20%; right:20%; width:30px; height:70px; background:#2a1a0a; border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; opacity:.8; }
.scn-king-questions-knight .torch { position:absolute; bottom:35%; left:60%; width:6px; height:20px; background:linear-gradient(180deg, #8b5a2a 0%, #4a2a10 100%); border-radius:2px; }
.scn-king-questions-knight .torch-glow { position:absolute; bottom:35%; left:60%; width:30px; height:30px; transform:translate(-50%, -50%); background:radial-gradient(circle, #ffa040 0%, #e08020 30%, transparent 70%); animation:kqk-torchglow 1.5s ease-in-out infinite alternate; }
@keyframes kqk-arm { 0% { transform:rotate(-20deg) scaleX(1); } 50% { transform:rotate(0deg) scaleX(1.05); } 100% { transform:rotate(-20deg) scaleX(1); } }
@keyframes kqk-torchglow { 0% { opacity:.6; transform:translate(-50%, -50%) scale(0.9); } 100% { opacity:1; transform:translate(-50%, -50%) scale(1.1); } }

.scn-knight-denies-guilt {
  background:
    linear-gradient(180deg, #e0c8a0 0%, #c0a080 40%, #8a6a4a 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
}
.scn-knight-denies-guilt .floor { position:absolute; bottom:0; left:0; right:0; height:18%; background:linear-gradient(180deg, #5a4028 0%, #3a2818 100%); }
.scn-knight-denies-guilt .wall { position:absolute; inset:0 0 18% 0; background:linear-gradient(180deg, #b8a080 0%, #8a6a50 100%); }
.scn-knight-denies-guilt .knight-armor { position:absolute; bottom:18%; left:40%; width:36px; height:75px; background:linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; clip-path: polygon(0 0,100% 0,100% 100%,50% 95%,0 100%); }
.scn-knight-denies-guilt .shield { position:absolute; bottom:24%; left:36%; width:28px; height:32px; background:linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:20% 20% 20% 20%; }
.scn-knight-denies-guilt .cross-shield { position:absolute; bottom:24%; left:36%; width:28px; height:32px; background:transparent; box-shadow:inset 0 0 0 6px #b0a080; border-radius:20%; animation:kdg-cross 4s ease-in-out infinite; }
.scn-knight-denies-guilt .sword { position:absolute; bottom:30%; left:52%; width:4px; height:40px; background:#8a8a9a; border-radius:2px; transform:rotate(-15deg); transform-origin:bottom center; }
.scn-knight-denies-guilt .cape { position:absolute; bottom:18%; left:44%; width:20px; height:50px; background:linear-gradient(180deg, #802020 0%, #402020 100%); border-radius:20% 20% 50% 50%; opacity:.8; animation:kdg-cape 5s ease-in-out infinite; }
.scn-knight-denies-guilt .helm { position:absolute; bottom:70%; left:41%; width:28px; height:14px; background:#4a4a5a; border-radius:40% 40% 30% 30%; transform:rotate(2deg); }
.scn-knight-denies-guilt .light-beam { position:absolute; top:0; left:50%; width:6px; height:100%; background:linear-gradient(180deg, rgba(255,248,224,0.3) 0%, transparent 100%); transform:translateX(-50%); animation:kdg-beam 7s ease-in-out infinite alternate; }
@keyframes kdg-cross { 0% { opacity:.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:.6; transform:scale(1); } }
@keyframes kdg-cape { 0% { transform:rotate(-5deg) scaleY(1); } 50% { transform:rotate(5deg) scaleY(1.02); } 100% { transform:rotate(-5deg) scaleY(1); } }
@keyframes kdg-beam { 0% { opacity:.2; } 50% { opacity:.5; } 100% { opacity:.2; } }

.scn-knight-reveals-duessa {
  background:
    linear-gradient(180deg, #e0ccb0 0%, #b89878 50%, #8a6a50 100%),
    radial-gradient(ellipse at 60% 50%, #fff0d8 0%, transparent 60%);
}
.scn-knight-reveals-duessa .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #5a4028 0%, #3a2818 100%); }
.scn-knight-reveals-duessa .wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #c0a888 0%, #9a7a5a 100%); }
.scn-knight-reveals-duessa .knight-pointing { position:absolute; bottom:20%; left:20%; width:35px; height:75px; background:linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; }
.scn-knight-reveals-duessa .knight-arm { position:absolute; bottom:42%; left:14%; width:28px; height:8px; background:#5a5a6a; border-radius:40%; transform-origin:right center; animation:krd-arm 2s ease-in-out infinite; }
.scn-knight-reveals-duessa .duessa { position:absolute; bottom:20%; right:20%; width:30px; height:70px; background:linear-gradient(180deg, #6a2a3a 0%, #3a1020 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; clip-path:polygon(0 0,100% 0,100% 100%,60% 95%,40% 100%,0 100%); }
.scn-knight-reveals-duessa .duessa-dress { position:absolute; bottom:20%; right:18%; width:40px; height:50px; background:linear-gradient(180deg, #c8553d 0%, #8a3020 100%); border-radius:10% 10% 40% 40%; opacity:.9; animation:krd-dress 6s ease-in-out infinite; }
.scn-knight-reveals-duessa .duessa-veil { position:absolute; bottom:60%; right:18%; width:40px; height:18px; background:linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%); border-radius:50%; filter:blur(3px); animation:krd-veil 8s ease-in-out infinite; }
.scn-knight-reveals-duessa .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); }
.scn-knight-reveals-duessa .sparkle { position:absolute; top:40%; right:25%; width:4px; height:4px; background:#ffd080; border-radius:50%; box-shadow:0 0 8px 2px #ffd080; animation:krd-sparkle 3s ease-in-out infinite alternate; }
@keyframes krd-arm { 0% { transform:rotate(-15deg) scaleX(1); } 50% { transform:rotate(5deg) scaleX(1.08); } 100% { transform:rotate(-15deg) scaleX(1); } }
@keyframes krd-dress { 0% { transform:translateX(0) scaleY(1); } 50% { transform:translateX(2px) scaleY(1.02); } 100% { transform:translateX(0) scaleY(1); } }
@keyframes krd-veil { 0% { transform:translateX(-2px) rotate(-3deg); opacity:.3; } 50% { transform:translateX(2px) rotate(3deg); opacity:.5; } 100% { transform:translateX(-2px) rotate(-3deg); opacity:.3; } }
@keyframes krd-sparkle { 0% { opacity:.2; transform:scale(0.5); } 100% { opacity:1; transform:scale(1.2); } }

/* Scene: notes-proteus */
.scn-notes-proteus {
  background:
    radial-gradient(ellipse at 50% 100%, #1a3a4a 0%, transparent 70%),
    linear-gradient(180deg, #0d1b2a 0%, #1b2838 50%, #243b4a 100%);
}
.scn-notes-proteus .cave-bg {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 50%, rgba(60,90,110,0.3) 0%, transparent 70%);
  animation: prt-pulse 12s ease-in-out infinite alternate;
}
.scn-notes-proteus .water-surface {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(20,60,80,0.6) 0%, rgba(10,30,50,0.3) 100%);
  border-radius: 60% 40% 60% 40% / 100% 100% 0 0;
  filter: blur(4px);
  animation: prt-wave 8s ease-in-out infinite alternate;
}
.scn-notes-proteus .proteus-body {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 50%, #2a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,20,30,0.5);
  animation: prt-shape 6s ease-in-out infinite;
}
.scn-notes-proteus .proteus-arm {
  position: absolute; bottom: 38%; left: 42%; width: 20px; height: 35px;
  transform-origin: top center;
  background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%;
  animation: prt-reach 4s ease-in-out infinite alternate;
}
.scn-notes-proteus .glowing-orb {
  position: absolute; bottom: 40%; left: 55%; width: 16px; height: 16px;
  background: radial-gradient(circle, #b0d8f0 0%, #5090b0 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #5090b0, 0 0 40px 12px rgba(80,144,176,0.4);
  animation: prt-glow 3s ease-in-out infinite alternate;
}
.scn-notes-proteus .seaweed {
  position: absolute; bottom: 25%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #2a5a3a 0%, #1a4a2a 100%);
  border-radius: 50% 50% 30% 30% / 20% 20% 40% 40%;
  transform-origin: bottom center;
}
.scn-notes-proteus .seaweed-1 { left: 25%; animation: prt-sway 5s ease-in-out infinite; }
.scn-notes-proteus .seaweed-2 { right: 30%; height: 50px; animation: prt-sway 6s ease-in-out infinite reverse; }
.scn-notes-proteus .bubbles {
  position: absolute; bottom: 38%; left: 45%; width: 4px; height: 4px;
  background: rgba(180,220,240,0.6);
  border-radius: 50%;
  box-shadow: 8px 12px 0 rgba(180,220,240,0.4), -6px 18px 0 rgba(180,220,240,0.3);
  animation: prt-float 7s ease-in-out infinite;
}
@keyframes prt-pulse { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes prt-wave { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes prt-shape { 0% { border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; } 50% { border-radius: 30% 70% 50% 50% / 50% 50% 50% 50%; } 100% { border-radius: 70% 30% 40% 60% / 60% 40% 60% 40%; } }
@keyframes prt-reach { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes prt-glow { 0% { box-shadow: 0 0 12px 3px #5090b0; } 50% { box-shadow: 0 0 28px 8px #80c0e0; } 100% { box-shadow: 0 0 18px 5px #5090b0; } }
@keyframes prt-sway { 0% { transform: rotate(-5deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-5deg); } }
@keyframes prt-float { 0% { transform: translateY(0) translateX(0); opacity: 0.6; } 50% { transform: translateY(-20px) translateX(6px); opacity: 0.2; } 100% { transform: translateY(-40px) translateX(-4px); opacity: 0; } }

/* Scene: notes-saracen */
.scn-notes-saracen {
  background:
    radial-gradient(ellipse at 50% 20%, #2a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1a0e 0%, #2a2210 40%, #1a1408 100%);
}
.scn-notes-saracen .tent-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(60,50,30,0.3) 0%, transparent 50%);
  animation: srn-fade 15s ease-in-out infinite alternate;
}
.scn-notes-saracen .moonlight {
  position: absolute; top: 0; left: 35%; width: 60%; height: 100%;
  background: linear-gradient(180deg, rgba(180,200,220,0.15) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: srn-light 20s ease-in-out infinite alternate;
}
.scn-notes-saracen .knight {
  position: absolute; bottom: 20%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-notes-saracen .knight-1 { left: 28%; animation: srn-stand 4s ease-in-out infinite; }
.scn-notes-saracen .knight-2 { left: 48%; height: 70px; width: 38px; animation: srn-stand 5s ease-in-out infinite 0.5s; }
.scn-notes-saracen .knight-3 { left: 68%; animation: srn-stand 4.5s ease-in-out infinite 1s; }
.scn-notes-saracen .banner {
  position: absolute; bottom: 28%; left: 50%; width: 6px; height: 30px;
  background: #2a1a08;
  transform-origin: bottom center;
}
.scn-notes-saracen .banner::after {
  content: ''; position: absolute; top: -10px; left: -12px; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a6030 0%, #6a4020 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: srn-flag 3s ease-in-out infinite;
}
.scn-notes-saracen .sword {
  position: absolute; bottom: 30%; left: 52%; width: 4px; height: 25px;
  background: #6a6a6a;
  transform: rotate(-20deg);
  box-shadow: 0 0 4px #aaa;
  animation: srn-gleam 4s ease-in-out infinite alternate;
}
@keyframes srn-fade { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes srn-light { 0% { opacity: 0.1; transform: translateX(-5%); } 50% { opacity: 0.3; transform: translateX(5%); } 100% { opacity: 0.15; transform: translateX(-5%); } }
@keyframes srn-stand { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes srn-flag { 0% { clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); } 50% { clip-path: polygon(0 0, 100% 0, 85% 105%, 15% 105%); } 100% { clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); } }
@keyframes srn-gleam { 0% { box-shadow: 0 0 2px #888; } 50% { box-shadow: 0 0 10px #ddd; } 100% { box-shadow: 0 0 2px #888; } }

/* Scene: notes-duessa */
.scn-notes-duessa {
  background:
    radial-gradient(ellipse at 50% 80%, #2a1a2a 0%, transparent 60%),
    linear-gradient(180deg, #1a0a1a 0%, #2a1420 40%, #1a0a14 100%);
}
.scn-notes-duessa .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(60,30,50,0.4) 0%, transparent 50%);
  animation: due-pulse 14s ease-in-out infinite alternate;
}
.scn-notes-duessa .duessa-figure {
  position: absolute; bottom: 20%; left: 50%; width: 45px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: due-still 8s ease-in-out infinite;
}
.scn-notes-duessa .veil {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(180,160,200,0.3) 0%, rgba(100,80,120,0.1) 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  filter: blur(3px);
  animation: due-veil 5s ease-in-out infinite alternate;
}
.scn-notes-duessa .chalice {
  position: absolute; bottom: 22%; left: 42%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: due-tilt 6s ease-in-out infinite;
}
.scn-notes-duessa .serpent {
  position: absolute; bottom: 22%; left: 56%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 30% 30% / 20% 20% 40% 40%;
  transform-origin: bottom center;
  animation: due-coil 4s ease-in-out infinite alternate;
}
.scn-notes-duessa .candle {
  position: absolute; bottom: 15%; left: 30%; width: 4px; height: 15px;
  background: #4a3a1a;
  border-radius: 20%;
}
.scn-notes-duessa .candle::after {
  content: ''; position: absolute; top: -6px; left: -2px; width: 8px; height: 8px;
  background: radial-gradient(circle, #e0a060 0%, #c07030 60%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #c07030;
  animation: due-flame 2s ease-in-out infinite alternate;
}
.scn-notes-duessa .shadow {
  position: absolute; bottom: 0; left: 30%; width: 100px; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: due-shift 9s ease-in-out infinite alternate;
}
@keyframes due-pulse { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes due-still { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes due-veil { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes due-tilt { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes due-coil { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.1); } 100% { transform: rotate(-10deg) scaleY(1); } }
@keyframes due-flame { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.3) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes due-shift { 0% { transform: translateX(-5%); } 50% { transform: translateX(5%); } 100% { transform: translateX(-5%); } }

/* Scene: notes-broken-reliques */
.scn-notes-broken-reliques {
  background:
    radial-gradient(ellipse at 50% 30%, #2a2a2a 0%, transparent 70%),
    linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%);
}
.scn-notes-broken-reliques .arena-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(60,60,60,0.2) 0%, transparent 50%, rgba(60,60,60,0.2) 100%);
  animation: brk-haze 20s ease-in-out infinite alternate;
}
.scn-notes-broken-reliques .knight-left,
.scn-notes-broken-reliques .knight-right {
  position: absolute; bottom: 15%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.8);
}
.scn-notes-broken-reliques .knight-left { left: 25%; animation: brk-ride 3s ease-in-out infinite; }
.scn-notes-broken-reliques .knight-right { right: 25%; animation: brk-ride 3s ease-in-out infinite 0.5s; }
.scn-notes-broken-reliques .lance-shard {
  position: absolute; width: 6px; height: 30px;
  background: linear-gradient(180deg, #6a6a6a 0%, #3a3a3a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(255,255,255,0.2);
}
.scn-notes-broken-reliques .shard-1 { bottom: 18%; left: 40%; transform: rotate(30deg); animation: brk-shard 5s ease-in-out infinite; }
.scn-notes-broken-reliques .shard-2 { bottom: 22%; right: 40%; transform: rotate(-45deg); animation: brk-shard 6s ease-in-out infinite 1s; }
.scn-notes-broken-reliques .dust {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 8px;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,180,160,0.2) 0%, transparent 80%);
  filter: blur(3px);
  animation: brk-drift 10s ease-in-out infinite alternate;
}
@keyframes brk-haze { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes brk-ride { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes brk-shard { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes brk-drift { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }

.scn-knight-remembers-quest {
  background:
    linear-gradient(180deg, #d4b48c 0%, #c49a6c 40%, #a0784a 100%),
    radial-gradient(ellipse at 50% 100%, #e8c8a0 0%, transparent 70%);
}
.scn-knight-remembers-quest .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4b48c 0%, #c49a6c 100%);
  animation: krq-wall 12s ease-in-out infinite alternate;
}
.scn-knight-remembers-quest .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8986c 0%, #7a5a3a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
}
.scn-knight-remembers-quest .window {
  position: absolute; top: 12%; left: 50%; width: 90px; height: 130px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0d4f0 0%, #8ab8e0 100%);
  border: 8px solid #6a4a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: krq-window 8s ease-in-out infinite alternate;
}
.scn-knight-remembers-quest .sunbeam {
  position: absolute; top: 22%; left: 45%; width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(255,240,180,0.35) 0%, rgba(255,240,180,0.05) 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: krq-beam 6s ease-in-out infinite alternate;
}
.scn-knight-remembers-quest .knight {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: krq-knight 10s ease-in-out infinite;
}
.scn-knight-remembers-quest .table {
  position: absolute; bottom: 28%; left: 58%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a5030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-knight-remembers-quest .book {
  position: absolute; bottom: 34%; left: 62%; width: 24px; height: 32px;
  background: linear-gradient(180deg, #c8a86a 0%, #a08050 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: krq-book 4s ease-in-out infinite;
}
@keyframes krq-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes krq-window { 0% { box-shadow: inset 0 0 15px rgba(255,255,200,0.2); transform: translateX(-50%) scale(1); } 50% { box-shadow: inset 0 0 35px rgba(255,255,200,0.5); transform: translateX(-50%) scale(1.01); } 100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); transform: translateX(-50%) scale(0.99); } }
@keyframes krq-beam { 0% { opacity: 0.4; transform: skewX(-2deg); } 50% { opacity: 0.8; transform: skewX(2deg); } 100% { opacity: 0.5; transform: skewX(0deg); } }
@keyframes krq-knight { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes krq-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(0); } }

.scn-poet-concludes-voyage {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0d4f0 30%, #f0e8c0 60%, #d4c088 100%),
    radial-gradient(ellipse at 50% 100%, #d4c088 0%, transparent 60%);
}
.scn-poet-concludes-voyage .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0d0e8 0%, #d0e8f0 60%, #f0f0d0 100%);
  animation: pcv-sky 20s ease-in-out infinite alternate;
}
.scn-poet-concludes-voyage .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a8ab0 0%, #2a6a8a 100%);
  border-radius: 30% 20% 0 0;
  animation: pcv-sea 15s ease-in-out infinite;
}
.scn-poet-concludes-voyage .mountain {
  position: absolute; bottom: 35%; left: 10%; width: 200px; height: 80px;
  background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%);
  clip-path: polygon(0% 100%, 20% 0%, 50% 60%, 80% 0%, 100% 100%);
  opacity: 0.6;
}
.scn-poet-concludes-voyage .ship {
  position: absolute; bottom: 38%; left: 40%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  animation: pcv-ship 12s ease-in-out infinite alternate;
}
.scn-poet-concludes-voyage .sail {
  position: absolute; bottom: 45%; left: 42%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8a0 100%);
  clip-path: polygon(0 0, 100% 10%, 100% 80%, 0 100%);
  animation: pcv-sail 8s ease-in-out infinite;
}
.scn-poet-concludes-voyage .flag {
  position: absolute; bottom: 48%; left: 38%; width: 12px; height: 18px;
  background: #c8a060;
  border-radius: 2px;
  animation: pcv-flag 3s ease-in-out infinite alternate;
}
.scn-poet-concludes-voyage .gull-1 {
  position: absolute; top: 15%; left: 20%; width: 30px; height: 8px;
  background: transparent;
  border-top: 3px solid #2a2a2a;
  border-left: 3px solid transparent;
  border-right: 3px solid transparent;
  transform: rotate(10deg);
  filter: blur(0.5px);
  animation: pcv-gull1 25s linear infinite;
}
.scn-poet-concludes-voyage .gull-2 {
  position: absolute; top: 10%; right: 25%; width: 24px; height: 7px;
  background: transparent;
  border-top: 2px solid #2a2a2a;
  border-left: 2px solid transparent;
  border-right: 2px solid transparent;
  transform: rotate(-15deg);
  animation: pcv-gull2 30s linear infinite reverse;
}
@keyframes pcv-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes pcv-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(2px) } }
@keyframes pcv-ship { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(10px) rotate(0deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes pcv-sail { 0% { clip-path: polygon(0 0, 100% 10%, 100% 80%, 0 100%); } 50% { clip-path: polygon(0 5%, 100% 0%, 100% 85%, 0 95%); } 100% { clip-path: polygon(0 0, 100% 10%, 100% 80%, 0 100%); } }
@keyframes pcv-flag { 0% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes pcv-gull1 { 0% { transform: translateX(-40px) rotate(10deg) } 100% { transform: translateX(120vw) rotate(10deg) } }
@keyframes pcv-gull2 { 0% { transform: translateX(40px) rotate(-15deg) } 100% { transform: translateX(-120vw) rotate(-15deg) } }

.scn-notes-vergilian-imitation {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-notes-vergilian-imitation .wall-dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: nvi-wall 15s ease-in-out infinite alternate;
}
.scn-notes-vergilian-imitation .desk {
  position: absolute; bottom: 18%; left: 30%; width: 140px; height: 25px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3018 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-notes-vergilian-imitation .candle {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #d4b88c 0%, #b8986c 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-notes-vergilian-imitation .flame {
  position: absolute; bottom: 50%; left: 45.5%; width: 10px; height: 18px;
  background: radial-gradient(circle at 50% 50%, #ffd070 0%, #e0a030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,200,80,0.6), 0 0 40px 12px rgba(255,200,80,0.3);
  animation: nvi-flame 2s ease-in-out infinite alternate;
}
.scn-notes-vergilian-imitation .scroll {
  position: absolute; bottom: 20%; left: 38%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #d0c090 0%, #a08860 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: nvi-scroll 6s ease-in-out infinite;
}
.scn-notes-vergilian-imitation .quill {
  position: absolute; bottom: 30%; left: 48%; width: 4px; height: 30px;
  background: #8a6a4a;
  clip-path: polygon(50% 100%, 0% 20%, 100% 20%);
  transform: rotate(-30deg);
  animation: nvi-quill 4s ease-in-out infinite alternate;
}
.scn-notes-vergilian-imitation .shadow-fig {
  position: absolute; bottom: 20%; right: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  opacity: 0.4;
  animation: nvi-fig 8s ease-in-out infinite;
}
@keyframes nvi-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes nvi-flame { 0% { transform: scaleY(0.9) rotate(-3deg); box-shadow: 0 0 15px 4px rgba(255,200,80,0.5), 0 0 30px 8px rgba(255,200,80,0.2); } 50% { transform: scaleY(1.1) rotate(3deg); box-shadow: 0 0 25px 8px rgba(255,200,80,0.7), 0 0 50px 16px rgba(255,200,80,0.4); } 100% { transform: scaleY(0.95) rotate(-2deg); box-shadow: 0 0 18px 5px rgba(255,200,80,0.5), 0 0 35px 10px rgba(255,200,80,0.25); } }
@keyframes nvi-scroll { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(6deg) translateY(0); } }
@keyframes nvi-quill { 0% { transform: rotate(-30deg) translateY(0); } 100% { transform: rotate(-25deg) translateY(-2px); } }
@keyframes nvi-fig { 0% { transform: translateX(0) rotate(0deg); opacity: 0.35; } 50% { transform: translateX(2px) rotate(2deg); opacity: 0.45; } 100% { transform: translateX(-2px) rotate(-2deg); opacity: 0.4; } }

.scn-notes-faerie-knights {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a2a 0%, transparent 80%);
}
.scn-notes-faerie-knights .wall-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  animation: nfk-wall 18s ease-in-out infinite alternate;
}
.scn-notes-faerie-knights .tapestry {
  position: absolute; inset: 10% 15% 15% 15%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a2a1a 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-notes-faerie-knights .frame {
  position: absolute; inset: 8% 13% 13% 13%;
  border: 8px solid #6a4a2a;
  border-radius: 6px;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
}
.scn-notes-faerie-knights .knight-fig {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nfk-knight 8s ease-in-out infinite alternate;
}
.scn-notes-faerie-knights .queen-fig {
  position: absolute; bottom: 30%; right: 30%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nfk-queen 10s ease-in-out infinite alternate;
}
.scn-notes-faerie-knights .light-spot {
  position: absolute; top: 20%; left: 45%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(240,200,120,0.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: nfk-light 12s ease-in-out infinite alternate;
}
@keyframes nfk-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes nfk-knight { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(0deg); } 100% { transform: translateX(-4px) rotate(2deg); } }
@keyframes nfk-queen { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(3px) rotate(-2deg); } }
@keyframes nfk-light { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.95); } }

.scn-house-of-pride-return {
  background:
    radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 70%),
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 50%, #1a0a1a 100%);
}
.scn-house-of-pride-return .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-bottom: 2px solid #3a2a3a;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
  animation: hir-wall 20s ease-in-out infinite;
}
.scn-house-of-pride-return .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,.7);
}
.scn-house-of-pride-return .couch {
  position: absolute; bottom: 20%; left: 25%; width: 45%; height: 18%;
  background: linear-gradient(180deg, #4a2a2a 0%, #3a1a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: hir-couch 12s ease-in-out infinite alternate;
}
.scn-house-of-pride-return .knight {
  position: absolute; bottom: 22%; left: 35%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hir-knight 8s ease-in-out infinite;
}
.scn-house-of-pride-return .duessa {
  position: absolute; bottom: 20%; right: 20%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #4a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hir-duessa 6s ease-in-out infinite alternate;
}
.scn-house-of-pride-return .candle {
  position: absolute; bottom: 30%; left: 50%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #c0a070 0%, #806040 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  animation: hir-candle 4s ease-in-out infinite alternate;
}
.scn-house-of-pride-return .candle-glow {
  position: absolute; bottom: 28%; left: 50%; width: 12%; height: 16%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: hir-glow 3s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-house-of-pride-return .window {
  position: absolute; top: 15%; right: 10%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #1a3a5a 0%, #0a1a2a 100%);
  border: 2px solid #2a2a3a;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: hir-window 30s ease-in-out infinite;
}

@keyframes hir-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes hir-couch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes hir-knight { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2%) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2%) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hir-duessa { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-5%) translateY(-2%) } 100% { transform: translateX(0) translateY(0) } }
@keyframes hir-candle { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.15) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes hir-glow { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes hir-window { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .3 } }

.scn-house-of-pride-dungeon {
  background:
    radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%),
    linear-gradient(180deg, #0a0a12 0%, #1a1a2a 50%, #0a0a0a 100%);
}
.scn-house-of-pride-dungeon .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-bottom: 2px solid #2a2a3a;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.8);
}
.scn-house-of-pride-dungeon .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a0a12 0%, #05050a 100%);
  box-shadow: inset 0 -10px 30px #000;
}
.scn-house-of-pride-dungeon .bars {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 50%;
  background: repeating-linear-gradient(90deg, transparent 0%, transparent 8%, #3a3a4a 8%, #3a3a4a 10%, transparent 10%, transparent 18%);
  border: 2px solid #2a2a3a;
  border-radius: 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: hip-bars 15s ease-in-out infinite alternate;
}
.scn-house-of-pride-dungeon .torch {
  position: absolute; bottom: 25%; left: 10%; width: 5%; height: 12%;
  background: linear-gradient(180deg, #806040 0%, #402820 100%);
  border-radius: 20% 20% 10% 10%;
  animation: hip-torch 4s ease-in-out infinite alternate;
}
.scn-house-of-pride-dungeon .torch-glow {
  position: absolute; bottom: 20%; left: 10%; width: 15%; height: 25%;
  background: radial-gradient(circle, #d08040 0%, #804020 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: hip-glow 3s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-house-of-pride-dungeon .figure {
  position: absolute; bottom: 15%; left: 50%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hip-figure 10s ease-in-out infinite alternate;
}
.scn-house-of-pride-dungeon .chain {
  position: absolute; bottom: 30%; left: 55%; width: 20%; height: 4%;
  background: repeating-linear-gradient(90deg, #4a4a5a 0%, #4a4a5a 4%, transparent 4%, transparent 8%);
  border-radius: 2px;
  animation: hip-chain 5s ease-in-out infinite alternate;
}

@keyframes hip-bars { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes hip-torch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } 100% { transform: scaleY(1) } }
@keyframes hip-glow { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes hip-figure { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(5%) translateY(-2%) } 100% { transform: translateX(-5%) translateY(0) } }
@keyframes hip-chain { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

.scn-house-of-pride-escape {
  background:
    radial-gradient(ellipse at 50% 0%, #2a4a6a 0%, transparent 50%),
    linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 50%, #1a1a2a 100%);
}
.scn-house-of-pride-escape .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  animation: hpe-sky 30s ease-in-out infinite;
}
.scn-house-of-pride-escape .moon {
  position: absolute; top: 8%; right: 20%; width: 10%; height: 10%;
  background: radial-gradient(circle, #c0d0e0 0%, #8090b0 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(192,208,224,.3);
  animation: hpe-moon 8s ease-in-out infinite alternate;
}
.scn-house-of-pride-escape .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-house-of-pride-escape .corpse {
  position: absolute; bottom: 8%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  animation: hpe-corpse 20s ease-in-out infinite alternate;
}
.scn-house-of-pride-escape .corpse-1 { left: 20%; animation-delay: 0s; }
.scn-house-of-pride-escape .corpse-2 { left: 40%; width: 10%; height: 6%; animation-delay: -5s; }
.scn-house-of-pride-escape .corpse-3 { left: 65%; width: 14%; height: 9%; animation-delay: -10s; }
.scn-house-of-pride-escape .figure {
  position: absolute; bottom: 15%; left: 30%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hpe-figure 6s ease-in-out infinite alternate;
}
.scn-house-of-pride-escape .hill {
  position: absolute; bottom: 30%; right: 5%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: hpe-hill 30s ease-in-out infinite;
}

@keyframes hpe-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes hpe-moon { 0% { transform: translateY(0) } 50% { transform: translateY(-5%) } 100% { transform: translateY(0) } }
@keyframes hpe-corpse { 0% { transform: scaleX(.95) rotate(-2deg) } 50% { transform: scaleX(1.05) rotate(2deg) } 100% { transform: scaleX(.95) rotate(-2deg) } }
@keyframes hpe-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(10%) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes hpe-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

.scn-forest-una-captivity {
  background:
    radial-gradient(ellipse at 50% 0%, #d0e8c0 0%, transparent 60%),
    linear-gradient(180deg, #8ab87a 0%, #4a6a3a 50%, #2a4a2a 100%);
}
.scn-forest-una-captivity .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0d0b0 0%, #80b890 100%);
  animation: fuc-sky 20s ease-in-out infinite alternate;
}
.scn-forest-una-captivity .sun {
  position: absolute; top: 5%; left: 20%; width: 12%; height: 12%;
  background: radial-gradient(circle, #fff0c0 0%, #f0e0a0 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,224,160,.4);
  animation: fuc-sun 10s ease-in-out infinite alternate;
}
.scn-forest-una-captivity .trees {
  position: absolute; bottom: 0; width: 100%; height: 60%;
}
.scn-forest-una-captivity .trees-back {
  background: repeating-linear-gradient(90deg, #3a5a3a 0%, #3a5a3a 8%, transparent 8%, transparent 12%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: fuc-trees-back 40s ease-in-out infinite alternate;
}
.scn-forest-una-captivity .trees-mid {
  top: 5%;
  background: repeating-linear-gradient(90deg, #4a6a3a 0%, #4a6a3a 10%, transparent 10%, transparent 14%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: fuc-trees-mid 30s ease-in-out infinite alternate;
}
.scn-forest-una-captivity .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
}
.scn-forest-una-captivity .una {
  position: absolute; bottom: 20%; left: 45%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #c0d0c0 0%, #a0b0a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fuc-una 8s ease-in-out infinite alternate;
}
.scn-forest-una-captivity .savage {
  position: absolute; bottom: 15%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fuc-savage 6s ease-in-out infinite alternate;
}
.scn-forest-una-captivity .savage-1 { left: 20%; animation-delay: 0s; }
.scn-forest-una-captivity .savage-2 { left: 30%; width: 10%; height: 22%; animation-delay: -2s; }
.scn-forest-una-captivity .savage-3 { left: 60%; width: 13%; height: 28%; animation-delay: -4s; }

@keyframes fuc-sky { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes fuc-sun { 0% { transform: scale(.95) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }
@keyframes fuc-trees-back { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes fuc-trees-mid { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes fuc-una { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5%) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes fuc-savage { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-5%) rotate(3deg) } 100% { transform: translateY(0) rotate(-3deg) } }

/* six-beasts-of-coach */
.scn-six-beasts-of-coach {
  background: linear-gradient(180deg, #f7e7b0 0%, #e8c87a 40%, #d4a050 100%),
              radial-gradient(ellipse at 30% 20%, #fff5d0 0%, transparent 60%);
}
.scn-six-beasts-of-coach .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b8d4f0 0%, #f7e7b0 100%); animation: sbc-sky 12s ease-in-out infinite alternate; }
.scn-six-beasts-of-coach .sun { position:absolute; top:12%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #fff5d0 0%, #f0d080 60%, transparent 100%); border-radius:50%; box-shadow:0 0 40px 20px rgba(240,208,128,.5); animation: sbc-sun 6s ease-in-out infinite alternate; }
.scn-six-beasts-of-coach .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7a9a5a 0%, #4a6a3a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-six-beasts-of-coach .coach { position:absolute; bottom:40%; left:55%; width:100px; height:60px; background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:20% 20% 30% 30%; box-shadow:0 4px 8px rgba(0,0,0,.3); transform-origin: bottom center; animation: sbc-coach 3s ease-in-out infinite; }
.scn-six-beasts-of-coach .beast { position:absolute; bottom:38%; width:40px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:40% 60% 30% 30%; transform-origin: bottom center; }
.scn-six-beasts-of-coach .beast1 { left:8%; animation: sbc-beast 4s ease-in-out infinite; }
.scn-six-beasts-of-coach .beast2 { left:16%; animation: sbc-beast 4s ease-in-out infinite 0.2s; }
.scn-six-beasts-of-coach .beast3 { left:24%; animation: sbc-beast 4s ease-in-out infinite 0.4s; }
.scn-six-beasts-of-coach .beast4 { left:32%; animation: sbc-beast 4s ease-in-out infinite 0.6s; }
.scn-six-beasts-of-coach .beast5 { left:40%; animation: sbc-beast 4s ease-in-out infinite 0.8s; }
.scn-six-beasts-of-coach .beast6 { left:48%; animation: sbc-beast 4s ease-in-out infinite 1.0s; }
@keyframes sbc-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes sbc-sun { 0% { transform: scale(0.95); opacity:0.8; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.9; } }
@keyframes sbc-coach { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-2px) translateY(-1px) rotate(0.5deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sbc-beast { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(2deg); } 75% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }

/* idlenesse */
.scn-idlenesse {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 40%, #1a0c02 100%),
              radial-gradient(circle at 60% 30%, #d4a050 0%, transparent 50%);
}
.scn-idlenesse .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius:0 0 20% 20%; box-shadow: inset 0 -10px 30px rgba(0,0,0,.3); }
.scn-idlenesse .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0c02 100%); border-radius: 20% 20% 0 0; }
.scn-idlenesse .bed { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:10% 10% 20% 20%; box-shadow:0 4px 12px rgba(0,0,0,.5); }
.scn-idlenesse .figure { position:absolute; bottom:30%; left:35%; width:60px; 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: idl-figure 5s ease-in-out infinite; }
.scn-idlenesse .pillow { position:absolute; bottom:48%; left:38%; width:30px; height:15px; background: radial-gradient(ellipse, #8a7a6a 0%, #5a4a3a 100%); border-radius:50%; transform:rotate(10deg); animation: idl-pillow 6s ease-in-out infinite alternate; }
.scn-idlenesse .blanket { position:absolute; bottom:28%; left:15%; right:30%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:0 0 30% 30%; transform:rotate(-3deg); animation: idl-blanket 8s ease-in-out infinite alternate; }
.scn-idlenesse .shadow { position:absolute; bottom:20%; left:30%; right:20%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); filter: blur(8px); animation: idl-shadow 6s ease-in-out infinite alternate; }
@keyframes idl-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes idl-pillow { 0% { transform: translateY(0) rotate(10deg) scale(1); } 50% { transform: translateY(-2px) rotate(12deg) scale(1.02); } 100% { transform: translateY(0) rotate(10deg) scale(1); } }
@keyframes idl-blanket { 0% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(-1deg) scaleY(1.05); } 100% { transform: rotate(-3deg) scaleY(1); } }
@keyframes idl-shadow { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.4; transform: scaleX(1); } }

/* gluttony */
.scn-gluttony {
  background: linear-gradient(180deg, #f7c87a 0%, #d4a050 40%, #a08030 100%),
              radial-gradient(ellipse at 40% 20%, #ffeca0 0%, transparent 60%);
}
.scn-gluttony .sky-glt { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c0d4f0 0%, #f7c87a 100%); animation: glt-sky 10s ease-in-out infinite alternate; }
.scn-gluttony .sun-glt { position:absolute; top:10%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #fff0a0 0%, #f0c060 60%, transparent 100%); border-radius:50%; box-shadow:0 0 60px 30px rgba(240,192,96,.4); animation: glt-sun 8s ease-in-out infinite alternate; }
.scn-gluttony .mountain { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; }
.scn-gluttony .ground-glt { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius:40% 60% 0 0 / 30% 40% 0 0; }
.scn-gluttony .pig { position:absolute; bottom:20%; left:30%; width:80px; height:50px; background: radial-gradient(ellipse, #b87878 0%, #8a5858 100%); border-radius:40% 60% 30% 40%; box-shadow:0 4px 10px rgba(0,0,0,.3); animation: glt-pig 4s ease-in-out infinite; }
.scn-gluttony .rider { position:absolute; bottom:45%; left:33%; width:40px; height:60px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: glt-rider 4s ease-in-out infinite; }
.scn-gluttony .belly { position:absolute; bottom:40%; left:35%; width:50px; height:40px; background: radial-gradient(ellipse, #c8553d 0%, #a0461a 100%); border-radius:50%; box-shadow:inset 0 -5px 10px rgba(0,0,0,.3); animation: glt-belly 3s ease-in-out infinite alternate; }
.scn-gluttony .vomit { position:absolute; bottom:58%; left:32%; width:20px; height:10px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:50% 50% 30% 30%; transform:rotate(20deg); animation: glt-vomit 5s ease-in-out infinite; }
@keyframes glt-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes glt-sun { 0% { transform: scale(0.95); opacity:0.9; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.9; } }
@keyframes glt-pig { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes glt-rider { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes glt-belly { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes glt-vomit { 0% { transform: translateY(0) rotate(20deg) scale(1); opacity:0.8; } 50% { transform: translateY(-5px) rotate(25deg) scale(1.1); opacity:1; } 100% { transform: translateY(0) rotate(20deg) scale(1); opacity:0.8; } }

/* gluttony-described */
.scn-gluttony-described {
  background: linear-gradient(180deg, #c8a85a 0%, #b08840 40%, #906830 100%),
              radial-gradient(circle at 60% 40%, #ffe0a0 0%, transparent 70%);
}
.scn-gluttony-described .bg-gld { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); opacity:0.3; animation: gld-bg 12s ease-in-out infinite alternate; }
.scn-gluttony-described .torso { position:absolute; bottom:15%; left:20%; right:20%; height:55%; background: linear-gradient(180deg, #a0461a 0%, #702243 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow:0 8px 20px rgba(0,0,0,.4); animation: gld-torso 6s ease-in-out infinite alternate; }
.scn-gluttony-described .head { position:absolute; bottom:60%; left:30%; right:30%; height:35%; background: linear-gradient(180deg, #b87878 0%, #a0461a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: gld-head 4s ease-in-out infinite; }
.scn-gluttony-described .ivy-crown { position:absolute; top:2%; left:25%; right:25%; height:10%; background: radial-gradient(ellipse, #4a7a3a 0%, #2a5a1a 100%); border-radius:50%; filter:blur(2px); animation: gld-ivy 5s ease-in-out infinite alternate; }
.scn-gluttony-described .sweat-drop { position:absolute; top:30%; left:40%; width:8px; height:12px; background: radial-gradient(circle, #d0d0d0 0%, #a0a0a0 100%); border-radius:50% 50% 40% 40%; animation: gld-sweat 3s ease-in-out infinite; }
.scn-gluttony-described .sweat-drop2 { position:absolute; top:35%; left:55%; width:6px; height:10px; background: radial-gradient(circle, #d0d0d0 0%, #a0a0a0 100%); border-radius:50% 50% 40% 40%; animation: gld-sweat 3s ease-in-out infinite 1.5s; }
.scn-gluttony-described .mouth { position:absolute; bottom:45%; left:40%; right:40%; height:8%; background: #2a1a0a; border-radius:0 0 50% 50%; animation: gld-mouth 2s ease-in-out infinite alternate; }
@keyframes gld-bg { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }
@keyframes gld-torso { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes gld-head { 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 gld-ivy { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes gld-sweat { 0% { transform: translateY(0) opacity:1; } 50% { transform: translateY(8px) opacity:0.5; } 100% { transform: translateY(16px) opacity:0; } }
@keyframes gld-mouth { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.3) scaleY(0.8); } 100% { transform: scaleX(1); } }

.scn-item-wedding-rites {
  background: linear-gradient(135deg, #2c1a0e 0%, #4a2e1a 50%, #1f1008 100%), radial-gradient(ellipse at 50% 60%, #7a3e1e 0%, transparent 70%);
  overflow: hidden;
}
.scn-item-wedding-rites .chamber-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 70%, #8a4a2a 0%, #2c1a0e 70%); opacity: 0.8;
  animation: wr-chamber-pulse 8s ease-in-out infinite alternate;
}
.scn-item-wedding-rites .fire-base {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #ff6600 0%, #cc4400 40%, #882200 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #ff6600, 0 0 60px 20px rgba(255,102,0,0.4);
  animation: wr-fire 2s ease-in-out infinite alternate;
}
.scn-item-wedding-rites .fire-embers {
  position: absolute; bottom: 32%; left: 30%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffaa33 0%, transparent 100%);
  filter: blur(6px); animation: wr-embers 1.5s ease-in-out infinite alternate;
}
.scn-item-wedding-rites .lamp-glow {
  position: absolute; top: 15%; right: 25%; width: 16px; height: 24px;
  background: radial-gradient(circle, #ffeebb 0%, #dda822 50%, transparent 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 0 40px 15px #dda822, 0 0 80px 30px rgba(221,168,34,0.3);
  animation: wr-lamp 3s ease-in-out infinite alternate;
}
.scn-item-wedding-rites .holy-water {
  position: absolute; bottom: 18%; left: 55%; width: 28px; height: 14px;
  background: linear-gradient(180deg, #b8d8f0 0%, #7090c0 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 12px 3px #a0c8ff, inset 0 2px 4px rgba(255,255,255,0.5);
  animation: wr-water 4s ease-in-out infinite;
}
.scn-item-wedding-rites .figure-kneel {
  position: absolute; bottom: 14%; left: 42%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wr-kneel 6s ease-in-out infinite alternate;
}
.scn-item-wedding-rites .altar-shadow {
  position: absolute; bottom: 8%; left: 40%; width: 60px; height: 12px;
  background: #0a0604; border-radius: 50%; filter: blur(4px); opacity: 0.4;
}
@keyframes wr-chamber-pulse { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes wr-fire { 0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9; box-shadow: 0 0 25px 8px #ff6600; } 50% { transform: scaleY(1.1) rotate(3deg); opacity: 1; box-shadow: 0 0 45px 15px #ff6600; } 100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.85; box-shadow: 0 0 20px 5px #cc4400; } }
@keyframes wr-embers { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-12px) scale(1.3); opacity: 0.9; } 100% { transform: translateY(2px) scale(0.8); opacity: 0.4; } }
@keyframes wr-lamp { 0% { opacity: 0.8; box-shadow: 0 0 30px 10px #dda822; } 50% { opacity: 1; box-shadow: 0 0 50px 20px #ffeebb; } 100% { opacity: 0.85; box-shadow: 0 0 35px 12px #dda822; } }
@keyframes wr-water { 0% { transform: translateY(0); opacity: 0.5; } 25% { transform: translateY(-2px); opacity: 0.7; } 50% { transform: translateY(1px); opacity: 0.8; } 75% { transform: translateY(-3px); opacity: 0.6; } 100% { transform: translateY(0); opacity: 0.5; } }
@keyframes wr-kneel { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-wedding-feast-preparations {
  background: linear-gradient(180deg, #6a3c1a 0%, #8a5a2e 40%, #4a2810 100%), radial-gradient(ellipse at 50% 80%, #6a2e0a 0%, transparent 70%);
  overflow: hidden;
}
.scn-wedding-feast-preparations .hall-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, #9a6a3a 0%, #3a2010 80%);
}
.scn-wedding-feast-preparations .wine-splash {
  position: absolute; top: 30%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #a03020 0%, #701810 50%, transparent 100%);
  border-radius: 50%; filter: blur(8px); animation: wp-wine 3s ease-in-out infinite alternate;
}
.scn-wedding-feast-preparations .incense-smoke {
  position: absolute; top: 20%; right: 30%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.4) 0%, transparent 100%);
  filter: blur(12px); animation: wp-smoke 8s ease-in-out infinite alternate;
}
.scn-wedding-feast-preparations .musician-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 50px;
  background: #1a1008; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: wp-musician 2s ease-in-out infinite;
}
.scn-wedding-feast-preparations .post-left {
  position: absolute; bottom: 0; left: 10%; width: 8px; height: 100%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 4px;
}
.scn-wedding-feast-preparations .post-right {
  position: absolute; bottom: 0; right: 10%; width: 8px; height: 100%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 4px;
  animation: wp-post 6s ease-in-out infinite alternate;
}
.scn-wedding-feast-preparations .table-prep {
  position: absolute; bottom: 12%; left: 25%; width: 50%; height: 16px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
@keyframes wp-wine { 0% { transform: translate(0,0) scale(1); opacity: 0.3; } 50% { transform: translate(10px,-8px) scale(1.4); opacity: 0.7; } 100% { transform: translate(5px,4px) scale(0.9); opacity: 0.4; } }
@keyframes wp-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.2; } 50% { transform: translateY(-20px) scale(1.2); opacity: 0.5; } 100% { transform: translateY(10px) scale(0.8); opacity: 0.1; } }
@keyframes wp-musician { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(2px) rotate(5deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wp-post { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

.scn-heavenly-music {
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b08a 50%, #a08060 100%), radial-gradient(ellipse at 50% 30%, #ffeedd 0%, transparent 70%);
  overflow: hidden;
}
.scn-heavenly-music .palace-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, #f0e0c0 0%, #b09070 80%);
}
.scn-heavenly-music .light-rays {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, transparent 60%);
  clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%);
  animation: hm-rays 7s ease-in-out infinite alternate;
}
.scn-heavenly-music .angel-left {
  position: absolute; bottom: 20%; left: 15%; width: 30px; height: 50px;
  background: #1a1008; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: hm-angel-l 4s ease-in-out infinite alternate;
}
.scn-heavenly-music .angel-right {
  position: absolute; bottom: 20%; right: 15%; width: 30px; height: 50px;
  background: #1a1008; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: hm-angel-r 4s ease-in-out infinite alternate-reverse;
}
.scn-heavenly-music .angel-center {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom; animation: hm-angel-c 6s ease-in-out infinite;
}
.scn-heavenly-music .music-note-a {
  position: absolute; top: 25%; left: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle, #dda822 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px); animation: hm-note-a 5s ease-in-out infinite;
}
.scn-heavenly-music .music-note-b {
  position: absolute; top: 35%; right: 25%; width: 16px; height: 16px;
  background: radial-gradient(circle, #dda822 0%, transparent 100%);
  border-radius: 50%; filter: blur(3px); animation: hm-note-b 6s ease-in-out infinite alternate;
}
.scn-heavenly-music .glory-core {
  position: absolute; top: 15%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff4e0 0%, #ffddaa 40%, transparent 100%);
  border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 60px 30px #ffddaa, 0 0 120px 60px rgba(255,221,170,0.3);
  animation: hm-glory 3s ease-in-out infinite alternate;
}
@keyframes hm-rays { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes hm-angel-l { 0% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(3px) rotate(3deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hm-angel-r { 0% { transform: translateX(0) rotate(2deg); } 33% { transform: translateX(-3px) rotate(-3deg); } 66% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hm-angel-c { 0% { transform: scaleY(1); } 25% { transform: scaleY(1.05) translateY(-2px); } 50% { transform: scaleY(0.95); } 75% { transform: scaleY(1.02) translateY(1px); } 100% { transform: scaleY(1); } }
@keyframes hm-note-a { 0% { transform: translate(0,0) scale(0.8); opacity: 0.2; } 50% { transform: translate(10px,-15px) scale(1.2); opacity: 0.8; } 100% { transform: translate(-5px,5px) scale(0.6); opacity: 0.1; } }
@keyframes hm-note-b { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-8px,12px) rotate(10deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes hm-glory { 0% { transform: translateX(-50%) scale(1); opacity: 0.8; box-shadow: 0 0 50px 20px #ffddaa; } 50% { transform: translateX(-50%) scale(1.15); opacity: 1; box-shadow: 0 0 80px 40px #fff4e0; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.7; box-shadow: 0 0 40px 15px #ffddaa; } }

.scn-wedding-joy {
  background: linear-gradient(180deg, #c8a870 0%, #a08050 50%, #605030 100%), radial-gradient(ellipse at 50% 50%, #f0d8a0 0%, transparent 70%);
  overflow: hidden;
}
.scn-wedding-joy .banquet-hall {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, #e0c8a0 0%, #806040 80%);
}
.scn-wedding-joy .knight-silhouette {
  position: absolute; bottom: 20%; left: 30%; width: 25px; height: 55px;
  background: #1a1208; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: wj-knight 3s ease-in-out infinite;
}
.scn-wedding-joy .lady-silhouette {
  position: absolute; bottom: 20%; right: 30%; width: 22px; height: 50px;
  background: #2a1a10; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: wj-lady 3.5s ease-in-out infinite alternate;
}
.scn-wedding-joy .feast-table {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 14px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-wedding-joy .banner-left {
  position: absolute; top: 10%; left: 10%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #b06030 0%, #804020 100%); border-radius: 4px;
  animation: wj-banner-l 4s ease-in-out infinite alternate;
}
.scn-wedding-joy .banner-right {
  position: absolute; top: 10%; right: 10%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #b06030 0%, #804020 100%); border-radius: 4px;
  animation: wj-banner-r 4s ease-in-out infinite alternate-reverse;
}
.scn-wedding-joy .confetti-a {
  position: absolute; top: 20%; left: 25%; width: 8px; height: 8px;
  background: #dda040; border-radius: 2px; animation: wj-confetti 5s ease-in-out infinite;
}
.scn-wedding-joy .confetti-b {
  position: absolute; top: 30%; right: 35%; width: 6px; height: 6px;
  background: #c08030; border-radius: 2px; animation: wj-confetti 4s ease-in-out infinite alternate;
}
.scn-wedding-joy .confetti-c {
  position: absolute; top: 15%; left: 60%; width: 10px; height: 10px;
  background: #e0b050; border-radius: 2px; animation: wj-confetti 6s ease-in-out infinite alternate-reverse;
}
@keyframes wj-knight { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wj-lady { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wj-banner-l { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes wj-banner-r { 0% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(3deg); } }
@keyframes wj-confetti { 0% { transform: translateY(0) rotate(0deg); opacity: 0.5; } 50% { transform: translateY(-20px) rotate(180deg); opacity: 1; } 100% { transform: translateY(0) rotate(360deg); opacity: 0.3; } }

/* Scene: avarice-wretched (aw) */
.scn-avarice-wretched { background: linear-gradient(180deg, #ffe4a0 0%, #b8864a 40%, #5a3a1a 80%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #ffe4a0 0%, transparent 70%); }
.scn-avarice-wretched .aw-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffd27a 0%, #d4a05a 40%, transparent 100%); animation: aw-sky 12s ease-in-out infinite alternate; }
.scn-avarice-wretched .aw-mountains { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6b4a2a 0%, #3a2a15 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: aw-mountains 20s ease-in-out infinite alternate; }
.scn-avarice-wretched .aw-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a301a 0%, #1a100a 100%); }
.scn-avarice-wretched .aw-goldpile { position:absolute; bottom:18%; left:40%; width:30%; height:22%; background: radial-gradient(circle at 30% 30%, #f0b030 0%, #b87820 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 30px 10px #ffd060; animation: aw-gold 4s ease-in-out infinite alternate; }
.scn-avarice-wretched .aw-figure { position:absolute; bottom:20%; left:48%; width:12%; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aw-figure 6s ease-in-out infinite; }
.scn-avarice-wretched .aw-coins { position:absolute; bottom:16%; left:35%; width:8%; height:4%; background: repeating-linear-gradient(45deg, #f0b030 0px, #f0b030 4px, #d09020 4px, #d09020 8px); border-radius: 50%; animation: aw-coins 3s ease-in-out infinite alternate; }
.scn-avarice-wretched .aw-cloud { position:absolute; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius: 50%; filter: blur(6px); }
.scn-avarice-wretched .aw-cloud-1 { top:8%; left:10%; width:16%; height:6%; animation: aw-cloud-drift 40s linear infinite; }
.scn-avarice-wretched .aw-cloud-2 { top:15%; right:20%; width:12%; height:5%; animation: aw-cloud-drift 55s linear infinite reverse; animation-delay: -10s; }
.scn-avarice-wretched .aw-cloud-3 { top:20%; left:30%; width:10%; height:4%; animation: aw-cloud-drift 35s linear infinite; animation-delay: -20s; }
@keyframes aw-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes aw-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes aw-gold { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.05) scaleY(1.02) } 100% { transform: scaleX(1) scaleY(1) } }
@keyframes aw-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3%) rotate(0deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3%) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes aw-coins { 0% { opacity:.6; transform: translateY(0) } 50% { opacity:1; transform: translateY(-2px) } 100% { opacity:.6; transform: translateY(0) } }
@keyframes aw-cloud-drift { 0% { transform: translateX(-20%) } 100% { transform: translateX(120vw) } }

/* Scene: envie (ev) */
.scn-envie { background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 30%, #4a5a2a 60%, #6a7a4a 100%), radial-gradient(ellipse at 50% 50%, #7a8a4a 0%, transparent 60%); }
.scn-envie .ev-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%); animation: ev-bg 15s ease-in-out infinite alternate; }
.scn-envie .ev-wolf { position:absolute; bottom:20%; left:10%; width:35%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%; transform-origin: center; animation: ev-wolf 8s ease-in-out infinite; }
.scn-envie .ev-rider { position:absolute; bottom:35%; left:20%; width:12%; height:25%; background: linear-gradient(180deg, #1a2a0a 0%, #0a1a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: ev-rider 8s ease-in-out infinite; }
.scn-envie .ev-toad { position:absolute; bottom:30%; left:32%; width:8%; height:6%; background: radial-gradient(circle, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50%; transform: rotate(10deg); animation: ev-toad 4s ease-in-out infinite alternate; }
.scn-envie .ev-snake { position:absolute; bottom:22%; left:25%; width:6%; height:20%; background: linear-gradient(180deg, #4a6a2a 0%, #2a4a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform-origin: top; animation: ev-snake 6s ease-in-out infinite; }
.scn-envie .ev-shadow { position:absolute; bottom:10%; left:8%; width:40%; height:8%; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(8px); animation: ev-shadow 8s ease-in-out infinite; }
.scn-envie .ev-dust { position:absolute; bottom:15%; left:5%; width:3%; height:3%; background: radial-gradient(circle, #8a7a5a 0%, transparent 100%); border-radius: 50%; animation: ev-dust 7s linear infinite; }
@keyframes ev-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ev-wolf { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5%) rotate(0deg) } 50% { transform: translateX(10%) rotate(1deg) } 75% { transform: translateX(5%) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ev-rider { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(5%) translateY(-2%) } 50% { transform: translateX(10%) translateY(0) } 75% { transform: translateX(5%) translateY(-2%) } 100% { transform: translateX(0) translateY(0) } }
@keyframes ev-toad { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(15deg) scale(1.05) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes ev-snake { 0% { transform: rotate(0) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0) } }
@keyframes ev-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.2) } 100% { opacity:.3; transform: scaleX(1) } }
@keyframes ev-dust { 0% { opacity:1; transform: translateY(0) scale(1) } 100% { opacity:0; transform: translateY(-50px) scale(0) } }

/* Scene: envie-described (evd) */
.scn-envie-described { background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 40%, #1a1a2a 80%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #4a4a6a 0%, transparent 70%); }
.scn-envie-described .evd-room { position:absolute; inset:5% 10% 5% 10%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: evd-room 20s ease-in-out infinite alternate; }
.scn-envie-described .evd-goldheaps { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: repeating-linear-gradient(0deg, #f0b030 0px, #f0b030 8px, #d09020 8px, #d09020 16px); border-radius: 20% 20% 0 0; box-shadow: 0 0 40px 10px #ffd060; animation: evd-gold 5s ease-in-out infinite alternate; }
.scn-envie-described .evd-snake { position:absolute; top:10%; left:45%; width:5%; height:50%; background: linear-gradient(180deg, #4a6a2a 0%, #8aaa4a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform-origin: top; animation: evd-snake 4s ease-in-out infinite; }
.scn-envie-described .evd-figure { position:absolute; bottom:30%; left:38%; width:15%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: evd-figure 6s ease-in-out infinite; }
.scn-envie-described .evd-teeth { position:absolute; bottom:45%; left:43%; width:8%; height:4%; background: linear-gradient(90deg, #e0e0e0 0%, #b0b0b0 100%); border-radius: 20% 20% 50% 50%; animation: evd-teeth 3s ease-in-out infinite alternate; }
.scn-envie-described .evd-sweat { position:absolute; top:20%; left:35%; width:3%; height:3%; background: radial-gradient(circle, #8899bb 0%, transparent 100%); border-radius: 50%; animation: evd-sweat 4s ease-in-out infinite; }
.scn-envie-described .evd-light { position:absolute; top:0; left:30%; width:40%; height:20%; background: radial-gradient(ellipse, #ffd060 0%, transparent 70%); animation: evd-light 8s ease-in-out infinite alternate; }
@keyframes evd-room { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes evd-gold { 0% { opacity:.8; transform: translateY(0) } 50% { opacity:1; transform: translateY(-2px) } 100% { opacity:.8; transform: translateY(0) } }
@keyframes evd-snake { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }
@keyframes evd-figure { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(5%) rotate(0deg) } 50% { transform: translateX(10%) rotate(3deg) } 75% { transform: translateX(5%) rotate(0deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes evd-teeth { 0% { clip-path: inset(0 0 0 0) } 50% { clip-path: inset(0 0 30% 0) } 100% { clip-path: inset(0 0 0 0) } }
@keyframes evd-sweat { 0% { transform: translateY(0) scale(1); opacity:.8 } 50% { transform: translateY(-10px) scale(1.5); opacity:0 } 100% { transform: translateY(0) scale(1); opacity:.8 } }
@keyframes evd-light { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

/* Scene: envie-continued (evc) */
.scn-envie-continued { background: linear-gradient(180deg, #f0c060 0%, #c08030 30%, #804020 70%, #3a1a0a 100%), radial-gradient(ellipse at 50% 20%, #f0d080 0%, transparent 70%); }
.scn-envie-continued .evc-sky { position:absolute; inset:0; background: linear-gradient(180deg, #ffe4a0 0%, #d4a05a 60%, transparent 100%); animation: evc-sky 12s ease-in-out infinite alternate; }
.scn-envie-continued .evc-silhouette { position:absolute; bottom:0; left:35%; width:30%; height:80%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%); animation: evc-silhouette 8s ease-in-out infinite; }
.scn-envie-continued .evc-head { position:absolute; bottom:75%; left:42%; width:16%; height:12%; background: radial-gradient(circle, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: evc-head 6s ease-in-out infinite alternate; }
.scn-envie-continued .evc-mouth { position:absolute; bottom:72%; left:45%; width:10%; height:4%; background: #1a0500; border-radius: 50% 50% 0 0; animation: evc-mouth 3s ease-in-out infinite; }
.scn-envie-continued .evc-poison { position:absolute; bottom:68%; border-radius: 50%; background: radial-gradient(circle, #5a7a3a 0%, #2a4a1a 80%, transparent 100%); }
.scn-envie-continued .evc-poison-1 { left:48%; width:6%; height:6%; animation: evc-poison1 2s ease-in-out infinite; }
.scn-envie-continued .evc-poison-2 { left:42%; width:4%; height:4%; animation: evc-poison2 2.5s ease-in-out infinite reverse; }
.scn-envie-continued .evc-cloud { position:absolute; top:10%; left:20%; width:15%; height:8%; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%); border-radius: 50%; filter: blur(5px); animation: evc-cloud 50s linear infinite; }
@keyframes evc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes evc-silhouette { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(2%) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes evc-head { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes evc-mouth { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.5) } 100% { transform: scaleY(1) } }
@keyframes evc-poison1 { 0% { opacity:0; transform: translate(0,0) scale(0) } 20% { opacity:1; transform: translate(2px, -5px) scale(1) } 40% { opacity:0; transform: translate(5px, -15px) scale(0) } 100% { opacity:0 } }
@keyframes evc-poison2 { 0% { opacity:0; transform: translate(0,0) scale(0) } 30% { opacity:1; transform: translate(-3px, -8px) scale(1.2) } 50% { opacity:0; transform: translate(-6px, -20px) scale(0) } 100% { opacity:0 } }
@keyframes evc-cloud { 0% { transform: translateX(-20%) } 100% { transform: translateX(120vw) } }

/* monstrous-errour */
.scn-monstrous-errour {
  background: linear-gradient(180deg, #0a0a14 0%, #1a0f1a 40%, #2a1520 100%), radial-gradient(ellipse at 70% 80%, #3a2030 0%, transparent 70%);
}
.scn-monstrous-errour .cave-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #1a1025 0%, #2a1a30 50%, #1a1025 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: me-cavepulse 10s ease-in-out infinite alternate;
}
.scn-monstrous-errour .cave-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #1a1a22 0%, #0d0d12 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
}
.scn-monstrous-errour .creature-body {
  position:absolute; bottom:35%; left:50%; width:100px; height:60px;
  transform:translateX(-50%) scale(1);
  background: radial-gradient(ellipse at 40% 40%, #4a2a3a 0%, #1a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: me-breathe 6s ease-in-out infinite;
}
.scn-monstrous-errour .tail-loop {
  position:absolute; bottom:30%; left:20%; width:160px; height:30px;
  background: linear-gradient(90deg, #3a1a2a 0%, #1a0a12 50%, #3a1a2a 100%);
  border-radius: 50%;
  filter: blur(2px);
  transform: rotate(-15deg) scaleY(0.5);
  animation: me-tailwave 8s ease-in-out infinite alternate;
}
.scn-monstrous-errour .young-1,
.scn-monstrous-errour .young-2,
.scn-monstrous-errour .young-3 {
  position:absolute; bottom:28%; width:18px; height:12px;
  background: radial-gradient(ellipse, #5a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: me-suck 4s ease-in-out infinite;
}
.scn-monstrous-errour .young-1 { left:35%; animation-delay:0s; }
.scn-monstrous-errour .young-2 { left:55%; animation-delay:1s; }
.scn-monstrous-errour .young-3 { left:48%; bottom:30%; width:14px; height:10px; animation-delay:2s; }
.scn-monstrous-errour .distant-light {
  position:absolute; top:18%; left:60%; width:30px; height:30px;
  background: radial-gradient(circle, #8a6a3a 0%, rgba(30,20,10,0) 70%);
  border-radius:50%;
  box-shadow: 0 0 40px 15px rgba(138,106,58,.3);
  animation: me-lightflicker 3s ease-in-out infinite alternate;
}
@keyframes me-cavepulse {
  0% { opacity:.7; transform:translateY(0) }
  50% { opacity:.9; transform:translateY(-2px) }
  100% { opacity:.7; transform:translateY(0) }
}
@keyframes me-breathe {
  0% { transform:translateX(-50%) scale(1) }
  50% { transform:translateX(-50%) scale(1.05) translateY(-2px) }
  100% { transform:translateX(-50%) scale(1) }
}
@keyframes me-tailwave {
  0% { transform: rotate(-15deg) scaleY(0.5) translateX(-5px) }
  50% { transform: rotate(-10deg) scaleY(0.6) translateX(5px) }
  100% { transform: rotate(-15deg) scaleY(0.5) translateX(-5px) }
}
@keyframes me-suck {
  0%,100% { transform: translateY(0) scale(1) }
  50% { transform: translateY(2px) scale(0.9) }
}
@keyframes me-lightflicker {
  0% { opacity:.3; box-shadow: 0 0 30px 10px rgba(138,106,58,.2) }
  50% { opacity:1; box-shadow: 0 0 60px 30px rgba(138,106,58,.6) }
  100% { opacity:.3; box-shadow: 0 0 30px 10px rgba(138,106,58,.2) }
}

/* errour-attacks */
.scn-errour-attacks {
  background: linear-gradient(180deg, #0a0a10 0%, #14101a 50%, #1a1420 100%), radial-gradient(ellipse at 40% 100%, #1a1420 0%, transparent 60%);
}
.scn-errour-attacks .bg-dark {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #0d0a14 0%, #1a1420 100%);
}
.scn-errour-attacks .creature-rush {
  position:absolute; bottom:30%; left:-10%; width:200px; height:100px;
  background: radial-gradient(ellipse at 30% 50%, #3a1a2a 0%, #1a0a10 100%);
  border-radius: 50% 20% 30% 50% / 40% 30% 50% 40%;
  transform: rotate(20deg) scale(1.2);
  animation: ea-rush 5s ease-in-out infinite;
}
.scn-errour-attacks .tail-whip {
  position:absolute; bottom:25%; left:10%; width:250px; height:20px;
  background: linear-gradient(90deg, #2a0a1a 0%, #1a0510 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  transform: rotate(-30deg);
  animation: ea-whip 2s ease-in-out infinite;
}
.scn-errour-attacks .head-snap {
  position:absolute; bottom:40%; left:25%; width:40px; height:30px;
  background: linear-gradient(135deg, #4a2a3a 0%, #2a101a 100%);
  border-radius: 40% 60% 30% 50% / 50% 40% 60% 40%;
  transform: rotate(-15deg);
  animation: ea-snap 1.5s ease-in-out infinite;
}
.scn-errour-attacks .ground-splat {
  position:absolute; bottom:5%; left:0; right:0; height:20%;
  background: radial-gradient(ellipse at 50% 0%, #2a1a2a 0%, transparent 70%);
  animation: ea-pulse 4s ease-in-out infinite;
}
.scn-errour-attacks .disturbance-dust {
  position:absolute; bottom:25%; left:30%; width:80px; height:40px;
  background: radial-gradient(ellipse, rgba(40,30,30,.3) 0%, transparent 70%);
  border-radius:50%;
  filter: blur(6px);
  animation: ea-dust 3s ease-in-out infinite alternate;
}
.scn-errour-attacks .flash-aura {
  position:absolute; top:15%; right:20%; width:20px; height:20px;
  background: radial-gradient(circle, #8a6040 0%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 50px 20px rgba(138,96,64,.2);
  animation: ea-flash 2s ease-in-out infinite alternate;
}
@keyframes ea-rush {
  0% { transform: rotate(20deg) scale(1.2) translateX(0) }
  50% { transform: rotate(25deg) scale(1.3) translateX(20px) }
  100% { transform: rotate(20deg) scale(1.2) translateX(0) }
}
@keyframes ea-whip {
  0% { transform: rotate(-30deg) translateX(0) scaleY(0.5) }
  50% { transform: rotate(-40deg) translateX(10px) scaleY(1.2) }
  100% { transform: rotate(-30deg) translateX(0) scaleY(0.5) }
}
@keyframes ea-snap {
  0%,100% { transform: rotate(-15deg) scale(1) }
  50% { transform: rotate(-5deg) scale(1.1) }
}
@keyframes ea-pulse {
  0% { opacity:.5; transform:scaleY(1) }
  50% { opacity:.8; transform:scaleY(1.1) }
  100% { opacity:.5; transform:scaleY(1) }
}
@keyframes ea-dust {
  0% { transform: translateY(0) scale(1); opacity:.8 }
  100% { transform: translateY(-10px) scale(2); opacity:0 }
}
@keyframes ea-flash {
  0% { opacity:.2; box-shadow: 0 0 30px 10px rgba(138,96,64,.1) }
  100% { opacity:.8; box-shadow: 0 0 80px 40px rgba(138,96,64,.4) }
}

/* knight-fights-errour */
.scn-knight-fights-errour {
  background: linear-gradient(180deg, #0e0b14 0%, #14101a 50%, #1a1420 100%), radial-gradient(ellipse at 60% 80%, #2a1a24 0%, transparent 70%);
}
.scn-knight-fights-errour .bg-void {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #0c0a12 0%, #181420 100%);
}
.scn-knight-fights-errour .knight-silhouette {
  position:absolute; bottom:25%; left:15%; width:40px; height:70px;
  background: linear-gradient(180deg, #1a1a22 0%, #0d0d14 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(5deg);
  animation: kfe-stand 3s ease-in-out infinite;
}
.scn-knight-fights-errour .sword-flash {
  position:absolute; bottom:35%; left:23%; width:8px; height:50px;
  background: linear-gradient(180deg, #a08060 0%, #cca860 40%, #a08060 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 5px rgba(160,128,96,.6);
  transform: rotate(-15deg);
  animation: kfe-swing 2s ease-in-out infinite alternate;
}
.scn-knight-fights-errour .shield-round {
  position:absolute; bottom:30%; left:12%; width:30px; height:35px;
  background: radial-gradient(ellipse at 40% 40%, #30303a 0%, #181820 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  box-shadow: inset 0 0 8px rgba(0,0,0,.5);
  transform: rotate(10deg);
  animation: kfe-block 3s ease-in-out infinite;
}
.scn-knight-fights-errour .creature-lunge {
  position:absolute; bottom:20%; right:-10%; width:180px; height:70px;
  background: radial-gradient(ellipse at 60% 50%, #3a1a2a 0%, #1a0a10 100%);
  border-radius: 30% 50% 50% 30% / 40% 30% 30% 40%;
  transform: rotate(-10deg) scale(1.1);
  animation: kfe-lunge 4s ease-in-out infinite;
}
.scn-knight-fights-errour .sting-threat {
  position:absolute; bottom:30%; right:20%; width:6px; height:30px;
  background: linear-gradient(180deg, #5a2a2a 0%, #2a1010 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  animation: kfe-sting 2.5s ease-in-out infinite;
}
.scn-knight-fights-errour .impact-stars {
  position:absolute; bottom:45%; left:20%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(180,150,100,.6) 0%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 20px 8px rgba(180,150,100,.2);
  animation: kfe-spark 1s ease-in-out infinite alternate;
}
@keyframes kfe-stand {
  0% { transform: rotate(5deg) translateY(0) }
  50% { transform: rotate(8deg) translateY(-2px) }
  100% { transform: rotate(5deg) translateY(0) }
}
@keyframes kfe-swing {
  0% { transform: rotate(-15deg) scaleY(1); opacity:.8 }
  50% { transform: rotate(-5deg) scaleY(1.2); opacity:1 }
  100% { transform: rotate(-15deg) scaleY(1); opacity:.8 }
}
@keyframes kfe-block {
  0% { transform: rotate(10deg) translateX(0) }
  50% { transform: rotate(0deg) translateX(2px) }
  100% { transform: rotate(10deg) translateX(0) }
}
@keyframes kfe-lunge {
  0% { transform: rotate(-10deg) scale(1.1) translateX(0) }
  50% { transform: rotate(-5deg) scale(1.2) translateX(-15px) }
  100% { transform: rotate(-10deg) scale(1.1) translateX(0) }
}
@keyframes kfe-sting {
  0% { transform: rotate(-20deg) translateY(0) }
  50% { transform: rotate(-5deg) translateY(5px) }
  100% { transform: rotate(-20deg) translateY(0) }
}
@keyframes kfe-spark {
  0% { opacity:.3; transform: scale(1) }
  100% { opacity:1; transform: scale(1.5) }
}

/* errour-entangles-knight */
.scn-errour-entangles-knight {
  background: linear-gradient(180deg, #0a0a12 0%, #120e1a 40%, #1a1220 100%), radial-gradient(ellipse at 50% 60%, #2a1a2a 0%, transparent 70%);
}
.scn-errour-entangles-knight .bg-tangle {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #0d0a12 0%, #181420 100%);
}
.scn-errour-entangles-knight .knight-trapped {
  position:absolute; bottom:25%; left:45%; width:35px; height:60px;
  background: linear-gradient(180deg, #1a1a22 0%, #0d0d14 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(15deg);
  animation: eek-strain 4s ease-in-out infinite;
}
.scn-errour-entangles-knight .tail-coil-1,
.scn-errour-entangles-knight .tail-coil-2 {
  position:absolute; bottom:20%; width:200px; height:16px;
  background: linear-gradient(90deg, transparent 0%, #2a0a1a 30%, #1a0510 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-errour-entangles-knight .tail-coil-1 {
  left:20%; bottom:30%;
  transform: rotate(-40deg);
  animation: eek-coil1 3s ease-in-out infinite alternate;
}
.scn-errour-entangles-knight .tail-coil-2 {
  left:-10%; bottom:15%;
  transform: rotate(30deg);
  animation: eek-coil2 3s ease-in-out infinite alternate-reverse;
}
.scn-errour-entangles-knight .creature-head {
  position:absolute; bottom:40%; left:5%; width:45px; height:35px;
  background: radial-gradient(ellipse at 50% 40%, #3a1a2a 0%, #1a0a10 100%);
  border-radius: 40% 60% 30% 50% / 50% 40% 60% 40%;
  transform: rotate(20deg);
  animation: eek-head 5s ease-in-out infinite;
}
.scn-errour-entangles-knight .lady-cry {
  position:absolute; bottom:35%; right:10%; width:20px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: eek-lady 3s ease-in-out infinite;
}
.scn-errour-entangles-knight .tension-lines {
  position:absolute; top:0; left:0; right:0; bottom:0;
  background: repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(255,255,255,.02) 4px, rgba(255,255,255,.02) 5px);
  animation: eek-lines 2s ease-in-out infinite alternate;
}
@keyframes eek-strain {
  0% { transform: rotate(15deg) translateX(0) }
  50% { transform: rotate(20deg) translateX(-3px) }
  100% { transform: rotate(15deg) translateX(0) }
}
@keyframes eek-coil1 {
  0% { transform: rotate(-40deg) translateX(0) scaleY(0.8); opacity:.7 }
  100% { transform: rotate(-30deg) translateX(5px) scaleY(1.2); opacity:1 }
}
@keyframes eek-coil2 {
  0% { transform: rotate(30deg) translateX(0) scaleY(0.8); opacity:.7 }
  100% { transform: rotate(20deg) translateX(5px) scaleY(1.2); opacity:1 }
}
@keyframes eek-head {
  0% { transform: rotate(20deg) translateY(0) }
  50% { transform: rotate(15deg) translateY(-3px) }
  100% { transform: rotate(20deg) translateY(0) }
}
@keyframes eek-lady {
  0% { transform: rotate(-10deg) translateY(0); opacity:.8 }
  50% { transform: rotate(-5deg) translateY(-2px); opacity:1 }
  100% { transform: rotate(-10deg) translateY(0); opacity:.8 }
}
@keyframes eek-lines {
  0% { background-position: 0 0; opacity:.3 }
  100% { background-position: 10px 10px; opacity:.6 }
}

/* scene: appreciation-of-medievalism */
.scn-appreciation-of-medievalism {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 60% 80%, #5a3a1a 0%, transparent 60%);
}
.scn-appreciation-of-medievalism .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); opacity: 0.6;
}
.scn-appreciation-of-medievalism .window-arch {
  position: absolute; top: 10%; left: 10%; width: 35%; height: 50%;
  background: #1a0a00; border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 20px #0a0000;
}
.scn-appreciation-of-medievalism .stained-glass {
  position: absolute; top: 12%; left: 12%; width: 31%; height: 46%;
  background: radial-gradient(circle, #b08040 0%, #6a3a1a 40%, #3a1a0a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0; opacity: 0.5;
  animation: amo-stain 8s ease-in-out infinite alternate;
}
.scn-appreciation-of-medievalism .candle {
  position: absolute; bottom: 20%; left: 45%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #e0c080 0%, #a08050 50%, #604020 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 0 10px #c08040;
}
.scn-appreciation-of-medievalism .flame {
  position: absolute; bottom: calc(20% + 50px); left: 45%; width: 14px; height: 20px;
  margin-left: -3px; background: radial-gradient(ellipse at 50% 30%, #ffe080 0%, #ffa040 50%, #803020 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px #ffa040, 0 0 60px 20px rgba(255,160,64,0.3);
  animation: amo-flame 2s ease-in-out infinite alternate;
}
.scn-appreciation-of-medievalism .book {
  position: absolute; bottom: 15%; left: 55%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-5deg); animation: amo-book 12s ease-in-out infinite;
}
.scn-appreciation-of-medievalism .quill {
  position: absolute; bottom: 18%; left: 60%; width: 3px; height: 25px;
  background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%);
  border-radius: 1px; transform: rotate(30deg); animation: amo-quill 6s ease-in-out infinite;
}
.scn-appreciation-of-medievalism .ledge {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 6px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
@keyframes amo-stain {
  0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; }
}
@keyframes amo-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.2) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(1px); opacity: 0.8; }
}
@keyframes amo-book {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-2deg) scale(1.02); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes amo-quill {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(35deg) translateY(-2px); }
  100% { transform: rotate(30deg) translateY(0); }
}

/* scene: spensers-literary-affinities */
.scn-spensers-literary-affinities {
  background: 
    linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 50%, #1a1a0a 100%),
    radial-gradient(ellipse at 20% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-spensers-literary-affinities .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a4a3a 0%, #2a2a1a 100%); opacity: 0.7;
}
.scn-spensers-literary-affinities .gothic-arch {
  position: absolute; top: 5%; left: 15%; width: 50%; height: 60%;
  background: #1a1a0a; border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px #0a0a00;
}
.scn-spensers-literary-affinities .desk {
  position: absolute; bottom: 10%; left: 10%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-spensers-literary-affinities .book-stack {
  position: absolute; bottom: 25%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  transform: rotate(3deg); animation: sla-stack 14s ease-in-out infinite;
}
.scn-spensers-literary-affinities .candle {
  position: absolute; bottom: 25%; left: 50%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 3px 3px 1px 1px;
}
.scn-spensers-literary-affinities .glow {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 40px;
  margin-left: -20px; background: radial-gradient(circle, #ffe080 0%, transparent 100%);
  opacity: 0.3; animation: sla-glow 5s ease-in-out infinite alternate;
}
.scn-spensers-literary-affinities .shadow-figure {
  position: absolute; bottom: 12%; left: 55%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: sla-figure 10s ease-in-out infinite;
}
.scn-spensers-literary-affinities .parchment {
  position: absolute; bottom: 12%; left: 30%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 2px; transform: rotate(-8deg); animation: sla-parchment 8s ease-in-out infinite;
}
@keyframes sla-stack {
  0% { transform: rotate(3deg) scale(1); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(3deg) scale(1); }
}
@keyframes sla-glow {
  0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 0.4; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(0.9); }
}
@keyframes sla-figure {
  0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes sla-parchment {
  0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(-8deg) translateY(0); }
}

/* scene: afterglow-of-chivalry */
.scn-afterglow-of-chivalry {
  background: 
    linear-gradient(180deg, #4a2a1a 0%, #6a3a1a 30%, #a06030 60%, #d09050 80%, #e0b080 100%),
    radial-gradient(ellipse at 50% 0%, #e0a060 0%, transparent 70%);
}
.scn-afterglow-of-chivalry .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #d09050 100%);
  animation: agc-sky 20s ease-in-out infinite alternate;
}
.scn-afterglow-of-chivalry .sunset-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
}
.scn-afterglow-of-chivalry .castle-silhouette {
  position: absolute; bottom: 25%; left: 10%; width: 30%; height: 50%;
  background: #0a0000; clip-path: polygon(0% 100%, 0% 40%, 5% 40%, 5% 15%, 10% 15%, 10% 40%, 20% 40%, 20% 10%, 25% 10%, 25% 40%, 30% 40%, 30% 0%, 35% 0%, 35% 40%, 40% 40%, 40% 20%, 45% 20%, 45% 40%, 50% 40%, 50% 10%, 55% 10%, 55% 40%, 100% 40%, 100% 100%);
  animation: agc-castle 30s ease-in-out infinite;
}
.scn-afterglow-of-chivalry .knight {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 50px;
  margin-left: -12px; background: #0a0000; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: polygon(0 100%, 0 30%, 10% 30%, 10% 0%, 90% 0%, 90% 30%, 100% 30%, 100% 100%);
  animation: agc-knight 4s ease-in-out infinite;
}
.scn-afterglow-of-chivalry .horse {
  position: absolute; bottom: 18%; left: 48%; width: 40px; height: 30px;
  background: #0a0000; border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  animation: agc-horse 4s ease-in-out infinite;
}
.scn-afterglow-of-chivalry .lance {
  position: absolute; bottom: 30%; left: 55%; width: 3px; height: 40px;
  background: #2a1a0a; transform: rotate(-20deg); transform-origin: bottom;
  animation: agc-lance 4s ease-in-out infinite;
}
.scn-afterglow-of-chivalry .dust {
  position: absolute; bottom: 10%; left: 45%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, #a08060 0%, transparent 100%);
  opacity: 0.2; filter: blur(4px); animation: agc-dust 6s ease-in-out infinite;
}
.scn-afterglow-of-chivalry .clouds {
  position: absolute; top: 5%; left: -20%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(200,150,100,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px); animation: agc-clouds 40s linear infinite;
}
@keyframes agc-sky {
  0% { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #d09050 100%); }
  50% { background: linear-gradient(180deg, #3a2a1a 0%, #6a3a1a 40%, #c08040 100%); }
  100% { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #d09050 100%); }
}
@keyframes agc-castle {
  0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); }
}
@keyframes agc-knight {
  0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes agc-horse {
  0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(3px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); }
}
@keyframes agc-lance {
  0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-1px); } 100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes agc-dust {
  0% { opacity: 0.1; transform: scale(0.8); } 50% { opacity: 0.3; transform: scale(1.2); } 100% { opacity: 0.1; transform: scale(0.8); }
}
@keyframes agc-clouds {
  0% { transform: translateX(-80px); } 100% { transform: translateX(100vw); }
}

/* scene: spenser-in-ireland */
.scn-spenser-in-ireland {
  background: 
    linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 50%, #1a2a2a 100%),
    radial-gradient(ellipse at 30% 50%, #4a5a5a 0%, transparent 70%);
}
.scn-spenser-in-ireland .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%);
  animation: sii-sky 15s ease-in-out infinite alternate;
}
.scn-spenser-in-ireland .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.3);
  animation: sii-hills 20s ease-in-out infinite alternate;
}
.scn-spenser-in-ireland .bog {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 40% 0 0;
}
.scn-spenser-in-ireland .figure {
  position: absolute; bottom: 28%; left: 40%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: sii-figure 3s ease-in-out infinite;
}
.scn-spenser-in-ireland .staff {
  position: absolute; bottom: 28%; left: 41%; width: 3px; height: 50px;
  background: #2a3a2a; transform: rotate(15deg); transform-origin: bottom;
  animation: sii-staff 3s ease-in-out infinite;
}
.scn-spenser-in-ireland .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,200,200,0.15) 0%, transparent 100%);
  filter: blur(15px); animation: sii-mist 25s ease-in-out infinite alternate;
}
.scn-spenser-in-ireland .stark-tree {
  position: absolute; bottom: 40%; left: 20%; width: 10px; height: 60px;
  background: #1a2a1a; border-radius: 2px;
  box-shadow: -10px -20px 0 #1a2a1a, 10px -15px 0 #1a2a1a;
  transform-origin: bottom; animation: sii-tree 30s ease-in-out infinite;
}
.scn-spenser-in-ireland .dark-house {
  position: absolute; bottom: 30%; left: 70%; width: 30px; height: 20px;
  background: #0a1a0a; border-radius: 4px; box-shadow: 0 0 4px #0a0a0a;
  transform-origin: bottom; animation: sii-house 12s ease-in-out infinite;
}
@keyframes sii-sky {
  0% { background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%); }
  50% { background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%); }
  100% { background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%); }
}
@keyframes sii-hills {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes sii-figure {
  0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes sii-staff {
  0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-1px); } 100% { transform: rotate(15deg) translateY(0); }
}
@keyframes sii-mist {
  0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.1); } 100% { opacity: 0.2; transform: scale(1); }
}
@keyframes sii-tree {
  0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(0.95); } 100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes sii-house {
  0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(1); }
}

/* notes-cupid */
.scn-notes-cupid {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e18 30%, #3a2820 60%, #2a1e18 100%),
    radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 70%);
}
.scn-notes-cupid .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1a1410 0%, #2a1e18 50%, #1f1712 100%);
  animation: cup-bg 12s ease-in-out infinite alternate;
}
.scn-notes-cupid .wall-panel {
  position: absolute; top: 5%; left: 15%; width: 70%; height: 60%;
  background: linear-gradient(180deg, #3a2820 0%, #2a1e18 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: cup-panel 20s ease-in-out infinite alternate;
}
.scn-notes-cupid .pedestal {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2820 100%);
  border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cup-pedestal 8s ease-in-out infinite;
}
.scn-notes-cupid .cupid-fig {
  position: absolute; bottom: calc(15% + 60px); left: 50%; transform: translateX(-50%);
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: cup-fig 6s ease-in-out infinite alternate;
}
.scn-notes-cupid .bow {
  position: absolute; bottom: calc(15% + 70px); left: calc(50% - 20px);
  width: 30px; height: 4px; background: #6a4a2a; border-radius: 2px;
  transform: rotate(-20deg); animation: cup-bow 4s ease-in-out infinite alternate;
}
.scn-notes-cupid .candle-glow {
  position: absolute; bottom: 25%; left: 60%; width: 20px; height: 40px;
  background: radial-gradient(ellipse 50% 30% at 50% 100%, #ffc080 0%, #8a4a2a 50%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: cup-glow 3s ease-in-out infinite alternate;
}
.scn-notes-cupid .shadow-drape {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: cup-shadow 10s ease-in-out infinite alternate;
}
.scn-notes-cupid .dust-mote {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 4px;
  background: rgba(255,200,150,0.4); border-radius: 50%;
  filter: blur(1px); animation: cup-dust 18s linear infinite;
}
@keyframes cup-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cup-panel { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.01); } 100% { opacity: 0.95; } }
@keyframes cup-pedestal { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes cup-fig { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes cup-bow { 0% { transform: rotate(-25deg); } 100% { transform: rotate(-15deg); } }
@keyframes cup-glow { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes cup-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes cup-dust { 0% { transform: translate(0,0) rotate(0deg); opacity: 0; } 20% { opacity: 0.6; } 50% { transform: translate(40px, -20px) rotate(180deg); opacity: 0.3; } 80% { opacity: 0.5; } 100% { transform: translate(80px, -40px) rotate(360deg); opacity: 0; } }

/* notes-apollo */
.scn-notes-apollo {
  background: 
    linear-gradient(180deg, #1f1712 0%, #2a1e18 40%, #3a2820 80%, #2a1e18 100%),
    radial-gradient(ellipse at 80% 20%, #4a3020 0%, transparent 70%);
}
.scn-notes-apollo .apollo-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1f1712 0%, #2a1e18 50%, #1a1410 100%);
  animation: apo-room 15s ease-in-out infinite alternate;
}
.scn-notes-apollo .table {
  position: absolute; bottom: 15%; left: 35%; width: 120px; height: 10px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2820 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: apo-table 7s ease-in-out infinite;
}
.scn-notes-apollo .bust {
  position: absolute; bottom: calc(15% + 10px); left: 45%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  animation: apo-bust 9s ease-in-out infinite alternate;
}
.scn-notes-apollo .laurel {
  position: absolute; bottom: calc(15% + 55px); left: 45%; transform: translateX(-50%);
  width: 40px; height: 8px; background: linear-gradient(90deg, #6a6a3a, #4a4a2a, #6a6a3a);
  border-radius: 50%; filter: blur(2px); animation: apo-laurel 5s ease-in-out infinite alternate;
}
.scn-notes-apollo .lyre {
  position: absolute; bottom: 23%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px rgba(138,122,90,0.3);
  transform: rotate(-10deg); animation: apo-lyre 6s ease-in-out infinite alternate;
}
.scn-notes-apollo .window-light {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 80px;
  background: linear-gradient(135deg, rgba(200,180,150,0.15) 0%, transparent 60%);
  border-radius: 4px; filter: blur(12px);
  animation: apo-window 20s ease-in-out infinite alternate;
}
.scn-notes-apollo .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at center, transparent 50%, rgba(0,0,0,0.6) 100%);
  animation: apo-vig 14s ease-in-out infinite alternate;
}
@keyframes apo-room { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes apo-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes apo-bust { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes apo-laurel { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.1); } 100% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes apo-lyre { 0% { transform: rotate(-12deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } 100% { transform: rotate(-12deg) scale(0.98); } }
@keyframes apo-window { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes apo-vig { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }

/* notes-plot-canto-i */
.scn-notes-plot-canto-i {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2820 80%, #1a1410 100%),
    radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 70%);
}
.scn-notes-plot-canto-i .plot-hall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1410 0%, #2a1e18 50%, #1f1712 100%);
  animation: plo-hall 16s ease-in-out infinite alternate;
}
.scn-notes-plot-canto-i .arch {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 70%;
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  background: linear-gradient(180deg, #3a2820 0%, #2a1e18 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: plo-arch 22s ease-in-out infinite alternate;
}
.scn-notes-plot-canto-i .knight-silhouette {
  position: absolute; bottom: 20%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: plo-knight 5s ease-in-out infinite;
}
.scn-notes-plot-canto-i .dwarf-silhouette {
  position: absolute; bottom: 20%; left: 50%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: plo-dwarf 6s ease-in-out infinite;
}
.scn-notes-plot-canto-i .una-silhouette {
  position: absolute; bottom: 20%; left: 65%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: plo-una 5.5s ease-in-out infinite;
}
.scn-notes-plot-canto-i .lamb-silhouette {
  position: absolute; bottom: 18%; left: 72%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40%;
  animation: plo-lamb 7s ease-in-out infinite alternate;
}
.scn-notes-plot-canto-i .floor-shadow {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.4) 50%, transparent);
  border-radius: 50%; filter: blur(4px);
  animation: plo-floor 10s ease-in-out infinite alternate;
}
@keyframes plo-hall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes plo-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes plo-knight { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes plo-dwarf { 0% { transform: translateX(0) rotate(1deg); } 33% { transform: translateX(1px) rotate(-1deg); } 66% { transform: translateX(-1px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes plo-una { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(3deg); } 100% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes plo-lamb { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes plo-floor { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* notes-allegory-canto-i */
.scn-notes-allegory-canto-i {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2820 80%, #2a1e18 100%),
    radial-gradient(ellipse at 50% 20%, #3a2820 0%, transparent 70%);
}
.scn-notes-allegory-canto-i .alg-church {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1410 0%, #2a1e18 50%, #1a1410 100%);
  animation: alg-church 18s ease-in-out infinite alternate;
}
.scn-notes-allegory-canto-i .lectern {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2820 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: alg-lectern 9s ease-in-out infinite;
}
.scn-notes-allegory-canto-i .holiness-fig {
  position: absolute; bottom: 25%; left: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: alg-holiness 7s ease-in-out infinite alternate;
}
.scn-notes-allegory-canto-i .truth-fig {
  position: absolute; bottom: 25%; left: 60%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: alg-truth 7.5s ease-in-out infinite alternate;
}
.scn-notes-allegory-canto-i .book {
  position: absolute; bottom: calc(20% + 15px); left: 50%; transform: translateX(-50%);
  width: 20px; height: 14px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 0 0 10px rgba(90,74,42,0.3);
  animation: alg-book 5s ease-in-out infinite alternate;
}
.scn-notes-allegory-canto-i .ray-light {
  position: absolute; top: 0; left: 40%; width: 80px; height: 100%;
  background: linear-gradient(180deg, rgba(200,180,140,0.12) 0%, transparent 70%);
  filter: blur(30px);
  animation: alg-ray 25s ease-in-out infinite alternate;
}
.scn-notes-allegory-canto-i .pew-shape {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 10px;
  background: linear-gradient(90deg, #3a2820, #2a1e18, #3a2820);
  border-radius: 2px;
  animation: alg-pew 12s ease-in-out infinite alternate;
}
@keyframes alg-church { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes alg-lectern { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes alg-holiness { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes alg-truth { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(1px) rotate(1deg); } }
@keyframes alg-book { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(0.95); } }
@keyframes alg-ray { 0% { opacity: 0.15; transform: scaleY(1); } 50% { opacity: 0.25; transform: scaleY(1.1); } 100% { opacity: 0.2; transform: scaleY(0.9); } }
@keyframes alg-pew { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-tree-speaks { background: linear-gradient(180deg, #f9e8c0 0%, #d4b890 50%, #9a7a5a 100%), radial-gradient(ellipse at 60% 20%, #ffe080 0%, transparent 60%); }

.scn-tree-speaks .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b0d0f0 0%, #f5e6c0 100%); animation: ts-sky 15s ease-in-out infinite alternate; }
.scn-tree-speaks .sun { position:absolute; top:12%; left:25%; width:60px; height:60px; background: radial-gradient(circle, #ffdf80 0%, #e8a830 70%, transparent 100%); border-radius:50%; filter: blur(4px); animation: ts-sun 25s linear infinite; }
.scn-tree-speaks .trunk { position:absolute; bottom:0; left:40%; width:40px; height:60%; background: linear-gradient(90deg, #5e3a1a 0%, #7a4a2a 50%, #5e3a1a 100%); border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%; transform-origin: bottom; animation: ts-trunk 8s ease-in-out infinite; }
.scn-tree-speaks .branches { position:absolute; top:15%; left:38%; width:90px; height:50px; background: repeating-linear-gradient(90deg, #7a4a2a 0px 4px, transparent 4px 20px); border-radius: 50% / 40%; transform: rotate(-5deg); animation: ts-branch 12s ease-in-out infinite alternate; }
.scn-tree-speaks .leaves { position:absolute; top:10%; left:25%; width:130px; height:70px; background: radial-gradient(ellipse at 30% 50%, #5a8a3a 0%, #3a6a2a 60%, transparent 100%); border-radius: 50% 60% 40% 50%; filter: blur(8px); animation: ts-leaves 6s ease-in-out infinite alternate; }
.scn-tree-speaks .mouth { position:absolute; top:35%; left:42%; width:8px; height:18px; background: #1a0e05; border-radius: 40% 40% 20% 20%; box-shadow: 0 0 12px 6px #c08040; animation: ts-mouth 3s ease-in-out infinite alternate; }
.scn-tree-speaks .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; }
.scn-tree-speaks .shadow { position:absolute; bottom:10%; left:30%; width:100px; height:10px; background: rgba(40,30,10,0.4); border-radius:50%; filter: blur(6px); animation: ts-shadow 8s ease-in-out infinite; }

@keyframes ts-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ts-sun { 0% { transform: translate(0) scale(1); opacity:0.9 } 50% { transform: translate(20px,10px) scale(1.05); opacity:1 } 100% { transform: translate(40px,20px) scale(0.95); opacity:0.8 } }
@keyframes ts-trunk { 0%,100% { transform: scaleY(1) rotate(0deg) } 50% { transform: scaleY(1.02) rotate(1deg) } }
@keyframes ts-branch { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(5px) } 100% { transform: rotate(-6deg) translateX(-5px) } }
@keyframes ts-leaves { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) translateY(-3px) } 100% { opacity:0.8; transform: scale(0.95) translateY(3px) } }
@keyframes ts-mouth { 0% { height:14px; box-shadow:0 0 8px 4px #c08040 } 50% { height:20px; box-shadow:0 0 18px 8px #ffc860 } 100% { height:16px; box-shadow:0 0 10px 5px #c08040 } }
@keyframes ts-shadow { 0%,100% { transform: scaleX(1); opacity:0.4 } 50% { transform: scaleX(1.2); opacity:0.6 } }

/* ====== redcrosse-asks-what-voice ====== */
.scn-redcrosse-asks-what-voice { background: linear-gradient(180deg, #b8d8f0 0%, #e8d0a0 40%, #c8a870 100%), radial-gradient(ellipse at 70% 30%, #ffe080 0%, transparent 60%); }

.scn-redcrosse-asks-what-voice .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #a0c8e8 0%, #f0e0c0 100%); animation: rw-sky 12s ease-in-out infinite alternate; }
.scn-redcrosse-asks-what-voice .sun { position:absolute; top:10%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #ffdf80 0%, #d4a040 70%, transparent 100%); border-radius:50%; filter: blur(3px); animation: rw-sun 20s linear infinite; }
.scn-redcrosse-asks-what-voice .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a8a6a 0%, #4a5a3a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: rw-hills 18s ease-in-out infinite alternate; }
.scn-redcrosse-asks-what-voice .knight { position:absolute; bottom:25%; left:15%; width:30px; height:70px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 70% 70% 20% 20%; transform-origin: bottom; animation: rw-knight 4s ease-in-out infinite; }
.scn-redcrosse-asks-what-voice .tree { position:absolute; bottom:30%; right:25%; width:35px; height:55%; background: linear-gradient(90deg, #6a4a2a 0%, #8a5a3a 50%, #6a4a2a 100%); border-radius:20% 20% 30% 30% / 30% 30% 10% 10%; animation: rw-tree 8s ease-in-out infinite alternate; }
.scn-redcrosse-asks-what-voice .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; }
.scn-redcrosse-asks-what-voice .halo { position:absolute; top:18%; right:22%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,224,128,0.6) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: rw-halo 5s ease-in-out infinite alternate; }

@keyframes rw-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes rw-sun { 0% { transform: translateX(0) scale(1); opacity:0.9 } 50% { transform: translateX(-15px) scale(1.03); opacity:1 } 100% { transform: translateX(-30px) scale(0.95); opacity:0.8 } }
@keyframes rw-hills { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(0.98) } }
@keyframes rw-knight { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(2deg) translateX(5px) } 50% { transform: rotate(0deg) translateX(10px) } 75% { transform: rotate(-2deg) translateX(5px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes rw-tree { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.01) } 100% { transform: rotate(-2deg) scaleY(0.99) } }
@keyframes rw-halo { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.3) } 100% { opacity:0.5; transform: scale(0.9) } }

/* ====== fradubio-tells-his-tale ====== */
.scn-fradubio-tells-his-tale { background: linear-gradient(180deg, #c8a080 0%, #a08060 30%, #e0c0a0 100%), radial-gradient(ellipse at 50% 100%, #f0c8a0 0%, transparent 60%); }

.scn-fradubio-tells-his-tale .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0d8c0 0%, #c8a888 100%); animation: ft-sky 20s ease-in-out infinite alternate; }
.scn-fradubio-tells-his-tale .sunset { position:absolute; top:15%; left:30%; width:80px; height:30px; background: radial-gradient(ellipse at 50% 50%, #e8a040 0%, #c06020 60%, transparent 100%); border-radius:50%; filter: blur(10px); animation: ft-sunset 30s linear infinite; }
.scn-fradubio-tells-his-tale .tree { position:absolute; bottom:0; left:30%; width:50px; height:70%; background: linear-gradient(90deg, #5a3a1a 0%, #7a4a2a 50%, #5a3a1a 100%); border-radius:15% 15% 30% 30% / 30% 30% 10% 10%; transform-origin: bottom; animation: ft-tree 10s ease-in-out infinite; }
.scn-fradubio-tells-his-tale .weeping { position:absolute; top:10%; left:25%; width:100px; height:40px; background: repeating-linear-gradient(90deg, #5a7a3a 0px 3px, transparent 3px 15px); border-radius: 50% 50% 0 0; filter: blur(3px); animation: ft-weep 6s ease-in-out infinite alternate; }
.scn-fradubio-tells-his-tale .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-fradubio-tells-his-tale .shadow { position:absolute; bottom:8%; left:25%; width:120px; height:12px; background: rgba(30,20,10,0.5); border-radius:50%; filter: blur(8px); animation: ft-shadow 10s ease-in-out infinite; }
.scn-fradubio-tells-his-tale .teardrop { position:absolute; top:50%; left:48%; width:4px; height:6px; background: #a0c8e0; border-radius:50%; box-shadow: 0 0 8px 2px rgba(160,200,224,0.6); animation: ft-tear 4s ease-in-out infinite; }

@keyframes ft-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ft-sunset { 0% { transform: translateX(0) scale(1); opacity:0.6 } 50% { transform: translateX(20px) scale(1.05); opacity:0.9 } 100% { transform: translateX(40px) scale(0.95); opacity:0.5 } }
@keyframes ft-tree { 0%,100% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(1deg) scaleY(1.02) } }
@keyframes ft-weep { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(5px) rotate(3deg) } 100% { transform: translateY(-3px) rotate(-2deg) } }
@keyframes ft-shadow { 0%,100% { transform: scaleX(1); opacity:0.5 } 50% { transform: scaleX(1.3); opacity:0.7 } }
@keyframes ft-tear { 0% { top:50%; opacity:1; transform: scale(1) } 50% { top:55%; opacity:0.8; transform: scale(0.8) } 100% { top:60%; opacity:0; transform: scale(0.5) } }

/* ====== redcrosse-urges-him-to-speak ====== */
.scn-redcrosse-urges-him-to-speak { background: linear-gradient(180deg, #f0e8d0 0%, #d4c8a0 40%, #b8a080 100%), radial-gradient(ellipse at 40% 20%, #ffe8a0 0%, transparent 60%); }

.scn-redcrosse-urges-him-to-speak .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c0d8f0 0%, #f0e8c0 100%); animation: rs-sky 18s ease-in-out infinite alternate; }
.scn-redcrosse-urges-him-to-speak .sun { position:absolute; top:8%; left:50%; width:55px; height:55px; background: radial-gradient(circle, #ffe080 0%, #d4a840 70%, transparent 100%); border-radius:50%; filter: blur(4px); animation: rs-sun 30s linear infinite; }
.scn-redcrosse-urges-him-to-speak .hills { position:absolute; bottom:30%; left:0; right:0; height:15%; background: linear-gradient(180deg, #8a9a7a 0%, #5a6a4a 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; animation: rs-hills 20s ease-in-out infinite alternate; }
.scn-redcrosse-urges-him-to-speak .knight { position:absolute; bottom:25%; left:20%; width:28px; height:65px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:40% 40% 30% 30% / 70% 70% 20% 20%; transform-origin: bottom; animation: rs-knight 5s ease-in-out infinite; }
.scn-redcrosse-urges-him-to-speak .tree { position:absolute; bottom:30%; right:20%; width:40px; height:50%; background: linear-gradient(90deg, #6a4a2a 0%, #8a5a3a 50%, #6a4a2a 100%); border-radius:20% 20% 30% 30% / 30% 30% 10% 10%; animation: rs-tree 9s ease-in-out infinite alternate; }
.scn-redcrosse-urges-him-to-speak .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%); border-radius: 15% 85% 0 0 / 40% 60% 0 0; }
.scn-redcrosse-urges-him-to-speak .rays { position:absolute; top:5%; left:40%; width:80px; height:100px; background: repeating-linear-gradient(90deg, rgba(255,232,160,0.4) 0px 6px, transparent 6px 20px); border-radius:50%; filter: blur(6px); animation: rs-rays 8s ease-in-out infinite alternate; }

@keyframes rs-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes rs-sun { 0% { transform: translateY(0) scale(1); opacity:0.9 } 50% { transform: translateY(-10px) scale(1.02); opacity:1 } 100% { transform: translateY(10px) scale(0.98); opacity:0.85 } }
@keyframes rs-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rs-knight { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(1deg) translateX(3px) } 50% { transform: rotate(0deg) translateX(6px) } 75% { transform: rotate(-1deg) translateX(3px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes rs-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes rs-rays { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.95) } }

.scn-history-of-prince-arthure {
  background:
    linear-gradient(180deg, #1a1412 0%, #2d221c 40%, #1f1814 100%),
    radial-gradient(ellipse at 30% 20%, #3d2b20 0%, transparent 70%);
}
.scn-history-of-prince-arthure .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2d221c 0%, #1a1412 100%);
  animation: ha-wall 10s ease-in-out infinite alternate;
}
.scn-history-of-prince-arthure .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1f1814 0%, #100c0a 100%);
  border-radius: 30% 40% 0 0 / 20% 20% 0 0;
}
.scn-history-of-prince-arthure .bed {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3d2b20 0%, #2a1e16 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-history-of-prince-arthure .figure-sleeping {
  position: absolute; bottom: 22%; left: 48%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a1412 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-sleep 6s ease-in-out infinite;
}
.scn-history-of-prince-arthure .candle {
  position: absolute; bottom: 20%; left: 30%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #e8c080 0%, #b08040 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 8px rgba(232,192,128,0.6), 0 0 40px 16px rgba(232,192,128,0.3);
  animation: ha-candle 3s ease-in-out infinite alternate;
}
.scn-history-of-prince-arthure .window {
  position: absolute; top: 15%; left: 60%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a3a6e 0%, #2a2a5e 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 12px rgba(255,255,255,0.1);
  animation: ha-glow 5s ease-in-out infinite;
}
.scn-history-of-prince-arthure .vision {
  position: absolute; top: 18%; left: 62%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, rgba(255,230,200,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: ha-vision 12s ease-in-out infinite alternate;
}
@keyframes ha-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ha-sleep { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-2deg) } }
@keyframes ha-candle { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.02) scaleX(0.98) } 100% { transform: scaleY(0.98) scaleX(1.01) } }
@keyframes ha-glow { 0%,100% { opacity: 0.6 } 50% { opacity: 1 } }
@keyframes ha-vision { 0% { opacity: 0; transform: scale(0.9) } 50% { opacity: 0.5; transform: scale(1.1) } 100% { opacity: 0.2; transform: scale(1) } }

.scn-meaning-of-faerie-queene {
  background:
    linear-gradient(180deg, #2c2255 0%, #4a3a6e 40%, #6a5a8e 100%),
    radial-gradient(ellipse at 50% 0%, #8a7aae 0%, transparent 80%);
}
.scn-meaning-of-faerie-queene .sky-dusk {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c2255 0%, #6a5a8e 60%, #a080c0 100%);
  animation: mq-sky 15s ease-in-out infinite alternate;
}
.scn-meaning-of-faerie-queene .land {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-meaning-of-faerie-queene .throne {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a08030 0%, #6a5020 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-meaning-of-faerie-queene .queen {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mq-queen 8s ease-in-out infinite alternate;
}
.scn-meaning-of-faerie-queene .crown-glow {
  position: absolute; bottom: 44%; left: 50%; width: 14px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%);
  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: mq-crown 4s ease-in-out infinite alternate;
}
.scn-meaning-of-faerie-queene .star-1 {
  position: absolute; top: 15%; left: 20%; width: 4px; height: 4px;
  background: #ffeedd;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,238,221,0.8);
  animation: mq-star 3s ease-in-out infinite;
}
.scn-meaning-of-faerie-queene .star-2 {
  position: absolute; top: 25%; right: 30%; width: 3px; height: 3px;
  background: #ffeedd;
  border-radius: 50%;
  box-shadow: 0 0 6px 1px rgba(255,238,221,0.6);
  animation: mq-star 4s ease-in-out infinite reverse;
}
@keyframes mq-sky { 0% { opacity: 1 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes mq-queen { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } }
@keyframes mq-crown { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.1) } 100% { transform: translateX(-50%) scale(0.95) } }
@keyframes mq-star { 0%,100% { opacity: 0.3 } 50% { opacity: 1 } }

.scn-prince-arthure-and-magnificence {
  background:
    linear-gradient(180deg, #4a6a80 0%, #8aa0b0 40%, #c0d0d8 100%),
    radial-gradient(ellipse at 50% 0%, #ffd080 0%, transparent 60%);
}
.scn-prince-arthure-and-magnificence .sky-dawn {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a6a80 0%, #ffd080 70%, #ffe8b0 100%);
  animation: pm-sky 20s ease-in-out infinite alternate;
}
.scn-prince-arthure-and-magnificence .sun {
  position: absolute; top: 15%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe8b0 0%, #ffb040 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,176,64,0.5), 0 0 120px 60px rgba(255,176,64,0.2);
  animation: pm-sun 8s ease-in-out infinite alternate;
}
.scn-prince-arthure-and-magnificence .hills {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-prince-arthure-and-magnificence .knight {
  position: absolute; bottom: 22%; left: 40%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-knight 6s ease-in-out infinite;
}
.scn-prince-arthure-and-magnificence .sword {
  position: absolute; bottom: 28%; left: 36%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #c0d0d8 0%, #809090 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(192,208,216,0.5);
  transform: rotate(-15deg);
  animation: pm-sword 4s ease-in-out infinite alternate;
}
.scn-prince-arthure-and-magnificence .banner {
  position: absolute; bottom: 26%; left: 44%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c87040 0%, #a05020 100%);
  border-radius: 0 4px 4px 0;
  transform-origin: top left;
  animation: pm-banner 3s ease-in-out infinite;
}
@keyframes pm-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes pm-sun { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes pm-knight { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(2deg) } }
@keyframes pm-sword { 0% { transform: rotate(-18deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-15deg) } }
@keyframes pm-banner { 0%,100% { transform: rotate(0) } 50% { transform: rotate(5deg) } }

.scn-three-knights-of-first-three-bookes {
  background:
    linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 40%, #b8b0a0 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8d8 0%, transparent 70%);
}
.scn-three-knights-of-first-three-bookes .wall-light {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a8 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.05);
}
.scn-three-knights-of-first-three-bookes .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8b0a0 0%, #908878 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-three-knights-of-first-three-bookes .window-bright {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #fff8e0 0%, #e8dcc0 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(255,248,224,0.5), 0 0 40px rgba(255,248,224,0.3);
  animation: tk-window 6s ease-in-out infinite alternate;
}
.scn-three-knights-of-first-three-bookes .knight-redcross {
  position: absolute; bottom: 16%; left: 25%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #a05530 0%, #703820 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tk-knight1 5s ease-in-out infinite;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-three-knights-of-first-three-bookes .knight-guyon {
  position: absolute; bottom: 16%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a5a6a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tk-knight2 5s ease-in-out infinite 0.5s;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-three-knights-of-first-three-bookes .knight-britomart {
  position: absolute; bottom: 16%; right: 25%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #8a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tk-knight3 5s ease-in-out infinite 1s;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-three-knights-of-first-three-bookes .banner-knights {
  position: absolute; top: 5%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c87040 0%, #a05020 100%);
  border-radius: 4px;
  animation: tk-banner 4s ease-in-out infinite;
}
@keyframes tk-window { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes tk-knight1 { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes tk-knight2 { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) rotate(-1deg) } }
@keyframes tk-knight3 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes tk-banner { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(4deg) } }

/* notes-blind-god */
.scn-notes-blind-god {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 40%, #4a3a2a 70%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 60%);
}
.scn-notes-blind-god .wall { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a1a 100%); animation:nbg-wall 20s ease-in-out infinite alternate; }
.scn-notes-blind-god .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:30% 70% 0 0 / 20% 40% 0 0; }
.scn-notes-blind-god .window { position:absolute; top:15%; left:45%; width:80px; height:120px; background:linear-gradient(135deg, rgba(200,180,120,0.3) 0%, rgba(200,180,120,0.05) 100%); border:2px solid rgba(200,180,120,0.4); border-radius:4px; animation:nbg-window 8s ease-in-out infinite alternate; }
.scn-notes-blind-god .figure { position:absolute; bottom:30%; left:50%; width:40px; height:100px; transform:translateX(-50%); background:linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation:nbg-figure 12s ease-in-out infinite; }
.scn-notes-blind-god .wings { position:absolute; bottom:38%; left:50%; width:120px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.15) 0%, transparent 70%); animation:nbg-wings 6s ease-in-out infinite alternate; }
.scn-notes-blind-god .halo { position:absolute; top:18%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,220,150,0.6) 0%, rgba(255,220,150,0) 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,220,150,0.3); animation:nbg-halo 4s ease-in-out infinite alternate; }
.scn-notes-blind-god .lightbeam { position:absolute; top:0; left:48%; width:40px; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, rgba(255,240,200,0) 80%); transform: skewX(-5deg); animation:nbg-beam 10s ease-in-out infinite alternate; }
@keyframes nbg-wall { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes nbg-window { 0% { background:rgba(200,180,120,0.1) } 50% { background:rgba(200,180,120,0.3) } 100% { background:rgba(200,180,120,0.05) } }
@keyframes nbg-figure { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform:translateX(-50%) translateY(-3px) rotate(0deg) } 50% { transform:translateX(-50%) translateY(0) rotate(1deg) } 75% { transform:translateX(-50%) translateY(-2px) rotate(0deg) } 100% { transform:translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes nbg-wings { 0% { transform:translateX(-50%) scaleX(1) } 50% { transform:translateX(-50%) scaleX(1.05) scaleY(1.02) } 100% { transform:translateX(-50%) scaleX(0.95) } }
@keyframes nbg-halo { 0% { opacity:0.6; transform:translateX(-50%) scale(1) } 50% { opacity:0.9; transform:translateX(-50%) scale(1.2) } 100% { opacity:0.5; transform:translateX(-50%) scale(0.9) } }
@keyframes nbg-beam { 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.15 } }

/* questions-canto-i */
.scn-questions-canto-i {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 50%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-questions-canto-i .bg-wall { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #2a1a1a 0%, #1a1a1a 100%); animation:qci-wall 25s ease-in-out infinite alternate; }
.scn-questions-canto-i .bg-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #3a2a1a 0%, #1a1a1a 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; }
.scn-questions-canto-i .desk { position:absolute; bottom:20%; left:30%; width:40%; height:20%; background:linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 8px 16px rgba(0,0,0,0.6); }
.scn-questions-canto-i .book { position:absolute; bottom:28%; left:35%; width:22%; height:12%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; transform: rotate(-2deg); animation:qci-book 14s ease-in-out infinite; }
.scn-questions-canto-i .candle { position:absolute; bottom:35%; left:48%; width:8px; height:40px; background:linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:2px; transform:rotate(1deg); }
.scn-questions-canto-i .flame { position:absolute; bottom:75%; left:48%; width:10px; height:14px; transform:translateX(-50%); background: radial-gradient(ellipse 60% 80%, #ffd080 0%, #ffa040 60%, transparent 100%); border-radius:50%; animation:qci-flame 2s ease-in-out infinite alternate; }
.scn-questions-canto-i .shadow { position:absolute; bottom:18%; left:30%; width:40%; height:10%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 100%); animation:qci-shadow 5s ease-in-out infinite alternate; }
.scn-questions-canto-i .paper { position:absolute; bottom:26%; left:60%; width:12%; height:8%; background:linear-gradient(180deg, #d4c4a4 0%, #b4a080 100%); transform:rotate(3deg); opacity:0.8; border-radius:1px; animation:qci-paper 20s ease-in-out infinite; }
@keyframes qci-wall { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes qci-book { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes qci-flame { 0% { transform: translateX(-50%) scaleY(1) scaleX(1)} 50% { transform: translateX(-50%) scaleY(1.15) scaleX(0.9) translateY(-3px)} 100% { transform: translateX(-50%) scaleY(0.95) scaleX(1.05) } }
@keyframes qci-shadow { 0% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.05) } 100% { opacity:0.3; transform: scaleX(0.95) } }
@keyframes qci-paper { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }

/* questions-canto-i-2 */
.scn-questions-canto-i-2 {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 50%, #3a2a1a 100%),
    radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-questions-canto-i-2 .table { position:absolute; bottom:15%; left:20%; width:60%; height:15%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:6px; box-shadow:0 10px 20px rgba(0,0,0,0.7); }
.scn-questions-canto-i-2 .bookstack { position:absolute; bottom:25%; left:30%; width:30%; height:25%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; transform: rotate(-1deg); animation:qci2-stack 18s ease-in-out infinite; }
.scn-questions-canto-i-2 .quill { position:absolute; bottom:28%; left:55%; width:4px; height:40px; background:linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius:1px; transform:rotate(15deg); transform-origin: bottom center; animation:qci2-quill 5s ease-in-out infinite alternate; }
.scn-questions-canto-i-2 .inkwell { position:absolute; bottom:20%; left:50%; width:12px; height:16px; background:linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:30% 30% 40% 40% / 20% 20% 40% 40%; box-shadow:0 2px 4px rgba(0,0,0,0.6); }
.scn-questions-canto-i-2 .lamp { position:absolute; bottom:35%; left:65%; width:20px; height:40px; background:linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:4px 4px 10% 10%; }
.scn-questions-canto-i-2 .lightcone { position:absolute; bottom:35%; left:65%; width:100px; height:150px; transform: translate(-50%,0) rotate(-10deg); background: linear-gradient(135deg, rgba(255,220,150,0.15) 0%, transparent 70%); animation:qci2-cone 9s ease-in-out infinite alternate; }
.scn-questions-canto-i-2 .scroll { position:absolute; bottom:22%; left:40%; width:15%; height:8%; background:linear-gradient(180deg, #d4c4a4 0%, #b4a080 100%); transform:rotate(-5deg); border-radius:2px; animation:qci2-scroll 25s ease-in-out infinite; }
@keyframes qci2-stack { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-3px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes qci2-quill { 0% { transform: rotate(13deg) translateY(0) } 50% { transform: rotate(17deg) translateY(-1px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes qci2-cone { 0% { opacity:0.1 } 50% { opacity:0.3 } 100% { opacity:0.15 } }
@keyframes qci2-scroll { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }

/* notes-plot-canto-ii */
.scn-notes-plot-canto-ii {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 50%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-notes-plot-canto-ii .wall-bg { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #2a1a1a 0%, #1a1a1a 100%); animation:npc2-wall 22s ease-in-out infinite alternate; }
.scn-notes-plot-canto-ii .floor-bg { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #3a2a1a 0%, #1a1a1a 100%); border-radius:40% 60% 0 0 / 50% 40% 0 0; }
.scn-notes-plot-canto-ii .door { position:absolute; bottom:15%; left:70%; width:80px; height:150px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:4px 4px 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation:npc2-door 15s ease-in-out infinite; }
.scn-notes-plot-canto-ii .knight { position:absolute; bottom:10%; left:50%; width:30px; height:100px; transform:translateX(-50%); background:linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; animation:npc2-knight 8s ease-in-out infinite; }
.scn-notes-plot-canto-ii .sword { position:absolute; bottom:35%; left:55%; width:4px; height:50px; background:linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); transform:rotate(30deg); transform-origin: bottom center; animation:npc2-sword 10s ease-in-out infinite alternate; }
.scn-notes-plot-canto-ii .dwarf { position:absolute; bottom:8%; left:38%; width:18px; height:50px; background:linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; animation:npc2-dwarf 12s ease-in-out infinite; }
.scn-notes-plot-canto-ii .phantom { position:absolute; top:25%; left:30%; width:60px; height:100px; background: radial-gradient(ellipse 40% 60%, rgba(200,180,160,0.08) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation:npc2-phantom 20s ease-in-out infinite alternate; }
.scn-notes-plot-canto-ii .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background:linear-gradient(180deg, #3a2a1a 0%, #1a1a1a 100%); border-radius:10% 10% 0 0 / 20% 20% 0 0; }
@keyframes npc2-wall { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes npc2-door { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes npc2-knight { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(0deg) } 50% { transform: translateX(-50%) translateY(0) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(0deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes npc2-sword { 0% { transform: rotate(28deg) scaleY(1) } 50% { transform: rotate(32deg) scaleY(1.02) } 100% { transform: rotate(30deg) scaleY(0.98) } }
@keyframes npc2-dwarf { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(4px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes npc2-phantom { 0% { opacity:0.1; transform: scale(1) } 50% { opacity:0.2; transform: scale(1.05) } 100% { opacity:0.05; transform: scale(0.95) } }

.scn-dragon-grapples-knight {
  background:
    linear-gradient(180deg, #4a7ab5 0%, #87ceeb 40%, #f0e68c 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,215,0,0.3) 0%, transparent 60%);
}
.scn-dragon-grapples-knight .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4169e1 0%, #87ceeb 100%);
  animation: dgk-sky 10s ease-in-out infinite alternate;
}
.scn-dragon-grapples-knight .sun {
  position: absolute; top: 10%; left: 70%;
  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,0.4);
  animation: dgk-sun 15s ease-in-out infinite alternate;
}
.scn-dragon-grapples-knight .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6b8e23 0%, #2f4f0f 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-dragon-grapples-knight .dragon-body {
  position: absolute; bottom: 35%; left: 20%;
  width: 200px; height: 120px;
  background: linear-gradient(135deg, #2e8b57 0%, #006400 50%, #004d00 100%);
  border-radius: 40% 60% 50% 50% / 60% 40% 50% 50%;
  transform: rotate(-10deg);
  box-shadow: inset -10px -10px 20px rgba(0,0,0,0.5);
  animation: dgk-body 6s ease-in-out infinite;
}
.scn-dragon-grapples-knight .dragon-claw {
  position: absolute; bottom: 38%; left: 40%;
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #556b2f 0%, #2e4a10 100%);
  border-radius: 30% 30% 50% 50%;
  transform: rotate(15deg);
  box-shadow: 0 5px 15px rgba(0,0,0,0.6);
  animation: dgk-claw 4s ease-in-out infinite;
}
.scn-dragon-grapples-knight .knight-silhouette {
  position: absolute; bottom: 30%; left: 48%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: skewX(5deg);
  animation: dgk-knight 3s ease-in-out infinite alternate;
}
.scn-dragon-grapples-knight .sword {
  position: absolute; bottom: 38%; left: 52%;
  width: 6px; height: 90px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 70%, #404040 100%);
  transform: rotate(30deg);
  transform-origin: bottom center;
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(255,215,0,0.3);
  animation: dgk-sword 2s ease-in-out infinite alternate;
}
.scn-dragon-grapples-knight .sparks {
  position: absolute; bottom: 40%; left: 50%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd700 0%, transparent 70%);
  border-radius: 50%;
  animation: dgk-sparks 0.5s ease-in-out infinite;
}
@keyframes dgk-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes dgk-sun {
  0% { transform: scale(1); box-shadow: 0 0 60px 30px rgba(255,215,0,0.3); }
  50% { transform: scale(1.05); box-shadow: 0 0 80px 40px rgba(255,215,0,0.5); }
  100% { transform: scale(0.95); box-shadow: 0 0 50px 20px rgba(255,215,0,0.4); }
}
@keyframes dgk-body {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-12deg) scale(1.02); }
  100% { transform: rotate(-8deg) scale(0.98); }
}
@keyframes dgk-claw {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-3px); }
  100% { transform: rotate(18deg) translateY(2px); }
}
@keyframes dgk-knight {
  0% { transform: skewX(5deg) translateX(0); }
  50% { transform: skewX(3deg) translateX(4px); }
  100% { transform: skewX(6deg) translateX(-2px); }
}
@keyframes dgk-sword {
  0% { transform: rotate(30deg) scaleY(1); }
  50% { transform: rotate(25deg) scaleY(0.95); }
  100% { transform: rotate(35deg) scaleY(1.05); }
}
@keyframes dgk-sparks {
  0%, 100% { transform: scale(0.5); opacity: 0; }
  25% { transform: scale(1.2); opacity: 1; }
  50% { transform: scale(0.8); opacity: 0.8; }
  75% { transform: scale(1.5); opacity: 0.5; }
}

.scn-knight-forces-release {
  background:
    linear-gradient(180deg, #4682b4 0%, #87ceeb 50%, #f0e68c 100%),
    radial-gradient(ellipse at 30% 40%, rgba(255,215,0,0.4) 0%, transparent 60%);
}
.scn-knight-forces-release .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4169e1 0%, #87ceeb 100%);
  animation: kfr-sky 12s ease-in-out infinite alternate;
}
.scn-knight-forces-release .sun {
  position: absolute; top: 8%; left: 65%;
  width: 70px; height: 70px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 75%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(255,215,0,0.3);
  animation: kfr-sun 18s ease-in-out infinite alternate;
}
.scn-knight-forces-release .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7c9b48 0%, #3a5a1a 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
}
.scn-knight-forces-release .dragon-foot {
  position: absolute; bottom: 35%; left: 30%;
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #556b2f 0%, #1e3a0e 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-20deg);
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  animation: kfr-foot 3s ease-in-out infinite;
}
.scn-knight-forces-release .knight-swing {
  position: absolute; bottom: 28%; left: 45%;
  width: 45px; height: 85px;
  background: linear-gradient(180deg, #505050 0%, #303030 100%);
  border-radius: 30% 20% 25% 35% / 50% 40% 40% 30%;
  transform: rotate(10deg);
  animation: kfr-knight 2s ease-in-out infinite alternate;
}
.scn-knight-forces-release .sword-arc {
  position: absolute; bottom: 35%; left: 48%;
  width: 8px; height: 100px;
  background: linear-gradient(180deg, #d0d0d0 0%, #808080 100%);
  transform: rotate(80deg);
  transform-origin: bottom center;
  border-radius: 4px;
  box-shadow: 0 0 12px rgba(255,215,0,0.4);
  animation: kfr-sword 1s ease-in-out infinite alternate;
}
.scn-knight-forces-release .impact-flash {
  position: absolute; bottom: 38%; left: 42%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #ffffe0 0%, #ffd700 30%, transparent 70%);
  border-radius: 50%;
  animation: kfr-flash 0.4s ease-in-out infinite;
}
@keyframes kfr-sky {
  0% { opacity: 0.85; }
  100% { opacity: 1; }
}
@keyframes kfr-sun {
  0% { transform: scale(1); }
  50% { transform: scale(1.03); box-shadow: 0 0 60px 30px rgba(255,215,0,0.4); }
  100% { transform: scale(0.97); }
}
@keyframes kfr-foot {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(4px); }
  100% { transform: rotate(-15deg) translateY(-2px); }
}
@keyframes kfr-knight {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(8px); }
  100% { transform: rotate(15deg) translateX(-4px); }
}
@keyframes kfr-sword {
  0% { transform: rotate(80deg) scaleY(1); }
  50% { transform: rotate(70deg) scaleY(1.1); }
  100% { transform: rotate(90deg) scaleY(0.9); }
}
@keyframes kfr-flash {
  0%, 100% { transform: scale(0.5); opacity: 0.6; }
  50% { transform: scale(1.5); opacity: 1; }
}

.scn-knight-cuts-off-paw {
  background:
    linear-gradient(180deg, #3a6ea5 0%, #87ceeb 40%, #e8d48b 100%),
    radial-gradient(ellipse at 60% 35%, rgba(255,200,50,0.3) 0%, transparent 50%);
}
.scn-knight-cuts-off-paw .sky {
  position: absolute; inset: 0 0 42% 0;
  background: linear-gradient(180deg, #2b5b84 0%, #87ceeb 100%);
  animation: kcp-sky 14s ease-in-out infinite alternate;
}
.scn-knight-cuts-off-paw .sun {
  position: absolute; top: 12%; left: 75%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.3);
  animation: kcp-sun 20s ease-in-out infinite alternate;
}
.scn-knight-cuts-off-paw .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(180deg, #5a7a30 0%, #2e4a10 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
}
.scn-knight-cuts-off-paw .knight-victor {
  position: absolute; bottom: 30%; left: 40%;
  width: 40px; height: 85px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 25% 25% 20% 30% / 50% 50% 30% 30%;
  transform: skewX(-5deg);
  animation: kcp-knight 2s ease-in-out infinite alternate;
}
.scn-knight-cuts-off-paw .sword-strike {
  position: absolute; bottom: 38%; left: 44%;
  width: 6px; height: 95px;
  background: linear-gradient(180deg, #d0d0d0 0%, #707070 100%);
  transform: rotate(45deg);
  transform-origin: bottom center;
  border-radius: 3px;
  box-shadow: 0 0 10px rgba(255,215,0,0.5);
  animation: kcp-sword 1.5s ease-in-out infinite alternate;
}
.scn-knight-cuts-off-paw .severed-paw {
  position: absolute; bottom: 32%; left: 55%;
  width: 50px; height: 40px;
  background: linear-gradient(180deg, #3a4a1a 0%, #1a2a0a 100%);
  border-radius: 40% 30% 20% 40% / 30% 20% 40% 30%;
  transform: rotate(40deg);
  animation: kcp-paw 3s ease-in-out infinite;
}
.scn-knight-cuts-off-paw .slash-trail {
  position: absolute; bottom: 40%; left: 42%;
  width: 40px; height: 4px;
  background: linear-gradient(90deg, #ffd700 0%, transparent 100%);
  border-radius: 50%;
  animation: kcp-slash 0.3s ease-in-out infinite;
}
@keyframes kcp-sky {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes kcp-sun {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(255,215,0,0.4); }
  100% { transform: scale(0.95); }
}
@keyframes kcp-knight {
  0% { transform: skewX(-5deg) translateX(0); }
  50% { transform: skewX(-8deg) translateX(7px); }
  100% { transform: skewX(-3deg) translateX(-3px); }
}
@keyframes kcp-sword {
  0% { transform: rotate(45deg) scaleY(1); }
  50% { transform: rotate(35deg) scaleY(1.05); }
  100% { transform: rotate(55deg) scaleY(0.95); }
}
@keyframes kcp-paw {
  0% { transform: rotate(40deg) translateX(0); }
  50% { transform: rotate(30deg) translateX(5px) translateY(-3px); }
  100% { transform: rotate(45deg) translateX(-2px) translateY(2px); }
}
@keyframes kcp-slash {
  0%, 100% { transform: scaleX(0.2); opacity: 0; }
  50% { transform: scaleX(1); opacity: 1; }
}

.scn-dragon-vomits-fire {
  background:
    linear-gradient(180deg, #0b0b2a 0%, #2a0a0a 40%, #4a1010 100%),
    radial-gradient(ellipse at 50% 40%, #8b2500 0%, transparent 60%);
}
.scn-dragon-vomits-fire .bg-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #050520 0%, #1a0a0a 100%);
  animation: dvf-deep 20s ease-in-out infinite alternate;
}
.scn-dragon-vomits-fire .dragon-head {
  position: absolute; bottom: 30%; left: 30%;
  width: 140px; height: 110px;
  background: linear-gradient(135deg, #2a2a0a 0%, #1a1a05 50%, #0a0a00 100%);
  border-radius: 40% 50% 30% 50% / 60% 40% 50% 30%;
  transform: rotate(15deg);
  box-shadow: inset -5px -10px 20px rgba(0,0,0,0.8);
  animation: dvf-head 5s ease-in-out infinite;
}
.scn-dragon-vomits-fire .fire-stream {
  position: absolute; bottom: 38%; left: 50%;
  width: 100px; height: 60px;
  background: linear-gradient(90deg, #ff4500 0%, #ff8c00 30%, #ffd700 60%, transparent 100%);
  border-radius: 0 50% 50% 0;
  filter: blur(2px);
  animation: dvf-fire 2s ease-in-out infinite alternate;
}
.scn-dragon-vomits-fire .smoke {
  position: absolute; bottom: 45%; left: 60%;
  width: 80px; height: 100px;
  background: radial-gradient(ellipse at 30% 50%, rgba(100,100,100,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: dvf-smoke 6s linear infinite;
}
.scn-dragon-vomits-fire .embers {
  position: absolute; bottom: 42%; left: 55%;
  width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd700 0%, #ff4500 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(255,69,0,0.8);
  animation: dvf-ember 1s ease-in-out infinite;
}
.scn-dragon-vomits-fire .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
}
@keyframes dvf-deep {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}
@keyframes dvf-head {
  0% { transform: rotate(15deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.03); }
  100% { transform: rotate(20deg) scale(0.97); }
}
@keyframes dvf-fire {
  0% { transform: scaleX(0.8) scaleY(0.8); opacity: 0.9; }
  50% { transform: scaleX(1.2) scaleY(1); opacity: 1; }
  100% { transform: scaleX(0.9) scaleY(0.9); opacity: 0.8; }
}
@keyframes dvf-smoke {
  0% { transform: translateY(0) scaleX(1); opacity: 0.4; }
  50% { transform: translateY(-10px) scaleX(1.2); opacity: 0.7; }
  100% { transform: translateY(0) scaleX(0.8); opacity: 0.3; }
}
@keyframes dvf-ember {
  0%, 100% { transform: translate(0,0) scale(0.8); opacity: 0.6; }
  25% { transform: translate(8px, -6px) scale(1.2); opacity: 1; }
  50% { transform: translate(15px, -3px) scale(0.5); opacity: 0.8; }
  75% { transform: translate(5px, -10px) scale(1.1); opacity: 0.9; }
}

.scn-archaisms-and-dialect {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 60%, #b8a080 100%), radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 60%);
}
.scn-archaisms-and-dialect .wall { position: absolute; inset: 0; background: linear-gradient(135deg, #e0d4b8 0%, #c8b898 100%); }
.scn-archaisms-and-dialect .bookshelf { position: absolute; top: 8%; left: 5%; width: 25%; height: 55%; background: linear-gradient(180deg, #8a6e4e 0%, #6a4e2e 100%); border-radius: 4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.3); }
.scn-archaisms-and-dialect .desk { position: absolute; bottom: 8%; left: 20%; width: 50%; height: 20%; background: linear-gradient(180deg, #a08060 0%, #7a6040 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.scn-archaisms-and-dialect .book { position: absolute; bottom: 22%; left: 38%; width: 8%; height: 6%; background: linear-gradient(135deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ad1-book 6s ease-in-out infinite alternate; }
.scn-archaisms-and-dialect .candle { position: absolute; bottom: 26%; left: 45%; width: 3%; height: 8%; background: linear-gradient(180deg, #e0c080 0%, #c8a060 100%); border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 0 20px 8px rgba(200,160,96,.5); animation: ad1-candle 4s ease-in-out infinite alternate; }
.scn-archaisms-and-dialect .figure { position: absolute; bottom: 10%; left: 35%; width: 12%; height: 28%; background: linear-gradient(180deg, #503830 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ad1-figure 8s ease-in-out infinite; }
.scn-archaisms-and-dialect .window-glow { position: absolute; top: 10%; right: 8%; width: 20%; height: 35%; background: radial-gradient(ellipse at 50% 30%, rgba(255,255,230,.6) 0%, transparent 70%); filter: blur(8px); animation: ad1-glow 10s ease-in-out infinite alternate; }
@keyframes ad1-book { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes ad1-candle { 0% { transform: scaleY(1); opacity: .9; box-shadow: 0 0 20px 8px rgba(200,160,96,.5); } 50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 28px 12px rgba(220,180,110,.6); } 100% { transform: scaleY(0.95); opacity: .85; box-shadow: 0 0 16px 6px rgba(180,140,80,.4); } }
@keyframes ad1-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-2px) translateY(-1px) rotate(-0.5deg); } 75% { transform: translateX(3px) translateY(-3px) rotate(0.5deg); } }
@keyframes ad1-glow { 0% { opacity: .6; filter: blur(6px); } 50% { opacity: 1; filter: blur(10px); } 100% { opacity: .7; filter: blur(8px); } }

.scn-dialectic-and-classical-constructions {
  background: linear-gradient(180deg, #d4d0c4 0%, #b8b0a0 50%, #9a8e7a 100%), radial-gradient(ellipse at 50% 80%, #e8e4d8 0%, transparent 70%);
}
.scn-dialectic-and-classical-constructions .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #8a7e6a 0%, #6a5e4a 100%); border-radius: 20% 20% 0 0; }
.scn-dialectic-and-classical-constructions .column { position: absolute; bottom: 20%; left: 50%; width: 8%; height: 60%; background: linear-gradient(180deg, #e0d8c8 0%, #c0b8a8 40%, #a09888 100%); border-radius: 10% 10% 8% 8% / 20% 20% 8% 8%; transform: translateX(-50%); box-shadow: 4px 0 8px rgba(0,0,0,.15); animation: dcc2-column 12s ease-in-out infinite alternate; }
.scn-dialectic-and-classical-constructions .scroll { position: absolute; bottom: 40%; left: 30%; width: 12%; height: 4%; background: linear-gradient(180deg, #c8b898 0%, #a89070 100%); border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%; transform: rotate(-5deg); animation: dcc2-scroll 8s ease-in-out infinite; }
.scn-dialectic-and-classical-constructions .bust { position: absolute; bottom: 30%; left: 58%; width: 10%; height: 20%; background: linear-gradient(180deg, #c8b8a0 0%, #a89078 50%, #7a6a5a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: inset -4px -4px 8px rgba(0,0,0,.2); animation: dcc2-bust 15s ease-in-out infinite alternate; }
.scn-dialectic-and-classical-constructions .figure-seated { position: absolute; bottom: 15%; left: 22%; width: 18%; height: 35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: dcc2-figure 9s ease-in-out infinite; }
.scn-dialectic-and-classical-constructions .sunbeam { position: absolute; top: 0; left: 35%; width: 15%; height: 100%; background: linear-gradient(180deg, rgba(255,255,230,.3) 0%, transparent 80%); filter: blur(10px); animation: dcc2-sunbeam 20s ease-in-out infinite alternate; }
.scn-dialectic-and-classical-constructions .dust { position: absolute; top: 10%; left: 10%; width: 4px; height: 4px; background: rgba(200,180,140,.5); border-radius: 50%; filter: blur(2px); animation: dcc2-dust 7s ease-in-out infinite; }
@keyframes dcc2-column { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes dcc2-scroll { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(3px); } }
@keyframes dcc2-bust { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes dcc2-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(5px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(4px) translateY(-2px) rotate(0deg); } }
@keyframes dcc2-sunbeam { 0% { opacity: .4; transform: translateX(-10px); } 50% { opacity: .8; transform: translateX(5px); } 100% { opacity: .5; transform: translateX(0); } }
@keyframes dcc2-dust { 0%,100% { transform: translate(0,0) scale(1); opacity: .5; } 50% { transform: translate(20px,-15px) scale(1.5); opacity: 1; } }

.scn-gallicisms-origin {
  background: linear-gradient(180deg, #b8c8d4 0%, #9aacbc 40%, #7a8e9e 100%), radial-gradient(ellipse at 70% 10%, #e0e8f0 0%, transparent 60%);
}
.scn-gallicisms-origin .sky-out { position: absolute; top: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #a0bcd4 0%, #c0d8e8 50%, #e0e8f0 100%); animation: go3-sky 15s ease-in-out infinite alternate; }
.scn-gallicisms-origin .chateau-wall { position: absolute; bottom: 15%; left: 5%; right: 5%; height: 60%; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 50%, #7a6a5a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.2); }
.scn-gallicisms-origin .tapestry { position: absolute; bottom: 25%; left: 20%; width: 25%; height: 40%; background: linear-gradient(135deg, #8a6050 0%, #6a4030 50%, #4a2010 100%); border-radius: 8px; box-shadow: 0 0 0 4px #8a7050; animation: go3-tapestry 12s ease-in-out infinite alternate; }
.scn-gallicisms-origin .map { position: absolute; bottom: 30%; right: 12%; width: 20%; height: 30%; background: linear-gradient(135deg, #e0d0b0 0%, #c8b898 50%, #a89070 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.3); transform: rotate(2deg); animation: go3-map 10s ease-in-out infinite; }
.scn-gallicisms-origin .lady-silhouette { position: absolute; bottom: 18%; left: 40%; width: 14%; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: go3-lady 6s ease-in-out infinite; }
.scn-gallicisms-origin .lily { position: absolute; bottom: 10%; left: 60%; width: 6%; height: 10%; background: radial-gradient(circle at 50% 30%, #f0e8d8 0%, #d8c8a8 50%, #b8a888 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: go3-lily 8s ease-in-out infinite alternate; }
.scn-gallicisms-origin .fleur { position: absolute; top: 8%; left: 10%; width: 8%; height: 12%; background: radial-gradient(circle, #d8c080 0%, #b8a060 50%, #907040 100%); clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); animation: go3-fleur 20s linear infinite; }
@keyframes go3-sky { 0%,100% { opacity: .8; } 50% { opacity: 1; } }
@keyframes go3-tapestry { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } }
@keyframes go3-map { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-4px); } }
@keyframes go3-lady { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-2px) translateY(-1px) rotate(-0.5deg); } 75% { transform: translateX(2px) translateY(-3px) rotate(0.5deg); } }
@keyframes go3-lily { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } 100% { transform: rotate(-3deg) scale(0.95); } }
@keyframes go3-fleur { 0% { transform: rotate(0deg) scale(1); opacity: .7; } 50% { transform: rotate(180deg) scale(1.1); opacity: 1; } 100% { transform: rotate(360deg) scale(1); opacity: .8; } }

.scn-pope-and-spenser {
  background: linear-gradient(180deg, #d4b890 0%, #c0a078 40%, #a08058 100%), radial-gradient(ellipse at 50% 50%, #e8c8a0 0%, transparent 70%);
}
.scn-pope-and-spenser .room-wall { position: absolute; inset: 0; background: linear-gradient(135deg, #c8a880 0%, #b89870 50%, #a08058 100%); }
.scn-pope-and-spenser .picture-frame-1 { position: absolute; top: 15%; left: 10%; width: 25%; height: 40%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border: 6px solid #b09878; border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: ps4-frame1 12s ease-in-out infinite alternate; }
.scn-pope-and-spenser .picture-frame-2 { position: absolute; top: 20%; right: 12%; width: 20%; height: 35%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border: 5px solid #a08868; border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: ps4-frame2 14s ease-in-out infinite alternate; }
.scn-pope-and-spenser .picture-frame-3 { position: absolute; bottom: 30%; left: 40%; width: 18%; height: 30%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border: 4px solid #907050; border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: ps4-frame3 10s ease-in-out infinite alternate; }
.scn-pope-and-spenser .old-lady { position: absolute; bottom: 10%; left: 30%; width: 20%; height: 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ps4-lady 8s ease-in-out infinite; }
.scn-pope-and-spenser .candlelight { position: absolute; bottom: 22%; left: 55%; width: 4%; height: 10%; background: radial-gradient(circle, #f0d080 0%, #d8b060 40%, transparent 70%); border-radius: 50% 50% 20% 20% / 30% 30% 20% 20%; box-shadow: 0 0 30px 12px rgba(240,208,128,.5); animation: ps4-candle 5s ease-in-out infinite alternate; }
.scn-pope-and-spenser .warm-glow { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, transparent 0%, rgba(240,200,160,.3) 100%); animation: ps4-glow 20s ease-in-out infinite alternate; }
@keyframes ps4-frame1 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes ps4-frame2 { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } }
@keyframes ps4-frame3 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes ps4-lady { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-3px) translateY(-1px) rotate(-0.5deg); } 75% { transform: translateX(3px) translateY(-3px) rotate(0.5deg); } }
@keyframes ps4-candle { 0% { transform: scaleY(1); opacity: .8; box-shadow: 0 0 20px 8px rgba(240,208,128,.4); } 50% { transform: scaleY(1.08); opacity: 1; box-shadow: 0 0 40px 16px rgba(240,208,128,.6); } 100% { transform: scaleY(0.95); opacity: .75; box-shadow: 0 0 18px 6px rgba(240,208,128,.3); } }
@keyframes ps4-glow { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }

.scn-mother-warns-child {
  background: 
    linear-gradient(180deg, #f5d4a0 0%, #eab168 30%, #b57a3a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 70% 20%, #ffe085 0%, transparent 50%);
}
.scn-mother-warns-child .sky { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #ffd895 0%, #f5c06a 40%, #d4904a 70%, transparent 100%); animation: mwc-sky 10s ease-in-out infinite alternate; }
.scn-mother-warns-child .sun { position:absolute; top:5%; right:20%; width:50px; height:50px; background:radial-gradient(circle, #ffecb0 0%, #ffd060 60%, transparent 80%); border-radius:50%; box-shadow:0 0 40px 20px rgba(255,208,96,0.6); animation: mwc-sun 6s ease-in-out infinite; }
.scn-mother-warns-child .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:20% 20% 0 0; box-shadow:inset 0 20px 30px rgba(0,0,0,0.6); }
.scn-mother-warns-child .cliff { position:absolute; bottom:35%; left:55%; width:120px; height:80px; background:linear-gradient(135deg, #7a5a3a, #4a3018); border-radius:0 50% 0 0; transform:skewX(-10deg); box-shadow:10px 0 20px rgba(0,0,0,0.5); }
.scn-mother-warns-child .mother { position:absolute; bottom:38%; left:30%; width:30px; height:60px; background:linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: mwc-mother 4s ease-in-out infinite; }
.scn-mother-warns-child .child { position:absolute; bottom:35%; left:58%; width:22px; height:40px; background:linear-gradient(180deg, #2a1a0a 0%, #140a04 100%); border-radius:50% 50% 30% 30% / 70% 70% 40% 40%; transform-origin:bottom center; animation: mwc-child 3s ease-in-out infinite; }
.scn-mother-warns-child .shadow { position:absolute; bottom:30%; left:25%; width:100px; height:20px; background:rgba(0,0,0,0.3); border-radius:50%; filter:blur(6px); animation: mwc-shadow 5s ease-in-out infinite; }
.scn-mother-warns-child .bird { position:absolute; top:15%; left:10%; width:20px; height:10px; background:#2a1a0a; border-radius:50% 50% 20% 20%; transform:rotate(-20deg); animation: mwc-bird 15s linear infinite; }

@keyframes mwc-sky { 0% { opacity:0.7; filter: brightness(0.9); } 50% { opacity:1; filter: brightness(1); } 100% { opacity:0.8; filter: brightness(0.95); } }
@keyframes mwc-sun { 0% { transform: scale(1); box-shadow:0 0 30px 15px rgba(255,208,96,0.5); } 50% { transform: scale(1.1); box-shadow:0 0 50px 25px rgba(255,208,96,0.7); } 100% { transform: scale(0.95); box-shadow:0 0 35px 18px rgba(255,208,96,0.6); } }
@keyframes mwc-mother { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-2deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mwc-child { 0% { transform: translateY(0) rotate(0deg) scale(1); } 20% { transform: translateY(-2px) rotate(5deg) scale(0.95); } 40% { transform: translateY(0) rotate(-3deg) scale(1); } 60% { transform: translateY(-1px) rotate(2deg) scale(0.98); } 80% { transform: translateY(0) rotate(-1deg) scale(1); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes mwc-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.5; } 100% { transform: scaleX(0.9); opacity:0.2; } }
@keyframes mwc-bird { 0% { transform: translateX(0) translateY(0) rotate(-20deg); } 25% { transform: translateX(40px) translateY(-10px) rotate(-15deg); } 50% { transform: translateX(80px) translateY(-5px) rotate(-25deg); } 75% { transform: translateX(120px) translateY(-8px) rotate(-18deg); } 100% { transform: translateX(160px) translateY(0) rotate(-20deg); } }

.scn-king-greets-knight {
  background:
    linear-gradient(180deg, #fadc96 0%, #eac076 30%, #c8955a 60%, #8a6535 100%),
    radial-gradient(ellipse at 50% 30%, #ffe8a0 0%, transparent 50%);
}
.scn-king-greets-knight .sky { position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #feecc5 0%, #f5d49a 40%, #d4a86a 70%, transparent 100%); animation: kgk-sky 12s ease-in-out infinite alternate; }
.scn-king-greets-knight .castle-wall { position:absolute; bottom:30%; left:10%; width:180px; height:120px; background:linear-gradient(180deg, #b8956a 0%, #8a6a4a 100%); border-radius:10% 10% 0 0; box-shadow:inset 0 -20px 30px rgba(0,0,0,0.3); }
.scn-king-greets-knight .gate { position:absolute; bottom:30%; left:65%; width:70px; height:90px; background:#3a2a1a; border-radius:30% 30% 0 0; box-shadow:inset 0 0 20px rgba(0,0,0,0.5); }
.scn-king-greets-knight .king { position:absolute; bottom:40%; left:15%; width:35px; height:70px; background:linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius:40% 40% 30% 30% / 70% 70% 40% 40%; transform-origin:bottom center; animation: kgk-king 6s ease-in-out infinite; }
.scn-king-greets-knight .knight { position:absolute; bottom:38%; left:55%; width:40px; height:75px; background:linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:30% 30% 20% 20% / 60% 60% 40% 40%; transform-origin:bottom center; animation: kgk-knight 4s ease-in-out infinite; }
.scn-king-greets-knight .banner-left { position:absolute; top:20%; left:5%; width:12px; height:60px; background:#a0552a; border-radius:2px; transform-origin:top center; animation: kgk-banner 5s ease-in-out infinite; }
.scn-king-greets-knight .banner-right { position:absolute; top:20%; right:5%; width:12px; height:60px; background:#c86a3a; border-radius:2px; transform-origin:top center; animation: kgk-banner 5s ease-in-out infinite reverse; animation-delay:0.5s; }
.scn-king-greets-knight .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%); border-radius:30% 30% 0 0; }

@keyframes kgk-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes kgk-king { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kgk-knight { 0% { transform: translateY(0) rotate(0deg) scale(1); } 20% { transform: translateY(-3px) rotate(-3deg) scale(0.95); } 40% { transform: translateY(0) rotate(2deg) scale(1); } 60% { transform: translateY(-2px) rotate(-1deg) scale(0.98); } 80% { transform: translateY(0) rotate(1deg) scale(1); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes kgk-banner { 0% { transform: rotate(0deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(-5deg); } 75% { transform: rotate(8deg); } 100% { transform: rotate(0deg); } }

.scn-procession-to-palace {
  background:
    linear-gradient(180deg, #fceaca 0%, #f0c48a 30%, #d49a5a 60%, #8a6535 100%),
    radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 50%);
}
.scn-procession-to-palace .sky { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #ffeedd 0%, #f5d49a 40%, #d4a86a 70%, transparent 100%); animation: ptp-sky 8s ease-in-out infinite alternate; }
.scn-procession-to-palace .palace { position:absolute; top:5%; left:20%; width:250px; height:150px; background:linear-gradient(180deg, #d4a86a 0%, #b58a5a 100%); border-radius:10% 10% 0 0; box-shadow:inset 0 -20px 40px rgba(0,0,0,0.2); }
.scn-procession-to-palace .street { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%); border-radius:20% 20% 0 0; }
.scn-procession-to-palace .crowd-left { position:absolute; bottom:20%; left:5%; width:100px; height:80px; background:linear-gradient(90deg, transparent 0%, #5a3a1a 40%, #4a2a0a 70%, transparent 100%); clip-path:polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%); animation: ptp-crowd 15s linear infinite; }
.scn-procession-to-palace .crowd-right { position:absolute; bottom:20%; right:5%; width:100px; height:80px; background:linear-gradient(-90deg, transparent 0%, #6a4a2a 40%, #3a1a0a 70%, transparent 100%); clip-path:polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%); animation: ptp-crowd 15s linear infinite; animation-delay: -7s; }
.scn-procession-to-palace .parade-figures { position:absolute; bottom:30%; left:35%; width:120px; height:50px; background:linear-gradient(90deg, #5a3a1a, #7a5a3a, #5a3a1a); border-radius:30%; animation: ptp-parade 10s linear infinite; }
.scn-procession-to-palace .garment-1 { position:absolute; bottom:40%; left:40%; width:20px; height:30px; background:#c86a3a; border-radius:20% 20% 40% 40%; transform:rotate(15deg); animation: ptp-garment 6s ease-in-out infinite; }
.scn-procession-to-palace .garment-2 { position:absolute; bottom:45%; left:55%; width:25px; height:35px; background:#a0552a; border-radius:20% 20% 40% 40%; transform:rotate(-10deg); animation: ptp-garment 6s ease-in-out infinite; animation-delay:2s; }
.scn-procession-to-palace .garment-3 { position:absolute; bottom:38%; left:30%; width:18px; height:28px; background:#d4804a; border-radius:20% 20% 40% 40%; transform:rotate(30deg); animation: ptp-garment 6s ease-in-out infinite; animation-delay:4s; }

@keyframes ptp-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ptp-crowd { 0% { transform: translateX(0); } 50% { transform: translateX(20px); } 100% { transform: translateX(0); } }
@keyframes ptp-parade { 0% { transform: translateX(-30px); } 50% { transform: translateX(30px); } 100% { transform: translateX(-30px); } }
@keyframes ptp-garment { 0% { transform: translateY(0) rotate(15deg); } 25% { transform: translateY(-10px) rotate(-5deg); } 50% { transform: translateY(5px) rotate(25deg); } 75% { transform: translateY(-8px) rotate(0deg); } 100% { transform: translateY(0) rotate(15deg); } }

.scn-feast-modesty {
  background:
    linear-gradient(180deg, #efe3c0 0%, #d9c89a 30%, #bfa675 60%, #9a7a5a 100%),
    radial-gradient(ellipse at 50% 40%, #fff8e0 0%, transparent 60%);
}
.scn-feast-modesty .room-wall { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #d4c49a 0%, #b8a47a 100%); border-radius:0 0 30% 30%; box-shadow:inset 0 -20px 40px rgba(0,0,0,0.1); }
.scn-feast-modesty .table { position:absolute; bottom:20%; left:10%; width:80%; height:30px; background:linear-gradient(180deg, #8a6a3a 0%, #5a4018 100%); border-radius:5px; box-shadow:0 10px 20px rgba(0,0,0,0.2); }
.scn-feast-modesty .chair-left { position:absolute; bottom:25%; left:12%; width:30px; height:50px; background:linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius:10% 10% 30% 30%; transform-origin:bottom center; animation: fms-chair 8s ease-in-out infinite; }
.scn-feast-modesty .chair-right { position:absolute; bottom:25%; right:12%; width:30px; height:50px; background:linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius:10% 10% 30% 30%; transform-origin:bottom center; animation: fms-chair 8s ease-in-out infinite reverse; animation-delay:2s; }
.scn-feast-modesty .figure-left { position:absolute; bottom:28%; left:15%; width:25px; height:45px; background:linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: fms-figure 6s ease-in-out infinite; }
.scn-feast-modesty .figure-right { position:absolute; bottom:28%; right:15%; width:25px; height:45px; background:linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: fms-figure 6s ease-in-out infinite; animation-delay:3s; }
.scn-feast-modesty .candle { position:absolute; bottom:35%; left:48%; width:6px; height:20px; background:#d4a86a; border-radius:2px; box-shadow:0 -10px 20px 5px rgba(255,200,100,0.5); animation: fms-candle 4s ease-in-out infinite; }
.scn-feast-modesty .window { position:absolute; top:5%; left:40%; width:60px; height:80px; background:linear-gradient(180deg, #c8d8e8 0%, #a0b8d0 100%); border-radius:10px; box-shadow:inset 0 0 20px rgba(255,255,255,0.3); animation: fms-window 12s ease-in-out infinite alternate; }
.scn-feast-modesty .cloth { position:absolute; bottom:25%; left:20%; width:60%; height:10px; background:linear-gradient(90deg, #b8786a 0%, #d4a094 50%, #b8786a 100%); border-radius:5px; transform-origin:center; animation: fms-cloth 10s ease-in-out infinite; }

@keyframes fms-chair { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes fms-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fms-candle { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(0.9); opacity:0.7; } }
@keyframes fms-window { 0% { opacity:0.8; filter: brightness(0.9); } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:0.9; filter: brightness(1); } }
@keyframes fms-cloth { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.05); } 100% { transform: translateY(0) scaleX(1); } }

/* lion-rents-him */
.scn-lion-rents-him {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 30%, #2a2a4e 60%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 20%, #2a2a5e 0%, transparent 70%);
}
.scn-lion-rents-him .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0f0f33 0%, transparent 100%); animation: lrh-sky 18s ease-in-out infinite alternate; }
.scn-lion-rents-him .moon { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle at 35% 35%, #d0d8f0 0%, #a0b0d0 60%, #6070a0 100%); border-radius:50%; box-shadow: 0 0 40px 10px #8090c0, 0 0 80px 20px rgba(128,144,192,.3); animation: lrh-moon 12s ease-in-out infinite alternate; }
.scn-lion-rents-him .sea { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(0deg, #1a2a3a 0%, #2a3a4a 100%); border-radius:0 0 50% 50% / 0 0 30% 30%; animation: lrh-sea 8s ease-in-out infinite alternate; }
.scn-lion-rents-him .strand { position:absolute; bottom:20%; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius:20% 40% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.5); }
.scn-lion-rents-him .lion { position:absolute; bottom:20%; left:45%; width:80px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 60% 50% 50% / 60% 70% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: lrh-lion 5s ease-in-out infinite; }
.scn-lion-rents-him .victim { position:absolute; bottom:15%; left:35%; width:30px; height:50px; transform:translateX(-50%) rotate(15deg); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 8px 2px #5e1a1d; animation: lrh-victim 7s ease-in-out infinite; }
.scn-lion-rents-him .friends { position:absolute; bottom:22%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: lrh-friend 6s ease-in-out infinite; }
.scn-lion-rents-him .friend-b { position:absolute; bottom:20%; left:28%; width:18px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: lrh-friend 6s ease-in-out infinite 3s; }
@keyframes lrh-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes lrh-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); box-shadow: 0 0 50px 15px #a0b0d0; } 100% { transform: translateY(2px) scale(.98); } }
@keyframes lrh-sea { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(.98); } }
@keyframes lrh-lion { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes lrh-victim { 0% { transform: translateX(-50%) rotate(15deg) scale(1); } 50% { transform: translateX(-50%) rotate(10deg) scale(.95); } 100% { transform: translateX(-50%) rotate(14deg) scale(1); } }
@keyframes lrh-friend { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(1px) rotate(0); } }

/* una-departs */
.scn-una-departs {
  background: linear-gradient(180deg, #f0e8d0 0%, #e8d8b8 20%, #d0c0a0 40%, #b0a080 70%, #908060 100%),
              radial-gradient(ellipse at 60% 30%, #f8f0e0 0%, transparent 60%);
}
.scn-una-departs .sky-dawn { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe8c0 0%, #f0d0a0 30%, #d8b888 100%); animation: una-sky 20s ease-in-out infinite alternate; }
.scn-una-departs .sun { position:absolute; top:5%; left:30%; width:60px; height:60px; background: radial-gradient(circle at 40% 40%, #ffe080 0%, #f0b040 60%, #c08020 100%); border-radius:50%; box-shadow: 0 0 80px 20px #f0c060, 0 0 120px 40px rgba(240,192,96,.4); animation: una-sun 15s ease-in-out infinite alternate; }
.scn-una-departs .hill-back { position:absolute; bottom:35%; left:-10%; width:120%; height:30%; background: linear-gradient(180deg, #b8a888 0%, #908068 100%); border-radius:30% 70% 0 0 / 50% 50% 0 0; transform: scale(1.05); animation: una-hill 25s ease-in-out infinite alternate; }
.scn-una-departs .path { position:absolute; bottom:15%; left:0; right:0; height:25%; background: linear-gradient(90deg, transparent 0%, #c8b088 20%, #b8a078 50%, #c8b088 80%, transparent 100%); border-radius:0 0 30% 30% / 0 0 10% 10%; animation: una-path 12s ease-in-out infinite alternate; }
.scn-una-departs .una { position:absolute; bottom:18%; left:45%; width:24px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a8 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,.2); animation: una-walk 6s ease-in-out infinite; }
.scn-una-departs .lion-gold { position:absolute; bottom:14%; left:55%; width:60px; height:35px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:40% 60% 50% 50% / 60% 70% 40% 40%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: una-lion 8s ease-in-out infinite 2s; }
.scn-una-departs .cloud-swirl { position:absolute; top:15%; left:60%; width:100px; height:20px; background: linear-gradient(90deg, transparent, rgba(240,230,210,.6), transparent); border-radius:50%; filter: blur(8px); animation: una-cloud 40s linear infinite; }
@keyframes una-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes una-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 60px 15px #f0c060; } 50% { transform: translateY(-5px) scale(1.03); box-shadow: 0 0 100px 30px #f0c060; } 100% { transform: translateY(3px) scale(.97); box-shadow: 0 0 50px 10px #f0c060; } }
@keyframes una-hill { 0% { transform: scale(1.05) translateY(0); } 50% { transform: scale(1.07) translateY(-3px); } 100% { transform: scale(1.04) translateY(2px); } }
@keyframes una-path { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes una-walk { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 25% { transform: translateX(-48%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-52%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes una-lion { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes una-cloud { 0% { transform: translateX(-30px) scale(1); } 50% { transform: translateX(60px) scale(1.1); } 100% { transform: translateX(-30px) scale(1); } }

/* corceca-and-abessa-mourn */
.scn-corceca-and-abessa-mourn {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 20%, #5a5a6a 40%, #4a4a5a 70%, #2a2a3a 100%),
              radial-gradient(ellipse at 30% 50%, #6a6a7a 0%, transparent 70%);
}
.scn-corceca-and-abessa-mourn .dawn-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 40%, #4a4a5a 100%); animation: cab-sky 14s ease-in-out infinite alternate; }
.scn-corceca-and-abessa-mourn .wall { position:absolute; bottom:20%; left:0; width:100%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-corceca-and-abessa-mourn .corpse { position:absolute; bottom:15%; left:35%; width:40px; height:50px; transform:translateX(-50%) rotate(-20deg); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 0 12px 4px #3a2a1a; animation: cab-corpse 10s ease-in-out infinite; }
.scn-corceca-and-abessa-mourn .old-woman { position:absolute; bottom:22%; left:20%; width:22px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; animation: cab-figure 5s ease-in-out infinite; }
.scn-corceca-and-abessa-mourn .young-woman { position:absolute; bottom:20%; left:40%; width:20px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; animation: cab-figure 5s ease-in-out infinite 2.5s; }
.scn-corceca-and-abessa-mourn .tear-dark { position:absolute; bottom:35%; left:22%; width:4px; height:6px; background: #5e4a5a; border-radius:50%; box-shadow: 0 0 6px 2px #5e4a5a; animation: cab-tear 4s ease-in-out infinite; }
@keyframes cab-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes cab-corpse { 0% { transform: translateX(-50%) rotate(-20deg) scale(1); } 50% { transform: translateX(-50%) rotate(-15deg) scale(.98); } 100% { transform: translateX(-50%) rotate(-22deg) scale(1); } }
@keyframes cab-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-5deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(5deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-3deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-5deg); } }
@keyframes cab-tear { 0% { opacity:0; transform: translateY(0) scale(1); } 30% { opacity:.8; } 50% { opacity:1; transform: translateY(10px) scale(1.2); } 80% { opacity:0; } 100% { opacity:0; transform: translateY(20px) scale(.5); } }

/* corceca-curses-una */
.scn-corceca-curses-una {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 25%, #5a5a6a 50%, #4a4a5a 75%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 30%, #6a6a7a 0%, transparent 60%);
}
.scn-corceca-curses-una .dawn-horizon { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 40%, #4a4a5a 100%); animation: ccu-sky 16s ease-in-out infinite alternate; }
.scn-corceca-curses-una .road { position:absolute; bottom:15%; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius:0 0 20% 20% / 0 0 10% 10%; animation: ccu-road 10s ease-in-out infinite alternate; }
.scn-corceca-curses-una .una-flee { position:absolute; bottom:20%; left:60%; width:22px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a8 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: ccu-flee 6s ease-in-out infinite; }
.scn-corceca-curses-una .curser-a { position:absolute; bottom:18%; left:25%; width:22px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; animation: ccu-chase 5s ease-in-out infinite; }
.scn-corceca-curses-una .curser-b { position:absolute; bottom:16%; left:35%; width:20px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; animation: ccu-chase 5s ease-in-out infinite 2.5s; }
.scn-corceca-curses-una .dust { position:absolute; bottom:14%; left:30%; width:40px; height:10px; background: radial-gradient(ellipse, #6a6a5a 0%, transparent 70%); filter: blur(4px); animation: ccu-dust 4s ease-in-out infinite; }
.scn-corceca-curses-una .shadow-pursuer { position:absolute; bottom:20%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; opacity:.4; animation: ccu-shade 7s ease-in-out infinite; }
@keyframes ccu-sky { 0% { opacity:.6; } 50% { opacity:.85; } 100% { opacity:.7; } }
@keyframes ccu-road { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes ccu-flee { 0% { transform: translateX(-50%) translateY(0) rotate(-3deg); } 25% { transform: translateX(-48%) translateY(-2px) rotate(3deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 75% { transform: translateX(-52%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-3deg); } }
@keyframes ccu-chase { 0% { transform: translateX(-50%) translateY(0) rotate(2deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(1px) rotate(1deg); } }
@keyframes ccu-dust { 0% { opacity:.3; transform: translateX(0) scale(1); } 50% { opacity:.7; transform: translateX(10px) scale(1.3); } 100% { opacity:.2; transform: translateX(20px) scale(.8); } }
@keyframes ccu-shade { 0% { opacity:.2; transform: translateX(-50%) scale(1); } 50% { opacity:.5; transform: translateX(-50%) scale(1.1); } 100% { opacity:.3; transform: translateX(-50%) scale(.95); } }

/* field-of-combat */
.scn-field-of-combat {
  background: linear-gradient(180deg, #6a8caf 0%, #4a6a8a 40%, #2a4a6a 100%), radial-gradient(ellipse at 20% 40%, #f0e0a0 0%, transparent 70%);
}
.scn-field-of-combat .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #7a9cc0 0%, #5a7a9a 60%, transparent 100%); animation: fc-sky 12s ease-in-out infinite alternate; }
.scn-field-of-combat .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius: 30% 0 0 0 / 20% 0 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-field-of-combat .knight-left { position:absolute; bottom:18%; left:30%; width:28px; height:60px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fc-left 3s ease-in-out infinite; }
.scn-field-of-combat .knight-right { position:absolute; bottom:18%; right:30%; width:28px; height:60px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fc-right 3s ease-in-out infinite reverse; }
.scn-field-of-combat .duessa { position:absolute; bottom:25%; right:20%; width:20px; height:50px; background: linear-gradient(180deg, #7a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: fc-duessa 8s ease-in-out infinite; }
.scn-field-of-combat .sun { position:absolute; top:10%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #f0e0a0 0%, #d0b070 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(240,224,160,.4); animation: fc-sun 15s ease-in-out infinite alternate; }
.scn-field-of-combat .dust { position:absolute; bottom:15%; left:40%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(180,160,120,.3) 0%, transparent 70%); filter: blur(4px); animation: fc-dust 4s ease-in-out infinite; }
@keyframes fc-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fc-left { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-3deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0deg) } }
@keyframes fc-right { 0% { transform: translateX(0) rotate(5deg) } 25% { transform: translateX(-5px) rotate(-2deg) } 50% { transform: translateX(-10px) rotate(3deg) } 75% { transform: translateX(-15px) rotate(-1deg) } 100% { transform: translateX(-20px) rotate(0deg) } }
@keyframes fc-duessa { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } }
@keyframes fc-sun { 0% { transform: scale(.8) translateX(0) } 50% { transform: scale(1) translateX(10px) } 100% { transform: scale(.9) translateX(-5px) } }
@keyframes fc-dust { 0%,100% { opacity:.3; transform: translateX(0) } 50% { opacity:.6; transform: translateX(20px) } }

/* castle-hall */
.scn-castle-hall {
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 80% 70%, #b08050 0%, transparent 70%);
}
.scn-castle-hall .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 100%); box-shadow: inset 0 30px 60px rgba(0,0,0,.5); }
.scn-castle-hall .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); }
.scn-castle-hall .arch-left { position:absolute; top:10%; left:5%; width:15%; height:60%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,.3); }
.scn-castle-hall .arch-right { position:absolute; top:10%; right:5%; width:15%; height:60%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,.3); }
.scn-castle-hall .hearth { position:absolute; bottom:20%; left:50%; width:70px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #d08040 0%, #8a5020 40%, #3a1a0a 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 80px 20px rgba(208,128,64,.6); animation: ch-hearth 5s ease-in-out infinite alternate; }
.scn-castle-hall .minstrel-1 { position:absolute; bottom:18%; left:20%; width:20px; height:45px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: ch-minstrel 6s ease-in-out infinite; }
.scn-castle-hall .minstrel-2 { position:absolute; bottom:18%; right:20%; width:20px; height:45px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: ch-minstrel 6s ease-in-out infinite 3s; }
.scn-castle-hall .banner { position:absolute; top:15%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); border-radius: 5%; box-shadow: 0 5px 10px rgba(0,0,0,.3); animation: ch-banner 4s ease-in-out infinite alternate; }
@keyframes ch-hearth { 0% { opacity:.7; transform: translateX(-50%) scaleY(1) } 50% { opacity:1; transform: translateX(-50%) scaleY(1.05) } 100% { opacity:.8; transform: translateX(-50%) scaleY(.95) } }
@keyframes ch-minstrel { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-3deg) } 50% { transform: translateX(-2px) rotate(2deg) } 75% { transform: translateX(4px) rotate(-1deg) } }
@keyframes ch-banner { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-3deg) } }

/* lists-queens-stand */
.scn-lists-queens-stand {
  background: linear-gradient(180deg, #7a9ab0 0%, #9ac0d0 30%, #5a7a8a 100%), radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 70%);
}
.scn-lists-queens-stand .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #a0c8e0 0%, #7a9ab0 100%); animation: lq-sky 20s ease-in-out infinite alternate; }
.scn-lists-queens-stand .field { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); }
.scn-lists-queens-stand .queen-stand { position:absolute; bottom:20%; left:30%; width:60px; height:40px; background: linear-gradient(180deg, #c0a070 0%, #a08050 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.3); transform: scaleX(1.2); }
.scn-lists-queens-stand .queen-figure { position:absolute; bottom:28%; left:33%; width:20px; height:50px; background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: lq-queen 7s ease-in-out infinite; }
.scn-lists-queens-stand .duessa-figure { position:absolute; bottom:20%; left:60%; width:18px; height:45px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: lq-duessa 9s ease-in-out infinite; }
.scn-lists-queens-stand .tree-shield { position:absolute; bottom:15%; left:60%; width:12px; height:30px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 20%; } /* tree trunk */
.scn-lists-queens-stand .tree-shield::after { content:''; position:absolute; top:-10px; left:-12px; width:36px; height:36px; background: radial-gradient(circle, #b08040 0%, #8a6020 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 20px 5px rgba(176,128,64,.3); animation: lq-shield 5s ease-in-out infinite; }
.scn-lists-queens-stand .trumpet { position:absolute; bottom:25%; right:10%; width:8px; height:15px; background: #d0a060; border-radius:20%; animation: lq-trumpet 4s ease-in-out infinite; }
@keyframes lq-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes lq-queen { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.03) } }
@keyframes lq-duessa { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(3px) scaleX(-1) } }
@keyframes lq-shield { 0% { transform: scale(.9) rotate(0deg) } 50% { transform: scale(1.1) rotate(10deg) } 100% { transform: scale(1) rotate(-5deg) } }
@keyframes lq-trumpet { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.2) } }

/* lists-combat */
.scn-lists-combat {
  background: linear-gradient(180deg, #7a9cc0 0%, #5a7a9a 50%, #2a4a6a 100%), radial-gradient(ellipse at 50% 30%, #f0d060 0%, transparent 60%);
}
.scn-lists-combat .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8ab0d0 0%, #6a8aac 100%); animation: lc-sky 15s ease-in-out infinite alternate; }
.scn-lists-combat .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 40% 0 0 0 / 30% 0 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.3); }
.scn-lists-combat .knight-left { position:absolute; bottom:22%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lc-left 2.5s ease-in-out infinite; }
.scn-lists-combat .knight-right { position:absolute; bottom:22%; right:25%; width:30px; height:60px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lc-right 2.5s ease-in-out infinite reverse; }
.scn-lists-combat .shield-clash { position:absolute; bottom:30%; left:50%; width:20px; height:20px; transform:translate(-50%, -50%); background: radial-gradient(circle, #a06040 0%, #6a3a2a 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(160,96,64,.5); animation: lc-clash 1.5s ease-in-out infinite; }
.scn-lists-combat .blade-left { position:absolute; bottom:30%; left:35%; width:6px; height:40px; background: linear-gradient(180deg, #c0c0d0 0%, #808090 100%); border-radius:20%; transform-origin: bottom center; animation: lc-blade-left 2.5s ease-in-out infinite; }
.scn-lists-combat .blade-right { position:absolute; bottom:30%; right:35%; width:6px; height:40px; background: linear-gradient(180deg, #c0c0d0 0%, #808090 100%); border-radius:20%; transform-origin: bottom center; animation: lc-blade-right 2.5s ease-in-out infinite; }
.scn-lists-combat .dust { position:absolute; bottom:15%; left:35%; width:80px; height:15px; background: radial-gradient(ellipse, rgba(180,160,120,.3) 0%, transparent 70%); filter: blur(5px); animation: lc-dust 3s ease-in-out infinite; }
@keyframes lc-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes lc-left { 0% { transform: translateX(0) rotate(-8deg) } 25% { transform: translateX(8px) rotate(3deg) } 50% { transform: translateX(16px) rotate(-5deg) } 75% { transform: translateX(24px) rotate(2deg) } 100% { transform: translateX(32px) rotate(0deg) } }
@keyframes lc-right { 0% { transform: translateX(0) rotate(8deg) } 25% { transform: translateX(-8px) rotate(-3deg) } 50% { transform: translateX(-16px) rotate(5deg) } 75% { transform: translateX(-24px) rotate(-2deg) } 100% { transform: translateX(-32px) rotate(0deg) } }
@keyframes lc-clash { 0%,100% { transform: translate(-50%, -50%) scale(.8); opacity:.6 } 50% { transform: translate(-50%, -50%) scale(1.3); opacity:1 } }
@keyframes lc-blade-left { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(10deg) translateX(15px) } 100% { transform: rotate(-10deg) translateX(-10px) } }
@keyframes lc-blade-right { 0% { transform: rotate(20deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(-15px) } 100% { transform: rotate(10deg) translateX(10px) } }
@keyframes lc-dust { 0%,100% { opacity:.3; transform: translateX(0) } 50% { opacity:.6; transform: translateX(30px) } }

/* Scene 1: knight-tempted-to-slay */
.scn-knight-tempted-to-slay {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, transparent 60%);
}
.scn-knight-tempted-to-slay .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0f0f2a 0%, transparent 100%); animation: kts-sky 15s ease-in-out infinite alternate; }
.scn-knight-tempted-to-slay .moon { position:absolute; top:12%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #c0d0e0 0%, #8090a0 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(128,144,160,.4); animation: kts-moon 8s ease-in-out infinite alternate; }
.scn-knight-tempted-to-slay .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-knight-tempted-to-slay .knight { position:absolute; bottom:35%; left:18%; width:60px; height:100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kts-knight 4s ease-in-out infinite; }
.scn-knight-tempted-to-slay .figure { position:absolute; bottom:30%; right:25%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kts-figure 6s ease-in-out infinite; }
.scn-knight-tempted-to-slay .shadow { position:absolute; bottom:35%; left:18%; width:60px; height:20px; background: rgba(0,0,0,.5); border-radius:50%; filter: blur(6px); animation: kts-shadow 4s ease-in-out infinite; }
.scn-knight-tempted-to-slay .clouds { position:absolute; top:8%; left:0; width:100%; height:40px; background: radial-gradient(ellipse at 50% 50%, rgba(200,200,220,.15) 0%, transparent 70%); filter: blur(8px); animation: kts-clouds 40s linear infinite; }
@keyframes kts-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes kts-moon { 0% { transform: translate(0,0) scale(1); box-shadow: 0 0 30px 8px rgba(128,144,160,.3) } 50% { transform: translate(-2px,2px) scale(1.05); box-shadow: 0 0 50px 15px rgba(128,144,160,.5) } 100% { transform: translate(1px,-1px) scale(.98); box-shadow: 0 0 35px 10px rgba(128,144,160,.35) } }
@keyframes kts-knight { 0% { transform: translate(0,0) rotate(0deg) } 30% { transform: translate(-2px,0) rotate(-2deg) } 60% { transform: translate(0,0) rotate(1deg) } 100% { transform: translate(1px,-1px) rotate(0deg) } }
@keyframes kts-figure { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(2px,-1px) rotate(3deg) } 50% { transform: translate(0,0) rotate(-2deg) } 75% { transform: translate(-1px,1px) rotate(2deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes kts-shadow { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.1); opacity:.4 } 100% { transform: scale(.95); opacity:.7 } }
@keyframes kts-clouds { 0% { transform: translateX(-50px) } 100% { transform: translateX(100vw) } }

/* Scene 2: false-una-pleads */
.scn-false-una-pleads {
  background: linear-gradient(180deg, #0e0e1e 0%, #1e1e3e 50%, #2e2e4e 100%), radial-gradient(ellipse at 50% 60%, #3e3e5e 0%, transparent 70%);
}
.scn-false-una-pleads .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,10,30,.8) 0%, transparent 40%, rgba(10,10,30,.6) 100%); animation: fup-bg 12s ease-in-out infinite alternate; }
.scn-false-una-pleads .figure { position:absolute; bottom:25%; left:50%; width:50px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fup-figure 5s ease-in-out infinite; }
.scn-false-una-pleads .hands { position:absolute; bottom:35%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%); border-radius:50%; box-shadow: -8px 6px 0 #0a0a1a, 8px 6px 0 #0a0a1a; animation: fup-hands 3s ease-in-out infinite; }
.scn-false-una-pleads .tears { position:absolute; bottom:38%; left:46%; width:4px; height:8px; background: linear-gradient(180deg, #8090b0 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: fup-tears 4s ease-in-out infinite; }
.scn-false-una-pleads .shadow { position:absolute; bottom:20%; left:40%; width:70px; height:15px; background: rgba(0,0,0,.5); border-radius:50%; filter: blur(5px); animation: fup-shadow 5s ease-in-out infinite; }
.scn-false-una-pleads .atmosphere { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, rgba(100,120,160,.1) 0%, transparent 60%); filter: blur(10px); animation: fup-atmos 8s ease-in-out infinite alternate; }
.scn-false-una-pleads .sparkle { position:absolute; bottom:40%; left:55%; width:3px; height:3px; background: #c0d0e0; border-radius:50%; box-shadow: 0 0 6px 2px rgba(192,208,224,.6); animation: fup-sparkle 2s ease-in-out infinite; }
@keyframes fup-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes fup-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes fup-hands { 0% { transform: translateX(-50%) scale(1) rotate(0deg) } 50% { transform: translateX(-50%) scale(1.1) rotate(10deg) } 100% { transform: translateX(-50%) scale(1) rotate(0deg) } }
@keyframes fup-tears { 0% { opacity:0; transform: translate(0,0) } 30% { opacity:1; transform: translate(-2px,4px) } 60% { opacity:1; transform: translate(2px,8px) } 100% { opacity:0; transform: translate(0,12px) } }
@keyframes fup-shadow { 0% { transform: scale(1); opacity:.5 } 50% { transform: scale(1.2); opacity:.3 } 100% { transform: scale(.9); opacity:.6 } }
@keyframes fup-atmos { 0% { opacity:.6 } 100% { opacity:1 } }
@keyframes fup-sparkle { 0% { opacity:0; transform: scale(0) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0; transform: scale(0) } }

/* Scene 3: false-una-continues */
.scn-false-una-continues {
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 40%, #2a2a4e 100%), radial-gradient(ellipse at 30% 80%, #3a3a5a 0%, transparent 70%);
}
.scn-false-una-continues .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,10,30,.7) 0%, transparent 50%, rgba(10,10,30,.5) 100%); animation: fuc-bg 10s ease-in-out infinite alternate; }
.scn-false-una-continues .figure { position:absolute; bottom:30%; left:35%; width:60px; height:100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 50% 50% / 40% 40% 60% 60%; transform-origin: bottom center; animation: fuc-figure 6s ease-in-out infinite; }
.scn-false-una-continues .tear-path { position:absolute; bottom:45%; left:38%; width:2px; height:40px; background: linear-gradient(180deg, #8090b0 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: fuc-tear-path 5s ease-in-out infinite; }
.scn-false-una-continues .hand { position:absolute; bottom:50%; left:45%; width:15px; height:25px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50%; transform-origin: bottom; animation: fuc-hand 4s ease-in-out infinite; }
.scn-false-una-continues .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0a0a12 0%, #050510 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-false-una-continues .mist { position:absolute; bottom:20%; left:0; right:0; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(150,160,180,.1) 0%, transparent 70%); filter: blur(10px); animation: fuc-mist 8s ease-in-out infinite alternate; }
.scn-false-una-continues .light { position:absolute; top:10%; left:60%; width:20px; height:20px; background: radial-gradient(circle, #c0d0e0 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(192,208,224,.3); animation: fuc-light 6s ease-in-out infinite alternate; }
@keyframes fuc-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fuc-figure { 0% { transform: translate(0,0) rotate(0deg) } 30% { transform: translate(2px,-1px) rotate(3deg) } 60% { transform: translate(-1px,1px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes fuc-tear-path { 0% { opacity:0; transform: scaleY(0) } 30% { opacity:1; transform: scaleY(1) } 70% { opacity:1; transform: scaleY(1) } 100% { opacity:0; transform: scaleY(0) } }
@keyframes fuc-hand { 0% { transform: rotate(0deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(0deg) } }
@keyframes fuc-mist { 0% { opacity:.4; transform: translateY(0) } 100% { opacity:.8; transform: translateY(-5px) } }
@keyframes fuc-light { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(.9); opacity:.7 } }

/* Scene 4: knight-unsuspicious */
.scn-knight-unsuspicious {
  background: linear-gradient(180deg, #0c0c1e 0%, #1c1c3e 50%, #2c2c4e 100%), radial-gradient(ellipse at 60% 30%, #3c3c5e 0%, transparent 70%);
}
.scn-knight-unsuspicious .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,10,30,.6) 0%, transparent 40%, rgba(10,10,30,.4) 100%); animation: kus-bg 14s ease-in-out infinite alternate; }
.scn-knight-unsuspicious .knight { position:absolute; bottom:30%; left:20%; width:70px; height:120px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kus-knight 5s ease-in-out infinite; }
.scn-knight-unsuspicious .figure { position:absolute; bottom:25%; right:30%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 50% 50% / 40% 40% 60% 60%; transform-origin: bottom center; animation: kus-figure 7s ease-in-out infinite; }
.scn-knight-unsuspicious .thought { position:absolute; top:15%; left:50%; width:60px; height:40px; background: radial-gradient(circle, rgba(192,208,224,.1) 0%, transparent 70%); border-radius:50%; filter: blur(15px); animation: kus-thought 8s ease-in-out infinite alternate; }
.scn-knight-unsuspicious .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0a0a12 0%, #050510 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-knight-unsuspicious .shadow { position:absolute; bottom:25%; left:20%; width:70px; height:20px; background: rgba(0,0,0,.5); border-radius:50%; filter: blur(8px); animation: kus-shadow 5s ease-in-out infinite; }
.scn-knight-unsuspicious .stars { position:absolute; top:5%; left:10%; width:100%; height:30%; background: radial-gradient(ellipse at 30% 40%, rgba(200,220,240,.3) 0%, transparent 50%), radial-gradient(ellipse at 70% 60%, rgba(200,220,240,.2) 0%, transparent 50%); filter: blur(2px); animation: kus-stars 20s linear infinite; }
@keyframes kus-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes kus-knight { 0% { transform: translate(0,0) rotate(0deg) } 30% { transform: translate(-1px,0) rotate(-1deg) } 60% { transform: translate(0,0) rotate(1deg) } 100% { transform: translate(1px,-1px) rotate(0deg) } }
@keyframes kus-figure { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(2px,-1px) rotate(2deg) } 50% { transform: translate(0,0) rotate(-1deg) } 75% { transform: translate(-1px,1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes kus-thought { 0% { transform: scale(.8); opacity:.3 } 50% { transform: scale(1.2); opacity:.6 } 100% { transform: scale(.9); opacity:.4 } }
@keyframes kus-shadow { 0% { transform: scale(1); opacity:.5 } 50% { transform: scale(1.15); opacity:.3 } 100% { transform: scale(.95); opacity:.6 } }
@keyframes kus-stars { 0% { transform: translate(0,0) } 100% { transform: translate(20px,10px) } }

.scn-knight-draws-sword {
  background: linear-gradient(180deg, #6f9cd1 0%, #b0d0f0 40%, #ffe680 60%, #d4a84b 100%), radial-gradient(ellipse at 50% 100%, #d4a84b 0%, transparent 60%);
}
.scn-knight-draws-sword .sky { position:absolute; inset:0; background: linear-gradient(180deg, #4a7db5 0%, transparent 70%); animation: kds-sky 12s ease-in-out infinite alternate; }
.scn-knight-draws-sword .sun { position:absolute; top:15%; left:65%; width:50px; height:50px; background: radial-gradient(circle, #ffe680 0%, #ffcc33 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #ffcc33; animation: kds-sun 8s ease-in-out infinite alternate; }
.scn-knight-draws-sword .ground { position:absolute; bottom:0; height:35%; left:0; right:0; background: linear-gradient(0deg, #5a3a1a 0%, #7a5a3a 30%, #b09070 70%, transparent 100%); border-radius:40% 30% 0 0 / 30% 20% 0 0; }
.scn-knight-draws-sword .knight { position:absolute; bottom:20%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: kds-knight 4s ease-in-out infinite; }
.scn-knight-draws-sword .sword { position:absolute; bottom:62%; left:43%; width:4px; height:40px; background: linear-gradient(180deg, #c0c0c0 0%, #e0e0e0 50%, #f0f0f0 100%); border-radius:2px; transform-origin:bottom center; box-shadow: 0 0 8px 2px rgba(255,255,200,0.5); animation: kds-sword 2s ease-in-out infinite alternate; }
.scn-knight-draws-sword .shield { position:absolute; bottom:22%; left:36%; width:20px; height:24px; background: linear-gradient(135deg, #2a1a0a 0%, #4a3a2a 100%); border-radius:20% 20% 30% 30%; transform:rotate(-10deg); animation: kds-shield 6s ease-in-out infinite; }
.scn-knight-draws-sword .dust { position:absolute; bottom:18%; left:42%; width:40px; height:10px; background: radial-gradient(ellipse, rgba(180,140,80,0.5) 0%, transparent 70%); filter:blur(6px); animation: kds-dust 7s ease-in-out infinite; }
@keyframes kds-sky { 0%{opacity:0.85} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes kds-sun { 0%{transform:scale(0.9); box-shadow:0 0 40px 10px #ffcc33} 50%{transform:scale(1.05); box-shadow:0 0 80px 25px #ffe680} 100%{transform:scale(1); box-shadow:0 0 60px 20px #ffcc33} }
@keyframes kds-knight { 0%{transform:translateX(0) rotate(-2deg)} 30%{transform:translateX(5px) rotate(2deg)} 60%{transform:translateX(10px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes kds-sword { 0%{transform:rotate(-60deg)} 50%{transform:rotate(-20deg)} 100%{transform:rotate(-60deg)} }
@keyframes kds-shield { 0%{transform:rotate(-10deg) translateY(0)} 50%{transform:rotate(-5deg) translateY(-2px)} 100%{transform:rotate(-10deg) translateY(0)} }
@keyframes kds-dust { 0%{opacity:0.3; transform:translateY(0) scaleX(1)} 50%{opacity:0.6; transform:translateY(-4px) scaleX(1.2)} 100%{opacity:0.3; transform:translateY(0) scaleX(1)} }

.scn-knight-strikes-again {
  background: linear-gradient(180deg, #5a8fb5 0%, #90b8d8 40%, #d4a84b 100%), radial-gradient(ellipse at 40% 100%, #d4a84b 0%, transparent 60%);
}
.scn-knight-strikes-again .sky { position:absolute; inset:0; background: linear-gradient(180deg, #3a6a9a 0%, transparent 70%); animation: ksa-sky 10s ease-in-out infinite alternate; }
.scn-knight-strikes-again .ground { position:absolute; bottom:0; height:30%; left:0; right:0; background: linear-gradient(0deg, #3a2a1a 0%, #6a4a2a 40%, transparent 100%); border-radius:50% 20% 0 0 / 40% 10% 0 0; }
.scn-knight-strikes-again .knight { position:absolute; bottom:15%; left:25%; width:40px; 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: ksa-knight 3s ease-in-out infinite; }
.scn-knight-strikes-again .beast { position:absolute; bottom:20%; left:65%; width:50px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 100%); border-radius:60% 40% 40% 60% / 40% 60% 60% 40%; animation: ksa-beast 5s ease-in-out infinite; }
.scn-knight-strikes-again .sword-stroke { position:absolute; bottom:40%; left:30%; width:60px; height:6px; background: linear-gradient(90deg, transparent 0%, #c0c0c0 30%, #e0e0e0 60%, transparent 100%); transform-origin:center left; animation: ksa-stroke 1.5s ease-in-out infinite; }
.scn-knight-strikes-again .sparks { position:absolute; bottom:45%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #ffe680 0%, #d4a84b 40%, transparent 70%); border-radius:50%; filter:blur(3px); animation: ksa-sparks 0.8s ease-in-out infinite alternate; }
.scn-knight-strikes-again .impact { position:absolute; bottom:35%; left:45%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,230,128,0.6) 0%, transparent 70%); border-radius:50%; animation: ksa-impact 1.2s ease-out infinite; }
@keyframes ksa-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes ksa-knight { 0%{transform:rotate(-3deg) translateY(0)} 30%{transform:rotate(0deg) translateY(-3px)} 60%{transform:rotate(2deg) translateY(0)} 100%{transform:rotate(-3deg) translateY(0)} }
@keyframes ksa-beast { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(-5px) rotate(-5deg)} 50%{transform:translateX(0) rotate(0deg)} 75%{transform:translateX(3px) rotate(3deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes ksa-stroke { 0%{transform:scaleX(0); opacity:0} 20%{transform:scaleX(1); opacity:1} 60%{transform:scaleX(0.8); opacity:0.8} 100%{transform:scaleX(0); opacity:0} }
@keyframes ksa-sparks { 0%{transform:translate(0,0) scale(0.5); opacity:0.3} 50%{transform:translate(10px,-5px) scale(1.2); opacity:1} 100%{transform:translate(20px,-10px) scale(0.8); opacity:0} }
@keyframes ksa-impact { 0%{transform:scale(0.5); opacity:1} 50%{transform:scale(1.5); opacity:0.5} 100%{transform:scale(2); opacity:0} }

.scn-dragon-fire-breath {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1010 40%, #4a1a0a 100%), radial-gradient(ellipse at 50% 30%, #6a2a10 0%, transparent 70%);
}
.scn-dragon-fire-breath .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0505 0%, #1a0a0a 60%, transparent 100%); animation: dfb-bg 20s ease-in-out infinite alternate; }
.scn-dragon-fire-breath .dragon-head { position:absolute; top:20%; left:15%; width:80px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%); border-radius:60% 40% 40% 60% / 40% 60% 60% 40%; transform:rotate(15deg); animation: dfb-head 6s ease-in-out infinite; }
.scn-dragon-fire-breath .fire-stream { position:absolute; top:25%; left:30%; width:120px; height:30px; background: linear-gradient(90deg, #b84a1a 0%, #e07020 30%, #ff9944 60%, transparent 100%); border-radius:50%; filter:blur(4px); animation: dfb-fire 1.5s ease-in-out infinite alternate; }
.scn-dragon-fire-breath .smoke-plume { position:absolute; top:20%; left:50%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(60,40,30,0.6) 0%, transparent 70%); filter:blur(10px); animation: dfb-smoke 12s linear infinite; }
.scn-dragon-fire-breath .embers { position:absolute; top:23%; left:35%; width:8px; height:8px; background: radial-gradient(circle, #e07020 0%, transparent 70%); border-radius:50%; box-shadow: 12px -5px 0 0 #b84a1a, -8px 10px 0 0 #ff9944, 20px 0 0 0 #d06020; animation: dfb-ember 2s ease-in-out infinite; }
.scn-dragon-fire-breath .knight-scorched { position:absolute; bottom:15%; left:50%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%) rotate(-5deg); animation: dfb-knight 8s ease-in-out infinite; }
.scn-dragon-fire-breath .ground { position:absolute; bottom:0; height:20%; left:0; right:0; background: linear-gradient(0deg, #1a0a05 0%, #2a1a0a 40%, transparent 100%); border-radius:30% 70% 0 0 / 50% 40% 0 0; }
@keyframes dfb-bg { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes dfb-head { 0%{transform:rotate(10deg) translateY(0)} 25%{transform:rotate(15deg) translateY(-3px)} 50%{transform:rotate(20deg) translateY(0)} 75%{transform:rotate(12deg) translateY(2px)} 100%{transform:rotate(10deg) translateY(0)} }
@keyframes dfb-fire { 0%{transform:scaleX(0.8); opacity:0.8} 50%{transform:scaleX(1.2); opacity:1} 100%{transform:scaleX(0.9); opacity:0.9} }
@keyframes dfb-smoke { 0%{transform:translateY(0) scaleX(1); opacity:0.4} 50%{transform:translateY(-20px) scaleX(1.3); opacity:0.6} 100%{transform:translateY(-40px) scaleX(1.5); opacity:0} }
@keyframes dfb-ember { 0%{transform:translate(0,0); opacity:1} 33%{transform:translate(5px,-8px); opacity:0.7} 66%{transform:translate(-3px,-15px); opacity:0.4} 100%{transform:translate(2px,-25px); opacity:0} }
@keyframes dfb-knight { 0%{transform:translateX(-50%) rotate(-5deg) scaleY(1)} 50%{transform:translateX(-50%) rotate(0deg) scaleY(0.95)} 100%{transform:translateX(-50%) rotate(-5deg) scaleY(1)} }

.scn-knight-in-flames {
  background: linear-gradient(180deg, #0a0505 0%, #1a0a05 40%, #2a1005 100%), radial-gradient(ellipse at 50% 70%, #4a1a0a 0%, transparent 70%);
}
.scn-knight-in-flames .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #000 0%, #0a0505 60%, transparent 100%); animation: kif-bg 25s ease-in-out infinite alternate; }
.scn-knight-in-flames .flame-layer-1 { position:absolute; bottom:10%; left:30%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 80%, #b84a1a 0%, #e07020 40%, transparent 80%); border-radius:50%; filter:blur(8px); animation: kif-flame1 2s ease-in-out infinite alternate; }
.scn-knight-in-flames .flame-layer-2 { position:absolute; bottom:5%; left:25%; width:100px; height:120px; background: radial-gradient(ellipse at 50% 100%, #ff9944 0%, #d06020 30%, transparent 70%); border-radius:50%; filter:blur(12px); animation: kif-flame2 3s ease-in-out infinite alternate; }
.scn-knight-in-flames .knight { position:absolute; bottom:15%; left:50%; width:35px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: kif-knight 5s ease-in-out infinite; }
.scn-knight-in-flames .armor-glow { position:absolute; bottom:15%; left:50%; width:40px; height:85px; background: radial-gradient(ellipse, rgba(255,153,68,0.4) 0%, transparent 70%); transform:translateX(-50%); filter:blur(6px); animation: kif-glow 1.5s ease-in-out infinite alternate; }
.scn-knight-in-flames .smoke { position:absolute; top:10%; left:40%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(60,30,10,0.5) 0%, transparent 70%); filter:blur(15px); animation: kif-smoke 15s linear infinite; }
.scn-knight-in-flames .embers { position:absolute; bottom:50%; left:35%; width:6px; height:6px; background: radial-gradient(circle, #e07020 0%, transparent 70%); border-radius:50%; box-shadow: 15px -10px 0 0 #d06020, -10px 5px 0 0 #ff9944, 5px -20px 0 0 #b84a1a; animation: kif-ember 2.5s ease-in-out infinite; }
@keyframes kif-bg { 0%{opacity:0.6} 50%{opacity:0.9} 100%{opacity:0.7} }
@keyframes kif-flame1 { 0%{transform:scale(1) translateY(0); opacity:0.5} 50%{transform:scale(1.2) translateY(-5px); opacity:0.8} 100%{transform:scale(0.9) translateY(0); opacity:0.6} }
@keyframes kif-flame2 { 0%{transform:scale(1) translateY(0); opacity:0.4} 50%{transform:scale(1.3) translateY(-8px); opacity:0.7} 100%{transform:scale(0.8) translateY(0); opacity:0.5} }
@keyframes kif-knight { 0%{transform:translateX(-50%) rotate(0deg) scaleY(1)} 25%{transform:translateX(-50%) rotate(-2deg) scaleY(1.02)} 50%{transform:translateX(-50%) rotate(0deg) scaleY(0.98)} 75%{transform:translateX(-50%) rotate(2deg) scaleY(1)} 100%{transform:translateX(-50%) rotate(0deg) scaleY(1)} }
@keyframes kif-glow { 0%{opacity:0.3; transform:translateX(-50%) scale(0.9)} 50%{opacity:0.7; transform:translateX(-50%) scale(1.2)} 100%{opacity:0.4; transform:translateX(-50%) scale(1)} }
@keyframes kif-smoke { 0%{transform:translateY(0) scaleX(1); opacity:0.3} 50%{transform:translateY(-30px) scaleX(1.4); opacity:0.5} 100%{transform:translateY(-60px) scaleX(1.8); opacity:0} }
@keyframes kif-ember { 0%{transform:translate(0,0); opacity:1} 33%{transform:translate(8px,-10px); opacity:0.6} 66%{transform:translate(-4px,-20px); opacity:0.3} 100%{transform:translate(2px,-30px); opacity:0} }

.scn-forest-combat-sansloy {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 30%, #228b22 60%, #1a4a1a 100%),
    radial-gradient(ellipse at 60% 50%, rgba(255,255,200,0.3) 0%, transparent 60%);
}
.scn-forest-combat-sansloy .tree-l {
  position: absolute; left: 5%; top: 10%; width: 12%; height: 70%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 20% 60% 30% 70% / 30% 80% 20% 70%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}
.scn-forest-combat-sansloy .tree-r {
  position: absolute; right: 5%; top: 15%; width: 10%; height: 60%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 60% 20% 70% 30% / 80% 30% 70% 20%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-forest-combat-sansloy .knight-a {
  position: absolute; bottom: 25%; left: 35%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 50%, #4a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fcs-knight-a 1.2s ease-in-out infinite alternate;
}
.scn-forest-combat-sansloy .knight-b {
  position: absolute; bottom: 25%; left: 50%;
  width: 30px; height: 55px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 50%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fcs-knight-b 1.3s ease-in-out infinite alternate;
}
.scn-forest-combat-sansloy .sword-a {
  position: absolute; bottom: 55%; left: 38%;
  width: 4px; height: 40px;
  background: linear-gradient(180deg, #d4d4d4 0%, #a0a0a0 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: fcs-sword-a 0.8s ease-in-out infinite alternate;
}
.scn-forest-combat-sansloy .sword-b {
  position: absolute; bottom: 52%; left: 53%;
  width: 4px; height: 38px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: fcs-sword-b 0.9s ease-in-out infinite alternate;
}
.scn-forest-combat-sansloy .dust {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.6) 0%, transparent 70%);
  filter: blur(6px);
  animation: fcs-dust 2s ease-in-out infinite;
}
.scn-forest-combat-sansloy .light-beam {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 70%);
  transform: skewX(-10deg);
  animation: fcs-light 5s ease-in-out infinite alternate;
}
@keyframes fcs-knight-a {
  0% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(-4px) rotate(2deg); }
  100% { transform: translateX(2px) rotate(-1deg); }
}
@keyframes fcs-knight-b {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(5px) rotate(-3deg); }
  100% { transform: translateX(-2px) rotate(1deg); }
}
@keyframes fcs-sword-a {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(15deg) scaleX(1.1); }
  100% { transform: rotate(-10deg) scaleX(0.9); }
}
@keyframes fcs-sword-b {
  0% { transform: rotate(15deg) scaleX(0.9); }
  50% { transform: rotate(-25deg) scaleX(1.1); }
  100% { transform: rotate(5deg) scaleX(1); }
}
@keyframes fcs-dust {
  0% { transform: translateY(0) scale(0.8); opacity: 0.5; }
  50% { transform: translateY(-10px) scale(1.2); opacity: 0.8; }
  100% { transform: translateY(0) scale(0.8); opacity: 0.3; }
}
@keyframes fcs-light {
  0% { opacity: 0.6; transform: skewX(-10deg) translateX(0); }
  50% { opacity: 1; transform: skewX(-5deg) translateX(3px); }
  100% { opacity: 0.7; transform: skewX(-10deg) translateX(-2px); }
}

.scn-forest-redcrosse-captured {
  background:
    linear-gradient(180deg, #6b8e23 0%, #556b2f 40%, #2f4f2f 80%, #1a2a1a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,215,0,0.15) 0%, transparent 70%);
}
.scn-forest-redcrosse-captured .giant-body {
  position: absolute; bottom: 20%; left: 30%; width: 35%; height: 60%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 50%, #1a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 8px 0 16px rgba(0,0,0,0.5);
  animation: frc-giant-body 6s ease-in-out infinite alternate;
}
.scn-forest-redcrosse-captured .giant-head {
  position: absolute; top: 15%; left: 38%; width: 18%; height: 18%;
  background: radial-gradient(circle, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: frc-giant-head 8s ease-in-out infinite alternate;
}
.scn-forest-redcrosse-captured .knight-tied {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #8b4513 0%, #5a2a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(10deg);
  animation: frc-knight 3s ease-in-out infinite;
}
.scn-forest-redcrosse-captured .chain-1 {
  position: absolute; bottom: 40%; left: 46%; width: 8px; height: 20px;
  background: repeating-linear-gradient(180deg, #a0a0a0 0px, #a0a0a0 4px, transparent 4px, transparent 8px);
  border-radius: 2px;
  transform-origin: top center;
  animation: frc-chain 2s ease-in-out infinite;
}
.scn-forest-redcrosse-captured .chain-2 {
  position: absolute; bottom: 40%; left: 49%; width: 8px; height: 25px;
  background: repeating-linear-gradient(180deg, #b0b0b0 0px, #b0b0b0 4px, transparent 4px, transparent 8px);
  border-radius: 2px;
  transform-origin: top center;
  animation: frc-chain 2.3s ease-in-out infinite reverse;
}
.scn-forest-redcrosse-captured .ground-shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: frc-shadow 10s ease-in-out infinite alternate;
}
@keyframes frc-giant-body {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes frc-giant-head {
  0% { transform: translate(0,0) rotate(-2deg); }
  50% { transform: translate(2px,-2px) rotate(3deg); }
  100% { transform: translate(-1px,1px) rotate(-1deg); }
}
@keyframes frc-knight {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-4px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes frc-chain {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes frc-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(0.9); }
}

.scn-forest-fountaine {
  background:
    linear-gradient(180deg, #b0e57c 0%, #7ccd7c 30%, #228b22 60%, #1a4a1a 100%),
    radial-gradient(ellipse at 50% 20%, rgba(255,255,200,0.2) 0%, transparent 60%);
}
.scn-forest-fountaine .fountain-basin {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #8fbc8f 0%, #5a7a5a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.3);
}
.scn-forest-fountaine .water-spout {
  position: absolute; bottom: 30%; left: 48%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #87ceeb 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(135,206,235,0.6);
  animation: ffo-water 4s ease-in-out infinite;
}
.scn-forest-fountaine .garland {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 8%;
  background: radial-gradient(ellipse at 20% 50%, #90ee90 0%, transparent 70%), radial-gradient(ellipse at 80% 50%, #90ee90 0%, transparent 70%);
  filter: blur(2px);
  animation: ffo-garland 6s ease-in-out infinite alternate;
}
.scn-forest-fountaine .bubble-1 {
  position: absolute; bottom: 35%; left: 45%; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(255,255,255,0.8) 0%, transparent 70%);
  border-radius: 50%;
  animation: ffo-bubble 3s ease-in-out infinite;
}
.scn-forest-fountaine .bubble-2 {
  position: absolute; bottom: 38%; left: 50%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(255,255,255,0.7) 0%, transparent 60%);
  border-radius: 50%;
  animation: ffo-bubble 3.5s ease-in-out infinite 1s;
}
.scn-forest-fountaine .tree-bough {
  position: absolute; top: 10%; left: 20%; width: 50%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, #228b22 0%, transparent 70%);
  filter: blur(4px);
  animation: ffo-bough 8s ease-in-out infinite alternate;
}
.scn-forest-fountaine .sun-sparkle {
  position: absolute; top: 5%; left: 40%; width: 10px; height: 10px;
  background: radial-gradient(circle, #fff0b0 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,240,176,0.5);
  animation: ffo-sparkle 2s ease-in-out infinite alternate;
}
@keyframes ffo-water {
  0% { transform: translateY(0) scaleY(1); opacity: 0.7; }
  50% { transform: translateY(-8px) scaleY(1.2); opacity: 1; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.8; }
}
@keyframes ffo-garland {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ffo-bubble {
  0% { transform: translateY(0) scale(0.8); opacity: 0.6; }
  50% { transform: translateY(-12px) scale(1.2); opacity: 1; }
  100% { transform: translateY(-24px) scale(0.5); opacity: 0; }
}
@keyframes ffo-bough {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes ffo-sparkle {
  0% { opacity: 0.4; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.6; transform: scale(0.9); }
}

.scn-forest-orgoglio {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0c4de 20%, #2f4f4f 50%, #1a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.3) 0%, transparent 70%);
}
.scn-forest-orgoglio .giant-torso {
  position: absolute; bottom: 30%; left: 20%; width: 40%; height: 55%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 10px 0 20px rgba(0,0,0,0.5);
  animation: fog-torso 7s ease-in-out infinite alternate;
}
.scn-forest-orgoglio .giant-head {
  position: absolute; top: 8%; left: 28%; width: 24%; height: 22%;
  background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: fog-head 5s ease-in-out infinite alternate;
}
.scn-forest-orgoglio .giant-leg {
  position: absolute; bottom: 0; left: 30%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: fog-leg 8s ease-in-out infinite alternate;
}
.scn-forest-orgoglio .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%);
  border-radius: 80% 20% 0 0 / 100% 40% 0 0;
}
.scn-forest-orgoglio .tree-small {
  position: absolute; bottom: 15%; left: 55%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  transform: scale(0.6);
  animation: fog-tree 12s ease-in-out infinite alternate;
}
.scn-forest-orgoglio .knight-tiny {
  position: absolute; bottom: 10%; left: 42%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #8b4513 0%, #5a2a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: fog-knight 2s ease-in-out infinite;
}
.scn-forest-orgoglio .shadow-loom {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 30% 40%, rgba(0,0,0,0.35) 0%, transparent 60%);
  pointer-events: none;
  animation: fog-shadow 10s ease-in-out infinite alternate;
}
@keyframes fog-torso {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(1deg); }
  100% { transform: translateY(2px) rotate(-2deg); }
}
@keyframes fog-head {
  0% { transform: translate(0,0) rotate(-3deg); }
  50% { transform: translate(3px,-3px) rotate(4deg); }
  100% { transform: translate(-2px,1px) rotate(-1deg); }
}
@keyframes fog-leg {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes fog-tree {
  0% { transform: scale(0.6) translateY(0); }
  50% { transform: scale(0.65) translateY(-2px); }
  100% { transform: scale(0.58) translateY(1px); }
}
@keyframes fog-knight {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes fog-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

.scn-glossary-e {
  background: linear-gradient(135deg, #f5e6d3 0%, #e0c9a6 100%), radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-glossary-e .wall { position:absolute; inset:0; background: linear-gradient(180deg, #fdf6e3 0%, #f0e0c0 100%); }
.scn-glossary-e .window { position:absolute; top:8%; right:12%; width:30%; height:40%; background: linear-gradient(180deg, #fff8e7 0%, #fce4b8 100%); border:6px solid #8b5a2b; border-radius:4px; box-shadow: inset 0 0 40px #fff8e7, 0 0 60px rgba(255,248,231,0.3); animation: ge-window 6s ease-in-out infinite alternate; }
.scn-glossary-e .desk { position:absolute; bottom:8%; left:10%; width:45%; height:20%; background: linear-gradient(180deg, #8b5a2b 0%, #6b3a1b 100%); border-radius:2px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-glossary-e .book { position:absolute; bottom:16%; left:18%; width:20%; height:12%; background: linear-gradient(180deg, #fdf6e3 0%, #d4c5a0 100%); border-radius:2px; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,0.15); animation: ge-book 8s ease-in-out infinite; }
.scn-glossary-e .lamp { position:absolute; bottom:22%; left:30%; width:6%; height:18%; background: linear-gradient(180deg, #c9a96e 0%, #8b5a2b 100%); border-radius: 50% 50% 10% 10%; }
.scn-glossary-e .lamp::after { content:''; position:absolute; top:-20%; left:-50%; width:200%; height:40%; background: radial-gradient(circle, #ffebb3 0%, transparent 70%); animation: ge-glow 3s ease-in-out infinite alternate; }
.scn-glossary-e .chair { position:absolute; bottom:5%; left:30%; width:18%; height:22%; background: linear-gradient(180deg, #6b3a1b 0%, #4a2010 100%); border-radius: 40% 40% 10% 10%; transform-origin: bottom center; animation: ge-chair 5s ease-in-out infinite; }
.scn-glossary-e .rug { position:absolute; bottom:0; left:5%; width:60%; height:8%; background: linear-gradient(90deg, #b87333 0%, #d4a050 50%, #b87333 100%); border-radius: 50% 50% 0 0; opacity:0.7; }
.scn-glossary-e .picture { position:absolute; top:10%; left:10%; width:15%; height:20%; background: linear-gradient(135deg, #9b7b5e 0%, #6b4a30 100%); border:4px solid #5a3a1e; border-radius:4px; }
@keyframes ge-window { 0% { opacity:0.8; box-shadow: 0 0 40px #fff8e7, 0 0 60px rgba(255,248,231,0.2); } 50% { opacity:1; box-shadow: 0 0 60px #fff8e7, 0 0 80px rgba(255,248,231,0.4); } 100% { opacity:0.85; box-shadow: 0 0 45px #fff8e7, 0 0 65px rgba(255,248,231,0.25); } }
@keyframes ge-book { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes ge-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes ge-chair { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } }

.scn-glossary-f {
  background: linear-gradient(135deg, #f0e6d8 0%, #d9c6a8 100%), radial-gradient(ellipse at 50% 80%, #fff8e7 0%, transparent 70%);
}
.scn-glossary-f .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f5ede0 0%, #e8dcc8 100%); }
.scn-glossary-f .window { position:absolute; top:10%; left:5%; width:35%; height:45%; background: linear-gradient(180deg, #fff8e7 0%, #fce4b8 100%); border:6px solid #7a5a3a; border-radius:4px; box-shadow: inset 0 0 50px #fff8e7, 0 0 70px rgba(255,248,231,0.3); animation: gf-window 8s ease-in-out infinite alternate; }
.scn-glossary-f .shelf-left { position:absolute; top:10%; left:15%; width:20%; height:60%; background: linear-gradient(180deg, #8b5a2b 0%, #6b3a1b 100%); border-radius:2px; box-shadow: 2px 0 8px rgba(0,0,0,0.2); }
.scn-glossary-f .shelf-right { position:absolute; top:10%; right:10%; width:20%; height:60%; background: linear-gradient(180deg, #8b5a2b 0%, #6b3a1b 100%); border-radius:2px; box-shadow: -2px 0 8px rgba(0,0,0,0.2); }
.scn-glossary-f .globe { position:absolute; top:28%; right:15%; width:12%; height:18%; background: radial-gradient(circle at 30% 30%, #a0c4d0 0%, #6a8a9a 100%); border-radius:50%; box-shadow: 0 4px 12px rgba(0,0,0,0.3), inset 0 0 20px rgba(255,255,255,0.2); animation: gf-globe 20s linear infinite; }
.scn-glossary-f .ladder { position:absolute; bottom:10%; left:30%; width:5%; height:40%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%); border-radius:2px; transform: rotate(10deg); transform-origin: bottom center; }
.scn-glossary-f .lamp { position:absolute; bottom:25%; left:50%; width:6%; height:15%; background: linear-gradient(180deg, #c9a96e 0%, #8b5a2b 100%); border-radius: 50% 50% 10% 10%; }
.scn-glossary-f .lamp::after { content:''; position:absolute; top:-25%; left:-60%; width:220%; height:50%; background: radial-gradient(circle, #ffebb3 0%, transparent 70%); animation: gf-glow 3.5s ease-in-out infinite alternate; }
.scn-glossary-f .rug { position:absolute; bottom:0; left:10%; width:70%; height:6%; background: linear-gradient(90deg, #b87333 0%, #d4a050 50%, #b87333 100%); border-radius: 50% 50% 0 0; opacity:0.6; }
@keyframes gf-window { 0% { opacity:0.75; box-shadow: 0 0 30px #fff8e7, 0 0 50px rgba(255,248,231,0.2); } 50% { opacity:1; box-shadow: 0 0 60px #fff8e7, 0 0 80px rgba(255,248,231,0.4); } 100% { opacity:0.8; box-shadow: 0 0 35px #fff8e7, 0 0 55px rgba(255,248,231,0.25); } }
@keyframes gf-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes gf-glow { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.95); } }

.scn-glossary-g {
  background: linear-gradient(135deg, #f0e6d8 0%, #d9c6a8 100%), radial-gradient(ellipse at 30% 50%, #fff8e7 0%, transparent 60%);
}
.scn-glossary-g .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f5ede0 0%, #e8dcc8 100%); }
.scn-glossary-g .window { position:absolute; top:5%; left:30%; width:25%; height:40%; background: linear-gradient(180deg, #fff8e7 0%, #fce4b8 100%); border:6px solid #7a5a3a; border-radius:4px; box-shadow: inset 0 0 40px #fff8e7, 0 0 60px rgba(255,248,231,0.3); animation: gg-window 7s ease-in-out infinite alternate; }
.scn-glossary-g .lectern { position:absolute; bottom:10%; left:40%; width:15%; height:25%; background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1b 100%); border-radius:2px; transform: skewX(-5deg); box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-glossary-g .manuscript { position:absolute; bottom:18%; left:42%; width:12%; height:10%; background: linear-gradient(180deg, #fdf6e3 0%, #d4c5a0 100%); border-radius:2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.15); animation: gg-manu 9s ease-in-out infinite; }
.scn-glossary-g .quill { position:absolute; bottom:20%; left:48%; width:3%; height:16%; background: linear-gradient(180deg, #f0e0c0 0%, #c9a96e 100%); border-radius: 0 0 50% 50%; transform: rotate(-15deg); transform-origin: top center; animation: gg-quill 4s ease-in-out infinite alternate; }
.scn-glossary-g .candle { position:absolute; bottom:20%; left:36%; width:2%; height:8%; background: linear-gradient(180deg, #fdf6e3 0%, #c9a96e 100%); border-radius:2px; }
.scn-glossary-g .candle::after { content:''; position:absolute; top:-30%; left:-100%; width:300%; height:50%; background: radial-gradient(circle, #ffebb3 0%, transparent 70%); animation: gg-candle 2s ease-in-out infinite alternate; }
.scn-glossary-g .chair { position:absolute; bottom:8%; left:25%; width:14%; height:20%; background: linear-gradient(180deg, #6b3a1b 0%, #4a2010 100%); border-radius: 40% 40% 10% 10%; transform-origin: bottom center; animation: gg-chair 6s ease-in-out infinite; }
.scn-glossary-g .carpet { position:absolute; bottom:0; left:20%; width:50%; height:7%; background: linear-gradient(90deg, #b87333 0%, #d4a050 50%, #b87333 100%); border-radius: 50% 50% 0 0; opacity:0.65; }
@keyframes gg-window { 0% { opacity:0.8; box-shadow: 0 0 35px #fff8e7, 0 0 55px rgba(255,248,231,0.2); } 50% { opacity:1; box-shadow: 0 0 60px #fff8e7, 0 0 80px rgba(255,248,231,0.4); } 100% { opacity:0.85; box-shadow: 0 0 40px #fff8e7, 0 0 60px rgba(255,248,231,0.25); } }
@keyframes gg-manu { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes gg-quill { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.02); } 100% { transform: rotate(-18deg) scaleY(0.98); } }
@keyframes gg-candle { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes gg-chair { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } }

.scn-glossary-h {
  background: linear-gradient(135deg, #f0e6d8 0%, #d9c6a8 100%), radial-gradient(ellipse at 70% 20%, #fff8e7 0%, transparent 60%);
}
.scn-glossary-h .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f5ede0 0%, #e8dcc8 100%); }
.scn-glossary-h .window { position:absolute; top:5%; left:10%; width:35%; height:50%; background: linear-gradient(180deg, #fff8e7 0%, #fce4b8 100%); border:6px solid #7a5a3a; border-radius:4px; box-shadow: inset 0 0 50px #fff8e7, 0 0 70px rgba(255,248,231,0.3); animation: gh-window 9s ease-in-out infinite alternate; }
.scn-glossary-h .stained-glass { position:absolute; top:8%; left:13%; width:29%; height:44%; background: radial-gradient(circle at 30% 30%, #7a9a6a 0%, #4a6a3a 50%, #2a4a1a 100%); border-radius:4px; opacity:0.6; mix-blend-mode: multiply; animation: gh-stain 12s ease-in-out infinite alternate; }
.scn-glossary-h .alcove-bench { position:absolute; bottom:5%; left:5%; width:40%; height:20%; background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1b 100%); border-radius:2px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-glossary-h .book { position:absolute; bottom:8%; left:15%; width:15%; height:10%; background: linear-gradient(180deg, #fdf6e3 0%, #d4c5a0 100%); border-radius:2px; transform: rotate(-4deg); box-shadow: 0 2px 6px rgba(0,0,0,0.15); animation: gh-book 10s ease-in-out infinite; }
.scn-glossary-h .cushion { position:absolute; bottom:10%; left:25%; width:12%; height:8%; background: radial-gradient(circle, #c9a96e 0%, #a08050 100%); border-radius:50%; }
.scn-glossary-h .plant { position:absolute; bottom:10%; right:10%; width:8%; height:18%; background: linear-gradient(180deg, #3a6a2a 0%, #1a3a10 100%); border-radius: 50% 50% 10% 10%; }
.scn-glossary-h .plant::before { content:''; position:absolute; top:-20%; left:-50%; width:200%; height:40%; background: radial-gradient(circle, #5a9a4a 0%, transparent 70%); animation: gh-plant 6s ease-in-out infinite alternate; }
.scn-glossary-h .lamp { position:absolute; bottom:30%; right:15%; width:5%; height:12%; background: linear-gradient(180deg, #c9a96e 0%, #8b5a2b 100%); border-radius: 50% 50% 10% 10%; }
.scn-glossary-h .lamp::after { content:''; position:absolute; top:-20%; left:-60%; width:220%; height:40%; background: radial-gradient(circle, #ffebb3 0%, transparent 70%); animation: gh-glow 4s ease-in-out infinite alternate; }
@keyframes gh-window { 0% { opacity:0.75; box-shadow: 0 0 30px #fff8e7, 0 0 50px rgba(255,248,231,0.2); } 50% { opacity:1; box-shadow: 0 0 60px #fff8e7, 0 0 80px rgba(255,248,231,0.4); } 100% { opacity:0.8; box-shadow: 0 0 35px #fff8e7, 0 0 55px rgba(255,248,231,0.25); } }
@keyframes gh-stain { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.02) rotate(1deg); } 100% { opacity:0.5; transform: scale(0.98); } }
@keyframes gh-book { 0%,100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes gh-plant { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes gh-glow { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.95); } }

.scn-beauty-and-pagan-dream {
  background: linear-gradient(180deg, #1b1740 0%, #2a1f5e 40%, #3a2b6a 100%),
              radial-gradient(ellipse at 50% 0%, #7a4a8a 0%, transparent 60%);
}
.scn-beauty-and-pagan-dream .sky-glare {
  position: absolute; inset: 0 0 50% 0;
  background: radial-gradient(ellipse at 50% 100%, #b86a8a 0%, transparent 80%);
  animation: bdp-sky 10s ease-in-out infinite alternate;
}
.scn-beauty-and-pagan-dream .starfield {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(2px 2px at 20% 30%, #fff 0%, transparent 100%),
              radial-gradient(3px 3px at 70% 60%, #fff 0%, transparent 100%),
              radial-gradient(1px 1px at 40% 10%, #ffd 0%, transparent 100%);
  background-size: 50px 50px;
  animation: bdp-stars 20s linear infinite;
}
.scn-beauty-and-pagan-dream .moon-glow {
  position: absolute; top: 12%; left: 65%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #ffeedd 0%, #eebb99 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(238,187,153,0.4);
  animation: bdp-moon 12s ease-in-out infinite alternate;
}
.scn-beauty-and-pagan-dream .hill-back {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  animation: bdp-hill 18s ease-in-out infinite;
}
.scn-beauty-and-pagan-dream .hill-mid {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  animation: bdp-hill 24s ease-in-out infinite;
}
.scn-beauty-and-pagan-dream .fairy-silhouette {
  position: absolute; bottom: 30%; left: 50%;
  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: bdp-dance 4s ease-in-out infinite;
}
.scn-beauty-and-pagan-dream .sparkle-group {
  position: absolute; top: 20%; left: 30%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #ffe 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 10px 5px rgba(255,255,200,0.6);
  animation: bdp-sparkle 3s ease-in-out infinite;
}
.scn-beauty-and-pagan-dream .sparkle-two {
  left: 60%;
  top: 35%;
  animation-delay: -1.5s;
}
.scn-beauty-and-pagan-dream .mist {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(200,180,220,0.1) 0%, transparent 100%);
  filter: blur(8px);
  animation: bdp-mist 15s ease-in-out infinite;
}

@keyframes bdp-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bdp-stars { 0% { background-position:0 0 } 100% { background-position:50px 30px } }
@keyframes bdp-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(2px) scale(0.98) } }
@keyframes bdp-hill { 0% { transform: scaleY(1) } 33% { transform: scaleY(1.01) } 66% { transform: scaleY(0.99) } 100% { transform: scaleY(1) } }
@keyframes bdp-dance { 0% { transform: rotate(-8deg) translateY(0) } 25% { transform: rotate(8deg) translateY(-2px) } 50% { transform: rotate(-5deg) translateY(-1px) } 75% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes bdp-sparkle { 0% { opacity:0.3; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.3; transform: scale(0.8) } }
@keyframes bdp-mist { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.2 } }

.scn-taines-judgment {
  background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 50%, #3a3a3a 100%),
              radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-taines-judgment .wall-shadow {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a2a 0%, transparent 100%);
  animation: tj-wall 15s ease-in-out infinite;
}
.scn-taines-judgment .window-light {
  position: absolute; top: 10%; left: 15%;
  width: 80px; height: 60px;
  background: linear-gradient(135deg, #c8b088 0%, #8a7058 100%);
  border: 2px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: 0 0 20px 10px rgba(200,176,136,0.3);
  animation: tj-window 8s ease-in-out infinite alternate;
}
.scn-taines-judgment .desk-dark {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-taines-judgment .book-stack {
  position: absolute; bottom: 38%; left: 30%;
  width: 60px; height: 35px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: tj-book 10s ease-in-out infinite alternate;
}
.scn-taines-judgment .book-single {
  position: absolute; bottom: 36%; left: 38%;
  width: 45px; height: 25px;
  background: linear-gradient(180deg, #8a6a5a 0%, #5a4a3a 100%);
  border-radius: 1px;
  transform: rotate(-5deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.4);
  animation: tj-book2 12s ease-in-out infinite;
}
.scn-taines-judgment .scholar-figure {
  position: absolute; bottom: 30%; left: 55%;
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: tj-bowing 6s ease-in-out infinite;
}
.scn-taines-judgment .lamp-stand {
  position: absolute; bottom: 35%; left: 20%;
  width: 4px; height: 40px;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%);
  border-radius: 2px;
}
.scn-taines-judgment .glow-point {
  position: absolute; bottom: 55%; left: 20%;
  width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #c88040 80%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(255,208,128,0.5);
  animation: tj-glow 3s ease-in-out infinite alternate;
}

@keyframes tj-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tj-window { 0% { box-shadow: 0 0 20px 10px rgba(200,176,136,0.3); opacity:0.8 } 50% { box-shadow: 0 0 30px 15px rgba(200,176,136,0.6); opacity:1 } 100% { box-shadow: 0 0 20px 10px rgba(200,176,136,0.3); opacity:0.8 } }
@keyframes tj-book { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tj-book2 { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }
@keyframes tj-bowing { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-2deg) translateY(-1px) } 50% { transform: rotate(2deg) translateY(0) } 75% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes tj-glow { 0% { transform: scale(0.9); opacity:0.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.9); opacity:0.7 } }

.scn-events-table-chronology {
  background: linear-gradient(180deg, #d4c4a8 0%, #c4b498 40%, #b4a488 100%),
              radial-gradient(ellipse at 50% 80%, #e0d4c0 0%, transparent 60%);
}
.scn-events-table-chronology .table-surface {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #a08868 0%, #887058 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: etc-table 18s ease-in-out infinite;
}
.scn-events-table-chronology .parchment {
  position: absolute; bottom: 35%; left: 25%; right: 25%; height: 30%;
  background: linear-gradient(135deg, #f0e4c8 0%, #d8c8a8 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.1);
  transform: rotate(-2deg);
  animation: etc-parch 12s ease-in-out infinite alternate;
}
.scn-events-table-chronology .inkwell {
  position: absolute; bottom: 45%; left: 18%;
  width: 20px; height: 24px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 1px 1px 4px rgba(0,0,0,0.5);
}
.scn-events-table-chronology .quill {
  position: absolute; bottom: 56%; left: 22%;
  width: 4px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 0 0 2px 2px;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: etc-quill 8s ease-in-out infinite;
}
.scn-events-table-chronology .hand-writing {
  position: absolute; bottom: 42%; left: 42%;
  width: 18px; height: 30px;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b898 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: etc-hand 5s ease-in-out infinite;
}
.scn-events-table-chronology .wax-seal {
  position: absolute; bottom: 38%; left: 58%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #a0461a 0%, #5e1a1d 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(160,70,26,0.4);
}

@keyframes etc-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes etc-parch { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-2deg) } }
@keyframes etc-quill { 0% { transform: rotate(-20deg) } 25% { transform: rotate(-15deg) } 50% { transform: rotate(-22deg) } 75% { transform: rotate(-18deg) } 100% { transform: rotate(-20deg) } }
@keyframes etc-hand { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-events-table-continued {
  background: linear-gradient(180deg, #c4b49c 0%, #b4a48c 40%, #a4947c 100%),
              radial-gradient(ellipse at 30% 70%, #d4c4ac 0%, transparent 60%);
}
.scn-events-table-continued .shelf-back {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #7a6a5a 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
}
.scn-events-table-continued .shelf-board {
  position: absolute; top: 40%; left: 12%; right: 12%; height: 6px;
  background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 100%);
  border-radius: 2px;
}
.scn-events-table-continued .book-row {
  position: absolute; top: 14%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a5a 20%, #5a3a2a 40%, #7a5a4a 60%, #6a4a3a 80%, #8a6a5a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: etco-books 15s ease-in-out infinite alternate;
}
.scn-events-table-continued .scroll-roll {
  position: absolute; top: 50%; left: 20%;
  width: 40px; height: 18px;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b898 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  box-shadow: 1px 1px 4px rgba(0,0,0,0.2);
  transform: rotate(10deg);
  animation: etco-roll 20s linear infinite;
}
.scn-events-table-continued .scroll-open {
  position: absolute; top: 52%; left: 28%;
  width: 80px; height: 12px;
  background: linear-gradient(180deg, #f0e4c8 0%, #d8c8a8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  transform: rotate(-3deg);
  animation: etco-open 25s ease-in-out infinite;
}
.scn-events-table-continued .librarian-figure {
  position: absolute; bottom: 30%; left: 50%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: etco-reach 7s ease-in-out infinite;
}
.scn-events-table-continued .candle-wax {
  position: absolute; bottom: 18%; left: 65%;
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0e0c8 0%, #d0b890 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 10px 4px rgba(240,224,200,0.3);
  animation: etco-candle 9s ease-in-out infinite alternate;
}

@keyframes etco-books { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes etco-roll { 0% { transform: rotate(10deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(10deg) } }
@keyframes etco-open { 0% { transform: rotate(-3deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(-3deg) } }
@keyframes etco-reach { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(3deg) translateY(0) } 75% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes etco-candle { 0% { opacity:0.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:0.7; transform: scaleY(1) } }

/* Scene: archimago-false-answer */
.scn-archimago-false-answer {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #fdd9a8 40%, #c8b090 100%),
    radial-gradient(ellipse at 60% 30%, #ffe6b0 0%, transparent 50%);
}
.scn-archimago-false-answer .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #aac8e0 0%, #d8e8f0 50%, transparent 100%);
  animation: af-sky 10s ease-in-out infinite alternate;
}
.scn-archimago-false-answer .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #8a9a5a 0%, #4a6a3a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,20,0,.3);
}
.scn-archimago-false-answer .tree-left {
  position: absolute; bottom: 40%; left: 8%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: af-tree-sway 6s ease-in-out infinite;
}
.scn-archimago-false-answer .tree-right {
  position: absolute; bottom: 40%; right: 12%; width: 35px; height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: af-tree-sway 7s ease-in-out infinite reverse;
}
.scn-archimago-false-answer .figure-knight {
  position: absolute; bottom: 35%; left: 38%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: af-knight 4s ease-in-out infinite;
}
.scn-archimago-false-answer .figure-lady {
  position: absolute; bottom: 35%; right: 38%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #d8c8a8 0%, #b89878 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: af-lady 5s ease-in-out infinite;
}
.scn-archimago-false-answer .false-aura {
  position: absolute; bottom: 38%; left: 46%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,215,140,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: af-aura 3s ease-in-out infinite alternate;
}
.scn-archimago-false-answer .sunbeam {
  position: absolute; top: 10%; left: 40%; width: 60px; height: 60px;
  background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: af-sunbeam 8s ease-in-out infinite alternate;
}
@keyframes af-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes af-tree-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes af-knight { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes af-lady { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes af-aura { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes af-sunbeam { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.2); } 100% { transform: translateX(-5px) scale(0.9); } }

/* Scene: false-excuse */
.scn-false-excuse {
  background:
    linear-gradient(180deg, #f0e0b0 0%, #d4c098 40%, #a89070 100%),
    radial-gradient(ellipse at 30% 70%, #ffecb0 0%, transparent 60%);
}
.scn-false-excuse .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8d4e0 0%, #e0f0f0 50%, transparent 100%);
  animation: fe-sky 12s ease-in-out infinite alternate;
}
.scn-false-excuse .horizon {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, #8a9a5a 0%, transparent);
  border-radius: 0;
}
.scn-false-excuse .figure-kneeling {
  position: absolute; bottom: 30%; left: 40%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fe-kneel 4s ease-in-out infinite;
}
.scn-false-excuse .figure-standing {
  position: absolute; bottom: 28%; left: 52%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #d8c8a8 0%, #b89878 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fe-stand 5s ease-in-out infinite;
}
.scn-false-excuse .path {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(90deg, #7a6a3a 0%, #8a7a4a 50%, #7a6a3a 100%);
  border-radius: 50% 50% 0 0;
  opacity: 0.6;
}
.scn-false-excuse .bush-1 {
  position: absolute; bottom: 32%; left: 10%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #5a7a3a 0%, #3a5a2a 80%);
  border-radius: 60% 40% 20% 20%;
  animation: fe-bush 7s ease-in-out infinite;
}
.scn-false-excuse .bush-2 {
  position: absolute; bottom: 30%; right: 8%; width: 40px; height: 25px;
  background: radial-gradient(ellipse at 50% 100%, #5a7a3a 0%, #3a5a2a 80%);
  border-radius: 40% 60% 20% 20%;
  animation: fe-bush 8s ease-in-out infinite reverse;
}
@keyframes fe-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fe-kneel { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes fe-stand { 0%,100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-2px); } }
@keyframes fe-bush { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }

/* Scene: una-believes-him */
.scn-una-believes-him {
  background:
    linear-gradient(180deg, #fde8c0 0%, #e8c898 40%, #c8a878 100%),
    radial-gradient(ellipse at 50% 20%, #ffe4b0 0%, transparent 50%);
}
.scn-una-believes-him .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c8dce8 0%, #e8f0e8 50%, transparent 100%);
  animation: ub-sky 10s ease-in-out infinite alternate;
}
.scn-una-believes-him .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8a9a5a 0%, #4a6a3a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,20,0,.3);
}
.scn-una-believes-him .arch-tree {
  position: absolute; bottom: 40%; left: 10%; width: 80%; height: 30%;
  background:
    radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, transparent 70%),
    linear-gradient(180deg, #5a7a4a 0%, transparent 80%);
  border-radius: 50% 50% 0 0;
  animation: ub-arch 15s ease-in-out infinite alternate;
}
.scn-una-believes-him .figure-left {
  position: absolute; bottom: 30%; left: 38%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ub-fig-left 4s ease-in-out infinite;
}
.scn-una-believes-him .figure-right {
  position: absolute; bottom: 30%; left: 50%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #d8c8a8 0%, #b89878 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ub-fig-right 4s ease-in-out infinite reverse;
}
.scn-una-believes-him .glow-heart {
  position: absolute; bottom: 38%; left: 44%; width: 24px; height: 24px;
  background: radial-gradient(circle, #ffd080 0%, #ffb060 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ub-glow 3s ease-in-out infinite alternate;
}
@keyframes ub-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ub-arch { 0% { transform: rotate(-2deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(2deg); } }
@keyframes ub-fig-left { 0%,100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-2px) rotate(1deg); } }
@keyframes ub-fig-right { 0%,100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); } }
@keyframes ub-glow { 0% { transform: scale(0.8); opacity: 0.4; } 50% { transform: scale(1.4); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.6; } }

/* Scene: simile-of-beaten-mariner */
.scn-simile-of-beaten-mariner {
  background:
    linear-gradient(180deg, #b8d4e8 0%, #d0e8f0 30%, #e8f0d8 100%),
    radial-gradient(ellipse at 70% 30%, #ffe8a0 0%, transparent 60%);
}
.scn-simile-of-beaten-mariner .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8ab8d0 0%, #c8e0e8 50%, transparent 100%);
  animation: sb-sky 14s ease-in-out infinite alternate;
}
.scn-simile-of-beaten-mariner .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5a8a9a 0%, #3a6a7a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,20,40,.5);
  animation: sb-sea 20s ease-in-out infinite alternate;
}
.scn-simile-of-beaten-mariner .ship {
  position: absolute; bottom: 35%; left: 20%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30%;
  transform-origin: bottom center;
  animation: sb-ship 8s ease-in-out infinite;
}
.scn-simile-of-beaten-mariner .sail {
  position: absolute; bottom: 45%; left: 25%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: bottom center;
  animation: sb-sail 6s ease-in-out infinite;
}
.scn-simile-of-beaten-mariner .port {
  position: absolute; bottom: 40%; right: 10%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #a09870 0%, #7a6a50 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.3);
  animation: sb-port 12s ease-in-out infinite alternate;
}
.scn-simile-of-beaten-mariner .sun {
  position: absolute; top: 18%; right: 22%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe8a0 0%, #ffd060 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sb-sun 6s ease-in-out infinite alternate;
}
.scn-simile-of-beaten-mariner .light-rays {
  position: absolute; top: 12%; right: 15%; width: 120px; height: 120px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,160,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: sb-rays 10s ease-in-out infinite alternate;
}
@keyframes sb-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sb-sea { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }
@keyframes sb-ship { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes sb-sail { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(3deg); } }
@keyframes sb-port { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes sb-sun { 0% { transform: scale(0.9); opacity: 0.7; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }
@keyframes sb-rays { 0% { transform: rotate(0deg) scale(0.8); opacity: 0.3; } 50% { transform: rotate(10deg) scale(1.1); opacity: 0.6; } 100% { transform: rotate(-5deg) scale(0.9); opacity: 0.4; } }

/* canto-4-argument — bright interior, calm mood */
.scn-canto-4-argument {
  background: linear-gradient(180deg, #f7e8c8 0%, #c9b082 60%, #a0845a 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
  overflow: hidden;
}
.scn-canto-4-argument .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d8c4a0 0%, #b89e7a 100%);
}
.scn-canto-4-argument .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a0845a 0%, #7a6648 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: ca4-floor 10s ease-in-out infinite;
}
.scn-canto-4-argument .window-light {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #fff5d0 0%, #f0d080 60%, transparent 80%);
  border-radius: 10px;
  box-shadow: 0 0 60px 30px #f0d080, 0 0 120px 60px rgba(240,208,128,.3);
  animation: ca4-window 4s ease-in-out infinite alternate;
}
.scn-canto-4-argument .pillar-left {
  position: absolute; bottom: 35%; left: 20%; width: 20px; height: 65%;
  background: linear-gradient(180deg, #c0a880 0%, #8a7658 100%);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,.2);
}
.scn-canto-4-argument .pillar-right {
  position: absolute; bottom: 35%; right: 20%; width: 20px; height: 65%;
  background: linear-gradient(180deg, #c0a880 0%, #8a7658 100%);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,.2);
}
.scn-canto-4-argument .figure-knight {
  position: absolute; bottom: 32%; left: 38%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca4-knight 5s ease-in-out infinite;
}
.scn-canto-4-argument .figure-duessa {
  position: absolute; bottom: 32%; right: 38%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #b08068 0%, #6a4a3a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca4-duessa 5s ease-in-out infinite reverse;
}
.scn-canto-4-argument .banner {
  position: absolute; top: 18%; left: 50%; width: 40px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #c8553d, #a0461a, #c8553d);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ca4-banner 8s ease-in-out infinite alternate;
}
@keyframes ca4-floor {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ca4-window {
  0% { opacity: .7; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.02); }
  100% { opacity: .8; transform: translateX(-50%) scale(.98); }
}
@keyframes ca4-knight {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes ca4-duessa {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-3px); }
  100% { transform: rotate(1deg) translateY(0); }
}
@keyframes ca4-banner {
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(5deg); }
}

/* warning-example — bright interior, calm, deceit theme */
.scn-warning-example {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 50%, #a89878 100%),
              radial-gradient(ellipse at 60% 20%, #fff4e0 0%, transparent 60%);
  overflow: hidden;
}
.scn-warning-example .chamber-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8ccb8 0%, #b8a88a 100%);
}
.scn-warning-example .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a89878 0%, #807058 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,.2);
}
.scn-warning-example .tapestry {
  position: absolute; top: 12%; left: 50%; width: 120px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #8a7658 0%, #6a5640 100%);
  border: 2px solid #c8a070;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: wex-tapestry 14s ease-in-out infinite alternate;
}
.scn-warning-example .figure-redcrosse {
  position: absolute; bottom: 28%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wex-redcrosse 6s ease-in-out infinite;
}
.scn-warning-example .figure-fidessa {
  position: absolute; bottom: 28%; right: 30%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #b08068 0%, #6a4a3a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wex-fidessa 6s ease-in-out infinite reverse;
}
.scn-warning-example .curtain-left {
  position: absolute; top: 5%; left: 5%; width: 40px; height: 80%;
  background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 100%);
  border-radius: 20px 0 0 20px;
  filter: blur(1px);
  animation: wex-curtain 12s ease-in-out infinite alternate;
}
.scn-warning-example .curtain-right {
  position: absolute; top: 5%; right: 5%; width: 40px; height: 80%;
  background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 100%);
  border-radius: 0 20px 20px 0;
  filter: blur(1px);
  animation: wex-curtain 12s ease-in-out infinite alternate-reverse;
}
@keyframes wex-tapestry {
  0%,100% { transform: translateX(-50%) scale(1) rotate(0deg); }
  50% { transform: translateX(-50%) scale(1.02) rotate(1deg); }
}
@keyframes wex-redcrosse {
  0% { transform: translateY(0) rotate(-2deg); }
  33% { transform: translateY(-3px) rotate(1deg); }
  66% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes wex-fidessa {
  0% { transform: translateY(0) rotate(2deg); }
  33% { transform: translateY(-3px) rotate(-1deg); }
  66% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes wex-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.9); }
  100% { transform: scaleX(1.05); }
}

/* house-of-pride — overcast, dark mood, grim exterior */
.scn-house-of-pride {
  background: linear-gradient(180deg, #4a5c5c 0%, #3a4a4a 40%, #2a3a3a 100%),
              radial-gradient(ellipse at 50% 100%, #2a3a3a 0%, transparent 70%);
  overflow: hidden;
}
.scn-house-of-pride .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a6a6a 0%, #4a5c5c 100%);
  animation: hop-sky 20s ease-in-out infinite alternate;
}
.scn-house-of-pride .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-house-of-pride .path {
  position: absolute; bottom: 35%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0;
  animation: hop-path 15s ease-in-out infinite;
}
.scn-house-of-pride .house-distant {
  position: absolute; bottom: 50%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: hop-house 12s ease-in-out infinite alternate;
}
.scn-house-of-pride .figure-crawl {
  position: absolute; bottom: 30%; left: 30%; width: 18px; height: 20px;
  background: radial-gradient(ellipse, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: hop-crawl 8s ease-in-out infinite;
}
.scn-house-of-pride .figure-stand {
  position: absolute; bottom: 30%; right: 25%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: hop-stand 10s ease-in-out infinite;
}
.scn-house-of-pride .signpost {
  position: absolute; bottom: 35%; left: 42%; width: 4px; height: 40px;
  background: #4a3a2a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: hop-sign 7s ease-in-out infinite alternate;
}
@keyframes hop-sky {
  0% { opacity: .6; }
  50% { opacity: .9; }
  100% { opacity: .7; }
}
@keyframes hop-path {
  0%,100% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.05) translateY(-2px); }
}
@keyframes hop-house {
  0% { transform: translateX(-50%) scale(1); opacity: .8; }
  50% { transform: translateX(-50%) scale(0.95); opacity: .9; }
  100% { transform: translateX(-50%) scale(1.02); opacity: .7; }
}
@keyframes hop-crawl {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(3deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(4deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes hop-stand {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes hop-sign {
  0% { transform: rotate(-10deg); }
  100% { transform: rotate(10deg); }
}

/* palace-described — sunlit, dark mood, grand exterior */
.scn-palace-described {
  background: linear-gradient(180deg, #7a9aba 0%, #4a6a8a 50%, #2a4a6a 100%),
              radial-gradient(ellipse at 30% 20%, #c8e8ff 0%, transparent 60%);
  overflow: hidden;
}
.scn-palace-described .sky-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #8ab0d0 0%, #6a8aaa 100%);
  animation: pds-sky 25s ease-in-out infinite alternate;
}
.scn-palace-described .palace-facade {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,.4);
  animation: pds-facade 18s ease-in-out infinite alternate;
}
.scn-palace-described .tower-left {
  position: absolute; bottom: 30%; left: 18%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,.3);
  animation: pds-tower 12s ease-in-out infinite alternate;
}
.scn-palace-described .tower-right {
  position: absolute; bottom: 30%; right: 18%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,.3);
  animation: pds-tower 12s ease-in-out infinite alternate-reverse;
}
.scn-palace-described .golden-dial {
  position: absolute; top: 12%; left: 50%; width: 50px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0d080 0%, #c8a050 60%, #8a6a30 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #f0d080, 0 0 60px 20px rgba(240,208,128,.4);
  animation: pds-dial 6s ease-in-out infinite alternate;
}
.scn-palace-described .gallery {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #b8a888 0%, #988878 100%);
  border-radius: 20px 20px 0 0;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,.2), 0 4px 8px rgba(0,0,0,.3);
  animation: pds-gallery 20s ease-in-out infinite;
}
.scn-palace-described .shadow-figure {
  position: absolute; bottom: 20%; left: 45%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: pds-figure 8s ease-in-out infinite;
}
@keyframes pds-sky {
  0%,100% { opacity: .7; }
  50% { opacity: 1; }
}
@keyframes pds-facade {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.01) translateY(-3px); }
  100% { transform: scale(0.99) translateY(0); }
}
@keyframes pds-tower {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.97); }
}
@keyframes pds-dial {
  0% { box-shadow: 0 0 20px 8px #f0d080; opacity: .8; transform: translateX(-50%) scale(1); }
  50% { box-shadow: 0 0 40px 15px #f0d080; opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { box-shadow: 0 0 25px 10px #f0d080; opacity: .9; transform: translateX(-50%) scale(0.98); }
}
@keyframes pds-gallery {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes pds-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}

/* una-advises-rest */
.scn-una-advises-rest {
  background: linear-gradient(180deg, #3a2a5e 0%, #6a4a3e 40%, #b08050 70%, #c09060 100%),
              radial-gradient(ellipse at 50% 30%, #6a5a4e 0%, transparent 60%);
}
.scn-una-advises-rest .uar-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a3a6e 0%, #7a5a4e 50%, transparent 100%);
  animation: uar-sky 15s ease-in-out infinite alternate;
}
.scn-una-advises-rest .uar-hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: uar-hills 20s ease-in-out infinite alternate;
}
.scn-una-advises-rest .uar-tree {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: uar-tree 8s ease-in-out infinite;
}
.scn-una-advises-rest .uar-figure {
  position: absolute; bottom: 23%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uar-figure 4s ease-in-out infinite;
}
.scn-una-advises-rest .uar-star {
  position: absolute; top: 20%; left: 70%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,224,128,0.5);
  animation: uar-star 3s ease-in-out infinite alternate;
}
.scn-una-advises-rest .uar-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
}
@keyframes uar-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes uar-hills { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes uar-tree { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } }
@keyframes uar-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes uar-star { 0% { transform: scale(0.8); opacity: 0.6 } 100% { transform: scale(1.2); opacity: 1 } }

/* archimago-persuades */
.scn-archimago-persuades {
  background: linear-gradient(180deg, #4a3a5e 0%, #7a5a4e 40%, #a08060 70%, #c09070 100%),
              radial-gradient(ellipse at 30% 40%, #8a6a5e 0%, transparent 60%);
}
.scn-archimago-persuades .ap-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a4a6e 0%, #8a6a5e 50%, transparent 100%);
  animation: ap-sky 18s ease-in-out infinite alternate;
}
.scn-archimago-persuades .ap-hills {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
  animation: ap-hills 22s ease-in-out infinite alternate;
}
.scn-archimago-persuades .ap-cottage {
  position: absolute; bottom: 25%; left: 60%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  transform: scale(0.95);
  animation: ap-cottage 10s ease-in-out infinite;
}
.scn-archimago-persuades .ap-door {
  position: absolute; bottom: 26%; left: 64%; width: 16px; height: 24px;
  background: radial-gradient(circle, #c08040 0%, #8a6030 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #a07040, 0 0 40px 12px rgba(160,112,64,0.4);
  animation: ap-door 4s ease-in-out infinite alternate;
}
.scn-archimago-persuades .ap-figure1 {
  position: absolute; bottom: 22%; left: 42%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap-walk-a 5s ease-in-out infinite;
}
.scn-archimago-persuades .ap-figure2 {
  position: absolute; bottom: 22%; left: 48%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap-walk-b 5s ease-in-out infinite 1s;
}
.scn-archimago-persuades .ap-path {
  position: absolute; bottom: 20%; left: 40%; right: 20%; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a5a4a 50%, #5a4a3a 100%);
  border-radius: 50%;
  transform: scaleX(1.2);
  animation: ap-path 8s ease-in-out infinite;
}
@keyframes ap-sky { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes ap-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ap-cottage { 0%,100% { transform: scale(0.95) } 50% { transform: scale(0.98) translateY(-2px) } }
@keyframes ap-door { 0% { box-shadow: 0 0 16px 4px #a07040; opacity: 0.8 } 50% { box-shadow: 0 0 28px 10px #c09050; opacity: 1 } 100% { box-shadow: 0 0 20px 6px #a07040; opacity: 0.9 } }
@keyframes ap-walk-a { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0deg) } }
@keyframes ap-walk-b { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(6px) translateY(0) rotate(1deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(12px) translateY(0) rotate(0deg) } }
@keyframes ap-path { 0% { transform: scaleX(1.2) translateX(0) } 50% { transform: scaleX(1.25) translateX(2px) } 100% { transform: scaleX(1.2) translateX(0) } }

/* hermitage-and-fountain */
.scn-hermitage-and-fountain {
  background: linear-gradient(180deg, #5a4a6e 0%, #8a6a5e 40%, #b08060 70%, #c09070 100%),
              radial-gradient(ellipse at 70% 50%, #9a7a6e 0%, transparent 60%);
}
.scn-hermitage-and-fountain .hf-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #6a5a7e 0%, #9a7a6e 50%, transparent 100%);
  animation: hf-sky 20s ease-in-out infinite alternate;
}
.scn-hermitage-and-fountain .hf-building {
  position: absolute; bottom: 25%; left: 30%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  transform: scale(0.9);
  animation: hf-building 12s ease-in-out infinite;
}
.scn-hermitage-and-fountain .hf-fountain {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a2a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hf-fountain 6s ease-in-out infinite;
}
.scn-hermitage-and-fountain .hf-water {
  position: absolute; bottom: 30%; left: 52%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #8ab0c0 0%, #5a8a9a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 60% 60%;
  box-shadow: 0 0 10px 4px rgba(138,176,192,0.3);
  animation: hf-water 3s ease-in-out infinite alternate;
}
.scn-hermitage-and-fountain .hf-hermit {
  position: absolute; bottom: 23%; left: 40%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hf-hermit 6s ease-in-out infinite;
}
.scn-hermitage-and-fountain .hf-tree {
  position: absolute; bottom: 26%; right: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hf-tree 9s ease-in-out infinite;
}
.scn-hermitage-and-fountain .hf-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
@keyframes hf-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes hf-building { 0%,100% { transform: scale(0.9) } 50% { transform: scale(0.93) translateY(-2px) } }
@keyframes hf-fountain { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes hf-water { 0% { transform: translateY(0) scaleY(0.8); opacity: 0.7 } 50% { transform: translateY(-4px) scaleY(1.1); opacity: 1 } 100% { transform: translateY(0) scaleY(0.8); opacity: 0.7 } }
@keyframes hf-hermit { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes hf-tree { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } }

/* night-and-sleep */
.scn-night-and-sleep {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 40%, #3a3a6e 70%, #4a4a7e 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a5e 0%, transparent 60%);
}
.scn-night-and-sleep .ns-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a4e 0%, #3a3a6e 50%, transparent 100%);
  animation: ns-sky 25s ease-in-out infinite alternate;
}
.scn-night-and-sleep .ns-moon {
  position: absolute; top: 15%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0e8b0 0%, #d0c090 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(240,232,176,0.4);
  animation: ns-moon 12s ease-in-out infinite alternate;
}
.scn-night-and-sleep .ns-star-a {
  position: absolute; top: 25%; left: 20%; width: 4px; height: 4px;
  background: radial-gradient(circle, #fff 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(255,255,255,0.5);
  animation: ns-star-a 4s ease-in-out infinite alternate;
}
.scn-night-and-sleep .ns-star-b {
  position: absolute; top: 30%; left: 55%; width: 3px; height: 3px;
  background: radial-gradient(circle, #fff 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.4);
  animation: ns-star-b 6s ease-in-out infinite alternate 2s;
}
.scn-night-and-sleep .ns-figure {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.7) rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ns-figure 6s ease-in-out infinite;
}
.scn-night-and-sleep .ns-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
}
@keyframes ns-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ns-moon { 0% { transform: translateY(0) scale(1); opacity: 0.9 } 50% { transform: translateY(-4px) scale(1.05); opacity: 1 } 100% { transform: translateY(0) scale(1); opacity: 0.9 } }
@keyframes ns-star-a { 0% { transform: scale(0.8); opacity: 0.5 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(0.8); opacity: 0.5 } }
@keyframes ns-star-b { 0% { transform: scale(0.7); opacity: 0.4 } 50% { transform: scale(1.3); opacity: 1 } 100% { transform: scale(0.7); opacity: 0.4 } }
@keyframes ns-figure { 0%,100% { transform: scaleX(0.7) rotate(-5deg) translateY(0) } 50% { transform: scaleX(0.72) rotate(-3deg) translateY(-2px) } }

/* Scene: knight-revives-and-strikes (tense, dark) */
.scn-knight-revives-and-strikes {
  background:
    radial-gradient(ellipse at 30% 50%, #1a1a2e 0%, #0a0a14 60%),
    linear-gradient(180deg, #0c0c1a 0%, #15152a 40%, #1a1a30 100%);
}
.scn-knight-revives-and-strikes .kr-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 60px, rgba(255,255,255,0.03) 60px, rgba(255,255,255,0.03) 61px);
  animation: kr-bg 20s linear infinite;
}
.scn-knight-revives-and-strikes .kr-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1c1c2a 0%, #0e0e18 100%);
  border-radius: 40% 30% 0 0;
}
.scn-knight-revives-and-strikes .kr-monster {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 140px;
  background: radial-gradient(ellipse at 50% 40%, #2a1a1a 0%, #121012 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(10deg);
  box-shadow: 0 -10px 30px rgba(100,0,0,0.3);
  animation: kr-monster 6s ease-in-out infinite alternate;
}
.scn-knight-revives-and-strikes .kr-knight {
  position: absolute; bottom: 18%; left: 55%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 15px rgba(100,140,200,0.2);
  animation: kr-knight 4s ease-in-out infinite;
}
.scn-knight-revives-and-strikes .kr-sword {
  position: absolute; bottom: 55%; left: 60%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #a0b0c0 0%, #707880 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: kr-sword 2s ease-in-out infinite alternate;
}
.scn-knight-revives-and-strikes .kr-strike {
  position: absolute; bottom: 40%; left: 38%; width: 120px; height: 8px;
  background: linear-gradient(90deg, transparent, rgba(180,200,255,0.6) 30%, rgba(180,200,255,0.8) 70%, transparent);
  border-radius: 50%;
  filter: blur(4px);
  opacity: 0;
  animation: kr-strike 2s ease-in-out infinite alternate;
}
.scn-knight-revives-and-strikes .kr-spark {
  position: absolute; bottom: 35%; left: 44%; width: 10px; height: 10px;
  background: radial-gradient(circle, #d0e0ff 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(180,200,255,0.5);
  animation: kr-spark 1.5s ease-in-out infinite;
}

@keyframes kr-bg { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes kr-monster {
  0% { transform: rotate(10deg) scaleY(1); }
  50% { transform: rotate(0deg) scaleY(1.05); }
  100% { transform: rotate(10deg) scaleY(1); }
}
@keyframes kr-knight {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-8px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes kr-sword {
  0% { transform: translateX(0) rotate(-30deg); }
  50% { transform: translateX(10px) rotate(-10deg); }
  100% { transform: translateX(0) rotate(-30deg); }
}
@keyframes kr-strike {
  0% { opacity: 0; transform: translateX(-20px); }
  40% { opacity: 0.8; transform: translateX(0); }
  60% { opacity: 1; transform: translateX(10px); }
  100% { opacity: 0; transform: translateX(40px); }
}
@keyframes kr-spark {
  0% { opacity: 0; transform: scale(0.5); }
  30% { opacity: 1; transform: scale(1.5); }
  70% { opacity: 1; transform: scale(1); }
  100% { opacity: 0; transform: scale(0.3); }
}

/* Scene: young-suck-blood-of-dam (dark, cave-like) */
.scn-young-suck-blood-of-dam {
  background:
    radial-gradient(ellipse at 50% 60%, #1a1018 0%, #0a060a 70%),
    linear-gradient(180deg, #0c080c 0%, #1e121e 50%, #10080e 100%);
}
.scn-young-suck-blood-of-dam .ys-backwall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #151015 0%, #1e121e 50%, #151015 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: ys-backwall 30s ease-in-out infinite alternate;
}
.scn-young-suck-blood-of-dam .ys-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1c1a1c 0%, #0e0a0e 100%);
  border-radius: 20% 20% 0 0;
}
.scn-young-suck-blood-of-dam .ys-dam {
  position: absolute; bottom: 20%; left: 30%; width: 160px; height: 100px;
  background: radial-gradient(ellipse at 50% 40%, #2a1a1a 0%, #120a0e 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-5deg);
  animation: ys-dam 12s ease-in-out infinite;
}
.scn-young-suck-blood-of-dam .ys-brood-1 {
  position: absolute; bottom: 28%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2028 0%, #12101a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ys-brood 4s ease-in-out infinite;
}
.scn-young-suck-blood-of-dam .ys-brood-2 {
  position: absolute; bottom: 30%; left: 55%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #2a2028 0%, #12101a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ys-brood 4.5s ease-in-out infinite;
  animation-delay: 1.2s;
}
.scn-young-suck-blood-of-dam .ys-blood {
  position: absolute; bottom: 18%; left: 35%; width: 100px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #5e1a1d 0%, #2a0a0c 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ys-blood 8s ease-in-out infinite alternate;
}
.scn-young-suck-blood-of-dam .ys-wound {
  position: absolute; bottom: 30%; left: 38%; width: 24px; height: 18px;
  background: radial-gradient(circle, #702243 0%, #1a0508 100%);
  border-radius: 40% 60% 50% 50%;
  box-shadow: 0 0 15px 5px rgba(112,34,67,0.5);
  animation: ys-wound 3s ease-in-out infinite;
}

@keyframes ys-backwall { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes ys-dam {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-4px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ys-brood {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(4px) scaleY(1.08); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes ys-blood {
  0% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(1.2); opacity: 1; }
  100% { transform: scaleX(1); opacity: 0.7; }
}
@keyframes ys-wound {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(5deg); }
  100% { transform: scale(1) rotate(0deg); }
}

/* Scene: knights-victory (calm, dawn) */
.scn-knights-victory {
  background:
    radial-gradient(ellipse at 50% 0%, #f5d6a0 0%, #c8a070 30%, #806048 60%, #2a2a38 100%),
    linear-gradient(180deg, #7a7a8c 0%, #3a3a4a 50%, #1a1a2a 100%);
}
.scn-knights-victory .kv-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5e6cc 0%, #b89a7a 50%, #5a4a3a 100%);
  animation: kv-sky 30s ease-in-out infinite alternate;
}
.scn-knights-victory .kv-sun {
  position: absolute; bottom: 50%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffe6b0 0%, #f0c070 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 50%);
  box-shadow: 0 0 60px 20px rgba(240,192,112,0.4);
  animation: kv-sun 20s ease-in-out infinite;
}
.scn-knights-victory .kv-hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 30% 50% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.3);
  animation: kv-hills 25s ease-in-out infinite alternate;
}
.scn-knights-victory .kv-glow {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%);
  animation: kv-glow 12s ease-in-out infinite alternate;
}
.scn-knights-victory .kv-knight {
  position: absolute; bottom: 22%; left: 45%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #5a5a6a 0%, #2a2a3a 100%);
  border-radius: 15% 15% 5% 5% / 35% 35% 15% 15%;
  box-shadow: 0 0 20px rgba(200,180,160,0.3);
  animation: kv-knight 6s ease-in-out infinite;
}
.scn-knights-victory .kv-sword {
  position: absolute; bottom: 50%; left: 48%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #c0b8a8 0%, #8a8070 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: kv-sword 8s ease-in-out infinite;
}

@keyframes kv-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes kv-sun {
  0% { transform: translate(-50%, 50%) scale(1); }
  50% { transform: translate(-50%, 48%) scale(1.05); }
  100% { transform: translate(-50%, 50%) scale(1); }
}
@keyframes kv-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes kv-glow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes kv-knight {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes kv-sword {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(-20deg); }
}

/* Scene: una-praises-knight (warm, dawn) */
.scn-una-praises-knight {
  background:
    radial-gradient(ellipse at 50% 0%, #ffdbac 0%, #e8b88a 30%, #a07050 60%, #3a2a2a 100%),
    linear-gradient(180deg, #f0d8b0 0%, #c4a078 40%, #604a3a 100%);
}
.scn-una-praises-knight .up-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #fbe8c0 0%, #d4b88a 50%, #80685a 100%);
  animation: up-sky 25s ease-in-out infinite alternate;
}
.scn-una-praises-knight .up-sunrise {
  position: absolute; bottom: 45%; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle, #ffdca0 0%, #f0b870 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(240,184,112,0.5);
  animation: up-sunrise 15s ease-in-out infinite;
}
.scn-una-praises-knight .up-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a5a3a 0%, #3a4a2a 100%);
  border-radius: 30% 20% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-una-praises-knight .up-knight {
  position: absolute; bottom: 25%; left: 50%; width: 55px; height: 95px;
  background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%);
  border-radius: 15% 15% 5% 5% / 35% 35% 15% 15%;
  transform: translateX(-50%);
  box-shadow: 0 0 15px rgba(200,180,150,0.4);
  animation: up-knight 8s ease-in-out infinite;
}
.scn-una-praises-knight .up-una {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #d4b8a0 0%, #a08068 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 12px rgba(200,180,150,0.3);
  animation: up-una 6s ease-in-out infinite;
}
.scn-una-praises-knight .up-garland {
  position: absolute; bottom: 55%; left: 35%; width: 30px; height: 8px;
  background: radial-gradient(circle at 50% 50%, #b09070 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: up-garland 5s ease-in-out infinite alternate;
}
.scn-una-praises-knight .up-rays {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,240,200,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: up-rays 12s ease-in-out infinite alternate;
}

@keyframes up-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes up-sunrise {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); opacity: 0.85; }
}
@keyframes up-knight {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes up-una {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-5px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes up-garland {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(1.2) rotate(5deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes up-rays {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

.scn-canto-x-questions-2 {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, #f5e6c8 0%, #e6d5b8 50%, #d4c4a8 100%);
  box-shadow: inset 0 0 80px rgba(180,120,60,0.3);
}
.scn-canto-x-questions-2 .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0d0b0 100%);
  border-bottom: 2px solid #c0a880;
}
.scn-canto-x-questions-2 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b09070 0%, #8a704a 100%);
  border-radius: 0 0 8px 8px;
}
.scn-canto-x-questions-2 .window {
  position: absolute; top: 15%; left: 15%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #ffe0a0 0%, #d0b080 100%);
  border: 6px solid #a08060;
  border-radius: 8px;
  box-shadow: inset 0 0 40px rgba(255,200,100,0.4);
  animation: cxq2-windowglow 6s ease-in-out infinite alternate;
}
.scn-canto-x-questions-2 .desk {
  position: absolute; bottom: 28%; left: 45%; width: 30%; height: 6%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-canto-x-questions-2 .book {
  position: absolute; bottom: 32%; left: 48%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: cxq2-book 8s ease-in-out infinite;
}
.scn-canto-x-questions-2 .figure-faith {
  position: absolute; bottom: 25%; left: 30%; width: 10%; height: 25%;
  background: radial-gradient(ellipse at 50% 40%, #d0b0a0 0%, #b09080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: cxq2-faith 4s ease-in-out infinite alternate;
}
.scn-canto-x-questions-2 .figure-knight {
  position: absolute; bottom: 25%; left: 55%; width: 10%; height: 24%;
  background: radial-gradient(ellipse at 50% 40%, #c0b0a0 0%, #a09080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: cxq2-knight 4s ease-in-out infinite alternate;
}
.scn-canto-x-questions-2 .light-ray {
  position: absolute; top: 10%; left: 20%; width: 20%; height: 40%;
  background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: cxq2-ray 7s ease-in-out infinite alternate;
}
@keyframes cxq2-windowglow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cxq2-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes cxq2-faith { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cxq2-knight { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes cxq2-ray { 0% { opacity:0.3; transform: scaleY(0.9); } 50% { opacity:0.6; transform: scaleY(1.1); } 100% { opacity:0.4; transform: scaleY(1); } }

.scn-canto-x-questions-3 {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, #f0e0c0 0%, #e0d0b0 50%, #d0c0a0 100%);
  box-shadow: inset 0 0 60px rgba(200,160,100,0.4);
}
.scn-canto-x-questions-3 .room-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #f5e8d0 0%, #e8d8c0 100%);
  border-bottom: 2px solid #c0a880;
}
.scn-canto-x-questions-3 .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 0 0 8px 8px;
}
.scn-canto-x-questions-3 .window-frame {
  position: absolute; top: 20%; right: 10%; width: 35%; height: 50%;
  border: 8px solid #8a6a4a;
  border-radius: 8px;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-canto-x-questions-3 .hill {
  position: absolute; top: 25%; right: 15%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #6a8a6a 0%, #4a6a4a 100%);
  border-radius: 60% 60% 0 0;
  clip-path: ellipse(80% 100% at 50% 100%);
  animation: cxq3-hill 15s ease-in-out infinite alternate;
}
.scn-canto-x-questions-3 .knight-figure {
  position: absolute; bottom: 20%; right: 25%; width: 10%; height: 22%;
  background: radial-gradient(ellipse at 50% 40%, #b0a090 0%, #908070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: cxq3-knight 5s ease-in-out infinite alternate;
}
.scn-canto-x-questions-3 .chair {
  position: absolute; bottom: 22%; right: 20%; width: 14%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-canto-x-questions-3 .candle {
  position: absolute; bottom: 30%; left: 20%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: cxq3-candle 3s ease-in-out infinite alternate;
}
.scn-canto-x-questions-3 .candle-glow {
  position: absolute; bottom: 36%; left: 18%; width: 8%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #ffb040 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cxq3-glow 3s ease-in-out infinite alternate;
}
@keyframes cxq3-hill { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.7; } }
@keyframes cxq3-knight { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes cxq3-candle { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes cxq3-glow { 0% { opacity:0.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(1); } }

.scn-redcross-dragon-fight-day1 {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0c4de 50%, #f0e68c 100%),
    radial-gradient(ellipse at 50% 80%, #f0e68c 0%, transparent 60%);
  box-shadow: inset 0 0 40px rgba(255,200,100,0.3);
}
.scn-redcross-dragon-fight-day1 .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6fa8dc 0%, #b0c4de 100%);
  animation: rdd1-sky 10s ease-in-out infinite alternate;
}
.scn-redcross-dragon-fight-day1 .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a9a6a 0%, #5a7a4a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-redcross-dragon-fight-day1 .dragon-body {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 35%;
  background: linear-gradient(135deg, #4a6a4a 0%, #2a4a2a 50%, #1a2a1a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: rdd1-dragon 3s ease-in-out infinite;
}
.scn-redcross-dragon-fight-day1 .dragon-claw {
  position: absolute; top: 25%; left: 30%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: rdd1-claw 2s ease-in-out infinite alternate;
}
.scn-redcross-dragon-fight-day1 .dragon-claw2 {
  position: absolute; top: 30%; left: 60%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: rdd1-claw2 2.5s ease-in-out infinite alternate;
}
.scn-redcross-dragon-fight-day1 .knight {
  position: absolute; bottom: 35%; left: 45%; width: 8%; height: 18%;
  background: radial-gradient(ellipse at 50% 40%, #c0c0c0 0%, #808080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(255,255,255,0.5);
  animation: rdd1-knight 0.8s ease-in-out infinite;
}
.scn-redcross-dragon-fight-day1 .sword-flash {
  position: absolute; bottom: 38%; left: 48%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #ffffff 0%, #ffff99 100%);
  clip-path: polygon(40% 0, 60% 0, 50% 100%, 50% 100%);
  filter: blur(2px);
  opacity: 0.8;
  animation: rdd1-flash 0.4s ease-in-out infinite;
}
.scn-redcross-dragon-fight-day1 .dust {
  position: absolute; bottom: 32%; left: 30%; width: 10%; height: 6%;
  background: radial-gradient(ellipse, rgba(200,180,120,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: rdd1-dust 4s linear infinite;
}
.scn-redcross-dragon-fight-day1 .dust2 {
  position: absolute; bottom: 30%; left: 60%; width: 8%; height: 5%;
  background: radial-gradient(ellipse, rgba(200,180,120,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: rdd1-dust2 5s linear infinite reverse;
}
@keyframes rdd1-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes rdd1-dragon { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-10px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rdd1-claw { 0% { transform: rotate(0deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes rdd1-claw2 { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes rdd1-knight { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes rdd1-flash { 0% { opacity:0; } 50% { opacity:1; } 100% { opacity:0; } }
@keyframes rdd1-dust { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(20px) scale(1.5); } 100% { transform: translateX(0) scale(1); } }
@keyframes rdd1-dust2 { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-15px) scale(1.3); } 100% { transform: translateX(0) scale(1); } }

.scn-canto-x-allegory {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, #e0d0b0 0%, #c8b898 50%, #b0a080 100%),
    radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, transparent 70%);
  box-shadow: inset 0 0 80px rgba(150,100,60,0.5);
}
.scn-canto-x-allegory .chapel-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d8c8a8 0%, #c8b898 100%);
  border-bottom: 3px solid #a08060;
}
.scn-canto-x-allegory .chapel-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 0 0 8px 8px;
}
.scn-canto-x-allegory .altar {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 20%; height: 15%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: cxa-altar 9s ease-in-out infinite;
}
.scn-canto-x-allegory .shield {
  position: absolute; bottom: 30%; left: 35%; width: 12%; height: 18%;
  background: radial-gradient(ellipse at 50% 50%, #c0a060 0%, #a08040 100%);
  border-radius: 50%;
  border: 3px solid #8a6a2a;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cxa-shield 6s ease-in-out infinite alternate;
}
.scn-canto-x-allegory .helmet {
  position: absolute; bottom: 32%; left: 52%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #b0a080 0%, #908060 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cxa-helmet 5s ease-in-out infinite alternate;
}
.scn-canto-x-allegory .sword {
  position: absolute; bottom: 28%; left: 60%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%);
  clip-path: polygon(40% 0, 60% 0, 55% 100%, 45% 100%);
  transform-origin: bottom center;
  animation: cxa-sword 4s ease-in-out infinite alternate;
}
.scn-canto-x-allegory .knight-praying {
  position: absolute; bottom: 18%; left: 44%; width: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 40%, #b0a090 0%, #908070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: cxa-knight 7s ease-in-out infinite alternate;
}
.scn-canto-x-allegory .light-beam {
  position: absolute; top: 0; left: 38%; width: 24%; height: 60%;
  background: linear-gradient(180deg, rgba(255,220,160,0.3) 0%, transparent 100%);
  clip-path: polygon(10% 0, 90% 0, 70% 100%, 30% 100%);
  animation: cxa-beam 8s ease-in-out infinite alternate;
}
@keyframes cxa-altar { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes cxa-shield { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(1); } }
@keyframes cxa-helmet { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cxa-sword { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes cxa-knight { 0% { transform: scale(0.9) translateY(0); } 50% { transform: scale(0.95) translateY(-2px); } 100% { transform: scale(0.9) translateY(0); } }
@keyframes cxa-beam { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* ripe-for-new-epoch – warm sunlit landscape */
.scn-ripe-for-new-epoch {
  background:
    linear-gradient(180deg, #8fcbff 0%, #b4d8f0 30%, #f5d79e 70%, #e8b870 100%),
    radial-gradient(ellipse at 50% 0%, #fff5d6 0%, transparent 60%);
}
.scn-ripe-for-new-epoch .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #8fcbff 0%, #b4d8f0 100%);
  animation: rne-sky 12s ease-in-out infinite alternate;
}
.scn-ripe-for-new-epoch .sun {
  position:absolute; top:8%; left:50%; width:60px; height:60px;
  transform:translateX(-50%);
  background: radial-gradient(circle, #fff8e0 0%, #ffdd88 50%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px rgba(255,220,120,0.5), 0 0 100px 40px rgba(255,200,80,0.2);
  animation: rne-sun 6s ease-in-out infinite alternate;
}
.scn-ripe-for-new-epoch .hills {
  position:absolute; bottom:30%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #8a9a5a 0%, #5a7a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: rne-hills 18s ease-in-out infinite alternate;
}
.scn-ripe-for-new-epoch .tree {
  position:absolute; bottom:32%; left:40%; width:30px; height:80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: rne-tree 5s ease-in-out infinite;
}
.scn-ripe-for-new-epoch .tree::after {
  content:''; position:absolute; top:-40px; left:-20px; width:70px; height:60px;
  background: radial-gradient(circle, #5a8a3a 0%, #2a5a1a 70%);
  border-radius:50% 30% 50% 30%;
  filter: blur(2px);
}
.scn-ripe-for-new-epoch .figure {
  position:absolute; bottom:28%; left:55%; width:16px; height:32px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rne-walk 4s ease-in-out infinite;
}
.scn-ripe-for-new-epoch .grass {
  position:absolute; bottom:25%; left:0; right:0; height:8%;
  background: repeating-linear-gradient(90deg, #6a8a3a 0px, #6a8a3a 8px, #5a7a2a 8px, #5a7a2a 16px);
  animation: rne-grass 2s ease-in-out infinite alternate;
}
.scn-ripe-for-new-epoch .cloud-a {
  position:absolute; top:14%; left:18%; width:80px; height:18px;
  background: rgba(255,255,255,0.6);
  border-radius:50%;
  filter: blur(8px);
  animation: rne-drift-a 35s linear infinite;
}
.scn-ripe-for-new-epoch .cloud-b {
  position:absolute; top:22%; right:12%; width:60px; height:14px;
  background: rgba(255,255,255,0.4);
  border-radius:50%;
  filter: blur(6px);
  animation: rne-drift-b 50s linear infinite reverse;
}
@keyframes rne-sky     { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rne-sun     { 0% { transform:translateX(-50%) scale(0.95); box-shadow:0 0 40px 10px rgba(255,220,120,0.4) } 50% { transform:translateX(-50%) scale(1.05); box-shadow:0 0 80px 30px rgba(255,220,120,0.6) } 100% { transform:translateX(-50%) scale(0.98); box-shadow:0 0 50px 15px rgba(255,220,120,0.5) } }
@keyframes rne-hills   { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(0) } }
@keyframes rne-tree    { 0% { transform:rotate(-1deg) translateY(0) } 50% { transform:rotate(1deg) translateY(-2px) } 100% { transform:rotate(0) translateY(0) } }
@keyframes rne-walk    { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(5px) translateY(-2px) rotate(2deg) } 50% { transform:translateX(10px) translateY(0) rotate(-1deg) } 75% { transform:translateX(15px) translateY(-2px) rotate(1deg) } 100% { transform:translateX(20px) translateY(0) rotate(0) } }
@keyframes rne-grass   { 0% { transform:scaleY(1) } 100% { transform:scaleY(1.05) } }
@keyframes rne-drift-a { 0% { transform:translateX(-40px) } 100% { transform:translateX(120vw) } }
@keyframes rne-drift-b { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }

/* intellectual-awakening – calm bright interior study */
.scn-intellectual-awakening {
  background:
    linear-gradient(180deg, #f5ecd6 0%, #e8dcc8 40%, #c4b49a 100%),
    radial-gradient(ellipse at 80% 20%, #fff8e0 0%, transparent 60%);
}
.scn-intellectual-awakening .wall-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 100%);
}
.scn-intellectual-awakening .window-light {
  position:absolute; top:10%; right:10%; width:30%; height:50%;
  background: linear-gradient(180deg, #fff5e0 0%, #e8dcc8 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(255,240,200,0.6);
  animation: ia-window 8s ease-in-out infinite alternate;
}
.scn-intellectual-awakening .desk {
  position:absolute; bottom:10%; left:30%; right:30%; height:20%;
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  border-radius: 2% 2% 0 0;
}
.scn-intellectual-awakening .book-open {
  position:absolute; bottom:20%; left:35%; width:20%; height:12%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 100%);
  border-radius: 2%;
  transform: rotate(-2deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: ia-book 6s ease-in-out infinite;
}
.scn-intellectual-awakening .lamp {
  position:absolute; bottom:32%; left:25%; width:8%; height:10%;
  background: linear-gradient(180deg, #b08a6a 0%, #8a6a4a 100%);
  border-radius: 30% 30% 10% 10%;
}
.scn-intellectual-awakening .lamp::after {
  content:''; position:absolute; top:-20%; left:20%; width:60%; height:30%;
  background: radial-gradient(circle, #ffe080 0%, transparent 60%);
  animation: ia-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-intellectual-awakening .chair {
  position:absolute; bottom:10%; left:15%; width:15%; height:30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 4% 4%;
}
.scn-intellectual-awakening .bookshelf {
  position:absolute; bottom:15%; right:5%; width:20%; height:60%;
  background: repeating-linear-gradient(0deg, #6a4a2a 0px, #6a4a2a 6px, #5a3a1a 6px, #5a3a1a 12px);
  border-radius: 2%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
}
.scn-intellectual-awakening .candle {
  position:absolute; bottom:20%; left:32%; width:2%; height:8%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: ia-candle 4s ease-in-out infinite;
}
.scn-intellectual-awakening .candle::after {
  content:''; position:absolute; top:-20%; left:50%; transform:translateX(-50%);
  width:4px; height:6px;
  background: radial-gradient(circle, #ffcc60 0%, #ff8800 70%);
  border-radius:50%;
  box-shadow: 0 0 10px 4px #ff8800;
}
@keyframes ia-window     { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ia-book       { 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(1deg) translateY(-1px) } 100% { transform:rotate(-3deg) translateY(0) } }
@keyframes ia-lamp-glow  { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes ia-candle     { 0% { transform:rotate(-1deg) } 50% { transform:rotate(1deg) } 100% { transform:rotate(0) } }

/* classical-revival-phase – interior with columns and arch */
.scn-classical-revival-phase {
  background:
    linear-gradient(180deg, #e8d4b8 0%, #d4c0a0 40%, #b8a080 100%),
    radial-gradient(ellipse at 50% 80%, #f5ecd6 0%, transparent 80%);
}
.scn-classical-revival-phase .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: repeating-linear-gradient(90deg, #a08060 0px, #a08060 20px, #8a7050 20px, #8a7050 40px);
}
.scn-classical-revival-phase .column-left {
  position:absolute; bottom:20%; left:15%; width:6%; height:70%;
  background: linear-gradient(90deg, #c4b49a 0%, #e8dcc8 30%, #c4b49a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-classical-revival-phase .column-right {
  position:absolute; bottom:20%; right:15%; width:6%; height:70%;
  background: linear-gradient(90deg, #c4b49a 0%, #e8dcc8 30%, #c4b49a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
}
.scn-classical-revival-phase .arch {
  position:absolute; top:5%; left:12%; right:12%; height:20%;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-classical-revival-phase .statue {
  position:absolute; bottom:20%; left:45%; width:10%; height:50%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: crp-statue 8s ease-in-out infinite alternate;
}
.scn-classical-revival-phase .scroll {
  position:absolute; bottom:22%; left:38%; width:14%; height:6%;
  background: linear-gradient(180deg, #f0e4cc 0%, #d4c0a0 100%);
  border-radius: 2% 2% 10% 10%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: crp-scroll 10s ease-in-out infinite;
}
.scn-classical-revival-phase .lightbeam {
  position:absolute; top:0; left:30%; width:40%; height:100%;
  background: linear-gradient(180deg, rgba(255,248,224,0.4) 0%, transparent 70%);
  clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%);
  animation: crp-light 6s ease-in-out infinite alternate;
}
@keyframes crp-statue { 0% { transform:scale(1) rotate(-1deg) } 50% { transform:scale(1.02) rotate(1deg) } 100% { transform:scale(0.98) rotate(0) } }
@keyframes crp-scroll { 0% { transform:rotate(-5deg) translateX(0) } 50% { transform:rotate(-3deg) translateX(2px) } 100% { transform:rotate(-6deg) translateX(-1px) } }
@keyframes crp-light  { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

/* greek-and-latin-scholarship – library with bust and manuscripts */
.scn-greek-and-latin-scholarship {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #c0ac8c 40%, #a08868 100%),
    radial-gradient(ellipse at 70% 30%, #f0e4cc 0%, transparent 60%);
}
.scn-greek-and-latin-scholarship .wall-deep {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #c0ac8c 0%, #a08868 100%);
}
.scn-greek-and-latin-scholarship .shelf-left {
  position:absolute; bottom:20%; left:8%; width:15%; height:50%;
  background: repeating-linear-gradient(0deg, #6a4a2a 0px, #6a4a2a 6px, #5a3a1a 6px, #5a3a1a 12px);
  border-radius: 2%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.4);
}
.scn-greek-and-latin-scholarship .shelf-right {
  position:absolute; bottom:20%; right:8%; width:15%; height:50%;
  background: repeating-linear-gradient(0deg, #6a4a2a 0px, #6a4a2a 6px, #5a3a1a 6px, #5a3a1a 12px);
  border-radius: 2%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.4);
}
.scn-greek-and-latin-scholarship .bust {
  position:absolute; bottom:35%; left:40%; width:10%; height:25%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  animation: gls-bust 10s ease-in-out infinite alternate;
}
.scn-greek-and-latin-scholarship .manuscript-pile {
  position:absolute; bottom:20%; left:32%; width:18%; height:12%;
  background: linear-gradient(180deg, #f0e4cc 0%, #d4c0a0 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gls-pile 8s ease-in-out infinite;
}
.scn-greek-and-latin-scholarship .candle {
  position:absolute; bottom:30%; left:30%; width:2%; height:10%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: gls-candle 4s ease-in-out infinite;
}
.scn-greek-and-latin-scholarship .candle::after {
  content:''; position:absolute; top:-15%; left:50%; transform:translateX(-50%);
  width:4px; height:8px;
  background: radial-gradient(circle, #ffcc60 0%, #ff8800 70%);
  border-radius:50%;
  box-shadow: 0 0 12px 6px #ff8800;
}
.scn-greek-and-latin-scholarship .window-light {
  position:absolute; top:10%; left:20%; width:20%; height:40%;
  background: linear-gradient(180deg, #fff5e0 0%, #f0e4cc 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(255,240,200,0.4);
  animation: gls-winlight 8s ease-in-out infinite alternate;
}
.scn-greek-and-latin-scholarship .dust {
  position:absolute; top:20%; left:30%; width:40%; height:40%;
  background: radial-gradient(circle, rgba(255,240,200,0.1) 0%, transparent 70%);
  animation: gls-dust 12s linear infinite;
}
@keyframes gls-bust      { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(0) } }
@keyframes gls-pile      { 0% { transform:scale(1) translateY(0) } 50% { transform:scale(1.02) translateY(-1px) } 100% { transform:scale(0.98) translateY(0) } }
@keyframes gls-candle    { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(0) } }
@keyframes gls-winlight  { 0% { opacity:0.5 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes gls-dust      { 0% { transform:translate(0,0) scale(1) } 25% { transform:translate(10px,-5px) scale(1.2) } 50% { transform:translate(-5px,10px) scale(0.8) } 75% { transform:translate(8px,5px) scale(1.1) } 100% { transform:translate(0,0) scale(1) } }

/* direct-followers-of-spenser – warm bright interior */
.scn-direct-followers-of-spenser {
  background: 
    linear-gradient(180deg, #c89a6e 0%, #9e7247 40%, #704e2e 100%),
    radial-gradient(ellipse at 50% 40%, #e8c690 0%, transparent 60%);
}
.scn-direct-followers-of-spenser .room-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0865a 0%, #7a553a 100%);
  animation: sp-room 12s ease-in-out infinite alternate;
}
.scn-direct-followers-of-spenser .window {
  position: absolute; top: 5%; left: 50%; width: 30%; height: 40%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 70%, #ffecc0 0%, #e8c690 70%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 30px 10px rgba(255,236,192,0.5);
  animation: sp-window-glow 6s ease-in-out infinite alternate;
}
.scn-direct-followers-of-spenser .desk-ledge {
  position: absolute; bottom: 22%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #5c3f28 0%, #3a281a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
}
.scn-direct-followers-of-spenser .book-stack {
  position: absolute; bottom: 34%; left: 25%; width: 18%; height: 8%;
  background: linear-gradient(90deg, #6b4226 0%, #8b5a3a 50%, #6b4226 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sp-book-breathe 8s ease-in-out infinite;
}
.scn-direct-followers-of-spenser .figure-scribe {
  position: absolute; bottom: 22%; left: 38%; width: 10%; height: 24%;
  background: linear-gradient(180deg, #3a281a 0%, #1f1208 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sp-scribe 4s ease-in-out infinite;
}
.scn-direct-followers-of-spenser .lamp-light {
  position: absolute; bottom: 38%; left: 48%; width: 8%; height: 10%;
  background: radial-gradient(circle, #fcd694 0%, #e8b060 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(232,176,96,0.6);
  animation: sp-lamp 3s ease-in-out infinite alternate;
}
.scn-direct-followers-of-spenser .curtain {
  position: absolute; top: 0; bottom: 30%; width: 12%;
  background: linear-gradient(180deg, #8a5a3a 0%, #5c3f28 100%);
  border-radius: 0 10% 10% 0 / 0 20% 20% 0;
  animation: sp-curtain 10s ease-in-out infinite alternate;
}
.scn-direct-followers-of-spenser .left-curtain { left: 0%; transform-origin: left center; }
.scn-direct-followers-of-spenser .right-curtain { right: 0%; transform-origin: right center; }
@keyframes sp-room { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes sp-window-glow { 0% { opacity: 0.7; box-shadow: inset 0 0 20px 8px rgba(255,236,192,0.4); } 50% { opacity: 1; box-shadow: inset 0 0 40px 15px rgba(255,236,192,0.7); } 100% { opacity: 0.8; box-shadow: inset 0 0 25px 10px rgba(255,236,192,0.5); } }
@keyframes sp-book-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes sp-scribe { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sp-lamp { 0% { transform: scale(0.95); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.9; } }
@keyframes sp-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }

/* spensers-stanza-influence – warm bright interior */
.scn-spensers-stanza-influence {
  background: 
    linear-gradient(180deg, #b8895a 0%, #8c6a42 50%, #5c3f28 100%),
    radial-gradient(ellipse at 50% 30%, #e8c690 0%, transparent 70%);
}
.scn-spensers-stanza-influence .table-top {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #6b4a2e 0%, #3a281a 100%);
  border-radius: 3% 3% 0 0;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
}
.scn-spensers-stanza-influence .open-book {
  position: absolute; bottom: 30%; left: 30%; width: 35%; height: 25%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4c0a0 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateX(5deg);
  animation: st-book 6s ease-in-out infinite alternate;
}
.scn-spensers-stanza-influence .quill {
  position: absolute; bottom: 42%; left: 48%; width: 3%; height: 18%;
  background: linear-gradient(180deg, #f0e8d0 0%, #b09878 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: st-quill 3s ease-in-out infinite;
}
.scn-spensers-stanza-influence .inkwell {
  position: absolute; bottom: 38%; left: 52%; width: 5%; height: 6%;
  background: radial-gradient(circle, #2a1a10 0%, #0e0800 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-spensers-stanza-influence .candle {
  position: absolute; bottom: 40%; left: 18%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b080 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(240,216,176,0.5);
  animation: st-candle-glow 4s ease-in-out infinite alternate;
}
.scn-spensers-stanza-influence .hand-writing {
  position: absolute; bottom: 30%; left: 36%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #3a281a 0%, #1f1208 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom left;
  animation: st-hand 2s ease-in-out infinite;
}
.scn-spensers-stanza-influence .wax-drip {
  position: absolute; bottom: 36%; left: 18%; width: 2%; height: 4%;
  background: linear-gradient(180deg, #e8c090 0%, #b88050 100%);
  border-radius: 50%;
  animation: st-wax 8s ease-in-out infinite;
}
@keyframes st-book { 0% { transform: perspective(400px) rotateX(3deg); } 50% { transform: perspective(400px) rotateX(7deg); } 100% { transform: perspective(400px) rotateX(4deg); } }
@keyframes st-quill { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-3px) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(0deg); } 75% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes st-candle-glow { 0% { opacity: 0.7; box-shadow: 0 0 15px 6px rgba(240,216,176,0.4); } 50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(240,216,176,0.7); } 100% { opacity: 0.8; box-shadow: 0 0 20px 8px rgba(240,216,176,0.5); } }
@keyframes st-hand { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes st-wax { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.3); } 100% { transform: scaleY(1); } }

/* romantic-epic-definition – calm bright interior */
.scn-romantic-epic-definition {
  background: 
    linear-gradient(180deg, #a8c0d0 0%, #7ea0b8 40%, #4c6a80 100%),
    radial-gradient(ellipse at 50% 60%, #c8dce8 0%, transparent 70%);
}
.scn-romantic-epic-definition .pastoral-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8d0e0 0%, #9ab8d0 50%, #7ea0b8 100%);
  animation: re-sky 15s ease-in-out infinite alternate;
}
.scn-romantic-epic-definition .green-hill {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a8050 0%, #3a6030 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: re-hill 20s ease-in-out infinite alternate;
}
.scn-romantic-epic-definition .castle-tower {
  position: absolute; bottom: 25%; left: 25%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: re-tower 10s ease-in-out infinite;
}
.scn-romantic-epic-definition .knight-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #101018 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: re-knight 5s ease-in-out infinite;
}
.scn-romantic-epic-definition .banner {
  position: absolute; bottom: 40%; left: 28%; width: 6%; height: 15%;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 100%);
  border-radius: 0 0 20% 20%;
  animation: re-banner 4s ease-in-out infinite alternate;
}
.scn-romantic-epic-definition .cloud-slow-a {
  position: absolute; top: 10%; left: 15%; width: 20%; height: 8%;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: re-cloud-a 40s linear infinite;
}
.scn-romantic-epic-definition .cloud-slow-b {
  position: absolute; top: 20%; right: 10%; width: 15%; height: 6%;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: re-cloud-b 60s linear infinite reverse;
}
@keyframes re-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes re-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes re-tower { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes re-knight { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(3px) rotate(0deg); } 60% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes re-banner { 0% { transform: scaleX(1) rotate(-2deg); } 50% { transform: scaleX(1.1) rotate(0deg); } 100% { transform: scaleX(1) rotate(2deg); } }
@keyframes re-cloud-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes re-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* language-and-machinery – calm dim interior */
.scn-language-and-machinery {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 50%, #1a1028 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a4e 0%, transparent 80%);
}
.scn-language-and-machinery .chamber-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #2a1a3e 0%, #1a1028 100%);
  animation: la-wall 12s ease-in-out infinite alternate;
}
.scn-language-and-machinery .magic-mirror {
  position: absolute; top: 10%; left: 50%; width: 18%; height: 28%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #6a8ab0 0%, #3a5a80 60%);
  border-radius: 50% 50% 4% 4% / 60% 60% 8% 8%;
  box-shadow: 0 0 40px 15px rgba(106,138,176,0.4);
  animation: la-mirror 8s ease-in-out infinite alternate;
}
.scn-language-and-machinery .floating-sword {
  position: absolute; top: 25%; left: 55%; width: 4%; height: 25%;
  background: linear-gradient(180deg, #c0c8d0 0%, #9098a0 100%);
  border-radius: 20% 20% 2% 2%;
  box-shadow: 0 0 12px 4px rgba(200,210,220,0.5);
  transform-origin: bottom center;
  animation: la-sword 5s ease-in-out infinite;
}
.scn-language-and-machinery .ring-on-pedestal {
  position: absolute; bottom: 22%; left: 30%; width: 6%; height: 3%;
  background: radial-gradient(circle, #d0b060 0%, #a08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(208,176,96,0.5);
  animation: la-ring 4s ease-in-out infinite alternate;
}
.scn-language-and-machinery .speaking-myrtle {
  position: absolute; bottom: 28%; left: 65%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  animation: la-myrtle 7s ease-in-out infinite;
}
.scn-language-and-machinery .glow-orb {
  position: absolute; top: 5%; right: 15%; width: 6%; height: 6%;
  background: radial-gradient(circle, #80b0e0 0%, #4a7aaa 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(128,176,224,0.4);
  animation: la-orb 6s ease-in-out infinite alternate;
}
.scn-language-and-machinery .fountain-base {
  position: absolute; bottom: 12%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-language-and-machinery .water-spray {
  position: absolute; bottom: 18%; left: 45%; width: 10%; height: 15%;
  background: linear-gradient(180deg, rgba(180,220,255,0.6) 0%, rgba(180,220,255,0) 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  filter: blur(4px);
  animation: la-spray 3s ease-in-out infinite alternate;
}
@keyframes la-wall { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes la-mirror { 0% { box-shadow: 0 0 30px 10px rgba(106,138,176,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 60px 20px rgba(106,138,176,0.7); opacity: 1; } 100% { box-shadow: 0 0 40px 15px rgba(106,138,176,0.4); opacity: 0.9; } }
@keyframes la-sword { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-8px) rotate(0deg); } 50% { transform: translateY(-4px) rotate(5deg); } 75% { transform: translateY(-8px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes la-ring { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1.05); opacity: 0.9; } }
@keyframes la-myrtle { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes la-orb { 0% { transform: scale(0.9); opacity: 0.5; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes la-spray { 0% { transform: scaleY(0.8); opacity: 0.4; } 50% { transform: scaleY(1.2); opacity: 0.8; } 100% { transform: scaleY(0.9); opacity: 0.5; } }

.scn-raleigh-visits-kilcolman {
  background:
    linear-gradient(180deg, #fbe9d7 0%, #e6c9a0 40%, #bf8f5f 100%),
    radial-gradient(ellipse at 50% 0%, #ffe6b0 0%, transparent 60%);
}

.scn-raleigh-visits-kilcolman .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #f0d6a0 100%);
  animation: rk-sky 12s ease-in-out infinite alternate;
}

.scn-raleigh-visits-kilcolman .river {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a9ea0 0%, #3a7060 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  animation: rk-river 8s ease-in-out infinite alternate;
}

.scn-raleigh-visits-kilcolman .tree-left {
  position: absolute; bottom: 35%; left: 5%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at 60% 40%, #5a7a3a 0%, #3a5a2a 60%, #1a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  animation: rk-tree 14s ease-in-out infinite alternate;
}

.scn-raleigh-visits-kilcolman .tree-right {
  position: absolute; bottom: 38%; right: 8%; width: 100px; height: 140px;
  background: radial-gradient(ellipse at 40% 30%, #6a8a4a 0%, #4a6a2a 60%, #2a4a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: rk-tree 18s ease-in-out infinite alternate-reverse;
}

.scn-raleigh-visits-kilcolman .figure-poet {
  position: absolute; bottom: 30%; left: 38%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rk-figure 6s ease-in-out infinite;
}

.scn-raleigh-visits-kilcolman .figure-visitor {
  position: absolute; bottom: 30%; left: 52%; width: 32px; height: 52px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rk-figure 6s ease-in-out infinite 1s;
}

.scn-raleigh-visits-kilcolman .book {
  position: absolute; bottom: 32%; left: 46%; width: 24px; height: 16px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a30 100%);
  border-radius: 4px;
  transform: rotate(15deg) translateX(-50%);
  animation: rk-book 10s ease-in-out infinite alternate;
}

.scn-raleigh-visits-kilcolman .sun-rays {
  position: absolute; top: 5%; left: 30%; width: 200px; height: 120px;
  background: radial-gradient(ellipse at 30% 50%, rgba(255,200,100,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: rk-sun 20s ease-in-out infinite alternate;
}

.scn-raleigh-visits-kilcolman .grass {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #6a9a4a 0%, #4a7a2a 100%);
  border-radius: 80% 70% 0 0 / 40% 50% 0 0;
  animation: rk-grass 5s ease-in-out infinite alternate;
}

@keyframes rk-sky {
  0% { opacity: 0.85; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.9; filter: brightness(0.95); }
}
@keyframes rk-river {
  0% { transform: translateX(-2px) scaleX(1); }
  50% { transform: translateX(2px) scaleX(1.02); }
  100% { transform: translateX(-1px) scaleX(0.98); }
}
@keyframes rk-tree {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes rk-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rk-book {
  0% { transform: rotate(12deg) translateX(-50%); }
  50% { transform: rotate(18deg) translateX(-48%); }
  100% { transform: rotate(15deg) translateX(-50%); }
}
@keyframes rk-sun {
  0% { transform: scale(1) translateX(0); opacity: 0.6; }
  50% { transform: scale(1.1) translateX(10px); opacity: 0.8; }
  100% { transform: scale(0.95) translateX(-5px); opacity: 0.5; }
}
@keyframes rk-grass {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}

/* ========== queen-pleased-with-poem ========== */
.scn-queen-pleased-with-poem {
  background:
    linear-gradient(180deg, #e8c88a 0%, #c8a060 30%, #8a6a30 100%),
    radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 70%);
}

.scn-queen-pleased-with-poem .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(270deg, #1a1a3a 0%, #2a2a4a 30%, #1a1a3a 100%);
  animation: qp-wall 15s ease-in-out infinite alternate;
}

.scn-queen-pleased-with-poem .throne {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c09050 0%, #805a30 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: qp-throne 12s ease-in-out infinite alternate;
}

.scn-queen-pleased-with-poem .queen {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 56px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: qp-figure 8s ease-in-out infinite;
}

.scn-queen-pleased-with-poem .poet {
  position: absolute; bottom: 24%; left: 38%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: qp-figure 8s ease-in-out infinite 0.5s;
}

.scn-queen-pleased-with-poem .epic-book {
  position: absolute; bottom: 30%; left: 44%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #d0a060 0%, #9a7030 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  animation: qp-book 12s ease-in-out infinite alternate;
}

.scn-queen-pleased-with-poem .window-light {
  position: absolute; top: 10%; left: 30%; width: 100px; height: 150px;
  background: radial-gradient(ellipse, rgba(255,220,150,0.3) 0%, transparent 70%);
  filter: blur(20px);
  animation: qp-light 15s ease-in-out infinite alternate;
}

.scn-queen-pleased-with-poem .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 20% 20% 0 0;
  animation: qp-floor 10s ease-in-out infinite alternate;
}

.scn-queen-pleased-with-poem .curtain {
  position: absolute; top: 0; left: 0; width: 60px; height: 100%;
  background: linear-gradient(90deg, #5e1a1d 0%, #8a2a2a 50%, #5e1a1d 100%);
  border-radius: 0 20% 20% 0;
  animation: qp-curtain 18s ease-in-out infinite alternate;
}

@keyframes qp-wall {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 0.9; filter: brightness(1.1); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes qp-throne {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-3px); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes qp-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes qp-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes qp-light {
  0% { opacity: 0.3; transform: scale(1) translateX(0); }
  50% { opacity: 0.6; transform: scale(1.05) translateX(10px); }
  100% { opacity: 0.4; transform: scale(0.95) translateX(-5px); }
}
@keyframes qp-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes qp-curtain {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

/* ========== collection-complaints ========== */
.scn-collection-complaints {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #b0a088 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 60%);
}

.scn-collection-complaints .bg-study {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #b8a890 0%, #9a8a70 100%);
  animation: cc-bg 20s ease-in-out infinite alternate;
}

.scn-collection-complaints .bookshelf {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 60%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: cc-shelf 15s ease-in-out infinite alternate;
}

.scn-collection-complaints .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30px;
  background: linear-gradient(180deg, #8a7040 0%, #6a5030 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: cc-desk 10s ease-in-out infinite alternate;
}

.scn-collection-complaints .chair {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 40px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cc-chair 12s ease-in-out infinite;
}

.scn-collection-complaints .figure-reader {
  position: absolute; bottom: 32%; left: 28%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-figure 8s ease-in-out infinite;
}

.scn-collection-complaints .lamp {
  position: absolute; top: 25%; left: 40%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #c0a060 0%, #8a6a30 100%);
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%);
  animation: cc-lamp 9s ease-in-out infinite alternate;
}

.scn-collection-complaints .window {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,140,0.3) 0%, transparent 70%);
  border: 2px solid #6a5a3a;
  border-radius: 4px;
  animation: cc-window 18s ease-in-out infinite alternate;
}

.scn-collection-complaints .paper-sheet {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b898 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: cc-paper 14s ease-in-out infinite alternate;
}

@keyframes cc-bg {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(0.95); }
}
@keyframes cc-shelf {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes cc-desk {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes cc-chair {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cc-lamp {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes cc-window {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes cc-paper {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(7deg) translateY(0); }
}

/* ========== colin-clout-and-amoretti ========== */
.scn-colin-clout-and-amoretti {
  background:
    linear-gradient(180deg, #e8c8a0 0%, #c8a880 30%, #a08050 100%),
    radial-gradient(ellipse at 50% 100%, #f0d8b0 0%, transparent 60%);
}

.scn-colin-clout-and-amoretti .bg-castle {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #b89870 0%, #9a7850 100%);
  animation: ca-bg 20s ease-in-out infinite alternate;
}

.scn-colin-clout-and-amoretti .castle-window {
  position: absolute; top: 15%; left: 40%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,140,0.25) 0%, transparent 70%);
  border: 3px solid #5a402a;
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: ca-window 15s ease-in-out infinite alternate;
}

.scn-colin-clout-and-amoretti .figure-colin {
  position: absolute; bottom: 25%; left: 35%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-figure 8s ease-in-out infinite;
}

.scn-colin-clout-and-amoretti .figure-elizabeth {
  position: absolute; bottom: 25%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-figure 8s ease-in-out infinite 1s;
}

.scn-colin-clout-and-amoretti .love-letter {
  position: absolute; bottom: 30%; left: 44%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #f0ddc0 0%, #d0b898 100%);
  border-radius: 2px;
  transform: rotate(-10deg) translateX(-50%);
  animation: ca-letter 12s ease-in-out infinite alternate;
}

.scn-colin-clout-and-amoretti .rose {
  position: absolute; bottom: 28%; left: 52%; width: 12px; height: 12px;
  background: radial-gradient(circle at 40% 30%, #b87878 0%, #702243 100%);
  border-radius: 50%;
  animation: ca-rose 6s ease-in-out infinite;
}

.scn-colin-clout-and-amoretti .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background:
    linear-gradient(90deg, #6a5030 25%, #5a4020 25%, #5a4020 50%, #6a5030 50%, #6a5030 75%, #5a4020 75%);
  background-size: 40px 100%;
  animation: ca-floor 14s linear infinite;
}

.scn-colin-clout-and-amoretti .candle {
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(200,160,80,0.6);
  animation: ca-candle 3s ease-in-out infinite alternate;
}

@keyframes ca-bg {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(0.95); }
}
@keyframes ca-window {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.02); }
  100% { opacity: 0.3; transform: scale(0.98); }
}
@keyframes ca-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ca-letter {
  0% { transform: rotate(-10deg) translateX(-50%) translateY(0); }
  50% { transform: rotate(-5deg) translateX(-48%) translateY(-3px); }
  100% { transform: rotate(-15deg) translateX(-52%) translateY(0); }
}
@keyframes ca-rose {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.2) rotate(10deg); }
  100% { transform: scale(0.9) rotate(-5deg); }
}
@keyframes ca-floor {
  0% { background-position: 0 0; }
  100% { background-position: -40px 0; }
}
@keyframes ca-candle {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.8; transform: scaleY(0.95); }
}

.scn-lechery { background: linear-gradient(180deg, #c8a060 0%, #9a7a4a 30%, #5a3a1a 70%, #2a1a0a 100%), radial-gradient(ellipse at 60% 40%, #ffdd88 0%, transparent 60%); }
.scn-lechery .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e8c888 0%, #d0a868 50%, #b88848 100%); animation: lec-sky 10s ease-in-out infinite alternate; }
.scn-lechery .table { position:absolute; bottom:20%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 20% 20% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-lechery .platter { position:absolute; bottom:22%; left:35%; width:20%; height:12%; background: radial-gradient(ellipse, #b08050 0%, #8a6030 80%); border-radius: 50%; box-shadow: inset 0 -6px 10px rgba(0,0,0,.5); animation: lec-platter 4s ease-in-out infinite; }
.scn-lechery .figure { position:absolute; bottom:20%; left:30%; width:25%; height:45%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,.7); transform-origin: bottom center; animation: lec-figure 6s ease-in-out infinite; }
.scn-lechery .shadow-figure { position:absolute; bottom:18%; left:32%; width:28%; height:48%; background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.3; filter: blur(8px); animation: lec-shadow 3s ease-in-out infinite alternate; }
.scn-lechery .flies { position:absolute; top:30%; left:20%; width:2%; height:2%; background: #2a1a0a; border-radius:50%; box-shadow: 0 0 8px #4a2a1a; animation: lec-flies 2s ease-in-out infinite; }
.scn-lechery .light-shaft { position:absolute; top:0; left:40%; width:20%; height:80%; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%); animation: lec-shaft 8s ease-in-out infinite alternate; }
@keyframes lec-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes lec-platter { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes lec-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5px) rotate(2deg) } 60% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lec-shadow { 0% { opacity:0.2; transform: scale(0.95) } 100% { opacity:0.5; transform: scale(1.05) } }
@keyframes lec-flies { 0%,100% { transform: translate(0,0) } 25% { transform: translate(10px,-5px) } 50% { transform: translate(20px,0) } 75% { transform: translate(10px,3px) } }
@keyframes lec-shaft { 0% { opacity:0.1 } 100% { opacity:0.4 } }

.scn-lechery-described { background: linear-gradient(180deg, #d8c090 0%, #b89868 40%, #7a5a3a 80%, #2a1a0a 100%), radial-gradient(ellipse at 30% 70%, #ffdd88 0%, transparent 50%); }
.scn-lechery-described .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8a870 0%, #a08460 100%); }
.scn-lechery-described .window { position:absolute; top:10%; left:60%; width:20%; height:40%; background: linear-gradient(180deg, #ffe8b0 0%, #d0b080 100%); border: 4px solid #5a3a1a; box-shadow: inset 0 0 20px rgba(255,200,100,0.5); animation: lecd-window 6s ease-in-out infinite; }
.scn-lechery-described .lady-silhouette { position:absolute; bottom:20%; left:70%; width:10%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0604 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: lecd-lady 5s ease-in-out infinite; }
.scn-lechery-described .green-figure { position:absolute; bottom:20%; left:30%; width:22%; height:45%; background: linear-gradient(180deg, #3a6a3a 0%, #1a3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,.7); animation: lecd-green 4s ease-in-out infinite; }
.scn-lechery-described .inner-filth { position:absolute; bottom:20%; left:32%; width:18%; height:35%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1008 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; opacity:0.6; filter: blur(4px); animation: lecd-inner 3s ease-in-out infinite alternate; }
.scn-lechery-described .hand { position:absolute; bottom:40%; left:46%; width:6%; height:10%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom left; animation: lecd-hand 3s ease-in-out infinite; }
.scn-lechery-described .book { position:absolute; bottom:30%; left:44%; width:10%; height:12%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: lecd-book 4s ease-in-out infinite; }
.scn-lechery-described .rose { position:absolute; bottom:42%; left:52%; width:4%; height:4%; background: radial-gradient(circle at 50% 50%, #b87878 0%, #702243 70%); border-radius: 50%; box-shadow: 0 0 12px #b87878; animation: lecd-rose 5s ease-in-out infinite; }
@keyframes lecd-window { 0%,100% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } }
@keyframes lecd-lady { 0%,100% { transform: translateX(0) } 50% { transform: translateX(8px) } }
@keyframes lecd-green { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(2deg) } 70% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lecd-inner { 0% { opacity:0.4; transform: scale(0.9) } 100% { opacity:0.8; transform: scale(1.1) } }
@keyframes lecd-hand { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } }
@keyframes lecd-book { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) rotate(-2deg) } }
@keyframes lecd-rose { 0%,100% { transform: scale(1) } 50% { transform: scale(1.2) } }

.scn-lechery-continued { background: linear-gradient(180deg, #c8a060 0%, #a08050 30%, #5a3a1a 60%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #ffdd88 0%, transparent 70%); }
.scn-lechery-continued .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 0 0 / 80% 80% 0 0; }
.scn-lechery-continued .mirror { position:absolute; top:10%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #e0c8a0 0%, #c0a080 100%); border: 6px solid #5a3a1a; border-radius: 10% 10% 30% 30%; box-shadow: inset 0 0 30px rgba(255,200,100,0.3); animation: lecc-mirror 8s ease-in-out infinite; }
.scn-lechery-continued .figure { position:absolute; bottom:22%; left:40%; width:20%; height:50%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lecc-figure 5s ease-in-out infinite; }
.scn-lechery-continued .shadow-woman-1 { position:absolute; bottom:20%; left:20%; width:12%; height:35%; background: linear-gradient(180deg, #1a0a06 0%, #0a0402 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; opacity:0.3; animation: lecc-woman1 4s ease-in-out infinite; }
.scn-lechery-continued .shadow-woman-2 { position:absolute; bottom:20%; left:60%; width:12%; height:35%; background: linear-gradient(180deg, #1a0a06 0%, #0a0402 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; opacity:0.3; animation: lecc-woman2 4s ease-in-out infinite 1s; }
.scn-lechery-continued .shadow-woman-3 { position:absolute; bottom:20%; left:50%; width:12%; height:35%; background: linear-gradient(180deg, #1a0a06 0%, #0a0402 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; opacity:0.2; animation: lecc-woman3 4s ease-in-out infinite 2s; }
.scn-lechery-continued .eye-sparkle { position:absolute; top:30%; left:45%; width:2%; height:2%; background: #ffe8b0; border-radius:50%; box-shadow: 0 0 10px #ffe8b0; animation: lecc-eye 2s ease-in-out infinite; }
@keyframes lecc-mirror { 0%,100% { opacity:.8; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.03) } }
@keyframes lecc-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lecc-woman1 { 0%,100% { transform: translateX(0) opacity:0.3 } 50% { transform: translateX(10px) opacity:0.5 } }
@keyframes lecc-woman2 { 0%,100% { transform: translateX(0) opacity:0.3 } 50% { transform: translateX(-8px) opacity:0.4 } }
@keyframes lecc-woman3 { 0%,100% { transform: translateX(0) opacity:0.2 } 50% { transform: translateX(5px) opacity:0.3 } }
@keyframes lecc-eye { 0%,100% { transform: scale(1); opacity:1 } 50% { transform: scale(1.5); opacity:0.6 } }

.scn-avarice { background: linear-gradient(180deg, #c8a060 0%, #a08050 30%, #6a4a2a 60%, #2a1a0a 100%), radial-gradient(ellipse at 40% 60%, #ffd080 0%, transparent 50%); }
.scn-avarice .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-avarice .camel-hump { position:absolute; bottom:30%; left:30%; width:35%; height:35%; background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%); border-radius: 60% 60% 30% 30% / 80% 80% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: avar-camel 8s ease-in-out infinite; }
.scn-avarice .coffer-left { position:absolute; bottom:25%; left:25%; width:10%; height:15%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border: 3px solid #8a6a3a; border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: avar-coffer 5s ease-in-out infinite; }
.scn-avarice .coffer-right { position:absolute; bottom:25%; right:30%; width:10%; height:15%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border: 3px solid #8a6a3a; border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: avar-coffer 5s ease-in-out infinite 1s; }
.scn-avarice .gold-heap { position:absolute; bottom:30%; left:42%; width:16%; height:10%; background: radial-gradient(ellipse, #ffd080 0%, #c8a060 70%); border-radius: 50%; box-shadow: 0 0 20px #ffd080; animation: avar-gold 3s ease-in-out infinite; }
.scn-avarice .figure { position:absolute; bottom:20%; left:45%; width:15%; height:35%; background: linear-gradient(180deg, #4a3020 0%, #1a0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: avar-figure 6s ease-in-out infinite; }
.scn-avarice .coin-rain { position:absolute; top:5%; left:40%; width:2%; height:2%; background: #ffd080; border-radius:50%; box-shadow: 0 0 8px #ffd080; animation: avar-rain 10s linear infinite; }
.scn-avarice .shadow { position:absolute; bottom:15%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(10px); animation: avar-shadow 4s ease-in-out infinite alternate; }
@keyframes avar-camel { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes avar-coffer { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes avar-gold { 0%,100% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.1); opacity:1 } }
@keyframes avar-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(4px) rotate(2deg) } 60% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes avar-rain { 0% { transform: translateY(0) opacity:1 } 100% { transform: translateY(80vh) opacity:0 } }
@keyframes avar-shadow { 0% { opacity:0.3; transform: scaleX(0.9) } 100% { opacity:0.7; transform: scaleX(1.1) } }

.scn-archimago-disguised-as-knight {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2244 30%, #3a2a4e 60%, #1e1e2e 100%),
              radial-gradient(ellipse at 30% 60%, #3a2a4e 0%, transparent 70%);
}
.scn-archimago-disguised-as-knight .sky-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 40%, transparent 100%);
  animation: ach-sky 12s ease-in-out infinite alternate;
}
.scn-archimago-disguised-as-knight .fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(100,90,120,.15) 0%, transparent 60%);
  filter: blur(12px);
  animation: ach-fog 20s ease-in-out infinite alternate;
}
.scn-archimago-disguised-as-knight .knight-silhouette {
  position: absolute; bottom: 20%; left: 35%;
  width: 60px; height: 110px;
  background: linear-gradient(180deg, #15152a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ach-knight 6s ease-in-out infinite;
  box-shadow: 0 10px 20px rgba(0,0,0,.6);
}
.scn-archimago-disguised-as-knight .shield-false {
  position: absolute; bottom: 28%; left: 42%;
  width: 30px; height: 40px;
  background: linear-gradient(135deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 10% 10% 30% 30%;
  transform: rotate(-10deg);
  animation: ach-shield 4s ease-in-out infinite;
  box-shadow: inset 0 0 8px rgba(200,50,50,.2);
}
.scn-archimago-disguised-as-knight .lance {
  position: absolute; bottom: 30%; left: 44%;
  width: 8px; height: 70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  transform: rotate(5deg);
  animation: ach-lance 8s ease-in-out infinite alternate;
}
.scn-archimago-disguised-as-knight .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 25%;
  background: linear-gradient(180deg, rgba(20,20,40,0) 0%, rgba(30,25,45,0.4) 50%, rgba(10,10,25,0.8) 100%);
  animation: ach-mist 15s ease-in-out infinite alternate;
}
.scn-archimago-disguised-as-knight .raven {
  position: absolute; top: 15%; left: 60%;
  width: 20px; height: 18px;
  background: radial-gradient(ellipse at 30% 30%, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ach-raven 12s ease-in-out infinite;
  box-shadow: 0 0 4px rgba(255,255,255,.1);
}
@keyframes ach-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes ach-fog { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.02) translateX(10px) } 100% { transform: scale(1) translateX(-10px) } }
@keyframes ach-knight { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-5px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ach-shield { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-5deg) scale(1.05) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes ach-lance { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(5deg) } }
@keyframes ach-mist { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes ach-raven { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(8px) translateY(-4px) } 50% { transform: translateX(16px) translateY(-2px) } 75% { transform: translateX(8px) translateY(-6px) } 100% { transform: translateX(0) translateY(0) } }

.scn-corceca-tells-story {
  background: linear-gradient(180deg, #1a1a30 0%, #2c1c2c 40%, #1a0a1a 100%),
              radial-gradient(ellipse at 50% 80%, #2c1c2c 0%, transparent 60%);
}
.scn-corceca-tells-story .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,20,40,0) 0%, rgba(40,30,40,0.3) 100%);
  animation: coc-bg 14s ease-in-out infinite alternate;
}
.scn-corceca-tells-story .figure-kneeling {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 100px;
  background: linear-gradient(180deg, #2a202a 0%, #1a101a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: coc-figure 5s ease-in-out infinite;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
}
.scn-corceca-tells-story .torn-hair {
  position: absolute; bottom: 60%; left: 42%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30%;
  transform: rotate(-15deg);
  animation: coc-hair 3s ease-in-out infinite alternate;
}
.scn-corceca-tells-story .tears-stream {
  position: absolute; bottom: 42%; left: 48%;
  width: 4px; height: 30px;
  background: linear-gradient(180deg, rgba(180,180,220,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: coc-tears 2s ease-in-out infinite;
}
.scn-corceca-tells-story .staff-broken {
  position: absolute; bottom: 12%; left: 30%;
  width: 6px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 20%;
  transform: rotate(25deg);
  transform-origin: bottom center;
  animation: coc-staff 6s ease-in-out infinite alternate;
}
.scn-corceca-tells-story .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: coc-shadow 10s ease-in-out infinite alternate;
}
.scn-corceca-tells-story .eye-flaw {
  position: absolute; bottom: 48%; left: 46%;
  width: 8px; height: 4px;
  background: rgba(200,200,200,.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: coc-eye 4s ease-in-out infinite;
}
.scn-corceca-tells-story .dust-motes {
  position: absolute; top: 20%; left: 30%;
  width: 4px; height: 4px;
  background: rgba(255,255,255,.15);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(200,200,200,.1);
  animation: coc-dust 20s linear infinite;
}
@keyframes coc-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes coc-figure { 0% { transform: translateX(-50%) translateY(0) rotate(1deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(2deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(1deg) } }
@keyframes coc-hair { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-20deg) translateY(-5px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes coc-tears { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.2) } 100% { opacity:.5; transform: scaleY(1) } }
@keyframes coc-staff { 0% { transform: rotate(25deg) } 50% { transform: rotate(30deg) translateX(-5px) } 100% { transform: rotate(25deg) } }
@keyframes coc-shadow { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes coc-eye { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }
@keyframes coc-dust { 0% { transform: translate(0, 0) scale(1); opacity:.2 } 50% { transform: translate(20px, -10px) scale(1.5); opacity:.5 } 100% { transform: translate(40px, -20px) scale(0.8); opacity:.2 } }

.scn-una-sees-archimago {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #F0E68C 70%, #DAA520 100%),
              radial-gradient(ellipse at 30% 50%, #FFF8DC 0%, transparent 60%);
}
.scn-una-sees-archimago .sky-sunlit {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87CEFA 0%, #FFF8DC 40%, transparent 100%);
  animation: unaS-sky 10s ease-in-out infinite alternate;
}
.scn-una-sees-archimago .sun-glow {
  position: absolute; top: 5%; left: 60%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, #FFFACD 0%, #FFD700 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: unaS-sun 8s ease-in-out infinite alternate;
}
.scn-una-sees-archimago .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #F5DEB3 0%, #DEB887 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: unaS-horizon 12s ease-in-out infinite;
}
.scn-una-sees-archimago .una-figure {
  position: absolute; bottom: 18%; left: 30%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #F5F5DC 0%, #EEDDCC 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: unaS-una 6s ease-in-out infinite;
  box-shadow: 0 5px 10px rgba(0,0,0,.2);
}
.scn-una-sees-archimago .false-knight {
  position: absolute; bottom: 18%; left: 55%;
  width: 50px; height: 90px;
  background: linear-gradient(180deg, #2F4F4F 0%, #1a2a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: unaS-knight 8s ease-in-out infinite;
  box-shadow: 0 8px 16px rgba(0,0,0,.3);
}
.scn-una-sees-archimago .shield-gleam {
  position: absolute; bottom: 28%; left: 58%;
  width: 20px; height: 30px;
  background: linear-gradient(135deg, #BDB76B 0%, #8B7355 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  animation: unaS-shield 4s ease-in-out infinite;
  box-shadow: 0 0 8px rgba(255,255,200,.4);
}
.scn-una-sees-archimago .wild-champion {
  position: absolute; bottom: 15%; left: 48%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #556B2F 0%, #2E4A1E 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: unaS-wild 10s ease-in-out infinite alternate;
  opacity:0.7;
}
.scn-una-sees-archimago .path-dust {
  position: absolute; bottom: 10%; left: 25%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #D2B48C 0%, transparent 100%);
  filter: blur(4px);
  animation: unaS-dust 7s ease-in-out infinite alternate;
}
@keyframes unaS-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes unaS-sun { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-5px) } 100% { transform: scale(1) translateY(0) } }
@keyframes unaS-horizon { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes unaS-una { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes unaS-knight { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes unaS-shield { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(15deg) scale(1.03) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes unaS-wild { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(5px) scale(0.95) } }
@keyframes unaS-dust { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-una-addresses-false-knight {
  background: linear-gradient(180deg, #FFF8DC 0%, #FAFAD2 30%, #D2B48C 70%, #8B7355 100%),
              radial-gradient(ellipse at 40% 30%, #FFFACD 0%, transparent 60%);
}
.scn-una-addresses-false-knight .sky-sad-sun {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #F0E68C 0%, #EEDD82 30%, transparent 100%);
  animation: unaF-sky 15s ease-in-out infinite alternate;
}
.scn-una-addresses-false-knight .muted-sun {
  position: absolute; top: 8%; left: 45%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #FFD700 0%, #DAA520 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: unaF-sun 10s ease-in-out infinite alternate;
}
.scn-una-addresses-false-knight .ground-pale {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #DEB887 0%, #A0522D 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: unaF-ground 12s ease-in-out infinite;
}
.scn-una-addresses-false-knight .una-standing {
  position: absolute; bottom: 18%; left: 35%;
  width: 35px; height: 70px;
  background: linear-gradient(180deg, #FFEFD5 0%, #EEDDCC 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: unaF-una 7s ease-in-out infinite;
  box-shadow: 0 6px 12px rgba(0,0,0,.2);
}
.scn-una-addresses-false-knight .hand-reaching {
  position: absolute; bottom: 40%; left: 38%;
  width: 12px; height: 30px;
  background: linear-gradient(180deg, #FFEFD5 0%, #EEDDCC 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: unaF-hand 4s ease-in-out infinite;
  transform: rotate(-20deg);
}
.scn-una-addresses-false-knight .knight-veiled {
  position: absolute; bottom: 18%; left: 55%;
  width: 50px; height: 90px;
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: unaF-knight 9s ease-in-out infinite;
  box-shadow: 0 8px 16px rgba(0,0,0,.3);
}
.scn-una-addresses-false-knight .shadow-long {
  position: absolute; bottom: 0; left: 30%; width: 120px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%);
  filter: blur(3px);
  animation: unaF-shadow 11s ease-in-out infinite alternate;
}
.scn-una-addresses-false-knight .petal-fall {
  position: absolute; top: 20%; left: 60%;
  width: 6px; height: 6px;
  background: rgba(255, 182, 193, .5);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(255,200,200,.2);
  animation: unaF-petal 15s linear infinite;
}
@keyframes unaF-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes unaF-sun { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.03); opacity:.9 } 100% { transform: scale(1); opacity:.8 } }
@keyframes unaF-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes unaF-una { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes unaF-hand { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(2px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes unaF-knight { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes unaF-shadow { 0% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.05); opacity:.7 } 100% { transform: scaleX(1); opacity:.5 } }
@keyframes unaF-petal { 0% { transform: translate(0,0) rotate(0deg); opacity:.4 } 25% { transform: translate(6px,12px) rotate(45deg); opacity:.6 } 50% { transform: translate(12px,24px) rotate(90deg); opacity:.5 } 75% { transform: translate(18px,36px) rotate(135deg); opacity:.4 } 100% { transform: translate(24px,48px) rotate(180deg); opacity:0 } }

/* === palace-built-on-sand === */
.scn-palace-built-on-sand {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 40%, #2c2c3a 70%, #1a1a28 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 70%);
}
.scn-palace-built-on-sand .sky-overcast { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a3a4e 0%, #1e1e2e 100%); animation: pbs-sky 14s ease-in-out infinite alternate; }
.scn-palace-built-on-sand .tower-left { position:absolute; bottom:25%; left:15%; width:40px; height:120px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 30%, #1a1a2a 100%); border-radius: 4% 4% 8% 8%; box-shadow: inset -4px 0 8px rgba(0,0,0,.6); transform: skewX(-3deg); animation: pbs-sway 6s ease-in-out infinite; }
.scn-palace-built-on-sand .tower-right { position:absolute; bottom:25%; right:15%; width:36px; height:110px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 30%, #1a1a2a 100%); border-radius: 6% 6% 10% 10%; box-shadow: inset 4px 0 8px rgba(0,0,0,.6); transform: skewX(3deg); animation: pbs-sway 7s ease-in-out infinite -1s; }
.scn-palace-built-on-sand .arch-gate { position:absolute; bottom:20%; left:50%; width:80px; height:100px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
.scn-palace-built-on-sand .sand-base { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 40% 0 0 / 20% 30% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); }
.scn-palace-built-on-sand .sands { position:absolute; bottom:18%; height:6%; background: linear-gradient(90deg, transparent 0%, #6a5a4a 20%, #5a4a3a 50%, #6a5a4a 80%, transparent 100%); filter: blur(2px); animation: pbs-drift 20s linear infinite; }
.scn-palace-built-on-sand .s1 { left:0; right:0; opacity:.4; animation-duration:20s; }
.scn-palace-built-on-sand .s2 { left:10%; right:10%; opacity:.3; animation-duration:30s; animation-delay:-10s; }
.scn-palace-built-on-sand .crack { position:absolute; bottom:22%; left:48%; width:30px; height:8px; background: #0a0a12; border-radius: 40% 20% 20% 40%; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,.8); animation: pbs-crack 8s ease-in-out infinite; }
.scn-palace-built-on-sand .stone-fall { position:absolute; bottom:40%; left:52%; width:10px; height:8px; background: #3a3a4a; border-radius: 30% 30% 10% 10%; animation: pbs-fall 4s ease-in infinite alternate; }
@keyframes pbs-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes pbs-sway { 0%,100% { transform: skewX(-3deg) translateY(0) } 50% { transform: skewX(-2deg) translateY(-3px) } }
@keyframes pbs-drift { 0% { transform: translateX(-40px) scaleX(1) } 50% { transform: translateX(20px) scaleX(1.05) } 100% { transform: translateX(100vw) scaleX(1) } }
@keyframes pbs-crack { 0%,100% { transform: rotate(-15deg) scaleX(1) } 50% { transform: rotate(-10deg) scaleX(1.3) } }
@keyframes pbs-fall { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(10px) rotate(15deg) } 60% { transform: translateY(20px) rotate(-10deg) } 100% { transform: translateY(30px) rotate(5deg) opacity:0 } }

/* === inside-the-palace === */
.scn-inside-the-palace {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a3a1a 30%, #3a2a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 40%, #6a5a2a 0%, transparent 60%);
}
.scn-inside-the-palace .wall-bg { position:absolute; inset:0; background: linear-gradient(90deg, #1a0a00 0%, #3a2a10 30%, #4a3a1a 50%, #3a2a10 70%, #1a0a00 100%); animation: itp-pulse 20s ease-in-out infinite alternate; }
.scn-inside-the-palace .col-left { position:absolute; bottom:0; left:20%; width:18px; height:90%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 8px 0 16px rgba(0,0,0,.6); }
.scn-inside-the-palace .col-right { position:absolute; bottom:0; right:20%; width:18px; height:90%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 10% 10% 0 0; box-shadow: -8px 0 16px rgba(0,0,0,.6); }
.scn-inside-the-palace .throne-step { position:absolute; bottom:12%; left:50%; width:120px; height:14px; transform: translateX(-50%); background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 50%, #3a2a0a 100%); border-radius: 6%; box-shadow: 0 4px 12px rgba(0,0,0,.7); }
.scn-inside-the-palace .glow-center { position:absolute; bottom:28%; left:50%; width:60px; height:80px; transform: translateX(-50%); background: radial-gradient(ellipse 60% 80%, #ffd060 0%, #b08030 40%, transparent 70%); border-radius: 20%; box-shadow: 0 0 60px 20px rgba(255,208,96,.4), 0 0 120px 40px rgba(192,128,64,.2); animation: itp-glow 5s ease-in-out infinite alternate; }
.scn-inside-the-palace .figure-crowd { position:absolute; bottom:18%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse 40% 100%, #1a0a00 0%, transparent 70%); filter: blur(3px); animation: itp-crowd 12s ease-in-out infinite; }
.scn-inside-the-palace .gem-scatter { position:absolute; bottom:10%; left:42%; width:16%; height:4%; background: radial-gradient(circle, #ffd060 0%, #b08030 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 12px 2px rgba(255,208,96,.3); animation: itp-gem 3s ease-in-out infinite alternate; }
.scn-inside-the-palace .drape { position:absolute; top:0; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #4a1a1a 0%, #2a0a0a 50%, transparent 100%); border-radius: 0 0 40% 40%; box-shadow: inset 0 -8px 16px rgba(0,0,0,.7); animation: itp-drape 15s ease-in-out infinite alternate; }
@keyframes itp-pulse { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes itp-glow { 0% { box-shadow: 0 0 40px 10px rgba(255,208,96,.3), 0 0 80px 20px rgba(192,128,64,.15); opacity:.8 } 50% { box-shadow: 0 0 80px 30px rgba(255,208,96,.5), 0 0 160px 50px rgba(192,128,64,.3); opacity:1 } 100% { box-shadow: 0 0 50px 15px rgba(255,208,96,.35), 0 0 100px 30px rgba(192,128,64,.2); opacity:.85 } }
@keyframes itp-crowd { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.05) } }
@keyframes itp-gem { 0% { transform: scale(1) } 50% { transform: scale(1.4) } 100% { transform: scale(.9) } }
@keyframes itp-drape { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }

/* === lucifera-throned === */
.scn-lucifera-throned {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 30%, #4a3a6e 60%, #2a1a3e 100%),
    radial-gradient(ellipse at 50% 30%, #8a7aae 0%, transparent 60%);
}
.scn-lucifera-throned .sunburst-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, #8a6a4e 0%, #3a2a4e 40%, #1a1a2e 100%); animation: lt-burst 18s ease-in-out infinite alternate; }
.scn-lucifera-throned .canopy-top { position:absolute; top:0; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #6a3a4a 0%, #4a2a3a 50%, #2a1a2a 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 8px 24px rgba(0,0,0,.7); animation: lt-canopy 12s ease-in-out infinite alternate; }
.scn-lucifera-throned .throne-base { position:absolute; bottom:18%; left:50%; width:80px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 50%, #3a2a0a 100%); border-radius: 20% 20% 8% 8%; box-shadow: 0 8px 20px rgba(0,0,0,.8); }
.scn-lucifera-throned .queen-figure { position:absolute; bottom:26%; left:50%; width:36px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #c08a4a 0%, #8a5a2a 40%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 30px 6px rgba(192,138,74,.5); animation: lt-queen 4s ease-in-out infinite alternate; }
.scn-lucifera-throned .crown-glow { position:absolute; bottom:58%; left:50%; width:24px; height:18px; transform: translateX(-50%); background: radial-gradient(ellipse, #ffd060 0%, #c08030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 12px rgba(255,208,96,.6); animation: lt-crown 3s ease-in-out infinite alternate; }
.scn-lucifera-throned .gem-floor { position:absolute; bottom:10%; left:20%; width:60%; height:10%; background: linear-gradient(90deg, transparent 0%, #6a4a8a 20%, #8a6aae 40%, #6a4a8a 60%, transparent 100%); border-radius: 30%; filter: blur(4px); animation: lt-floor 15s ease-in-out infinite; }
.scn-lucifera-throned .rays { position:absolute; top:10%; width:40%; height:20%; background: linear-gradient(180deg, rgba(255,208,96,.2) 0%, transparent 100%); border-radius: 50%; transform-origin: 50% 0%; filter: blur(2px); }
.scn-lucifera-throned .r1 { left:5%; transform: rotate(-20deg); animation: lt-ray 6s ease-in-out infinite alternate; }
.scn-lucifera-throned .r2 { right:5%; transform: rotate(20deg); animation: lt-ray 7s ease-in-out infinite alternate -1s; }
@keyframes lt-burst { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes lt-canopy { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(.97) } }
@keyframes lt-queen { 0%,100% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px) } }
@keyframes lt-crown { 0% { box-shadow: 0 0 30px 8px rgba(255,208,96,.4); opacity:.8 } 50% { box-shadow: 0 0 60px 20px rgba(255,208,96,.7); opacity:1 } 100% { box-shadow: 0 0 40px 12px rgba(255,208,96,.5); opacity:.9 } }
@keyframes lt-floor { 0% { transform: translateX(-10px) } 50% { transform: translateX(10px) } 100% { transform: translateX(-5px) } }
@keyframes lt-ray { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }

/* === simile-of-phaeton === */
.scn-simile-of-phaeton {
  background:
    linear-gradient(180deg, #2a1a3e 0%, #4a2a5e 30%, #6a3a6e 60%, #8a4a6e 100%),
    radial-gradient(ellipse at 50% 20%, #c06a3e 0%, transparent 60%);
}
.scn-simile-of-phaeton .sky-blaze { position:absolute; inset:0; background: linear-gradient(180deg, #4a2a4e 0%, #6a3a5e 40%, #8a4a5e 70%, #6a3a4e 100%); animation: sop-burn 15s ease-in-out infinite alternate; }
.scn-simile-of-phaeton .sun-core { position:absolute; top:10%; left:50%; width:100px; height:100px; transform: translateX(-50%); background: radial-gradient(circle, #ffd060 0%, #c06a2a 40%, #8a3a1a 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,208,96,.6), 0 0 200px 60px rgba(192,106,42,.3); animation: sop-sun 8s ease-in-out infinite alternate; }
.scn-simile-of-phaeton .chariot { position:absolute; top:25%; left:30%; width:50px; height:30px; background: linear-gradient(180deg, #c06a2a 0%, #8a3a1a 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.8); transform: rotate(10deg); animation: sop-chariot 6s ease-in-out infinite alternate; }
.scn-simile-of-phaeton .horse { position:absolute; top:22%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 20% 30% 50%; box-shadow: 0 4px 8px rgba(0,0,0,.7); transform: rotate(15deg); animation: sop-horse 5s ease-in-out infinite alternate; }
.scn-simile-of-phaeton .figure-fall { position:absolute; top:35%; left:45%; width:16px; height:40px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; transform: rotate(45deg); animation: sop-fall 4s ease-in-out infinite; }
.scn-simile-of-phaeton .cloud-wisp { position:absolute; width:80px; height:20px; background: linear-gradient(90deg, transparent 0%, rgba(255,208,160,.3) 20%, rgba(255,160,80,.2) 50%, transparent 100%); border-radius: 50%; filter: blur(6px); }
.scn-simile-of-phaeton .w1 { top:15%; left:20%; animation: sop-wisp 25s linear infinite; }
.scn-simile-of-phaeton .w2 { top:40%; right:10%; width:60px; height:14px; animation: sop-wisp 30s linear infinite -10s reverse; }
.scn-simile-of-phaeton .spark { position:absolute; top:30%; left:50%; width:4px; height:4px; background: #ffd060; border-radius: 50%; box-shadow: 0 0 8px 2px #ffd060; animation: sop-spark 2s ease-in-out infinite alternate; }
@keyframes sop-burn { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sop-sun { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.08) } 100% { transform: translateX(-50%) scale(.95) } }
@keyframes sop-chariot { 0% { transform: rotate(10deg) translate(0,0) } 50% { transform: rotate(5deg) translate(10px,-5px) } 100% { transform: rotate(15deg) translate(-5px,5px) } }
@keyframes sop-horse { 0% { transform: rotate(15deg) translate(0,0) scaleX(1) } 50% { transform: rotate(10deg) translate(8px,-4px) scaleX(1.05) } 100% { transform: rotate(20deg) translate(-4px,4px) scaleX(.95) } }
@keyframes sop-fall { 0% { transform: rotate(45deg) translate(0,0) } 25% { transform: rotate(30deg) translate(10px,20px) } 50% { transform: rotate(60deg) translate(20px,40px) } 75% { transform: rotate(20deg) translate(30px,60px) } 100% { transform: rotate(50deg) translate(40px,80px) opacity:.4 } }
@keyframes sop-wisp { 0% { transform: translateX(-50px) scaleX(1) } 50% { transform: translateX(20px) scaleX(1.2) } 100% { transform: translateX(200vw) scaleX(1) } }
@keyframes sop-spark { 0%,100% { opacity:.3; transform: translate(0,0) } 50% { opacity:1; transform: translate(10px,-8px) } }

/* dragon-claws-and-jaws */
.scn-dragon-claws-and-jaws { 
  background: linear-gradient(180deg, #d4b06a 0%, #8a6a3a 30%, #2a1a0a 70%, #0a0500 100%),
              radial-gradient(ellipse at 60% 20%, #f0e0a0 0%, transparent 40%);
}
.scn-dragon-claws-and-jaws .sky { position:absolute; inset:0; background: linear-gradient(180deg, #b89a4a 0%, transparent 100%); animation: dcl-sky 15s ease-in-out infinite alternate; }
.scn-dragon-claws-and-jaws .sun-glow { position:absolute; top:5%; left:70%; width:80px; height:80px; background: radial-gradient(circle, #ffe080 0%, #ffb040 40%, transparent 70%); border-radius:50%; filter: blur(10px); animation: dcl-sun 8s ease-in-out infinite alternate; }
.scn-dragon-claws-and-jaws .dragon-head { position:absolute; left:50%; bottom:25%; width:200px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 30% 40% 60% / 30% 40% 60% 50%; box-shadow: 0 0 30px rgba(0,0,0,0.6); animation: dcl-head 6s ease-in-out infinite; }
.scn-dragon-claws-and-jaws .jaw-upper { position:absolute; left:50%; bottom:35%; width:140px; height:50px; transform:translateX(-45%); background: linear-gradient(135deg, #2a1a0a 0%, #0a0500 100%); border-radius:70% 70% 10% 10%; animation: dcl-jaw 4s ease-in-out infinite alternate; }
.scn-dragon-claws-and-jaws .jaw-lower { position:absolute; left:50%; bottom:20%; width:120px; height:60px; transform:translateX(-45%); background: linear-gradient(135deg, #1a1008 0%, #0a0500 100%); border-radius:10% 10% 80% 80%; animation: dcl-jaw 4s ease-in-out infinite alternate-reverse; }
.scn-dragon-claws-and-jaws .claw-left { position:absolute; left:10%; bottom:30%; width:30px; height:70px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 40% 40%; transform-origin: top right; animation: dcl-claw 5s ease-in-out infinite; }
.scn-dragon-claws-and-jaws .claw-right { position:absolute; right:10%; bottom:30%; width:30px; height:70px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 40% 40%; transform-origin: top left; animation: dcl-claw 5s ease-in-out infinite reverse; }
.scn-dragon-claws-and-jaws .blood-drop { position:absolute; left:45%; bottom:10%; width:8px; height:12px; background: radial-gradient(circle, #c8553d 0%, #a0461a 100%); border-radius:50%; box-shadow: 0 0 10px #c8553d; animation: dcl-blood 3s ease-in-out infinite; }
.scn-dragon-claws-and-jaws .smoke-wisp { position:absolute; left:40%; bottom:70%; width:50px; height:30px; background: rgba(200,180,160,0.3); filter: blur(8px); border-radius:50%; animation: dcl-smoke 12s linear infinite; }
@keyframes dcl-sky { 0%{opacity:0.7;transform:scale(1)} 50%{opacity:1;transform:scale(1.02)} 100%{opacity:0.8;transform:scale(0.98)} }
@keyframes dcl-sun { 0%{opacity:0.5;transform:scale(0.8)} 50%{opacity:1;transform:scale(1.1)} 100%{opacity:0.7;transform:scale(0.9)} }
@keyframes dcl-head { 0%{transform:translateX(-50%) rotate(0deg)} 50%{transform:translateX(-50%) rotate(2deg)} 100%{transform:translateX(-50%) rotate(-1deg)} }
@keyframes dcl-jaw { 0%{transform:translateX(-45%) translateY(0) scaleX(1)} 50%{transform:translateX(-45%) translateY(-5px) scaleX(1.05)} 100%{transform:translateX(-45%) translateY(0) scaleX(0.95)} }
@keyframes dcl-claw { 0%{transform:rotate(-10deg) translate(0,0)} 50%{transform:rotate(5deg) translate(3px,-5px)} 100%{transform:rotate(-10deg) translate(-2px,0)} }
@keyframes dcl-blood { 0%{opacity:0.8;transform:translateY(0) scale(1)} 50%{opacity:1;transform:translateY(-8px) scale(1.2)} 100%{opacity:0.6;transform:translateY(0) scale(0.9)} }
@keyframes dcl-smoke { 0%{transform:translateX(0) translateY(0) scale(1);opacity:0} 50%{transform:translateX(30px) translateY(-20px) scale(1.5);opacity:0.4} 100%{transform:translateX(60px) translateY(-10px) scale(2);opacity:0} }

/* dragon-filthy-smoke */
.scn-dragon-filthy-smoke { 
  background: linear-gradient(180deg, #b89a4a 0%, #7a5a2a 40%, #3a2a1a 70%, #0a0500 100%),
              radial-gradient(ellipse at 50% 30%, #d4b06a 0%, transparent 70%);
}
.scn-dragon-filthy-smoke .sky { position:absolute; inset:0; background: linear-gradient(180deg, #c8a060 0%, transparent 100%); animation: dfi-sky 20s ease-in-out infinite alternate; }
.scn-dragon-filthy-smoke .sun-ray { position:absolute; top:0; left:20%; width:10px; height:200%; background: linear-gradient(180deg, #ffe080 0%, transparent 100%); transform:rotate(15deg); opacity:0.3; animation: dfi-ray 12s ease-in-out infinite; }
.scn-dragon-filthy-smoke .gorge-dark { position:absolute; left:50%; bottom:20%; width:140px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at center, #0a0500 0%, #1a1008 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px #0a0500; animation: dfi-gorge 5s ease-in-out infinite; }
.scn-dragon-filthy-smoke .dragon-maw { position:absolute; left:50%; bottom:25%; width:180px; height:80px; transform:translateX(-50%); background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 20% 30% 70% / 60% 40% 60% 40%; animation: dfi-maw 4s ease-in-out infinite alternate; }
.scn-dragon-filthy-smoke .blood-gobbet { position:absolute; left:40%; bottom:30%; width:10px; height:8px; background: radial-gradient(circle, #c8553d 0%, #702243 100%); border-radius:50%; box-shadow: 0 0 8px #c8553d; animation: dfi-blood 3s ease-in-out infinite; }
.scn-dragon-filthy-smoke .smoke-cloud { position:absolute; left:30%; bottom:50%; width:120px; height:80px; background: rgba(140,120,100,0.2); filter: blur(12px); border-radius:50%; animation: dfi-smoke1 15s linear infinite; }
.scn-dragon-filthy-smoke .smoke-wisp { position:absolute; left:55%; bottom:45%; width:60px; height:40px; background: rgba(200,180,160,0.15); filter: blur(8px); border-radius:50%; animation: dfi-smoke2 20s linear infinite reverse; }
@keyframes dfi-sky { 0%{opacity:0.8;transform:translateY(0)} 50%{opacity:1;transform:translateY(5px)} 100%{opacity:0.7;transform:translateY(-5px)} }
@keyframes dfi-ray { 0%{opacity:0.2;transform:rotate(15deg) scale(1)} 50%{opacity:0.4;transform:rotate(20deg) scale(1.1)} 100%{opacity:0.3;transform:rotate(10deg) scale(0.9)} }
@keyframes dfi-gorge { 0%{transform:translateX(-50%) scale(0.9)} 50%{transform:translateX(-50%) scale(1.1)} 100%{transform:translateX(-50%) scale(0.95)} }
@keyframes dfi-maw { 0%{transform:translateX(-50%) rotate(0deg)} 50%{transform:translateX(-50%) rotate(3deg)} 100%{transform:translateX(-50%) rotate(-2deg)} }
@keyframes dfi-blood { 0%{transform:translateY(0) scale(1);opacity:0.8} 50%{transform:translateY(-10px) scale(1.3);opacity:1} 100%{transform:translateY(5px) scale(0.8);opacity:0.5} }
@keyframes dfi-smoke1 { 0%{transform:translateX(0) scale(1);opacity:0} 50%{transform:translateX(-30px) scale(1.5);opacity:0.3} 100%{transform:translateX(30px) scale(2);opacity:0} }
@keyframes dfi-smoke2 { 0%{transform:translateX(0) scale(1);opacity:0} 50%{transform:translateX(40px) scale(1.2);opacity:0.25} 100%{transform:translateX(-40px) scale(0.8);opacity:0} }

/* dragon-blazing-eyes */
.scn-dragon-blazing-eyes { 
  background: linear-gradient(180deg, #d4a050 0%, #5a3a1a 50%, #0a0500 100%),
              radial-gradient(ellipse at 30% 30%, #f0c060 0%, transparent 60%);
}
.scn-dragon-blazing-eyes .sky { position:absolute; inset:0; background: linear-gradient(135deg, #c8a060 0%, #8a6a3a 50%, #3a2a1a 100%); animation: dbe-sky 18s ease-in-out infinite alternate; }
.scn-dragon-blazing-eyes .dragon-head { position:absolute; left:50%; top:50%; width:220px; height:180px; transform:translate(-50%,-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%); border-radius:40% 60% 30% 70% / 50% 50% 50% 50%; box-shadow: inset 0 0 40px #0a0500; animation: dbe-head 7s ease-in-out infinite; }
.scn-dragon-blazing-eyes .eye-left { position:absolute; left:30%; top:40%; width:30px; height:40px; background: radial-gradient(circle, #ffe080 0%, #ff8040 60%, #8a2000 100%); border-radius:50%; box-shadow: 0 0 30px #ff8040, 0 0 60px #ff4000; animation: dbe-eye 3s ease-in-out infinite alternate; }
.scn-dragon-blazing-eyes .eye-right { position:absolute; right:30%; top:40%; width:30px; height:40px; background: radial-gradient(circle, #ffe080 0%, #ff8040 60%, #8a2000 100%); border-radius:50%; box-shadow: 0 0 30px #ff8040, 0 0 60px #ff4000; animation: dbe-eye 3s ease-in-out infinite alternate-reverse; }
.scn-dragon-blazing-eyes .flame-left { position:absolute; left:25%; top:35%; width:40px; height:60px; background: radial-gradient(ellipse at bottom, #ffc060 0%, #ff6000 60%, transparent 100%); border-radius:50%; filter: blur(4px); transform-origin: bottom; animation: dbe-flame 2s ease-in-out infinite; }
.scn-dragon-blazing-eyes .flame-right { position:absolute; right:25%; top:35%; width:40px; height:60px; background: radial-gradient(ellipse at bottom, #ffc060 0%, #ff6000 60%, transparent 100%); border-radius:50%; filter: blur(4px); transform-origin: bottom; animation: dbe-flame 2s ease-in-out infinite reverse; }
.scn-dragon-blazing-eyes .spark-a { position:absolute; left:10%; top:20%; width:6px; height:6px; background:#ffd080; border-radius:50%; box-shadow: 0 0 10px #ffd080; animation: dbe-spark 4s linear infinite; }
.scn-dragon-blazing-eyes .spark-b { position:absolute; right:15%; top:15%; width:5px; height:5px; background:#ffc060; border-radius:50%; box-shadow: 0 0 8px #ffc060; animation: dbe-spark 5s linear infinite reverse; animation-delay: -1.5s; }
.scn-dragon-blazing-eyes .spark-c { position:absolute; left:50%; top:10%; width:4px; height:4px; background:#ffb040; border-radius:50%; box-shadow: 0 0 6px #ffb040; animation: dbe-spark 6s linear infinite; animation-delay: -3s; }
@keyframes dbe-sky { 0%{opacity:0.8;filter:brightness(0.9)} 50%{opacity:1;filter:brightness(1.1)} 100%{opacity:0.7;filter:brightness(0.8)} }
@keyframes dbe-head { 0%{transform:translate(-50%,-50%) rotate(-2deg)} 50%{transform:translate(-50%,-50%) rotate(3deg)} 100%{transform:translate(-50%,-50%) rotate(0deg)} }
@keyframes dbe-eye { 0%{transform:scale(1) rotate(0deg);box-shadow:0 0 20px #ff8040} 50%{transform:scale(1.2) rotate(5deg);box-shadow:0 0 40px #ff4000,0 0 80px #ff2000} 100%{transform:scale(0.9) rotate(-5deg);box-shadow:0 0 15px #ff8040} }
@keyframes dbe-flame { 0%{transform:scaleY(0.8) rotate(-10deg);opacity:0.8} 50%{transform:scaleY(1.3) rotate(5deg);opacity:1} 100%{transform:scaleY(0.9) rotate(-5deg);opacity:0.7} }
@keyframes dbe-spark { 0%{transform:translate(0,0) scale(1);opacity:1} 25%{transform:translate(20px,-20px) scale(0.5);opacity:0.7} 50%{transform:translate(40px,10px) scale(0.2);opacity:0.3} 75%{transform:translate(10px,30px) scale(0.8);opacity:0.6} 100%{transform:translate(-10px,0) scale(1);opacity:0} }

/* dragon-charge-begin */
.scn-dragon-charge-begin { 
  background: linear-gradient(180deg, #e8c860 0%, #b09040 40%, #6a4a2a 70%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 0%, #f0d868 0%, transparent 60%);
}
.scn-dragon-charge-begin .sky { position:absolute; inset:0; background: linear-gradient(180deg, #d4b06a 0%, transparent 100%); animation: dch-sky 20s ease-in-out infinite alternate; }
.scn-dragon-charge-begin .sun-burst { position:absolute; top:5%; left:80%; width:100px; height:100px; background: radial-gradient(circle, #fff0a0 0%, #ffd060 40%, transparent 80%); border-radius:50%; filter: blur(20px); animation: dch-sun 10s ease-in-out infinite; }
.scn-dragon-charge-begin .dragon-body { position:absolute; left:20%; bottom:10%; width:200px; height:120px; background: linear-gradient(135deg, #2a1a0a 0%, #1a1008 100%); border-radius:50% 30% 40% 60% / 30% 50% 50% 30%; box-shadow: 0 0 30px rgba(0,0,0,0.5); transform-origin: left center; animation: dch-body 6s ease-in-out infinite; }
.scn-dragon-charge-begin .dragon-crest { position:absolute; left:15%; bottom:40%; width:60px; height:80px; background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 80% 20% 40% / 60% 80% 20% 40%; transform-origin: bottom; animation: dch-crest 4s ease-in-out infinite; }
.scn-dragon-charge-begin .dragon-scale { position:absolute; left:30%; bottom:15%; width:40px; height:30px; background: radial-gradient(ellipse at 30% 30%, #4a3a2a 0%, #2a1a0a 100%); border-radius:50%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5); animation: dch-scale 5s ease-in-out infinite; }
.scn-dragon-charge-begin .shadow { position:absolute; left:10%; bottom:0; width:250px; height:20px; background: radial-gradient(ellipse at center, rgba(0,0,0,0.4) 0%, transparent 100%); animation: dch-shadow 7s ease-in-out infinite; }
.scn-dragon-charge-begin .grass-blade { position:absolute; left:35%; bottom:0; width:4px; height:30px; background: linear-gradient(180deg, #6a8a3a 0%, #4a6a2a 100%); border-radius:50% 50% 0 0; transform-origin: bottom; animation: dch-grass 3s ease-in-out infinite; }
@keyframes dch-sky { 0%{opacity:0.8;filter:contrast(0.9)} 50%{opacity:1;filter:contrast(1.1)} 100%{opacity:0.7;filter:contrast(0.8)} }
@keyframes dch-sun { 0%{transform:scale(0.8);opacity:0.6} 50%{transform:scale(1.2);opacity:1} 100%{transform:scale(0.9);opacity:0.8} }
@keyframes dch-body { 0%{transform:translateX(0) rotate(0deg)} 50%{transform:translateX(10px) rotate(-3deg)} 100%{transform:translateX(-5px) rotate(2deg)} }
@keyframes dch-crest { 0%{transform:rotate(-5deg) scaleY(1)} 50%{transform:rotate(5deg) scaleY(1.1)} 100%{transform:rotate(-2deg) scaleY(0.95)} }
@keyframes dch-scale { 0%{transform:scale(1) rotate(0deg)} 50%{transform:scale(1.2) rotate(10deg)} 100%{transform:scale(0.9) rotate(-5deg)} }
@keyframes dch-shadow { 0%{transform:scaleX(0.8);opacity:0.5} 50%{transform:scaleX(1.1);opacity:0.7} 100%{transform:scaleX(0.9);opacity:0.6} }
@keyframes dch-grass { 0%{transform:rotate(0deg) scaleY(1)} 50%{transform:rotate(15deg) scaleY(1.2)} 100%{transform:rotate(-10deg) scaleY(0.9)} }

/* una-laments-to-lion */
.scn-una-laments-to-lion {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 40%, #DAA520 100%), radial-gradient(ellipse at 70% 30%, #FFD700 0%, transparent 60%);
}
.scn-una-laments-to-lion .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 60%, transparent 100%);
  animation: u2l-sky 15s ease-in-out infinite alternate;
}
.scn-una-laments-to-lion .sun {
  position: absolute; top: 8%; right: 20%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #FFF8DC 0%, #FFD700 60%, #FFA500 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.4);
  animation: u2l-sun 20s ease-in-out infinite alternate;
}
.scn-una-laments-to-lion .hills {
  position: absolute; bottom: 35%; left: 0; right: 0;
  height: 25%;
  background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,20,0,0.5);
  animation: u2l-hills 18s ease-in-out infinite alternate;
}
.scn-una-laments-to-lion .meadow {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #7CFC00 0%, #228B22 70%, #006400 100%);
  border-radius: 0;
  animation: u2l-meadow 12s ease-in-out infinite alternate;
}
.scn-una-laments-to-lion .woman {
  position: absolute; bottom: 28%; left: 25%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #8B4513 0%, #A0522D 50%, #5C3A21 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: u2l-woman 4s ease-in-out infinite;
}
.scn-una-laments-to-lion .lion {
  position: absolute; bottom: 25%; right: 30%;
  width: 60px; height: 35px;
  background: linear-gradient(180deg, #DAA520 0%, #B8860B 70%, #8B6508 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: u2l-lion 6s ease-in-out infinite alternate;
}
.scn-una-laments-to-lion .tears {
  position: absolute; bottom: 42%; left: 28%;
  width: 4px; height: 8px;
  background: radial-gradient(circle, #B0E0E6 0%, #87CEEB 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(135,206,235,0.5);
  animation: u2l-tears 1.5s ease-in-out infinite;
}
.scn-una-laments-to-lion .grass-blade {
  position: absolute; bottom: 20%; left: 40%;
  width: 2px; height: 30px;
  background: linear-gradient(180deg, #32CD32 0%, #228B22 100%);
  transform: rotate(-10deg);
  animation: u2l-grass 3s ease-in-out infinite alternate;
}
@keyframes u2l-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes u2l-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.03) } 100% { transform: translateY(0) scale(1) } }
@keyframes u2l-hills { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.02) translateY(-2px) } 100% { transform: scaleX(1) translateY(0) } }
@keyframes u2l-meadow { 0% { background-position: 0% 0% } 50% { background-position: 0% 5% } 100% { background-position: 0% 0% } }
@keyframes u2l-woman { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes u2l-lion { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes u2l-tears { 0% { transform: translateY(0) opacity:1 } 50% { transform: translateY(8px) opacity:0.7 } 100% { transform: translateY(16px) opacity:0 } }
@keyframes u2l-grass { 0% { transform: rotate(-12deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-12deg) } }

/* lion-follows-her */
.scn-lion-follows-her {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 50%, #DEB887 100%), radial-gradient(ellipse at 60% 20%, #FFD700 0%, transparent 70%);
}
.scn-lion-follows-her .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 60%, transparent 100%);
  animation: lfh-sky 20s ease-in-out infinite alternate;
}
.scn-lion-follows-her .sun {
  position: absolute; top: 5%; left: 15%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #FFF8DC 0%, #FFD700 60%, #FFA500 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,215,0,0.3);
  animation: lfh-sun 25s ease-in-out infinite alternate;
}
.scn-lion-follows-her .path {
  position: absolute; bottom: 20%; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #D2B48C 0%, #C4A882 50%, #A0866B 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: lfh-path 15s ease-in-out infinite alternate;
}
.scn-lion-follows-her .horse {
  position: absolute; bottom: 28%; left: 20%;
  width: 70px; height: 50px;
  background: linear-gradient(180deg, #F5F5DC 0%, #E8E8D0 60%, #D3D3B8 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: lfh-horse 5s ease-in-out infinite;
}
.scn-lion-follows-her .rider {
  position: absolute; bottom: 45%; left: 23%;
  width: 18px; height: 30px;
  background: linear-gradient(180deg, #6B3A2A 0%, #4A2A1A 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lfh-rider 5s ease-in-out infinite;
}
.scn-lion-follows-her .lion {
  position: absolute; bottom: 24%; right: 25%;
  width: 55px; height: 30px;
  background: linear-gradient(180deg, #DAA520 0%, #B8860B 70%, #8B6508 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: lfh-lion 6s ease-in-out infinite alternate;
}
.scn-lion-follows-her .dust {
  position: absolute; bottom: 24%; left: 25%;
  width: 20px; height: 10px;
  background: radial-gradient(circle, rgba(210,180,140,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: lfh-dust 2s ease-in-out infinite;
}
.scn-lion-follows-her .tree {
  position: absolute; bottom: 20%; right: 10%;
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3A21 100%);
  border-radius: 10px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: lfh-tree 12s ease-in-out infinite alternate;
}
@keyframes lfh-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lfh-sun { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes lfh-path { 0% { background-position: 0% 0% } 50% { background-position: 2% 0% } 100% { background-position: 0% 0% } }
@keyframes lfh-horse { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lfh-rider { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes lfh-lion { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes lfh-dust { 0% { transform: scale(1) opacity:0.6 } 50% { transform: scale(1.5) opacity:0.3 } 100% { transform: scale(1) opacity:0.6 } }
@keyframes lfh-tree { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

/* lion-guards-her-sleep */
.scn-lion-guards-her-sleep {
  background: linear-gradient(180deg, #191970 0%, #2F4F8F 40%, #4682B4 100%), radial-gradient(ellipse at 50% 30%, #B0C4DE 0%, transparent 70%);
}
.scn-lion-guards-her-sleep .moon {
  position: absolute; top: 8%; right: 20%;
  width: 55px; height: 55px;
  background: radial-gradient(circle, #F0F8FF 0%, #E6E6FA 60%, #B0C4DE 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(176,196,222,0.4);
  animation: lgs-moon 20s ease-in-out infinite alternate;
}
.scn-lion-guards-her-sleep .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #191970 0%, #2F4F8F 60%, transparent 100%);
  animation: lgs-sky 15s ease-in-out infinite alternate;
}
.scn-lion-guards-her-sleep .tree {
  position: absolute; bottom: 25%; left: 15%;
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #3B2F1E 0%, #2A1E12 100%);
  border-radius: 10px 10px 5px 5px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: lgs-tree 12s ease-in-out infinite alternate;
}
.scn-lion-guards-her-sleep .ground {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 50%;
  background: linear-gradient(180deg, #2E4B3E 0%, #1C2F26 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: lgs-ground 18s ease-in-out infinite alternate;
}
.scn-lion-guards-her-sleep .sleeping-woman {
  position: absolute; bottom: 18%; left: 28%;
  width: 40px; height: 25px;
  background: linear-gradient(180deg, #6B3A2A 0%, #4A2A1A 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: lgs-sleep 4s ease-in-out infinite alternate;
}
.scn-lion-guards-her-sleep .lion {
  position: absolute; bottom: 16%; right: 20%;
  width: 70px; height: 40px;
  background: linear-gradient(180deg, #696969 0%, #505050 70%, #383838 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: lgs-lion 6s ease-in-out infinite alternate;
}
.scn-lion-guards-her-sleep .stars {
  position: absolute; top: 5%; left: 10%;
  width: 4px; height: 4px;
  background: rgba(255,255,255,0.8);
  border-radius: 50%;
  box-shadow: 10px 20px rgba(255,255,255,0.6), -30px 40px rgba(255,255,255,0.4), 50px 10px rgba(255,255,255,0.7);
  animation: lgs-stars 3s ease-in-out infinite alternate;
}
@keyframes lgs-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes lgs-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lgs-tree { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lgs-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes lgs-sleep { 0% { transform: rotate(-4deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-2px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes lgs-lion { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lgs-stars { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }

/* una-meets-abessa */
.scn-una-meets-abessa {
  background: linear-gradient(180deg, #FF7F50 0%, #D2691E 40%, #8B4513 100%), radial-gradient(ellipse at 40% 60%, #FFA07A 0%, transparent 60%);
}
.scn-una-meets-abessa .dusk-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #FF7F50 0%, #D2691E 40%, #8B4513 100%);
  animation: uma-sky 15s ease-in-out infinite alternate;
}
.scn-una-meets-abessa .cottage {
  position: absolute; bottom: 25%; left: 10%;
  width: 100px; height: 60px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3A21 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: uma-cottage 10s ease-in-out infinite alternate;
}
.scn-una-meets-abessa .door {
  position: absolute; bottom: 25%; left: 25%;
  width: 20px; height: 35px;
  background: linear-gradient(180deg, #3E2723 0%, #1B0F0A 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.8);
  animation: uma-door 8s ease-in-out infinite alternate;
}
.scn-una-meets-abessa .ground {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #8B7355 0%, #6B5B3A 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.4);
  animation: uma-ground 14s ease-in-out infinite alternate;
}
.scn-una-meets-abessa .woman {
  position: absolute; bottom: 28%; left: 40%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #6B3A2A 0%, #4A2A1A 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uma-woman 4s ease-in-out infinite;
}
.scn-una-meets-abessa .wench {
  position: absolute; bottom: 28%; right: 20%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #8B7355 0%, #6B5B3A 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: scaleX(-1); /* facing left */
  animation: uma-wench 3s ease-in-out infinite alternate;
}
.scn-una-meets-abessa .pitcher {
  position: absolute; bottom: 35%; right: 25%;
  width: 12px; height: 18px;
  background: linear-gradient(180deg, #A0522D 0%, #5C3A21 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform: rotate(-30deg);
  animation: uma-pitcher 1s ease-in-out infinite;
}
.scn-una-meets-abessa .water {
  position: absolute; bottom: 28%; right: 22%;
  width: 15px; height: 10px;
  background: radial-gradient(circle, #87CEEB 0%, #4682B4 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: uma-water 2s ease-in-out infinite alternate;
}
@keyframes uma-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes uma-cottage { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes uma-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes uma-ground { 0% { background-position: 0% 0% } 50% { background-position: 1% 0% } 100% { background-position: 0% 0% } }
@keyframes uma-woman { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes uma-wench { 0% { transform: translateY(0) scaleX(-1) } 50% { transform: translateY(-3px) scaleX(-1) } 100% { transform: translateY(0) scaleX(-1) } }
@keyframes uma-pitcher { 0% { transform: rotate(-25deg) } 50% { transform: rotate(-35deg) } 100% { transform: rotate(-25deg) } }
@keyframes uma-water { 0% { transform: scale(1) opacity:0.7 } 50% { transform: scale(1.3) opacity:0.4 } 100% { transform: scale(1) opacity:0.7 } }

.scn-kirkrapine-comes { background: linear-gradient(180deg, #0b0b1e 0%, #1a1a3e 50%, #2a1a2e 100%), radial-gradient(ellipse at 50% 0%, #2a2a5e 0%, transparent 70%); }
.scn-kirkrapine-comes .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 100%); animation: kc-sky 15s ease-in-out infinite alternate; }
.scn-kirkrapine-comes .stars-1 { position:absolute; top:8%; left:5%; width:3px; height:3px; background:#fff; border-radius:50%; box-shadow: 8px 10px 0 #fff, 20px -4px 0 #fff, 45px 12px 0 #fff, 70px -8px 0 #fff, 90px 5px 0 #fff; animation: kc-stars1 4s ease-in-out infinite alternate; }
.scn-kirkrapine-comes .stars-2 { position:absolute; top:15%; right:12%; width:2px; height:2px; background:#fff; border-radius:50%; box-shadow: -10px 8px 0 #fff, -30px -6px 0 #fff, -60px 14px 0 #fff; animation: kc-stars2 5s ease-in-out infinite alternate-reverse; }
.scn-kirkrapine-comes .moon { position:absolute; top:12%; right:20%; width:40px; height:40px; background: radial-gradient(circle at 60% 40%, #d0c0a0 0%, #b09870 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(176,152,112,.3); animation: kc-moon 20s ease-in-out infinite; }
.scn-kirkrapine-comes .door { position:absolute; bottom:32%; left:50%; width:60px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:4% 4% 2% 2%; box-shadow: inset 0 0 10px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.4); animation: kc-door 3s ease-in-out infinite; }
.scn-kirkrapine-comes .figure { position:absolute; bottom:28%; left:38%; 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: kc-walk 6s ease-in-out infinite; }
.scn-kirkrapine-comes .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 30% 40% 0 0; }
.scn-kirkrapine-comes .cloud { position:absolute; top:22%; left:10%; width:80px; height:18px; background: rgba(255,255,255,.08); border-radius:50%; filter: blur(4px); animation: kc-cloud 40s linear infinite; }
@keyframes kc-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes kc-stars1 { 0% { opacity:.4 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes kc-stars2 { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes kc-moon { 0% { transform: translate(0,0) scale(1); box-shadow: 0 0 20px 8px rgba(176,152,112,.3); } 50% { transform: translate(2px,-2px) scale(1.02); box-shadow: 0 0 28px 12px rgba(176,152,112,.4); } 100% { transform: translate(0,0) scale(1); } }
@keyframes kc-door { 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 kc-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(20px) translateY(0) rotate(0deg); } }
@keyframes kc-cloud { 0% { transform: translateX(-90px); } 100% { transform: translateX(120vw); } }

.scn-kirkrapines-crimes { background: linear-gradient(180deg, #120e1a 0%, #1a1520 50%, #201a26 100%), radial-gradient(ellipse at 40% 60%, #3a2a3a 0%, transparent 70%); }
.scn-kirkrapines-crimes .walls { position:absolute; inset:0; background: linear-gradient(135deg, #1a1520 0%, #2a2530 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-kirkrapines-crimes .altar { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:120px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: kc2-altar 20s ease-in-out infinite alternate; }
.scn-kirkrapines-crimes .cross { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:4px; height:60px; background: #3a2a1a; border-radius:2px; box-shadow: 4px 0 0 #3a2a1a; animation: kc2-cross 10s ease-in-out infinite; }
.scn-kirkrapines-crimes .candle { position:absolute; bottom:22%; left:35%; width:8px; height:18px; background: linear-gradient(180deg, #d0a060 0%, #a08040 100%); border-radius:2px; box-shadow: 0 -8px 16px 4px rgba(208,160,96,.4); animation: kc2-candle 4s ease-in-out infinite alternate; }
.scn-kirkrapines-crimes .bag { position:absolute; bottom:16%; right:25%; width:30px; height:20px; background: #3a2a1a; border-radius:20% 20% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: kc2-bag 6s ease-in-out infinite; }
.scn-kirkrapines-crimes .figure { position:absolute; bottom:14%; left:25%; width:22px; height:48px; background: linear-gradient(180deg, #1a1520 0%, #0a0a15 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kc2-figure 8s ease-in-out infinite; }
.scn-kirkrapines-crimes .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1520 0%, #0a0a15 100%); }
@keyframes kc2-altar { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes kc2-cross { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes kc2-candle { 0% { box-shadow: 0 -8px 16px 4px rgba(208,160,96,.4); height:18px; } 50% { box-shadow: 0 -10px 20px 6px rgba(208,160,96,.6); height:20px; } 100% { box-shadow: 0 -8px 16px 4px rgba(208,160,96,.4); height:18px; } }
@keyframes kc2-bag { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes kc2-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }

.scn-kirkrapine-and-abessa { background: linear-gradient(180deg, #1a121a 0%, #2a1a1a 50%, #1a121a 100%), radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, transparent 80%); }
.scn-kirkrapine-and-abessa .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #1a121a 0%, #2a1a1a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-kirkrapine-and-abessa .table { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:100px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-kirkrapine-and-abessa .offerings { position:absolute; bottom:22%; left:45%; width:40px; height:30px; background: #4a3a2a; border-radius:10% 10% 20% 20%; box-shadow: 0 0 8px rgba(255,200,100,.1); animation: ka-offer 12s ease-in-out infinite alternate; }
.scn-kirkrapine-and-abessa .fire { position:absolute; bottom:10%; left:20%; width:20px; height:30px; background: radial-gradient(circle at 50% 100%, #e09030 0%, #a05010 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(160,80,16,.4); animation: ka-fire 4s ease-in-out infinite alternate; }
.scn-kirkrapine-and-abessa .man { position:absolute; bottom:24%; left:55%; width:24px; height:44px; background: linear-gradient(180deg, #1a121a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ka-man 6s ease-in-out infinite; }
.scn-kirkrapine-and-abessa .woman { position:absolute; bottom:24%; 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: ka-woman 7s ease-in-out infinite; }
.scn-kirkrapine-and-abessa .coins { position:absolute; bottom:18%; left:25%; width:30px; height:10px; background: radial-gradient(circle, #c0a040 0%, #806020 100%); border-radius:20%; box-shadow: 0 0 6px 2px rgba(192,160,64,.3); animation: ka-coins 8s ease-in-out infinite; }
@keyframes ka-offer { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes ka-fire { 0% { transform: scale(1) rotate(-5deg); opacity:.8; } 50% { transform: scale(1.1) rotate(5deg); opacity:1; } 100% { transform: scale(1) rotate(-5deg); opacity:.8; } }
@keyframes ka-man { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ka-woman { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ka-coins { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }

.scn-lion-kills-kirkrapine { background: linear-gradient(180deg, #0a0a1e 0%, #1a1a2e 40%, #2a1a2e 100%), radial-gradient(ellipse at 70% 30%, #3a1a2a 0%, transparent 70%); }
.scn-lion-kills-kirkrapine .bg-night { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a1e 0%, #1a1a2e 100%); }
.scn-lion-kills-kirkrapine .door-broken { position:absolute; bottom:20%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:4% 4% 2% 2%; transform-origin: left center; animation: lk-door 2s ease-in-out infinite; }
.scn-lion-kills-kirkrapine .lion { position:absolute; bottom:25%; left:50%; width:70px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:40% 40% 50% 50% / 50% 50% 40% 40%; clip-path: polygon(0% 20%, 20% 0%, 50% 10%, 80% 0%, 100% 20%, 90% 50%, 100% 80%, 70% 100%, 50% 80%, 30% 100%, 0% 80%, 10% 50%); animation: lk-lion 1.5s ease-in-out infinite; }
.scn-lion-kills-kirkrapine .figure { position:absolute; bottom:20%; left:35%; width:24px; height:45px; background: linear-gradient(180deg, #1a1520 0%, #0a0a15 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lk-figure 2s ease-in-out infinite; }
.scn-lion-kills-kirkrapine .blood { position:absolute; bottom:15%; left:30%; width:30px; height:12px; background: radial-gradient(ellipse, #6a2a1a 0%, transparent 70%); border-radius:50%; animation: lk-blood 3s ease-in-out infinite; }
.scn-lion-kills-kirkrapine .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); }
.scn-lion-kills-kirkrapine .wall { position:absolute; bottom:10%; left:10%; width:40%; height:50%; background: linear-gradient(180deg, #2a202a 0%, #1a101a 100%); border-radius:10% 10% 0 0; }
@keyframes lk-door { 0% { transform: rotate(0deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes lk-lion { 0% { transform: translate(0,0) scale(1) rotate(0deg); } 25% { transform: translate(10px,-10px) scale(1.1) rotate(5deg); } 50% { transform: translate(0,0) scale(1) rotate(0deg); } 75% { transform: translate(-10px,-5px) scale(1.05) rotate(-5deg); } 100% { transform: translate(0,0) scale(1) rotate(0deg); } }
@keyframes lk-figure { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(10px,-5px) rotate(10deg); } 50% { transform: translate(15px,-10px) rotate(20deg); } 75% { transform: translate(10px,-5px) rotate(10deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes lk-blood { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.8); opacity:.6; } }

.scn-dawn-second-day {
  background:
    linear-gradient(180deg, #fbe9d7 0%, #e8c9a0 30%, #c8a87a 60%, #a8835a 100%),
    radial-gradient(ellipse at 50% 0%, #ffe4b5 0%, transparent 60%);
}
.scn-dawn-second-day .sky-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fdd9b5 0%, #fce4c4 40%, #f7d9b0 70%, transparent 100%);
  animation: ds2-sky 20s ease-in-out infinite alternate;
}
.scn-dawn-second-day .sunrise-glow {
  position: absolute; top: 25%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff5e0 0%, #ffd59a 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ds2-sun 15s ease-in-out infinite alternate;
}
.scn-dawn-second-day .hills-dawn {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 50%, #5a4a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: ds2-hills 25s ease-in-out infinite alternate;
}
.scn-dawn-second-day .path-dawn {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #b09870 0%, #907858 100%);
  border-radius: 50% 50% 10% 10%;
  opacity: 0.6;
  animation: ds2-path 12s ease-in-out infinite alternate;
}
.scn-dawn-second-day .virgin-silhouette {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px rgba(0,0,0,0.3);
  animation: ds2-figure 8s ease-in-out infinite alternate;
}
.scn-dawn-second-day .tree-dawn {
  position: absolute; bottom: 30%; right: 15%; width: 15px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-dawn-second-day .tree-dawn::before {
  content: ''; position: absolute; bottom: 80%; left: -10px; width: 35px; height: 25px;
  background: #5a6a3a;
  border-radius: 50%;
  filter: blur(3px);
}
@keyframes ds2-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ds2-sun { 0% { transform: translateX(-50%) scale(0.9); opacity:0.7; } 50% { transform: translateX(-50%) scale(1.1); opacity:1; } 100% { transform: translateX(-50%) scale(1); opacity:0.85; } }
@keyframes ds2-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ds2-path { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes ds2-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }

.scn-knight-rises-renewed {
  background:
    linear-gradient(180deg, #ffe0b0 0%, #ffc080 30%, #e8a060 60%, #b07040 100%),
    radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 60%);
}
.scn-knight-rises-renewed .sky-dawn-kr {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #ffd9a0 0%, #ffe8c0 40%, transparent 100%);
  animation: kr3-sky 18s ease-in-out infinite alternate;
}
.scn-knight-rises-renewed .sunrise-kr {
  position: absolute; top: 15%; left: 45%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd680 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: kr3-sun 12s ease-in-out infinite alternate;
}
.scn-knight-rises-renewed .well-stone {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 10%;
  box-shadow: 0 -5px 15px rgba(0,0,0,0.4);
}
.scn-knight-rises-renewed .water-splash {
  position: absolute; bottom: 22%; left: 50%; width: 70px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #c8e4f0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: kr3-splash 3s ease-in-out infinite;
}
.scn-knight-rises-renewed .knight-rise {
  position: absolute; bottom: 30%; left: 50%; width: 22px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px rgba(200,160,112,0.6);
  animation: kr3-rise 5s ease-in-out infinite;
}
.scn-knight-rises-renewed .feathers-up {
  position: absolute; bottom: 50%; left: 45%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-30deg);
  animation: kr3-feather 6s ease-in-out infinite;
}
.scn-knight-rises-renewed .feathers-up-2 {
  position: absolute; bottom: 50%; left: 55%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #e8d0b0 0%, #c8a880 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(25deg);
  animation: kr3-feather 6s ease-in-out infinite reverse;
}
@keyframes kr3-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes kr3-sun { 0% { transform: scale(0.9); opacity:0.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:0.85; } }
@keyframes kr3-splash { 0% { opacity:0.3; transform: translateX(-50%) scaleY(0.5); } 50% { opacity:0.7; transform: translateX(-50%) scaleY(1.2); } 100% { opacity:0.3; transform: translateX(-50%) scaleY(0.5); } }
@keyframes kr3-rise { 0% { transform: translateX(-50%) translateY(20px) scale(0.8); opacity:0.6; } 50% { transform: translateX(-50%) translateY(0) scale(1); opacity:1; } 100% { transform: translateX(-50%) translateY(20px) scale(0.8); opacity:0.6; } }
@keyframes kr3-feather { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-10px); } 100% { transform: rotate(-30deg) translateY(0); } }

.scn-dragon-amazed {
  background:
    linear-gradient(180deg, #f5d0a0 0%, #e0b080 40%, #c08050 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-dragon-amazed .sky-dragon {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffd9a0 0%, #ffe0b0 50%, transparent 100%);
  animation: da4-sky 10s ease-in-out infinite alternate;
}
.scn-dragon-amazed .sun-harsh {
  position: absolute; top: 20%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4e0 0%, #ffd060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: da4-sun 8s ease-in-out infinite alternate;
}
.scn-dragon-amazed .dragon-head {
  position: absolute; bottom: 30%; left: 20%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 40% 20% 30% 50% / 50% 30% 40% 50%;
  transform: rotate(-10deg);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  animation: da4-head 3s ease-in-out infinite alternate;
}
.scn-dragon-amazed .dragon-crest {
  position: absolute; bottom: 50%; left: 22%; width: 25px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a1a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(15deg);
  animation: da4-crest 2s ease-in-out infinite alternate;
}
.scn-dragon-amazed .knight-strike {
  position: absolute; bottom: 35%; right: 25%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(20deg);
  animation: da4-knight 1.5s ease-in-out infinite;
}
.scn-dragon-amazed .sword-slash {
  position: absolute; bottom: 50%; right: 30%; width: 5px; height: 80px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  transform: rotate(45deg);
  border-radius: 2px;
  box-shadow: 0 0 10px #e0c080;
  animation: da4-sword 1.5s ease-in-out infinite;
}
.scn-dragon-amazed .impact-flash {
  position: absolute; bottom: 45%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd060 30%, transparent 60%);
  border-radius: 50%;
  filter: blur(5px);
  animation: da4-flash 0.8s ease-in-out infinite;
}
.scn-dragon-amazed .shadow-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(30,20,10,0.6) 100%);
}
@keyframes da4-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes da4-sun { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(1); opacity:0.8; } }
@keyframes da4-head { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes da4-crest { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(20deg) scale(1.1); } 100% { transform: rotate(15deg) scale(1); } }
@keyframes da4-knight { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-5px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes da4-sword { 0% { transform: rotate(45deg) translateY(0); } 50% { transform: rotate(35deg) translateY(-8px); } 100% { transform: rotate(45deg) translateY(0); } }
@keyframes da4-flash { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0; transform: scale(0.5); } }

.scn-knight-baptized-blade {
  background:
    linear-gradient(180deg, #f8e8c0 0%, #e0c890 30%, #c0a070 60%, #907050 100%),
    radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 70%);
}
.scn-knight-baptized-blade .sky-baptism {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffd9a0 0%, #ffe8c0 50%, transparent 100%);
  animation: kb5-sky 16s ease-in-out infinite alternate;
}
.scn-knight-baptized-blade .sun-rays {
  position: absolute; top: 10%; left: 40%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd080 30%, transparent 60%);
  border-radius: 50%;
  filter: blur(10px);
  animation: kb5-sun 14s ease-in-out infinite alternate;
}
.scn-knight-baptized-blade .holy-spring {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 35px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a0c8d0 0%, #70a0b0 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: inset 0 5px 20px rgba(0,0,0,0.2);
  animation: kb5-spring 10s ease-in-out infinite alternate;
}
.scn-knight-baptized-blade .water-drops {
  position: absolute; bottom: 30%; left: 45%; width: 6px; height: 12px;
  background: radial-gradient(circle, #c8e8f0 0%, #90c0d0 100%);
  border-radius: 50%;
  animation: kb5-drop 3s ease-in-out infinite;
}
.scn-knight-baptized-blade .water-drops::before {
  content: ''; position: absolute; bottom: 20px; left: 15px; width: 5px; height: 10px;
  background: radial-gradient(circle, #c8e8f0 0%, #90c0d0 100%);
  border-radius: 50%;
  animation: kb5-drop 3.5s ease-in-out infinite;
}
.scn-knight-baptized-blade .knight-baptized {
  position: absolute; bottom: 28%; left: 50%; width: 25px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px rgba(200,160,128,0.5);
  animation: kb5-knight 7s ease-in-out infinite alternate;
}
.scn-knight-baptized-blade .blade-shine {
  position: absolute; bottom: 45%; left: 50%; width: 4px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f8f0e0 0%, #e0d0b0 100%);
  border-radius: 2px;
  box-shadow: 0 0 15px #e0c080;
  animation: kb5-blade 4s ease-in-out infinite alternate;
}
.scn-knight-baptized-blade .light-sparks {
  position: absolute; bottom: 50%; left: 45%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 100%);
  border-radius: 50%;
  animation: kb5-spark 2s ease-in-out infinite;
}
.scn-knight-baptized-blade .light-sparks::before {
  content: ''; position: absolute; bottom: 15px; left: 20px; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 100%);
  border-radius: 50%;
  animation: kb5-spark 2.5s ease-in-out infinite reverse;
}
@keyframes kb5-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes kb5-sun { 0% { transform: scale(0.9); opacity:0.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:0.85; } }
@keyframes kb5-spring { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes kb5-drop { 0% { transform: translateY(0) scaleX(1); opacity:0.5; } 50% { transform: translateY(-10px) scaleX(0.5); opacity:1; } 100% { transform: translateY(0) scaleX(1); opacity:0.5; } }
@keyframes kb5-knight { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes kb5-blade { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes kb5-spark { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0; transform: scale(0.5); } }

/* fradubio-takes-duessa */
.scn-fradubio-takes-duessa {
  background: linear-gradient(180deg, #6b7b8b 0%, #4a5a6a 40%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%);
}
.scn-fradubio-takes-duessa .sky-overcast {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #7b8b9b 0%, #5a6a7a 60%, transparent 100%);
  animation: fdt-sky 12s ease-in-out infinite alternate;
}
.scn-fradubio-takes-duessa .trees-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(90deg, #2a3a2a 0%, #3a4a3a 30%, #1a2a1a 70%, #2a3a2a 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: fdt-trees 18s ease-in-out infinite alternate;
}
.scn-fradubio-takes-duessa .trees-mid {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(90deg, #1a2a1a 0%, #2a3a2a 50%, #0a1a0a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
  animation: fdt-trees 22s ease-in-out infinite alternate-reverse;
}
.scn-fradubio-takes-duessa .figure-man {
  position: absolute; bottom: 15%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fdt-walk 4s ease-in-out infinite;
}
.scn-fradubio-takes-duessa .figure-woman {
  position: absolute; bottom: 15%; left: 45%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fdt-walk 4s ease-in-out infinite reverse;
}
.scn-fradubio-takes-duessa .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-fradubio-takes-duessa .mist {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(90deg, transparent 0%, rgba(100,110,120,0.4) 30%, rgba(120,130,140,0.6) 50%, rgba(100,110,120,0.4) 70%, transparent 100%);
  filter: blur(8px);
  animation: fdt-mist 20s ease-in-out infinite alternate;
}
@keyframes fdt-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes fdt-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fdt-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fdt-mist { 0% { transform: translateX(-5%) scale(1); opacity: 0.5; } 50% { transform: translateX(5%) scale(1.05); opacity: 0.8; } 100% { transform: translateX(-5%) scale(1); opacity: 0.5; } }

/* fradubio-sees-her-true-shape */
.scn-fradubio-sees-her-true-shape {
  background: linear-gradient(180deg, #2c1a3a 0%, #4a2a4a 30%, #6a3a4a 60%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 100%, #5a3a3a 0%, transparent 70%);
}
.scn-fradubio-sees-her-true-shape .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #5a3a4a 40%, transparent 100%);
  animation: fds-sky 14s ease-in-out infinite alternate;
}
.scn-fradubio-sees-her-true-shape .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: fds-water 8s ease-in-out infinite alternate;
}
.scn-fradubio-sees-her-true-shape .reeds-left {
  position: absolute; bottom: 40%; left: 10%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: fds-reeds 5s ease-in-out infinite;
}
.scn-fradubio-sees-her-true-shape .reeds-right {
  position: absolute; bottom: 40%; right: 15%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #2a3a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: fds-reeds 6s ease-in-out infinite reverse;
}
.scn-fradubio-sees-her-true-shape .figure-hag {
  position: absolute; bottom: 35%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  transform: rotate(10deg);
  animation: fds-hag 4s ease-in-out infinite;
}
.scn-fradubio-sees-her-true-shape .figure-fradubio {
  position: absolute; bottom: 35%; left: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fds-recoil 3s ease-in-out infinite alternate;
}
.scn-fradubio-sees-her-true-shape .ripple {
  position: absolute; bottom: 35%; left: 40%; width: 40px; height: 10px;
  background: radial-gradient(ellipse at center, rgba(100,130,150,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: fds-ripple 6s ease-in-out infinite;
}
@keyframes fds-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes fds-water { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes fds-reeds { 0% { transform: rotate(-3deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(-3deg); } }
@keyframes fds-hag { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes fds-recoil { 0% { transform: translateX(0); } 50% { transform: translateX(-8px) scale(0.95); } 100% { transform: translateX(0); } }
@keyframes fds-ripple { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.3); opacity: 0.2; } 100% { transform: scale(1); opacity: 0.6; } }

/* duessa-transforms-him */
.scn-duessa-transforms-him {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
}
.scn-duessa-transforms-him .sky-night {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 60%, transparent 100%);
  animation: dth-sky 16s ease-in-out infinite alternate;
}
.scn-duessa-transforms-him .moon {
  position: absolute; top: 8%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #b0a0a0 0%, #6a5a5a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(180,160,160,0.4);
  animation: dth-moon 8s ease-in-out infinite alternate;
}
.scn-duessa-transforms-him .tree-trunk {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  transform: translateX(-50%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: dth-tree 10s ease-in-out infinite;
}
.scn-duessa-transforms-him .witch {
  position: absolute; bottom: 12%; left: 35%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a0a 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  transform: rotate(-10deg);
  animation: dth-witch 5s ease-in-out infinite alternate;
}
.scn-duessa-transforms-him .cauldron {
  position: absolute; bottom: 8%; left: 30%; width: 35px; height: 25px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: dth-cauldron 6s ease-in-out infinite;
}
.scn-duessa-transforms-him .herbs {
  position: absolute; bottom: 15%; left: 28%; width: 20px; height: 15px;
  background: radial-gradient(circle, #3a4a2a 0%, #1a2a0a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: dth-herbs 4s ease-in-out infinite alternate;
}
.scn-duessa-transforms-him .stars-a {
  position: absolute; top: 5%; left: 10%; width: 3px; height: 3px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(255,255,255,0.6);
  animation: dth-stars 3s ease-in-out infinite alternate;
}
.scn-duessa-transforms-him .stars-b {
  position: absolute; top: 10%; right: 30%; width: 2px; height: 2px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 3px 1px rgba(255,255,255,0.5);
  animation: dth-stars 4s ease-in-out infinite alternate reverse;
}
@keyframes dth-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dth-moon { 0% { transform: scale(1); box-shadow: 0 0 20px 5px rgba(180,160,160,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 30px 8px rgba(180,160,160,0.6); } 100% { transform: scale(1); box-shadow: 0 0 20px 5px rgba(180,160,160,0.4); } }
@keyframes dth-tree { 0% { transform: translateX(-50%) scaleY(1); } 25% { transform: translateX(-50%) scaleY(1.02); } 50% { transform: translateX(-50%) scaleY(1); } 75% { transform: translateX(-50%) scaleY(0.98); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes dth-witch { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes dth-cauldron { 0% { transform: scale(1); } 50% { transform: scale(1.03) rotate(2deg); } 100% { transform: scale(1); } }
@keyframes dth-herbs { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes dth-stars { 0% { opacity: 0.3; } 50% { opacity: 1; } 100% { opacity: 0.5; } }

/* how-to-be-freed */
.scn-how-to-be-freed {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 40%, #2a2a4a 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 70%);
}
.scn-how-to-be-freed .sky-night {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 60%, transparent 100%);
  animation: htbf-sky 18s ease-in-out infinite alternate;
}
.scn-how-to-be-freed .moon {
  position: absolute; top: 5%; left: 20%; width: 28px; height: 28px;
  background: radial-gradient(circle, #c0b0a0 0%, #8a7a6a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 6px rgba(192,176,160,0.3);
  animation: htbf-moon 10s ease-in-out infinite alternate;
}
.scn-how-to-be-freed .well-stone {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: htbf-stone 12s ease-in-out infinite;
}
.scn-how-to-be-freed .well-water {
  position: absolute; bottom: 18%; left: 50%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.4);
  animation: htbf-water 6s ease-in-out infinite alternate;
}
.scn-how-to-be-freed .figure-knight {
  position: absolute; bottom: 10%; left: 42%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: htbf-kneel 4s ease-in-out infinite alternate;
}
.scn-how-to-be-freed .reflection {
  position: absolute; bottom: 15%; left: 48%; width: 30px; height: 30px;
  background: linear-gradient(180deg, rgba(100,130,180,0.4) 0%, transparent 100%);
  border-radius: 50%;
  transform: scaleY(0.5);
  animation: htbf-reflect 7s ease-in-out infinite;
}
.scn-how-to-be-freed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
@keyframes htbf-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes htbf-moon { 0% { transform: scale(1); box-shadow: 0 0 20px 4px rgba(192,176,160,0.3); } 50% { transform: scale(1.03); box-shadow: 0 0 30px 8px rgba(192,176,160,0.5); } 100% { transform: scale(1); box-shadow: 0 0 20px 4px rgba(192,176,160,0.3); } }
@keyframes htbf-stone { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes htbf-water { 0% { transform: translateX(-50%) scaleY(1); background-position: 0 0; } 50% { transform: translateX(-50%) scaleY(1.05); background-position: 0 2px; } 100% { transform: translateX(-50%) scaleY(1); background-position: 0 0; } }
@keyframes htbf-kneel { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes htbf-reflect { 0% { opacity: 0.4; transform: scaleY(0.5); } 50% { opacity: 0.7; transform: scaleY(0.6); } 100% { opacity: 0.4; transform: scaleY(0.5); } }

/* Scene 1: una-prays-second-night – dark night, Una praying over fallen knight */
.scn-una-prays-second-night {
  background: linear-gradient(180deg, #0b0b1a 0%, #1a1a3e 40%, #2a2a4e 70%, #1e1e3a 100%),
              radial-gradient(ellipse at 30% 20%, #2a2a5e 0%, transparent 60%);
}
.scn-una-prays-second-night .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0f0f2a 0%, #1a1a40 100%);
  animation: upn-sky 15s ease-in-out infinite alternate;
}
.scn-una-prays-second-night .crescent {
  position: absolute; top: 12%; left: 70%;
  width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 45%, #b0b0c0 0%, #50506a 50%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(120,120,160,0.3);
  animation: upn-crescent 20s linear infinite;
}
.scn-una-prays-second-night .tree {
  position: absolute; bottom: 35%; left: 5%;
  width: 60px; height: 120px;
  background: linear-gradient(180deg, transparent 0%, #0d0d1a 40% 60%, transparent 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: upn-tree 8s ease-in-out infinite alternate;
}
.scn-una-prays-second-night .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-una-prays-second-night .una {
  position: absolute; bottom: 30%; left: 40%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: upn-una 6s ease-in-out infinite;
}
.scn-una-prays-second-night .knight {
  position: absolute; bottom: 20%; left: 35%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #2c2c3e 0%, #151520 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-15deg);
  animation: upn-knight 4s ease-in-out infinite;
}
.scn-una-prays-second-night .balm-glow {
  position: absolute; bottom: 20%; left: 38%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #f0c060 0%, #b08030 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(200,160,60,0.5), 0 0 80px 30px rgba(200,160,60,0.2);
  animation: upn-balm 3s ease-in-out infinite alternate;
}
@keyframes upn-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes upn-crescent { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(-30px) rotate(10deg); } }
@keyframes upn-tree { 0% { transform: rotate(-2deg) scaleY(1); } 100% { transform: rotate(2deg) scaleY(1.05); } }
@keyframes upn-una { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-5px) rotate(1deg); } }
@keyframes upn-knight { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } }
@keyframes upn-balm { 0% { opacity: 0.7; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }

/* Scene 2: dawn-third-day – calm dawn, Aurora in chariot */
.scn-dawn-third-day {
  background: linear-gradient(180deg, #ffd7a0 0%, #f5b87e 30%, #d98a5a 60%, #8a5a3a 100%),
              radial-gradient(ellipse at 70% 30%, #ffecb3 0%, transparent 50%);
}
.scn-dawn-third-day .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe6b0 0%, #ffb366 70%, transparent 100%);
  animation: dtd-sky 20s ease-in-out infinite alternate;
}
.scn-dawn-third-day .sun {
  position: absolute; top: 15%; left: 75%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5d0 0%, #ffd080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffcc80;
  animation: dtd-sun 25s linear infinite;
}
.scn-dawn-third-day .clouds {
  position: absolute; top: 10%; left: 10%;
  width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(255,200,150,0.6) 0%, rgba(255,180,120,0.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dtd-clouds 40s linear infinite;
}
.scn-dawn-third-day .chariot {
  position: absolute; bottom: 35%; left: 50%;
  width: 80px; height: 50px;
  background: linear-gradient(135deg, #b07040 0%, #7a5028 50%, #5a3a1a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: dtd-chariot 8s ease-in-out infinite;
}
.scn-dawn-third-day .aurora {
  position: absolute; bottom: 40%; left: 50%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #ffe0b0 0%, #d4a070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: dtd-aurora 6s ease-in-out infinite;
}
.scn-dawn-third-day .flowers-a {
  position: absolute; bottom: 20%; left: 20%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #ff8a6a 0%, #c0553d 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(200,85,61,0.3);
  animation: dtd-flowers 10s ease-in-out infinite alternate;
}
.scn-dawn-third-day .flowers-b {
  position: absolute; bottom: 18%; left: 55%;
  width: 35px; height: 35px;
  background: radial-gradient(circle, #f0b060 0%, #b07838 60%);
  border-radius: 50%;
  box-shadow: 0 0 15px 3px rgba(200,120,50,0.4);
  animation: dtd-flowers 12s ease-in-out infinite alternate-reverse;
}
@keyframes dtd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dtd-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-10px) scale(1.02); } 100% { transform: translateX(10px) scale(1); } }
@keyframes dtd-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(-200px); } }
@keyframes dtd-chariot { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-2deg) translateY(-2px); } }
@keyframes dtd-aurora { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-3px); } }
@keyframes dtd-flowers { 0% { transform: scale(0.9) rotate(0deg); } 100% { transform: scale(1.1) rotate(15deg); } }

/* Scene 3: knight-healed-rises – hopeful dawn, knight rising */
.scn-knight-healed-rises {
  background: linear-gradient(180deg, #ffd085 0%, #f0b060 40%, #a06030 80%, #5a3a1a 100%),
              radial-gradient(ellipse at 50% 20%, #ffe6b0 0%, transparent 60%);
}
.scn-knight-healed-rises .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffcc88 0%, #ff9933 50%, transparent 100%);
  animation: khr-sky 18s ease-in-out infinite alternate;
}
.scn-knight-healed-rises .sun {
  position: absolute; top: 10%; left: 20%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #fffae0 0%, #ffcc66 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px #ffbb55;
  animation: khr-sun 30s linear infinite;
}
.scn-knight-healed-rises .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2510 100%);
  border-radius: 30% 70% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-knight-healed-rises .knight {
  position: absolute; bottom: 18%; left: 45%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #c8b878 0%, #8a6a3a 50%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: khr-knight 5s ease-in-out infinite;
}
.scn-knight-healed-rises .light-rays {
  position: absolute; top: 5%; left: 30%;
  width: 120px; height: 120px;
  background: repeating-conic-gradient(rgba(255,220,100,0.3) 0deg 10deg, transparent 10deg 20deg);
  border-radius: 50%;
  animation: khr-rays 20s linear infinite;
  transform-origin: center;
}
.scn-knight-healed-rises .sparkles {
  position: absolute; bottom: 25%; left: 50%;
  width: 80px; height: 80px;
  background: radial-gradient(circle at 30% 40%, #fff9c0 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(4px);
  animation: khr-sparkles 3s ease-in-out infinite alternate;
}
.scn-knight-healed-rises .foe-shadow {
  position: absolute; bottom: 15%; right: 15%;
  width: 70px; height: 90px;
  background: linear-gradient(180deg, rgba(20,20,30,0.7) 0%, transparent 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 10% 10%;
  animation: khr-foe 8s ease-in-out infinite;
}
@keyframes khr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes khr-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.03); } 100% { transform: translateX(-5px) scale(1); } }
@keyframes khr-knight { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(-1deg) translateY(-2px); } 100% { transform: scaleY(1) rotate(1deg); } }
@keyframes khr-rays { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes khr-sparkles { 0% { opacity: 0.3; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1.2); } }
@keyframes khr-foe { 0%,100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-8px) rotate(5deg); } }

/* Scene 4: dragon-final-encounter – tense sunlit, dragon vs knight */
.scn-dragon-final-encounter {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 30%, #f0e68c 70%, #c8a050 100%),
              radial-gradient(ellipse at 60% 80%, #ffd580 0%, transparent 50%);
}
.scn-dragon-final-encounter .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4ff 0%, #fff0b0 60%, transparent 100%);
  animation: dfe-sky 12s ease-in-out infinite alternate;
}
.scn-dragon-final-encounter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a6030 0%, #4a3a1a 100%);
  border-radius: 40% 60% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.3);
}
.scn-dragon-final-encounter .dragon {
  position: absolute; bottom: 20%; left: 20%;
  width: 120px; height: 100px;
  background: linear-gradient(135deg, #8a4a2a 0%, #5a2a15 50%, #3a1a0a 100%);
  border-radius: 50% 30% 40% 40% / 40% 50% 30% 30%;
  box-shadow: 0 15px 30px rgba(0,0,0,0.5);
  transform-origin: center right;
  animation: dfe-dragon 2s ease-in-out infinite;
}
.scn-dragon-final-encounter .knight {
  position: absolute; bottom: 25%; right: 25%;
  width: 50px; height: 70px;
  background: linear-gradient(180deg, #d0c0a0 0%, #8a7a5a 50%, #5a4a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: dfe-knight 1.5s ease-in-out infinite;
}
.scn-dragon-final-encounter .weapon-glow {
  position: absolute; bottom: 30%; right: 20%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #ffee88 0%, #ffcc44 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #ffdd66;
  animation: dfe-weapon 0.8s ease-in-out infinite alternate;
}
.scn-dragon-final-encounter .sparks {
  position: absolute; bottom: 25%; left: 35%;
  width: 100px; height: 100px;
  background: radial-gradient(circle at 40% 50%, #ffaa44 0%, transparent 40%);
  border-radius: 50%;
  filter: blur(3px);
  animation: dfe-sparks 0.5s ease-in-out infinite;
}
.scn-dragon-final-encounter .dust {
  position: absolute; bottom: 10%; left: 30%;
  width: 150px; height: 40px;
  background: linear-gradient(90deg, rgba(100,70,30,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: dfe-dust 3s ease-in-out infinite alternate;
}
@keyframes dfe-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dfe-dragon { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-10px) rotate(-5deg); } 75% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dfe-knight { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(-3deg); } }
@keyframes dfe-weapon { 0% { opacity: 0.5; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1.3); } }
@keyframes dfe-sparks { 0% { opacity: 0.3; transform: scale(0.6); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.8); } }
@keyframes dfe-dust { 0% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(-20px) scaleX(1.2); } }

.scn-notes-shady-grove { background: linear-gradient(180deg, #1b2a1b 0%, #2a3a2a 40%, #1b2a1b 100%), radial-gradient(ellipse at 50% 70%, #2a3a2a 0%, transparent 80%); }
.scn-notes-shady-grove .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.6) 100%); animation: sg-bg 10s ease-in-out infinite alternate; }
.scn-notes-shady-grove .trunk-left { position:absolute; left:10%; top:0; width:6%; height:100%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:30% 10% 0 0; box-shadow: inset -4px 0 6px rgba(0,0,0,0.5); animation: sg-trunk 12s ease-in-out infinite; }
.scn-notes-shady-grove .trunk-right { position:absolute; right:15%; top:0; width:5%; height:100%; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 100%); border-radius:10% 30% 0 0; box-shadow: inset 4px 0 6px rgba(0,0,0,0.5); animation: sg-trunk 14s ease-in-out infinite reverse; }
.scn-notes-shady-grove .canopy { position:absolute; top:0; left:20%; right:20%; height:50%; background: radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, transparent 70%); filter: blur(8px); animation: sg-canopy 20s ease-in-out infinite; }
.scn-notes-shady-grove .path { position:absolute; bottom:10%; left:35%; right:35%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 20% 20% / 10% 10% 80% 80%; transform-origin: bottom center; animation: sg-path 8s ease-in-out infinite; }
.scn-notes-shady-grove .figure { position:absolute; bottom:15%; left:38%; 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: sg-walk 4s ease-in-out infinite; }
.scn-notes-shady-grove .lantern { position:absolute; bottom:18%; left:36%; width:8px; height:8px; background: radial-gradient(circle, #ffd680 0%, #c08040 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,214,128,0.5); animation: sg-light 3s ease-in-out infinite alternate; }
@keyframes sg-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sg-trunk { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes sg-canopy { 0% { transform: scaleX(0.95) scaleY(1) } 50% { transform: scaleX(1.05) scaleY(1.02) } 100% { transform: scaleX(0.98) scaleY(0.98) } }
@keyframes sg-path { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sg-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(12px) translateY(0) rotate(-2deg) } 75% { transform: translateX(18px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(24px) translateY(0) rotate(0) } }
@keyframes sg-light { 0% { box-shadow: 0 0 15px 4px rgba(255,214,128,0.4); opacity:0.8 } 50% { box-shadow: 0 0 25px 8px rgba(255,214,128,0.7); opacity:1 } 100% { box-shadow: 0 0 18px 5px rgba(255,214,128,0.5); opacity:0.9 } }

.scn-notes-pine-ships { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #3a3a4a 0%, transparent 70%); }
.scn-notes-pine-ships .beams { position:absolute; top:10%; left:0; right:0; height:10%; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%); border-radius:5px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ps-beams 16s ease-in-out infinite; }
.scn-notes-pine-ships .hull { position:absolute; bottom:20%; left:25%; right:25%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:0 0 20% 20% / 0 0 60% 60%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4); animation: ps-hull 10s ease-in-out infinite; }
.scn-notes-pine-ships .mast { position:absolute; bottom:35%; left:48%; width:4%; height:55%; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; transform-origin: bottom center; animation: ps-mast 6s ease-in-out infinite; }
.scn-notes-pine-ships .window-light { position:absolute; top:15%; left:15%; width:20px; height:30px; background: radial-gradient(circle, #c0a070 0%, #806040 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 18px 4px rgba(192,160,112,0.4); animation: ps-glow 4s ease-in-out infinite alternate; }
.scn-notes-pine-ships .tools { position:absolute; bottom:15%; left:10%; width:15%; height:8%; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5); animation: ps-tools 12s ease-in-out infinite; }
.scn-notes-pine-ships .planks { position:absolute; bottom:10%; left:5%; right:5%; height:5%; background: linear-gradient(90deg, #4a3a2a, #2a1a0a, #4a3a2a); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: ps-planks 20s linear infinite; }
.scn-notes-pine-ships .shadow { position:absolute; bottom:0; left:20%; right:20%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); animation: ps-shadow 8s ease-in-out infinite; }
@keyframes ps-beams { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ps-hull { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ps-mast { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes ps-glow { 0% { box-shadow: 0 0 14px 3px rgba(192,160,112,0.3); opacity:0.7 } 50% { box-shadow: 0 0 22px 6px rgba(192,160,112,0.6); opacity:1 } 100% { box-shadow: 0 0 16px 4px rgba(192,160,112,0.4); opacity:0.8 } }
@keyframes ps-tools { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(1) } }
@keyframes ps-planks { 0% { background-position: 0% 0 } 100% { background-position: 100% 0 } }
@keyframes ps-shadow { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.5 } }

.scn-notes-laurel { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 70%); }
.scn-notes-laurel .pedestal { position:absolute; bottom:15%; left:35%; right:35%; height:25%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:10% 10% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.3); animation: la-pedestal 14s ease-in-out infinite; }
.scn-notes-laurel .wreath { position:absolute; bottom:38%; left:45%; width:10%; height:5%; background: radial-gradient(circle, #6a7a3a 0%, #4a5a2a 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(106,122,58,0.3); animation: la-wreath 8s ease-in-out infinite; }
.scn-notes-laurel .bust { position:absolute; bottom:25%; left:47%; width:6%; height:20%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la-bust 12s ease-in-out infinite; }
.scn-notes-laurel .torch { position:absolute; bottom:30%; right:30%; width:4%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5); animation: la-torch 5s ease-in-out infinite; }
.scn-notes-laurel .column-left { position:absolute; bottom:0; left:10%; width:5%; height:70%; background: linear-gradient(90deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:5% 5% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,0.3); animation: la-col 18s ease-in-out infinite; }
.scn-notes-laurel .column-right { position:absolute; bottom:0; right:10%; width:5%; height:70%; background: linear-gradient(90deg, #2a1a1a 0%, #4a3a3a 100%); border-radius:5% 5% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,0.3); animation: la-col 18s ease-in-out infinite reverse; }
.scn-notes-laurel .glow { position:absolute; bottom:28%; right:30%; width:10%; height:10%; background: radial-gradient(circle, #ffd080 0%, transparent 100%); filter: blur(12px); animation: la-glow 4s ease-in-out infinite alternate; }
@keyframes la-pedestal { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes la-wreath { 0% { transform: rotate(-3deg) scale(1) } 50% { transform: rotate(3deg) scale(1.05) } 100% { transform: rotate(-3deg) scale(1) } }
@keyframes la-bust { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes la-torch { 0% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.03) rotate(2deg) } 100% { transform: scaleY(1) rotate(-1deg) } }
@keyframes la-col { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(1) } }
@keyframes la-glow { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }

.scn-notes-yew-bows { background: linear-gradient(180deg, #1a2a1a 0%, #2a3a2a 50%, #1a2a1a 100%), radial-gradient(ellipse at 50% 80%, #2a3a2a 0%, transparent 70%); }
.scn-notes-yew-bows .tree { position:absolute; left:15%; top:0; width:8%; height:100%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:30% 10% 0 0; box-shadow: inset -4px 0 6px rgba(0,0,0,0.4); animation: yb-tree 16s ease-in-out infinite; }
.scn-notes-yew-bows .bow { position:absolute; bottom:25%; left:30%; width:4%; height:40%; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 30% 30% / 10% 10% 60% 60%; transform-origin: 50% 90%; transform: rotate(-15deg); box-shadow: -2px 0 4px rgba(0,0,0,0.3); animation: yb-bow 8s ease-in-out infinite; }
.scn-notes-yew-bows .target { position:absolute; bottom:28%; right:15%; width:12%; height:15%; background: radial-gradient(circle, #5a3a2a 0%, #3a2a1a 80%); border-radius:50%; border: 2px solid #2a1a0a; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: yb-target 10s ease-in-out infinite; }
.scn-notes-yew-bows .arrows { position:absolute; bottom:20%; left:45%; width:2%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10%; transform-origin: bottom center; transform: rotate(10deg); animation: yb-arrows 12s ease-in-out infinite; }
.scn-notes-yew-bows .quiver { position:absolute; bottom:22%; left:50%; width:6%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:0 0 30% 30%; box-shadow: 2px 0 6px rgba(0,0,0,0.4); animation: yb-quiver 14s ease-in-out infinite; }
.scn-notes-yew-bows .shadow { position:absolute; bottom:10%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); animation: yb-shadow 9s ease-in-out infinite alternate; }
.scn-notes-yew-bows .leaf { position:absolute; top:20%; left:12%; width:6px; height:12px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius:50% 0 50% 0; filter: blur(1px); animation: yb-leaf 15s linear infinite; }
@keyframes yb-tree { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes yb-bow { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-15deg) } }
@keyframes yb-target { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }
@keyframes yb-arrows { 0% { transform: rotate(10deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(10deg) } }
@keyframes yb-quiver { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes yb-shadow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes yb-leaf { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(10px,20px) rotate(90deg) } 50% { transform: translate(20px,40px) rotate(180deg) } 75% { transform: translate(30px,20px) rotate(270deg) } 100% { transform: translate(40px,0) rotate(360deg) } }

.scn-duessa-stripped {
  background: 
    linear-gradient(180deg, #ffe6b0 0%, #ffcc80 40%, #b07040 70%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 30%, #ffeecc 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-duessa-stripped .sun {
  position: absolute;
  top: 5%;
  left: 50%;
  width: 80px;
  height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff5d6 0%, #ffd699 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #ffcc80, 0 0 120px 60px rgba(255,200,100,0.3);
  animation: ds-sun-pulse 8s ease-in-out infinite alternate;
}
.scn-duessa-stripped .sun-rays {
  position: absolute;
  top: 0;
  left: 50%;
  width: 200px;
  height: 100%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,210,140,0.2) 0%, transparent 70%);
  clip-path: polygon(30% 0, 70% 0, 65% 100%, 35% 100%);
  animation: ds-rays 6s ease-in-out infinite alternate;
}
.scn-duessa-stripped .figure {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 60px;
  height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%;
  box-shadow: -8px 0 12px rgba(0,0,0,0.6);
  animation: ds-figure 4s ease-in-out infinite;
}
.scn-duessa-stripped .robe-left {
  position: absolute;
  bottom: 25%;
  left: 38%;
  width: 50px;
  height: 100px;
  background: linear-gradient(135deg, #6a4030 0%, #4a2a1a 100%);
  border-radius: 0 60% 40% 0 / 0 80% 60% 0;
  transform: rotate(15deg);
  transform-origin: top right;
  animation: ds-robe 5s ease-in-out infinite alternate;
}
.scn-duessa-stripped .robe-right {
  position: absolute;
  bottom: 25%;
  right: 38%;
  width: 50px;
  height: 100px;
  background: linear-gradient(225deg, #6a4030 0%, #4a2a1a 100%);
  border-radius: 60% 0 0 40% / 80% 0 0 60%;
  transform: rotate(-15deg);
  transform-origin: top left;
  animation: ds-robe 5s ease-in-out infinite alternate-reverse;
}
.scn-duessa-stripped .crown-falling {
  position: absolute;
  top: 15%;
  left: 50%;
  width: 40px;
  height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a868 0%, #a08040 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ds-crown 6s ease-in-out infinite;
}
.scn-duessa-stripped .shadow-ground {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.8) 100%);
}
.scn-duessa-stripped .dust {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 40%;
  height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,100,0.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: ds-dust 10s ease-in-out infinite;
}
@keyframes ds-sun-pulse { 0% { opacity:0.9; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:0.85; transform: translateX(-50%) scale(0.95); } }
@keyframes ds-rays { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes ds-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(2deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(0); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes ds-robe { 0% { transform: rotate(12deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(10deg); } }
@keyframes ds-crown { 0% { top:15%; opacity:1; } 50% { top:25%; opacity:0.7; transform: translateX(-50%) rotate(15deg); } 100% { top:35%; opacity:0; transform: translateX(-50%) rotate(-10deg); } }
@keyframes ds-dust { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.2); } 100% { opacity:0.1; transform: scale(0.9); } }

.scn-after-battle-rest {
  background: 
    linear-gradient(180deg, #ffbb77 0%, #ff9933 30%, #cc6622 60%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 20%, #ffdd99 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-after-battle-rest .sky-glow {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 70%;
  background: linear-gradient(180deg, rgba(255,200,100,0.4) 0%, transparent 100%);
  animation: ab-sky 12s ease-in-out infinite alternate;
}
.scn-after-battle-rest .mountain {
  position: absolute;
  bottom: 30%;
  left: 0;
  width: 100%;
  height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-after-battle-rest .campfire {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 30px;
  height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 70%, #ff6600 0%, #ff3300 40%, #cc2200 70%, transparent 100%);
  border-radius: 40%;
  box-shadow: 0 0 30px 15px #ff6600, 0 0 60px 30px rgba(255,100,0,0.3);
  animation: ab-fire 2s ease-in-out infinite alternate;
}
.scn-after-battle-rest .knight-left {
  position: absolute;
  bottom: 22%;
  left: 35%;
  width: 40px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: -5px 0 10px rgba(0,0,0,0.5);
  animation: ab-knight 6s ease-in-out infinite;
}
.scn-after-battle-rest .knight-right {
  position: absolute;
  bottom: 22%;
  right: 35%;
  width: 40px;
  height: 80px;
  transform: translateX(50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 5px 0 10px rgba(0,0,0,0.5);
  animation: ab-knight 6s ease-in-out infinite alternate;
}
.scn-after-battle-rest .chain {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 60px;
  height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #c8a868 0%, #a08040 30%, #806030 70%, #c8a868 100%);
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ab-chain 4s ease-in-out infinite alternate;
}
.scn-after-battle-rest .tent {
  position: absolute;
  bottom: 20%;
  left: 70%;
  width: 50px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #6a5040 0%, #4a3020 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: ab-tent 10s ease-in-out infinite;
}
.scn-after-battle-rest .sparks {
  position: absolute;
  bottom: 30%;
  left: 48%;
  width: 12px;
  height: 12px;
  background: radial-gradient(circle, #ffcc66 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 4px #ffcc66;
  animation: ab-sparks 3s ease-in-out infinite;
}
@keyframes ab-sky { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes ab-fire { 0% { transform: scaleY(0.9); box-shadow: 0 0 20px 10px #ff6600; } 50% { transform: scaleY(1.1); box-shadow: 0 0 40px 20px #ff6600; } 100% { transform: scaleY(0.95); box-shadow: 0 0 25px 12px #ff6600; } }
@keyframes ab-knight { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ab-chain { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ab-tent { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes ab-sparks { 0% { opacity:0; transform: translateY(0) scale(0.5); } 50% { opacity:1; transform: translateY(-20px) scale(1.5); } 100% { opacity:0; transform: translateY(-40px) scale(1); } }

.scn-arthur-reveals-identity {
  background: 
    linear-gradient(180deg, #ffeebb 0%, #ffdd99 30%, #cc9944 60%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 40%, #ffeecc 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-arthur-reveals-identity .sky-bright {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 60%;
  background: linear-gradient(180deg, rgba(255,235,200,0.5) 0%, transparent 100%);
  animation: ar-sky 10s ease-in-out infinite alternate;
}
.scn-arthur-reveals-identity .light-beam {
  position: absolute;
  top: 0;
  left: 50%;
  width: 120px;
  height: 100%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 70%);
  clip-path: polygon(40% 0, 60% 0, 55% 100%, 45% 100%);
  animation: ar-beam 8s ease-in-out infinite alternate;
}
.scn-arthur-reveals-identity .knight-faery {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 50px;
  height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%;
  box-shadow: -6px 0 10px rgba(0,0,0,0.4);
  animation: ar-knight 5s ease-in-out infinite;
}
.scn-arthur-reveals-identity .arthur-child {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 30px;
  height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: ar-child 6s ease-in-out infinite alternate;
}
.scn-arthur-reveals-identity .crown-held {
  position: absolute;
  bottom: 45%;
  left: 35%;
  width: 30px;
  height: 15px;
  transform: rotate(-10deg);
  background: linear-gradient(180deg, #d4af37 0%, #b8860b 100%);
  border-radius: 50% 50% 10% 10% / 70% 70% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ar-crown 7s ease-in-out infinite;
}
.scn-arthur-reveals-identity .scroll {
  position: absolute;
  bottom: 30%;
  left: 65%;
  width: 20px;
  height: 30px;
  transform: rotate(20deg);
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.3);
  animation: ar-scroll 9s ease-in-out infinite alternate;
}
.scn-arthur-reveals-identity .glow-child {
  position: absolute;
  bottom: 22%;
  left: 55%;
  width: 40px;
  height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, rgba(255,220,150,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: ar-glow 4s ease-in-out infinite alternate;
}
@keyframes ar-sky { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.3; } }
@keyframes ar-beam { 0% { opacity:0.2; transform: translateX(-50%) scaleY(0.9); } 50% { opacity:0.6; transform: translateX(-50%) scaleY(1.1); } 100% { opacity:0.3; transform: translateX(-50%) scaleY(1); } }
@keyframes ar-knight { 0% { transform: translateX(-50%) translateY(0) rotate(-3deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes ar-child { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(2deg); } }
@keyframes ar-crown { 0% { transform: rotate(-12deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(-14deg) translateY(0); } }
@keyframes ar-scroll { 0% { transform: rotate(18deg) scaleY(1); } 50% { transform: rotate(22deg) scaleY(1.05); } 100% { transform: rotate(15deg) scaleY(0.95); } }
@keyframes ar-glow { 0% { opacity:0.1; transform: translateX(-50%) scale(0.9); } 50% { opacity:0.5; transform: translateX(-50%) scale(1.2); } 100% { opacity:0.2; transform: translateX(-50%) scale(1); } }

.scn-arthur-tells-love {
  background: 
    linear-gradient(180deg, #332211 0%, #4a2a1a 20%, #2a1a0a 50%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 40%, #ff6633 0%, #cc3300 30%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-arthur-tells-love .fire-back {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 80px;
  height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #ff4411 0%, #cc2200 50%, transparent 80%);
  border-radius: 40%;
  box-shadow: 0 0 50px 25px #ff4411, 0 0 100px 50px rgba(255,68,17,0.3);
  animation: at-fireback 5s ease-in-out infinite alternate;
}
.scn-arthur-tells-love .fire-core {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 40px;
  height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #ffcc66 0%, #ff8800 40%, transparent 80%);
  border-radius: 40%;
  box-shadow: 0 0 30px 15px #ff8800;
  animation: at-firecore 2s ease-in-out infinite alternate;
}
.scn-arthur-tells-love .arthur-silhouette {
  position: absolute;
  bottom: 15%;
  left: 35%;
  width: 50px;
  height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0e05 0%, #0a0500 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%;
  box-shadow: -8px 0 10px rgba(0,0,0,0.6);
  animation: at-figure 8s ease-in-out infinite;
}
.scn-arthur-tells-love .lady-silhouette {
  position: absolute;
  bottom: 15%;
  right: 35%;
  width: 45px;
  height: 100px;
  transform: translateX(50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 25% 25% 30% 30% / 45% 45% 50% 50%;
  box-shadow: 8px 0 10px rgba(0,0,0,0.5);
  animation: at-figure 8s ease-in-out infinite alternate-reverse;
}
.scn-arthur-tells-love .sparks-rising {
  position: absolute;
  bottom: 28%;
  left: 48%;
  width: 10px;
  height: 10px;
  background: radial-gradient(circle, #ffcc66 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 3px #ffcc66;
  animation: at-sparks 3s ease-in-out infinite;
}
.scn-arthur-tells-love .ground-shadows {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.9) 100%);
}
.scn-arthur-tells-love .ember {
  position: absolute;
  bottom: 30%;
  left: 52%;
  width: 4px;
  height: 4px;
  background: #ff8844;
  border-radius: 50%;
  box-shadow: 0 0 4px 2px #ff8844;
  animation: at-ember 4s ease-in-out infinite;
}
@keyframes at-fireback { 0% { opacity:0.8; transform: translateX(-50%) scaleY(0.9); } 50% { opacity:1; transform: translateX(-50%) scaleY(1.1); } 100% { opacity:0.7; transform: translateX(-50%) scaleY(0.95); } }
@keyframes at-firecore { 0% { transform: translateX(-50%) scale(0.9); } 50% { transform: translateX(-50%) scale(1.1); } 100% { transform: translateX(-50%) scale(0.95); } }
@keyframes at-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes at-sparks { 0% { opacity:0; transform: translateY(0) scale(0.5); } 50% { opacity:1; transform: translateY(-20px) scale(1.5); } 100% { opacity:0; transform: translateY(-40px) scale(0.8); } }
@keyframes at-ember { 0% { transform: translate(0,0) scale(1); } 33% { transform: translate(10px, -15px) scale(1.2); } 66% { transform: translate(-5px, -30px) scale(0.8); } 100% { transform: translate(5px, -45px) scale(0.5); opacity:0; } }

/* scene 1: knight-recounts-adventures */
.scn-knight-recounts-adventures {
  background: linear-gradient(180deg, #d4b48c 0%, #b8956a 40%, #8a6b4a 100%),
              radial-gradient(ellipse at 40% 60%, #f0d4b0 0%, transparent 70%);
}
.scn-knight-recounts-adventures .back-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #c9aa82 0%, #b08a62 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.3);
  animation: kr-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-knight-recounts-adventures .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5e3e 0%, #5f4828 100%);
  border-radius: 10% 10% 0 0;
}
.scn-knight-recounts-adventures .window {
  position: absolute; top: 15%; left: 10%; width: 22%; height: 35%;
  background: linear-gradient(135deg, #f0e6d0 0%, #d4c6a8 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 20px #fff4e0, 0 4px 12px rgba(0,0,0,0.4);
  animation: kr-window-light 8s ease-in-out infinite alternate;
}
.scn-knight-recounts-adventures .hearth {
  position: absolute; bottom: 25%; left: 55%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 20%, #5a3a20 0%, #3a2a10 60%, #1a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.6);
}
.scn-knight-recounts-adventures .fire {
  position: absolute; bottom: 35%; left: 58%; width: 10%; height: 18%;
  background: radial-gradient(ellipse at 50% 60%, #e09040 30%, #c06020 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 30px #e09040;
  animation: kr-fire 3s ease-in-out infinite alternate;
}
.scn-knight-recounts-adventures .knight {
  position: absolute; bottom: 25%; left: 30%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: kr-knight-gesture 6s ease-in-out infinite alternate;
}
.scn-knight-recounts-adventures .king {
  position: absolute; bottom: 25%; left: 60%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #7a664a 0%, #5a4a30 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 4px 0 8px rgba(0,0,0,0.5);
  animation: kr-king-listen 8s ease-in-out infinite alternate;
}
.scn-knight-recounts-adventures .tapestry {
  position: absolute; top: 10%; right: 8%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: kr-tapestry-sway 12s ease-in-out infinite alternate;
}
@keyframes kr-wall-pulse {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; }
}
@keyframes kr-window-light {
  0% { box-shadow: inset 0 0 20px #fff4e0, 0 4px 12px rgba(0,0,0,0.4); }
  50% { box-shadow: inset 0 0 30px #ffe8c0, 0 4px 16px rgba(0,0,0,0.3); }
  100% { box-shadow: inset 0 0 20px #f0dcc0, 0 4px 12px rgba(0,0,0,0.4); }
}
@keyframes kr-fire {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(1px); opacity: 0.9; }
}
@keyframes kr-knight-gesture {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-1deg); }
}
@keyframes kr-king-listen {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(1deg); }
}
@keyframes kr-tapestry-sway {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(-2deg); }
  100% { transform: skewX(1deg); }
}

/* scene 2: king-and-queen-react */
.scn-king-and-queen-react {
  background: linear-gradient(180deg, #d0b894 0%, #b09068 50%, #8a6a48 100%),
              radial-gradient(ellipse at 50% 30%, #f0dcc0 0%, transparent 60%);
}
.scn-king-and-queen-react .back-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c4a682 0%, #a88460 100%);
  border-radius: 0 0 15% 15%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.25);
  animation: kq-wall 14s ease-in-out infinite alternate;
}
.scn-king-and-queen-react .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b5032 0%, #4f3720 100%);
  border-radius: 8% 8% 0 0;
}
.scn-king-and-queen-react .throne {
  position: absolute; bottom: 20%; left: 50%; width: 24%; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4e3420 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-king-and-queen-react .king {
  position: absolute; bottom: 22%; left: 42%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #6a5036 0%, #4a3420 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kq-king 8s ease-in-out infinite alternate;
}
.scn-king-and-queen-react .queen {
  position: absolute; bottom: 20%; left: 54%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #5e4a3a 0%, #3a2e22 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kq-queen 9s ease-in-out infinite alternate;
}
.scn-king-and-queen-react .goblet {
  position: absolute; bottom: 38%; left: 48%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #806040 0%, #4e3220 100%);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: kq-goblet 10s ease-in-out infinite alternate;
}
.scn-king-and-queen-react .candle {
  position: absolute; bottom: 42%; right: 10%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #f0d0a0 0%, #d09060 30%, #8a6040 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 12px #f0c080;
  animation: kq-candle 4s ease-in-out infinite alternate;
}
@keyframes kq-wall {
  0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes kq-king {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-2deg) translateY(1px); }
  100% { transform: rotate(1deg); }
}
@keyframes kq-queen {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-1deg); }
}
@keyframes kq-goblet {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg) translateX(1px); }
  100% { transform: rotate(-1deg); }
}
@keyframes kq-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.1) translateY(-1px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(0); opacity: 0.85; }
}

/* scene 3: king-offers-rest */
.scn-king-offers-rest {
  background: linear-gradient(180deg, #cdb090 0%, #b08a6a 40%, #8a6648 100%),
              radial-gradient(ellipse at 60% 40%, #f0dcc0 0%, transparent 65%);
}
.scn-king-offers-rest .back-wall {
  position: absolute; inset: 0 0 22% 0;
  background: linear-gradient(180deg, #be9e7e 0%, #a08060 100%);
  border-radius: 0 0 18% 18%;
  box-shadow: inset 0 10px 24px rgba(0,0,0,0.2);
  animation: ko-wall 15s ease-in-out infinite alternate;
}
.scn-king-offers-rest .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #684e30 0%, #4c3820 100%);
  border-radius: 12% 12% 0 0;
}
.scn-king-offers-rest .table {
  position: absolute; bottom: 18%; left: 25%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #6a4e32 0%, #4a3420 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-king-offers-rest .platter {
  position: absolute; bottom: 22%; left: 30%; width: 10%; height: 6%;
  background: radial-gradient(ellipse at 50% 40%, #d0a070 0%, #b08050 60%, #905030 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ko-platter 8s ease-in-out infinite alternate;
}
.scn-king-offers-rest .bed {
  position: absolute; bottom: 12%; right: 8%; width: 22%; height: 20%;
  background: linear-gradient(180deg, #6a4e3a 0%, #4a3422 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: ko-bed 12s ease-in-out infinite alternate;
}
.scn-king-offers-rest .king {
  position: absolute; bottom: 20%; left: 15%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #5e4a36 0%, #3a2e1e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ko-king-offer 7s ease-in-out infinite alternate;
}
.scn-king-offers-rest .knight {
  position: absolute; bottom: 18%; right: 35%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #6a5a4c 0%, #4a3a2c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: ko-knight-bow 9s ease-in-out infinite alternate;
}
@keyframes ko-wall {
  0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes ko-platter {
  0% { transform: scale(1); }
  50% { transform: scale(1.02) translateY(-1px); }
  100% { transform: scale(0.98); }
}
@keyframes ko-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ko-king-offer {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(-1deg) translateX(2px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes ko-knight-bow {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(1px); }
}

/* scene 4: knight-vow-faerie-queene */
.scn-knight-vow-faerie-queene {
  background: linear-gradient(180deg, #dcc8b0 0%, #b89e80 40%, #8a7054 100%),
              radial-gradient(ellipse at 40% 20%, #f4e8d4 0%, transparent 50%);
}
.scn-knight-vow-faerie-queene .back-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c8ae8e 0%, #a88a6a 100%);
  border-radius: 0 0 12% 12%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: kv-wall 16s ease-in-out infinite alternate;
}
.scn-knight-vow-faerie-queene .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #604e32 0%, #443420 100%);
  border-radius: 8% 8% 0 0;
}
.scn-knight-vow-faerie-queene .window {
  position: absolute; top: 12%; left: 5%; width: 18%; height: 30%;
  background: linear-gradient(135deg, #f4ece0 0%, #d4c4a8 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px #fff8ec, 0 4px 12px rgba(0,0,0,0.3);
  animation: kv-window-light 10s ease-in-out infinite alternate;
}
.scn-knight-vow-faerie-queene .banner {
  position: absolute; top: 10%; right: 8%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #8a6a4a 0%, #604830 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: kv-banner-wave 9s ease-in-out infinite alternate;
}
.scn-knight-vow-faerie-queene .shield {
  position: absolute; bottom: 30%; left: 35%; width: 14%; height: 18%;
  background: radial-gradient(ellipse at 50% 50%, #b09878 0%, #8a7050 60%, #5e4630 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: kv-shield 12s ease-in-out infinite alternate;
}
.scn-knight-vow-faerie-queene .knight {
  position: absolute; bottom: 18%; left: 22%; width: 12%; height: 42%;
  background: linear-gradient(180deg, #5e4e3e 0%, #3a2e22 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: kv-knight-vow 6s ease-in-out infinite alternate;
}
.scn-knight-vow-faerie-queene .sword {
  position: absolute; bottom: 20%; left: 8%; width: 3%; height: 35%;
  background: linear-gradient(180deg, #6a6050 0%, #3a3428 100%);
  border-radius: 0 0 30% 30%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: kv-sword 8s ease-in-out infinite alternate;
}
@keyframes kv-wall {
  0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes kv-window-light {
  0% { box-shadow: inset 0 0 30px #fff8ec, 0 4px 12px rgba(0,0,0,0.3); }
  50% { box-shadow: inset 0 0 40px #fff0d4, 0 4px 16px rgba(0,0,0,0.2); }
  100% { box-shadow: inset 0 0 30px #f0e0c0, 0 4px 12px rgba(0,0,0,0.3); }
}
@keyframes kv-banner-wave {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(-3deg) translateX(2px); }
  100% { transform: skewX(2deg); }
}
@keyframes kv-shield {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes kv-knight-vow {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(1deg) scaleY(1.02); }
  100% { transform: rotate(-1deg) scaleY(1); }
}
@keyframes kv-sword {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(22deg) translateY(-2px); }
  100% { transform: rotate(18deg) translateY(0); }
}

.scn-knight-wonder-beauty {
  background:
    radial-gradient(ellipse at 50% 100%, #b8860b88 0%, transparent 70%),
    linear-gradient(180deg, #f5e6c8 0%, #d4a56e 40%, #8b5e34 70%, #3a2210 100%);
}
.scn-knight-wonder-beauty .interior-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0d8a8 0%, #d4a56e 50%, #a0724a 100%);
  opacity: 0.4;
}
.scn-knight-wonder-beauty .throne {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a06e 0%, #8b5e34 40%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 20px 40px rgba(0,0,0,0.5);
}
.scn-knight-wonder-beauty .knight {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 40% 40%;
  transform: scaleX(-1);
  animation: kni-bow 6s ease-in-out infinite alternate;
}
.scn-knight-wonder-beauty .knight-arm {
  position: absolute; bottom: 45%; left: 32%; width: 10px; height: 35px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: top center;
  animation: kni-arm 4s ease-in-out infinite alternate;
}
.scn-knight-wonder-beauty .glow-source {
  position: absolute; bottom: 35%; left: 55%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffdd99 0%, #ffaa44 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffaa44, 0 0 120px 40px #cc7733;
  animation: kni-pulse 5s ease-in-out infinite alternate;
}
.scn-knight-wonder-beauty .window-arch {
  position: absolute; top: 8%; right: 12%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #d4a56e 0%, #a0724a 60%, #5a3a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-knight-wonder-beauty .window-light {
  position: absolute; top: 10%; right: 14%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #ffe0aa 0%, #ffcc88 50%, #ddaa55 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  opacity: 0.7;
  animation: kni-shimmer 8s ease-in-out infinite alternate;
}
.scn-knight-wonder-beauty .dust.motes-a,
.scn-knight-wonder-beauty .dust.motes-b {
  position: absolute; width: 4px; height: 4px;
  background: #ffe8c0; border-radius: 50%;
  box-shadow: 0 0 6px 2px #ffddaa88;
}
.scn-knight-wonder-beauty .dust.motes-a {
  top: 40%; left: 20%; animation: kni-drift-a 25s linear infinite;
}
.scn-knight-wonder-beauty .dust.motes-b {
  top: 55%; left: 60%; width: 3px; height: 3px;
  animation: kni-drift-b 35s linear infinite reverse;
}
@keyframes kni-bow { 0% { transform: scaleX(-1) rotate(0deg) translateY(0); } 50% { transform: scaleX(-1) rotate(3deg) translateY(-2px); } 100% { transform: scaleX(-1) rotate(0deg) translateY(0); } }
@keyframes kni-arm { 0% { transform: rotate(-15deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-10deg); } }
@keyframes kni-pulse { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes kni-shimmer { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes kni-drift-a { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translate(120px, -80px) scale(0.5); opacity: 0; } }
@keyframes kni-drift-b { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 0.8; } 90% { opacity: 0.8; } 100% { transform: translate(-80px, 60px) scale(0.6); opacity: 0; } }

.scn-una-before-king {
  background:
    radial-gradient(ellipse at 50% 60%, #d4a56e 0%, transparent 70%),
    linear-gradient(180deg, #f0d8a8 0%, #d4a56e 40%, #8b5e34 70%, #4a2a10 100%);
}
.scn-una-before-king .great-hall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8ccaa 0%, #c8a06e 50%, #8b5e34 100%);
  opacity: 0.3;
}
.scn-una-before-king .dais {
  position: absolute; bottom: 15%; left: 50%; width: 160px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a07850 0%, #6a4a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
}
.scn-una-before-king .king-seated {
  position: absolute; bottom: 18%; left: 42%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: una-king 8s ease-in-out infinite;
}
.scn-una-before-king .king-crown {
  position: absolute; bottom: 70%; left: 41.5%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 3px #ffd70088;
  animation: una-crown 5s ease-in-out infinite alternate;
}
.scn-una-before-king .una-figure {
  position: absolute; bottom: 18%; left: 60%; width: 28px; height: 85px;
  background: linear-gradient(180deg, #f0e0d0 0%, #d4c0a8 40%, #b8a090 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 40% 40%;
  transform: scaleX(-1);
  animation: una-curtsey 6s ease-in-out infinite;
}
.scn-una-before-king .una-veil {
  position: absolute; bottom: 60%; left: 59%; width: 30px; height: 50px;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, rgba(200,180,160,0.3) 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: una-veil 10s ease-in-out infinite alternate;
}
.scn-una-before-king .column-left,
.scn-una-before-king .column-right {
  position: absolute; top: 10%; width: 20px; height: 80%;
  background: linear-gradient(90deg, #c8b090 0%, #e8dcc8 30%, #c8b090 60%, #a08870 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
}
.scn-una-before-king .column-left { left: 8%; }
.scn-una-before-king .column-right { right: 8%; }
.scn-una-before-king .torch-glow {
  position: absolute; top: 12%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffcc66 0%, #ff9933 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ff993388, 0 0 80px 30px #cc773344;
  animation: una-torch 4s ease-in-out infinite alternate;
}
@keyframes una-king { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes una-crown { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes una-curtsey { 0% { transform: scaleX(-1) rotate(0deg) translateY(0); } 30% { transform: scaleX(-1) rotate(4deg) translateY(-3px); } 60% { transform: scaleX(-1) rotate(-2deg) translateY(-1px); } 100% { transform: scaleX(-1) rotate(0deg) translateY(0); } }
@keyframes una-veil { 0% { transform: rotate(-5deg) translateX(0); opacity: 0.6; } 50% { transform: rotate(3deg) translateX(2px); opacity: 0.9; } 100% { transform: rotate(-2deg) translateX(0); opacity: 0.7; } }
@keyframes una-torch { 0% { opacity: 0.7; transform: translateX(-50%) scale(0.95); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.8; transform: translateX(-50%) scale(1); } }

.scn-messenger-arrives {
  background:
    radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, transparent 70%),
    linear-gradient(180deg, #d4a56e 0%, #a07850 30%, #6a4a2a 60%, #2a1a0a 100%);
}
.scn-messenger-arrives .hall-walls {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #b89878 0%, #8b7050 50%, #5a4030 100%);
  opacity: 0.3;
}
.scn-messenger-arrives .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
}
.scn-messenger-arrives .messenger-body {
  position: absolute; bottom: 12%; left: 25%; width: 32px; height: 80px;
  background: linear-gradient(180deg, #8a7050 0%, #4a3a2a 50%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(10deg) skewX(-5deg);
  animation: mes-burst 3s ease-in-out infinite;
}
.scn-messenger-arrives .messenger-cape {
  position: absolute; bottom: 16%; left: 20%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #5a4030 0%, #2a1a0a 100%);
  border-radius: 60% 20% 40% 40% / 60% 40% 40% 40%;
  transform: rotate(-20deg);
  animation: mes-cape 2.5s ease-in-out infinite alternate;
}
.scn-messenger-arrives .messenger-arm {
  position: absolute; bottom: 45%; left: 30%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #6a5230 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: top center;
  transform: rotate(45deg);
  animation: mes-arm 1.5s ease-in-out infinite alternate;
}
.scn-messenger-arrives .door-open {
  position: absolute; top: 15%; right: 10%; width: 100px; height: 160px;
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 50%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  transform: skewY(-5deg);
  animation: mes-door 4s ease-in-out infinite alternate;
}
.scn-messenger-arrives .door-light {
  position: absolute; top: 18%; right: 14%; width: 70px; height: 130px;
  background: linear-gradient(180deg, #ffddaa 0%, #ffcc88 40%, #ddaa55 100%);
  border-radius: 10% 10% 5% 5%;
  opacity: 0.8;
  box-shadow: 0 0 40px 20px #ffcc8844, 0 0 80px 30px #ddaa5522;
  animation: mes-light 3s ease-in-out infinite alternate;
}
.scn-messenger-arrives .dust-spark {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff 0%, #ffcc88 50%, transparent 100%);
  border-radius: 50%;
  top: 20%; left: 38%;
  box-shadow: 0 0 10px 3px #ffcc88;
  animation: mes-spark 2s ease-in-out infinite alternate;
}
@keyframes mes-burst { 0% { transform: rotate(10deg) skewX(-5deg) translateX(0); } 50% { transform: rotate(15deg) skewX(-8deg) translateX(-8px); } 100% { transform: rotate(10deg) skewX(-5deg) translateX(0); } }
@keyframes mes-cape { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-30deg) scaleX(1.2); } 100% { transform: rotate(-20deg) scaleX(1); } }
@keyframes mes-arm { 0% { transform: rotate(45deg); } 50% { transform: rotate(60deg); } 100% { transform: rotate(45deg); } }
@keyframes mes-door { 0% { transform: skewY(-5deg) scaleX(1); } 50% { transform: skewY(-8deg) scaleX(1.05); } 100% { transform: skewY(-5deg) scaleX(1); } }
@keyframes mes-light { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes mes-spark { 0% { opacity: 0.3; transform: translate(0, 0) scale(0.8); } 50% { opacity: 1; transform: translate(-10px, -20px) scale(1.2); } 100% { opacity: 0.4; transform: translate(-5px, -10px) scale(0.9); } }

.scn-item-duessa-letter {
  background:
    radial-gradient(ellipse at 50% 80%, #2a1a0a88 0%, transparent 70%),
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 40%, #1a0a00 80%, #0a0500 100%);
}
.scn-item-duessa-letter .chamber-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
  opacity: 0.5;
}
.scn-item-duessa-letter .table-wood {
  position: absolute; bottom: 20%; left: 50%; width: 200px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
}
.scn-item-duessa-letter .letter-parchment {
  position: absolute; bottom: 28%; left: 50%; width: 70px; height: 50px;
  transform: translateX(-50%) rotate(-3deg);
  background: linear-gradient(135deg, #f0e0c0 0%, #d4c0a0 50%, #c0a880 100%);
  border-radius: 5% 5% 5% 5%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.4);
  animation: due-letter 6s ease-in-out infinite alternate;
}
.scn-item-duessa-letter .letter-seal {
  position: absolute; bottom: 39%; left: 47%; width: 12px; height: 12px;
  background: radial-gradient(circle, #8b4513 0%, #5e2710 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #5e2710;
  animation: due-seal 5s ease-in-out infinite alternate;
}
.scn-item-duessa-letter .hand-reach {
  position: absolute; bottom: 30%; left: 30%; width: 12px; height: 45px;
  background: linear-gradient(180deg, #d4c0a8 0%, #b8a090 60%, #8a7868 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  transform: rotate(20deg);
  animation: due-hand 4s ease-in-out infinite alternate;
}
.scn-item-duessa-letter .candle-wax {
  position: absolute; bottom: 32%; left: 62%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #f0e0c8 0%, #e0c8a8 50%, #c0a880 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-item-duessa-letter .candle-flame {
  position: absolute; bottom: 54%; left: 62.5%; width: 10px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #ffe0aa 0%, #ff9933 40%, transparent 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px #ff993388, 0 0 40px 15px #cc773344;
  animation: due-flame 2s ease-in-out infinite alternate;
}
.scn-item-duessa-letter .shadow-figure {
  position: absolute; bottom: 15%; left: 15%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #0a0500 0%, #1a0a00 60%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: 0.6;
  transform: rotate(5deg);
  animation: due-shadow 8s ease-in-out infinite;
}
@keyframes due-letter { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes due-seal { 0% { box-shadow: 0 0 4px 1px #5e2710; } 50% { box-shadow: 0 0 10px 4px #8b4513; } 100% { box-shadow: 0 0 6px 2px #5e2710; } }
@keyframes due-hand { 0% { transform: rotate(20deg); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(18deg); } }
@keyframes due-flame { 0% { transform: scaleY(0.9); opacity: 0.7; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.8; } }
@keyframes due-shadow { 0% { transform: rotate(5deg) translateX(0); opacity: 0.5; } 50% { transform: rotate(8deg) translateX(-5px); opacity: 0.7; } 100% { transform: rotate(5deg) translateX(0); opacity: 0.5; } }

.scn-una-grief { background: linear-gradient(180deg, #4a2e2e 0%, #8b5e3c 40%, #c9a87c 70%, #f2d5b0 100%), radial-gradient(ellipse at 50% 100%, #f2d5b0 0%, transparent 60%); }
.scn-una-grief .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a1e1e 0%, #6a3a2a 50%, transparent 100%); animation: ug-sky 15s ease-in-out infinite alternate; }
.scn-una-grief .sun { position:absolute; top:15%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #f5d595 0%, #e8b87c 40%, #c27a4a 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(194,122,74,.5); animation: ug-sun 8s ease-in-out infinite alternate; }
.scn-una-grief .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a3e2e 0%, #3a221a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.4); animation: ug-hills 20s ease-in-out infinite alternate; }
.scn-una-grief .figure { position:absolute; bottom:27%; left:50%; width:24px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ug-figure 4s ease-in-out infinite; }
.scn-una-grief .cloak { position:absolute; bottom:24%; left:48%; width:36px; height:28px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ug-cloak 5s ease-in-out infinite; }
.scn-una-grief .staff { position:absolute; bottom:26%; left:56%; width:4px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2818 100%); border-radius:20%; transform:rotate(6deg); transform-origin: bottom; animation: ug-staff 3s ease-in-out infinite alternate; }
.scn-una-grief .tear-a { position:absolute; bottom:34%; left:49%; width:4px; height:8px; background: radial-gradient(circle, #a8d0ff 0%, transparent 100%); border-radius:50%; animation: ug-tear 2s ease-in-out infinite; }
.scn-una-grief .tear-b { position:absolute; bottom:34%; left:52%; width:4px; height:8px; background: radial-gradient(circle, #a8d0ff 0%, transparent 100%); border-radius:50%; animation: ug-tear 2s ease-in-out infinite 0.5s; }
@keyframes ug-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ug-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes ug-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ug-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(-4px) rotate(0) } 75% { transform: translateX(-50%) translateY(-2px) rotate(-1deg) } }
@keyframes ug-cloak { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(4deg) } }
@keyframes ug-staff { 0%,100% { transform: rotate(6deg) } 50% { transform: rotate(8deg) } }
@keyframes ug-tear { 0% { transform: translateY(0); opacity:1 } 100% { transform: translateY(30px); opacity:0 } }

.scn-una-seeks-arthur { background: linear-gradient(180deg, #3a2e1e 0%, #6a5a3a 40%, #b89860 70%, #e8d0a0 100%), radial-gradient(ellipse at 80% 20%, #e8d0a0 0%, transparent 50%); }
.scn-una-seeks-arthur .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a221a 0%, #5a4a2a 50%, transparent 100%); animation: usa-sky 12s ease-in-out infinite alternate; }
.scn-una-seeks-arthur .sun { position:absolute; top:10%; left:75%; width:70px; height:70px; background: radial-gradient(circle, #f5d595 0%, #d4a86a 40%, #b07840 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 30px rgba(176,120,64,.4); animation: usa-sun 10s ease-in-out infinite alternate; }
.scn-una-seeks-arthur .hills { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); animation: usa-hills 25s ease-in-out infinite alternate; }
.scn-una-seeks-arthur .path { position:absolute; bottom:20%; left:40%; width:20%; height:10%; background: linear-gradient(180deg, #8a6a40 0%, #5a3e20 100%); border-radius: 40% 60% 30% 50% / 50% 50% 50% 50%; transform:rotate(-5deg); animation: usa-path 6s ease-in-out infinite alternate; }
.scn-una-seeks-arthur .tree-1 { position:absolute; bottom:35%; left:25%; width:30px; height:50px; background: linear-gradient(180deg, #4a6a3a 0%, #2a3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: usa-tree 8s ease-in-out infinite; }
.scn-una-seeks-arthur .tree-2 { position:absolute; bottom:32%; left:75%; width:24px; height:44px; background: linear-gradient(180deg, #5a7a4a 0%, #3a4a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: usa-tree 10s ease-in-out infinite 2s; }
.scn-una-seeks-arthur .figure { position:absolute; bottom:26%; left:50%; width:20px; height:44px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: usa-walk 6s linear infinite; }
.scn-una-seeks-arthur .dwarf { position:absolute; bottom:24%; left:44%; width:16px; height:28px; background: linear-gradient(180deg, #1a1a12 0%, #0a0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: usa-walk 6s linear infinite -2s; }
@keyframes usa-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes usa-sun { 0% { transform: scale(1); filter: brightness(1) } 50% { transform: scale(1.03); filter: brightness(1.2) } 100% { transform: scale(0.97); filter: brightness(0.9) } }
@keyframes usa-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes usa-path { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(5px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes usa-tree { 0%,100% { transform: rotate(0) } 50% { transform: rotate(3deg) } }
@keyframes usa-walk { 0% { transform: translateX(-50%) translateY(0) } 25% { transform: translateX(-45%) translateY(-2px) } 50% { transform: translateX(-40%) translateY(0) } 75% { transform: translateX(-45%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }

.scn-arthur-appears { background: linear-gradient(180deg, #4a3a1a 0%, #8a6a3a 30%, #d4b888 60%, #f0e4c0 100%), radial-gradient(ellipse at 60% 30%, #f0e4c0 0%, transparent 70%); }
.scn-arthur-appears .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1e0e 0%, #6a4e2a 50%, transparent 100%); animation: aa-sky 18s ease-in-out infinite alternate; }
.scn-arthur-appears .sun-glow { position:absolute; top:8%; left:60%; width:120px; height:120px; background: radial-gradient(circle, #f5d595 0%, #e8b87c 30%, #c27a4a 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(194,122,74,.6); animation: aa-sun 12s ease-in-out infinite alternate; }
.scn-arthur-appears .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2e1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-arthur-appears .knight { position:absolute; bottom:15%; left:50%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #f0d8a0 0%, #c8a870 40%, #a88850 100%); border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%; box-shadow: 0 0 30px 10px rgba(240,216,160,.4); animation: aa-knight 4s ease-in-out infinite alternate; }
.scn-arthur-appears .armour-shine { position:absolute; bottom:22%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #fff8e0 0%, #f0d8a0 50%, transparent 100%); border-radius:50%; opacity:0.6; animation: aa-shine 2s ease-in-out infinite; }
.scn-arthur-appears .horse { position:absolute; bottom:12%; left:45%; width:40px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2e1a 100%); border-radius: 50% 30% 30% 30% / 70% 40% 40% 40%; transform-origin: bottom; animation: aa-horse 6s ease-in-out infinite; }
.scn-arthur-appears .spear { position:absolute; bottom:22%; left:52%; width:4px; height:50px; background: linear-gradient(180deg, #8a7040 0%, #4a3820 100%); border-radius:20%; transform:rotate(8deg); transform-origin: bottom; animation: aa-spear 3s ease-in-out infinite alternate; }
.scn-arthur-appears .dust { position:absolute; bottom:10%; left:40%; width:30px; height:10px; background: radial-gradient(ellipse, rgba(160,120,60,0.4) 0%, transparent 100%); filter: blur(4px); animation: aa-dust 5s ease-out infinite; }
@keyframes aa-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes aa-sun { 0% { transform: scale(1); filter: brightness(1) } 50% { transform: scale(1.1); filter: brightness(1.3) } 100% { transform: scale(0.9); filter: brightness(0.8) } }
@keyframes aa-knight { 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 aa-shine { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.2) } 100% { opacity:0.3; transform: scale(0.9) } }
@keyframes aa-horse { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes aa-spear { 0% { transform: rotate(6deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(6deg) } }
@keyframes aa-dust { 0% { transform: translateX(0); opacity:0.6 } 100% { transform: translateX(30px); opacity:0 } }

.scn-arthur-una-dialogue { background: linear-gradient(180deg, #5a4a2a 0%, #9a7a4a 40%, #d4b888 70%, #f0e4c0 100%), radial-gradient(ellipse at 50% 40%, #f0e4c0 0%, transparent 70%); }
.scn-arthur-una-dialogue .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a2e1a 0%, #7a6240 50%, transparent 100%); animation: aud-sky 14s ease-in-out infinite alternate; }
.scn-arthur-una-dialogue .sun-rays { position:absolute; top:5%; left:55%; width:150px; height:150px; background: radial-gradient(ellipse at 30% 30%, #f5d595 0%, #e8b87c 20%, transparent 100%); border-radius:50%; filter: blur(10px); opacity:0.5; animation: aud-rays 12s ease-in-out infinite alternate; }
.scn-arthur-una-dialogue .clearing { position:absolute; bottom:20%; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 8px 16px rgba(0,0,0,.3); animation: aud-clearing 20s ease-in-out infinite alternate; }
.scn-arthur-una-dialogue .figure-left { position:absolute; bottom:22%; left:35%; width:22px; height:46px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a12 0%, #0a0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: aud-figure 5s ease-in-out infinite; }
.scn-arthur-una-dialogue .figure-right { position:absolute; bottom:24%; left:58%; width:24px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: aud-figure 6s ease-in-out infinite 0.5s; }
.scn-arthur-una-dialogue .aura { position:absolute; bottom:22%; left:55%; width:40px; height:40px; background: radial-gradient(circle, rgba(240,216,160,0.3) 0%, transparent 100%); border-radius:50%; animation: aud-aura 4s ease-in-out infinite alternate; }
.scn-arthur-una-dialogue .rock-1 { position:absolute; bottom:18%; left:30%; width:30px; height:20px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2e1a 100%); border-radius: 40% 60% 40% 40% / 60% 60% 40% 40%; transform:rotate(-10deg); animation: aud-rock 8s ease-in-out infinite alternate; }
.scn-arthur-una-dialogue .rock-2 { position:absolute; bottom:20%; left:65%; width:24px; height:18px; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 50% 40% 30% 50% / 60% 50% 50% 40%; transform:rotate(8deg); animation: aud-rock 10s ease-in-out infinite alternate 2s; }
@keyframes aud-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes aud-rays { 0% { transform: scale(1); opacity:0.4 } 50% { transform: scale(1.15); opacity:0.7 } 100% { transform: scale(0.9); opacity:0.5 } }
@keyframes aud-clearing { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes aud-figure { 0%,100% { transform: translateX(-50%) rotate(-1deg) } 25% { transform: translateX(-50%) rotate(1deg) } 50% { transform: translateX(-50%) rotate(0) } 75% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes aud-aura { 0% { opacity:0.2; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.2) } 100% { opacity:0.3; transform: scale(0.9) } }
@keyframes aud-rock { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-6deg) } 100% { transform: rotate(-10deg) } }

/* Scene: king-hears-news */
.scn-king-hears-news { background: linear-gradient(180deg, #f9e0a0 0%, #f5c36b 40%, #e8a849 100%), radial-gradient(ellipse at 50% 100%, #ffd580 0%, transparent 70%); }
.scn-king-hears-news .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b8d4ff 0%, #ffe6b3 100%); animation: khn-sky 8s ease-in-out infinite alternate; }
.scn-king-hears-news .sun { position:absolute; top:10%; right:20%; width:80px; height:80px; background: radial-gradient(circle, #fff6d0 0%, #ffd580 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #ffc84d; animation: khn-sun 12s ease-in-out infinite; }
.scn-king-hears-news .castle { position:absolute; bottom:30%; left:20%; width:40%; height:50%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: khn-castle 20s ease-in-out infinite; }
.scn-king-hears-news .gate { position:absolute; bottom:32%; left:38%; width:12%; height:25%; background: #4a3a2a; border-radius: 40% 40% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 15px #2a1a0a; transform-origin: bottom center; animation: khn-gate 4s ease-in-out infinite; }
.scn-king-hears-news .king { position:absolute; bottom:35%; left:42%; width:15px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: khn-king 6s ease-in-out infinite; }
.scn-king-hears-news .herald { position:absolute; bottom:35%; left:52%; width:12px; height:35px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%; animation: khn-herald 5s ease-in-out infinite; }
.scn-king-hears-news .joy-particles { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(circle, #ffe066 0%, transparent 40%), radial-gradient(circle at 20% 40%, #fff3a0 0%, transparent 25%), radial-gradient(circle at 80% 50%, #ffdb58 0%, transparent 30%); background-size: 120px 120px, 80px 80px, 100px 100px; background-position: 0 0; animation: khn-particles 3s ease-in-out infinite; }
@keyframes khn-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes khn-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 20px #ffc84d } 50% { transform: scale(1.05); box-shadow: 0 0 80px 30px #ffdd66 } 100% { transform: scale(.98); box-shadow: 0 0 50px 15px #ffb347 } }
@keyframes khn-castle { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes khn-gate { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) scaleY(0.95) } }
@keyframes khn-king { 0% { transform: translate(0,0) rotate(-1deg) } 25% { transform: translate(3px,-1px) rotate(1deg) } 50% { transform: translate(5px,-2px) rotate(0) } 75% { transform: translate(2px,-1px) rotate(2deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes khn-herald { 0% { transform: translateX(0) } 30% { transform: translateX(8px) translateY(-1px) } 60% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes khn-particles { 0%,100% { background-position: 0 0, 20% 40%, 80% 50%; opacity:.6 } 50% { background-position: 30px -20px, 25% 30%, 70% 60%; opacity:1 } }

/* Scene: castle-celebration-trumpets */
.scn-castle-celebration-trumpets { background: linear-gradient(180deg, #b0cfe0 0%, #7ea8c0 50%, #5a7a8a 100%), radial-gradient(ellipse at 50% 80%, #f0e68c 0%, transparent 60%); }
.scn-castle-celebration-trumpets .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #cce5ff 0%, #fef9e7 100%); animation: cst-sky 10s ease-in-out infinite alternate; }
.scn-castle-celebration-trumpets .fortress { position:absolute; bottom:30%; left:10%; width:80%; height:45%; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.4); animation: cst-fortress 15s ease-in-out infinite; }
.scn-castle-celebration-trumpets .trumpet-left { position:absolute; bottom:35%; left:25%; width:8px; height:60px; background: linear-gradient(180deg, #d4a36a 0%, #b8834a 100%); border-radius: 50% 50% 30% 30% / 20% 20% 10% 10%; transform: rotate(-15deg); transform-origin: bottom left; animation: cst-trumpet 4s ease-in-out infinite; }
.scn-castle-celebration-trumpets .trumpet-right { position:absolute; bottom:35%; right:30%; width:8px; height:55px; background: linear-gradient(180deg, #d4a36a 0%, #b8834a 100%); border-radius: 50% 50% 30% 30% / 20% 20% 10% 10%; transform: rotate(15deg); transform-origin: bottom right; animation: cst-trumpet 4s ease-in-out infinite reverse; }
.scn-castle-celebration-trumpets .banner { position:absolute; bottom:55%; left:50%; width:12px; height:70px; background: linear-gradient(180deg, #c8382d 0%, #a0261a 100%); border-radius: 30%; transform: translateX(-50%); box-shadow: 0 0 10px rgba(200,56,45,.5); animation: cst-banner 6s ease-in-out infinite; }
.scn-castle-celebration-trumpets .crowd { position:absolute; bottom:32%; left:15%; width:70%; height:30%; background: radial-gradient(ellipse 50% 100%, #3a4a5a 0%, #2a3a4a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; filter: blur(4px); animation: cst-crowd 20s ease-in-out infinite; }
.scn-castle-celebration-trumpets .light-beams { position:absolute; inset:0; background: linear-gradient(135deg, transparent 40%, rgba(255,220,100,0.3) 45%, transparent 50%), linear-gradient(225deg, transparent 40%, rgba(255,220,100,0.2) 45%, transparent 50%); background-size: 200% 200%; animation: cst-beams 8s ease-in-out infinite; }
@keyframes cst-sky { 0% { opacity:.75; background-position:0 0 } 50% { opacity:.9; background-position:0 -10% } 100% { opacity:.8; background-position:0 5% } }
@keyframes cst-fortress { 0%,100% { transform: scale(1) } 50% { transform: scale(1.01) translateY(-1px) } }
@keyframes cst-trumpet { 0% { transform: rotate(-15deg) scaleY(1) } 50% { transform: rotate(-10deg) scaleY(1.02) } 100% { transform: rotate(-15deg) scaleY(1) } }
@keyframes cst-banner { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(-3deg) } 75% { transform: translateX(-50%) rotate(4deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes cst-crowd { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes cst-beams { 0% { opacity:.5; background-position:0% 0% } 50% { opacity:.8; background-position:50% 50% } 100% { opacity:.5; background-position:100% 100% } }

/* Scene: procession-royal-family */
.scn-procession-royal-family { background: linear-gradient(180deg, #d6c4a0 0%, #c0a878 40%, #a08850 100%), radial-gradient(ellipse at 50% 80%, #f5e6c0 0%, transparent 60%); }
.scn-procession-royal-family .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffeedd 0%, #fdf0d5 100%); animation: prf-sky 12s ease-in-out infinite alternate; }
.scn-procession-royal-family .road { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: prf-road 20s ease-in-out infinite; }
.scn-procession-royal-family .queen { position:absolute; bottom:35%; left:30%; width:18px; height:55px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prf-figure 8s ease-in-out infinite; }
.scn-procession-royal-family .lord { position:absolute; bottom:35%; left:45%; width:20px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: prf-figure 8s ease-in-out infinite 2s; }
.scn-procession-royal-family .young-men { position:absolute; bottom:35%; left:15%; width:12px; height:40px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; margin-left: 5px; animation: prf-young 6s ease-in-out infinite; }
.scn-procession-royal-family .standard { position:absolute; bottom:40%; right:25%; width:10px; height:80px; background: linear-gradient(180deg, #b09060 0%, #8a7040 100%); border-radius: 10%; transform: rotate(5deg); box-shadow: 0 0 10px rgba(0,0,0,.3); animation: prf-standard 10s ease-in-out infinite; }
.scn-procession-royal-family .crown-glow { position:absolute; bottom:55%; left:37%; width:16px; height:12px; background: radial-gradient(circle, #ffd580 0%, transparent 70%); border-radius: 50%; animation: prf-crown 4s ease-in-out infinite; }
@keyframes prf-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes prf-road { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes prf-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(10px) rotate(-2deg) } 75% { transform: translateX(15px) rotate(2deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes prf-young { 0% { transform: translateX(0) } 50% { transform: translateX(8px) translateY(-1px) } 100% { transform: translateX(16px) } }
@keyframes prf-standard { 0% { transform: rotate(5deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(5deg) scaleY(1) } }
@keyframes prf-crown { 0%,100% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } }

/* Scene: procession-lord-patron */
.scn-procession-lord-patron { background: linear-gradient(180deg, #d2b48c 0%, #b8956a 40%, #9a7b50 100%), radial-gradient(ellipse at 50% 100%, #eeddbb 0%, transparent 70%); }
.scn-procession-lord-patron .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f0e6d0 0%, #fdf5e6 100%); animation: plp-sky 14s ease-in-out infinite alternate; }
.scn-procession-lord-patron .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; animation: plp-ground 18s ease-in-out infinite; }
.scn-procession-lord-patron .conqueror { position:absolute; bottom:35%; left:50%; width:22px; height:65px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%; transform: translateX(-50%); animation: plp-conqueror 5s ease-in-out infinite; }
.scn-procession-lord-patron .prostrate { position:absolute; bottom:10%; left:15%; width:14px; height:18px; background: #4a3a2a; border-radius: 50% 50% 0 0; transform: rotate(10deg); animation: plp-prostrate 8s ease-in-out infinite; }
.scn-procession-lord-patron .virgin-1 { position:absolute; bottom:20%; left:25%; width:12px; height:30px; background: #6a5a4a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: plp-virgin 6s ease-in-out infinite; }
.scn-procession-lord-patron .virgin-2 { position:absolute; bottom:25%; left:60%; width:12px; height:30px; background: #6a5a4a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: plp-virgin 6s ease-in-out infinite 2s; }
.scn-procession-lord-patron .virgin-3 { position:absolute; bottom:22%; right:15%; width:12px; height:30px; background: #6a5a4a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: plp-virgin 6s ease-in-out infinite 4s; }
.scn-procession-lord-patron .garlands { position:absolute; bottom:30%; left:30%; width:40%; height:10px; background: radial-gradient(circle at 10% 50%, #f0c060 0%, transparent 15%), radial-gradient(circle at 30% 50%, #e0b050 0%, transparent 15%), radial-gradient(circle at 50% 50%, #d0a040 0%, transparent 15%), radial-gradient(circle at 70% 50%, #c09030 0%, transparent 15%), radial-gradient(circle at 90% 50%, #b08020 0%, transparent 15%); background-size: 20% 100%; animation: plp-garlands 10s linear infinite; }
.scn-procession-lord-patron .laurel { position:absolute; bottom:40%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #6b8e23 0%, transparent 70%); border-radius: 50%; animation: plp-laurel 4s ease-in-out infinite; }
@keyframes plp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes plp-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes plp-conqueror { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) translateY(-2px) } }
@keyframes plp-prostrate { 0% { transform: translateX(0) rotate(10deg) } 30% { transform: translateX(3px) rotate(5deg) } 60% { transform: translateX(6px) rotate(12deg) } 100% { transform: translateX(0) rotate(10deg) } }
@keyframes plp-virgin { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(4deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes plp-garlands { 0% { background-position:0 0 } 100% { background-position:200% 0 } }
@keyframes plp-laurel { 0%,100% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.5) } }

.scn-archimago-appeases-her {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%) 0 0,
    radial-gradient(ellipse at 50% 100%, #d4a76a 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-archimago-appeases-her .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, #fdf5e6 100%);
  animation: scn1-sky 15s ease-in-out infinite alternate;
}
.scn-archimago-appeases-her .sea {
  position: absolute; bottom: 20%; left:0; right:0; height: 35%;
  background: linear-gradient(180deg, #3f6b8c 0%, #5a8fbb 100%);
  border-radius: 0 0 80% 80% / 0 0 20% 20%;
  animation: scn1-sea 8s ease-in-out infinite alternate;
}
.scn-archimago-appeases-her .shore {
  position: absolute; bottom: 10%; left:15%; width:70%; height:15%;
  background: linear-gradient(135deg, #c8a98a 0%, #d4b89b 100%);
  border-radius: 40% 60% 30% 70% / 60% 40% 70% 30%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.15);
  animation: scn1-shore 12s ease-in-out infinite alternate;
}
.scn-archimago-appeases-her .figure {
  position: absolute; bottom: 22%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #7a5c3a 0%, #4a3220 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scn1-figure 6s ease-in-out infinite;
}
.scn-archimago-appeases-her .ship {
  position: absolute; bottom: 28%; left: 65%; width: 80px; height: 30px;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a5a3a 100%);
  border-radius: 10% 10% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: scn1-ship 20s ease-in-out infinite alternate;
}
.scn-archimago-appeases-her .sail {
  position: absolute; bottom: 38%; left: 69%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #f5deb3 0%, #e6c68a 100%);
  border-radius: 0 20% 20% 0 / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: scn1-sail 6s ease-in-out infinite;
}
.scn-archimago-appeases-her .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(90deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: scn1-drift-a 40s linear infinite;
}
.scn-archimago-appeases-her .cloud-b {
  position: absolute; top: 8%; right: 15%; width: 80px; height: 15px;
  background: linear-gradient(90deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: scn1-drift-b 50s linear infinite reverse;
}

@keyframes scn1-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes scn1-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes scn1-shore { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes scn1-figure { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes scn1-ship { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes scn1-sail { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(0.95); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes scn1-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes scn1-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* ---------- sansloy-appears ---------- */
.scn-sansloy-appears {
  background:
    linear-gradient(180deg, #fabf7a 0%, #e3954a 50%, #c07b3a 100%);
  background-blend-mode: normal;
}
.scn-sansloy-appears .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fdd9a5 0%, #fabf7a 100%);
  animation: scn2-sky 6s ease-in-out infinite alternate;
}
.scn-sansloy-appears .ground {
  position: absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #b87a42 0%, #8a5a2e 100%);
  border-radius: 20% 80% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-sansloy-appears .horse {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #6a3a1a 0%, #4a2a10 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-5deg);
  animation: scn2-horse 0.8s ease-in-out infinite alternate;
}
.scn-sansloy-appears .knight {
  position: absolute; bottom: 40%; left: 42%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #9a7a5a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: scn2-knight 0.6s ease-in-out infinite alternate;
}
.scn-sansloy-appears .spear {
  position: absolute; bottom: 42%; left: 68%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #c0a060 0%, #806020 100%);
  border-radius: 3px;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: scn2-spear 1s ease-in-out infinite alternate;
}
.scn-sansloy-appears .dust-1 {
  position: absolute; bottom: 12%; left: 30%; width: 50px; height: 30px;
  background: rgba(180,140,80,0.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: scn2-dust 2s ease-in-out infinite;
}
.scn-sansloy-appears .dust-2 {
  position: absolute; bottom: 10%; left: 55%; width: 40px; height: 20px;
  background: rgba(180,140,80,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: scn2-dust2 2.5s ease-in-out infinite alternate;
}
.scn-sansloy-appears .shadow {
  position: absolute; bottom: 15%; left: 38%; width: 70px; height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: scn2-shadow 0.8s ease-in-out infinite alternate;
}

@keyframes scn2-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes scn2-horse { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes scn2-knight { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes scn2-spear { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(28deg) translateY(-2px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes scn2-dust { 0% { transform: translateX(0) scale(1); opacity: 0.6; } 50% { transform: translateX(-10px) scale(1.2); opacity: 0.3; } 100% { transform: translateX(0) scale(1); opacity: 0.6; } }
@keyframes scn2-dust2 { 0% { transform: translateX(0) scale(0.8); opacity: 0.5; } 50% { transform: translateX(10px) scale(1.1); opacity: 0.2; } 100% { transform: translateX(0) scale(0.8); opacity: 0.5; } }
@keyframes scn2-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.1); opacity: 0.4; } 100% { transform: scaleX(1); opacity: 0.3; } }

/* ---------- sansloy-challenges-archimago ---------- */
.scn-sansloy-challenges-archimago {
  background:
    linear-gradient(180deg, #f0c370 0%, #d9a050 40%, #c08030 100%);
}
.scn-sansloy-challenges-archimago .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, #f0c370 100%);
  animation: scn3-sky 8s ease-in-out infinite alternate;
}
.scn-sansloy-challenges-archimago .ground {
  position: absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #b87a42 0%, #7a5230 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.2);
}
.scn-sansloy-challenges-archimago .knight-left {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a10 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: scn3-left 2s ease-in-out infinite alternate;
}
.scn-sansloy-challenges-archimago .knight-right {
  position: absolute; bottom: 25%; right: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: scn3-right 2s ease-in-out infinite alternate;
}
.scn-sansloy-challenges-archimago .lady {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #c8a06a 0%, #8a6030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scn3-lady 3s ease-in-out infinite;
}
.scn-sansloy-challenges-archimago .lance-l {
  position: absolute; bottom: 40%; left: 32%; width: 5px; height: 70px;
  background: linear-gradient(180deg, #b09060 0%, #705020 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom left;
  animation: scn3-lance-l 1.5s ease-in-out infinite alternate;
}
.scn-sansloy-challenges-archimago .lance-r {
  position: absolute; bottom: 40%; right: 32%; width: 5px; height: 70px;
  background: linear-gradient(180deg, #907050 0%, #503010 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom right;
  animation: scn3-lance-r 1.5s ease-in-out infinite alternate;
}
.scn-sansloy-challenges-archimago .shield {
  position: absolute; bottom: 38%; left: 70%; width: 25px; height: 30px;
  background: linear-gradient(135deg, #b83020 0%, #701010 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 0 0 3px #d09050;
  animation: scn3-shield 1s ease-in-out infinite alternate;
}

@keyframes scn3-sky { 0% { opacity: 0.75; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes scn3-left { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes scn3-right { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes scn3-lady { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-4px) rotate(1deg); } 66% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes scn3-lance-l { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-13deg) scaleY(1.05); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes scn3-lance-r { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(13deg) scaleY(1.05); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes scn3-shield { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(5deg) translateX(-4px); } 100% { transform: rotate(0deg) translateX(0); } }

/* ---------- sansloy-unhorses-archimago ---------- */
.scn-sansloy-unhorses-archimago {
  background:
    linear-gradient(180deg, #e8b060 0%, #c08030 60%, #a06020 100%);
}
.scn-sansloy-unhorses-archimago .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fcd79a 0%, #e8b060 100%);
  animation: scn4-sky 4s ease-in-out infinite alternate;
}
.scn-sansloy-unhorses-archimago .ground {
  position: absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #9a6a3a 0%, #6a3a1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
}
.scn-sansloy-unhorses-archimago .horse {
  position: absolute; bottom: 22%; left: 30%; width: 90px; height: 70px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-10deg) scaleX(0.9);
  animation: scn4-horse 0.6s ease-in-out infinite alternate;
}
.scn-sansloy-unhorses-archimago .knight {
  position: absolute; bottom: 38%; left: 40%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #8a6030 0%, #4a2a10 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform: rotate(45deg) translate(10px, -10px);
  transform-origin: bottom center;
  animation: scn4-knight 0.5s ease-in-out infinite alternate;
}
.scn-sansloy-unhorses-archimago .spear {
  position: absolute; bottom: 35%; left: 55%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #c0a060 0%, #806020 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: scn4-spear 1s ease-in-out infinite alternate;
}
.scn-sansloy-unhorses-archimago .shield-piece {
  position: absolute; bottom: 30%; right: 30%; width: 20px; height: 25px;
  background: linear-gradient(135deg, #a04020 0%, #702010 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  transform: rotate(-30deg);
  box-shadow: inset 0 0 0 2px #c08050;
  animation: scn4-shield 0.8s ease-in-out infinite alternate;
}
.scn-sansloy-unhorses-archimago .dust-cluster {
  position: absolute; bottom: 15%; left: 45%; width: 80px; height: 40px;
  background: rgba(160,120,60,0.5);
  border-radius: 50%;
  filter: blur(12px);
  animation: scn4-dust 1.5s ease-in-out infinite;
}
.scn-sansloy-unhorses-archimago .impact-spark {
  position: absolute; bottom: 40%; left: 52%; width: 15px; height: 15px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,192,64,0.6);
  animation: scn4-spark 0.3s ease-in-out infinite alternate;
}

@keyframes scn4-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.65; } }
@keyframes scn4-horse { 0% { transform: rotate(-10deg) scaleX(0.9) translateY(0); } 50% { transform: rotate(-8deg) scaleX(0.92) translateY(-5px); } 100% { transform: rotate(-10deg) scaleX(0.9) translateY(0); } }
@keyframes scn4-knight { 0% { transform: rotate(45deg) translate(10px,-10px); } 50% { transform: rotate(40deg) translate(12px,-12px); } 100% { transform: rotate(45deg) translate(10px,-10px); } }
@keyframes scn4-spear { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(22deg) translateY(-4px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes scn4-shield { 0% { transform: rotate(-30deg) translateY(0); opacity: 0.8; } 50% { transform: rotate(-35deg) translateY(-6px); opacity: 1; } 100% { transform: rotate(-30deg) translateY(0); opacity: 0.8; } }
@keyframes scn4-dust { 0% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(1.3); opacity: 0.1; } 100% { transform: scale(1); opacity: 0.4; } }
@keyframes scn4-spark { 0% { transform: scale(1); opacity: 0.9; } 100% { transform: scale(1.6); opacity: 0.2; } }

/* Scene 1: abessa-tells-corceca – dark interior, blind mother, Una entering */
.scn-abessa-tells-corceca {
  background: linear-gradient(180deg, #0c0812 0%, #1a1025 40%, #2a1a3e 80%, #3a2a4e 100%),
              radial-gradient(ellipse at 50% 0%, #3a2a4e 0%, transparent 60%);
}
.scn-abessa-tells-corceca .bg-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1225 0%, #0a0615 100%);
  animation: atc-wall 20s ease-in-out infinite alternate;
}
.scn-abessa-tells-corceca .bg-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1210 0%, #2a1a18 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: atc-floor 15s ease-in-out infinite alternate;
}
.scn-abessa-tells-corceca .figure-corceca {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: atc-corceca 8s ease-in-out infinite;
}
.scn-abessa-tells-corceca .door {
  position: absolute;
  bottom: 20%;
  right: 15%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 4px 0 8px rgba(0,0,0,.5);
  animation: atc-door 12s ease-in-out infinite alternate;
}
.scn-abessa-tells-corceca .figure-una {
  position: absolute;
  bottom: 18%;
  right: 10%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: atc-una 6s ease-in-out infinite;
}
.scn-abessa-tells-corceca .candle-glow {
  position: absolute;
  bottom: 28%;
  left: 28%;
  width: 8px;
  height: 12px;
  background: radial-gradient(circle, #f0c068 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3);
  animation: atc-glow 3s ease-in-out infinite alternate;
}

@keyframes atc-wall { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes atc-floor { 0% { transform: skewX(-2deg) } 50% { transform: skewX(0deg) } 100% { transform: skewX(2deg) } }
@keyframes atc-corceca { 0% { transform: rotate(-3deg) translateX(0) } 25% { transform: rotate(2deg) translateX(2px) } 50% { transform: rotate(-1deg) translateX(0) } 75% { transform: rotate(4deg) translateX(-2px) } 100% { transform: rotate(-3deg) translateX(0) } }
@keyframes atc-door { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.02) } 100% { opacity:.3; transform: scaleY(.98) } }
@keyframes atc-una { 0% { transform: translateX(-5px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(5px) rotate(2deg) } }
@keyframes atc-glow { 0% { opacity:.7; box-shadow: 0 0 15px 3px #a06030, 0 0 30px 8px rgba(160,96,48,.3) } 50% { opacity:1; box-shadow: 0 0 25px 6px #f0c068, 0 0 50px 15px rgba(240,192,104,.5) } 100% { opacity:.8; box-shadow: 0 0 18px 4px #c08040, 0 0 36px 10px rgba(192,128,64,.35) } }

/* Scene 2: lion-breaks-in – dark corner, frightened figures, lion burst */
.scn-lion-breaks-in {
  background: linear-gradient(135deg, #0a0a14 0%, #1a1422 40%, #2a1e2e 70%, #3a2a3e 100%),
              radial-gradient(ellipse at 80% 20%, #4a2a3a 0%, transparent 60%);
}
.scn-lion-breaks-in .bg-corner {
  position: absolute;
  inset: 0 0 20% 20%;
  background: linear-gradient(135deg, #12101a 0%, #1a1822 100%);
  border-radius: 0 60% 0 0 / 0 80% 0 0;
  animation: lbi-corner 15s ease-in-out infinite alternate;
}
.scn-lion-breaks-in .wall-shadow {
  position: absolute;
  inset: 0 0 0 0;
  background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,.4) 100%);
  animation: lbi-shadow 10s ease-in-out infinite alternate;
}
.scn-lion-breaks-in .figure-corceca-fear {
  position: absolute;
  bottom: 12%;
  left: 25%;
  width: 24px;
  height: 36px;
  background: linear-gradient(180deg, #2a2232 0%, #1a1222 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform: scale(0.9);
  animation: lbi-cower 4s ease-in-out infinite;
}
.scn-lion-breaks-in .lion {
  position: absolute;
  bottom: 8%;
  right: 5%;
  width: 70px;
  height: 60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  clip-path: polygon(0% 100%, 30% 30%, 50% 10%, 70% 30%, 100% 100%);
  transform-origin: bottom right;
  animation: lbi-lunge 6s ease-in-out infinite;
}
.scn-lion-breaks-in .door-light {
  position: absolute;
  bottom: 15%;
  left: 5%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, rgba(255,200,100,0.3) 0%, transparent 100%);
  border-radius: 0 0 20% 20%;
  filter: blur(4px);
  animation: lbi-light 8s ease-in-out infinite alternate;
}
.scn-lion-breaks-in .dust-particles {
  position: absolute;
  top: 30%;
  left: 40%;
  width: 8px;
  height: 8px;
  background: rgba(200,180,160,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: lbi-dust 12s linear infinite;
}

@keyframes lbi-corner { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes lbi-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes lbi-cower { 0% { transform: scale(0.85) translateX(0) } 25% { transform: scale(0.8) translateX(-3px) } 50% { transform: scale(0.85) translateX(0) } 75% { transform: scale(0.8) translateX(3px) } 100% { transform: scale(0.85) translateX(0) } }
@keyframes lbi-lunge { 0% { transform: rotate(-10deg) translateX(0) } 20% { transform: rotate(0deg) translateX(-10px) } 40% { transform: rotate(10deg) translateX(-5px) } 60% { transform: rotate(0deg) translateX(0) } 80% { transform: rotate(-5deg) translateX(5px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes lbi-light { 0% { opacity:.1; transform: scaleY(1) } 50% { opacity:.4; transform: scaleY(1.2) } 100% { opacity:.15; transform: scaleY(.9) } }
@keyframes lbi-dust { 0% { transform: translate(0,0); opacity:.3 } 25% { transform: translate(15px,-20px); opacity:.1 } 50% { transform: translate(30px,-10px); opacity:.4 } 75% { transform: translate(45px,-30px); opacity:.2 } 100% { transform: translate(60px,-15px); opacity:.3 } }

/* Scene 3: corcecas-penance – calm, dark, kneeling figure in ashes */
.scn-corcecas-penance {
  background: linear-gradient(180deg, #0e0e16 0%, #1a1a2a 40%, #2a2a3a 80%, #3a3a4a 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%);
}
.scn-corcecas-penance .bg-cell {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e16 100%);
  animation: cp-bg 20s ease-in-out infinite alternate;
}
.scn-corcecas-penance .ash-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #2a2a2a 0%, #3a3a2a 50%, #4a4a3a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: cp-ash 18s ease-in-out infinite alternate;
}
.scn-corcecas-penance .figure-kneeling {
  position: absolute;
  bottom: 12%;
  left: 50%;
  width: 28px;
  height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%) scale(0.9);
  animation: cp-kneel 6s ease-in-out infinite;
}
.scn-corcecas-penance .beads {
  position: absolute;
  bottom: 18%;
  left: 44%;
  width: 18px;
  height: 4px;
  background: linear-gradient(90deg, #5a4a3a 0%, #8a6a4a 50%, #5a4a3a 100%);
  border-radius: 30%;
  filter: blur(1px);
  animation: cp-beads 4s ease-in-out infinite;
}
.scn-corcecas-penance .candle-flame {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 6px;
  height: 10px;
  background: radial-gradient(circle, #f0c040 0%, #d08020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #d08020, 0 0 32px 8px rgba(208,128,32,0.4);
  animation: cp-flame 2s ease-in-out infinite alternate;
}
.scn-corcecas-penance .shadow-cross {
  position: absolute;
  bottom: 0;
  left: 55%;
  width: 20px;
  height: 40px;
  background: rgba(20,20,30,0.6);
  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: cp-cross 12s ease-in-out infinite alternate;
}

@keyframes cp-bg { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.6 } }
@keyframes cp-ash { 0% { background-position: 0% 0% } 50% { background-position: 50% 0% } 100% { background-position: 100% 0% } }
@keyframes cp-kneel { 0% { transform: translateX(-50%) rotate(0deg) scale(0.9) } 25% { transform: translateX(-50%) rotate(-2deg) scale(0.88) } 50% { transform: translateX(-50%) rotate(0deg) scale(0.9) } 75% { transform: translateX(-50%) rotate(2deg) scale(0.88) } 100% { transform: translateX(-50%) rotate(0deg) scale(0.9) } }
@keyframes cp-beads { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-2px) } }
@keyframes cp-flame { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.8; transform: scaleY(.9) } }
@keyframes cp-cross { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.4; transform: scale(1.05) } 100% { opacity:.25; transform: scale(.95) } }

/* Scene 4: una-weeps-for-knight – sad, night, Una lying on ground weeping */
.scn-una-weeps-for-knight {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 30%, #2a2a4e 60%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 70%);
}
.scn-una-weeps-for-knight .sky-night {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #151530 50%, #1a1a3e 100%);
  animation: uwk-sky 25s ease-in-out infinite alternate;
}
.scn-una-weeps-for-knight .ground-dark {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0a0a12 0%, #1a1a22 50%, #2a2a32 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: uwk-ground 18s ease-in-out infinite alternate;
}
.scn-una-weeps-for-knight .figure-una-weeps {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 30px;
  height: 20px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(-10deg);
  animation: uwk-weep 5s ease-in-out infinite;
}
.scn-una-weeps-for-knight .moon-crescent {
  position: absolute;
  top: 10%;
  right: 20%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle at 60% 50%, #e0e0f0 0%, #a0a0c0 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: uwk-moon 30s linear infinite;
}
.scn-una-weeps-for-knight .tree-silhouette {
  position: absolute;
  bottom: 15%;
  left: 10%;
  width: 20px;
  height: 60px;
  background: #0a0a12;
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-5deg);
  animation: uwk-tree 15s ease-in-out infinite alternate;
}
.scn-una-weeps-for-knight .stars-1 {
  position: absolute;
  top: 5%;
  left: 15%;
  width: 4px;
  height: 4px;
  background: rgba(255,255,255,0.7);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.4);
  animation: uwk-star1 6s ease-in-out infinite alternate;
}
.scn-una-weeps-for-knight .stars-2 {
  position: absolute;
  top: 14%;
  left: 70%;
  width: 3px;
  height: 3px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(255,255,255,0.3);
  animation: uwk-star2 8s ease-in-out infinite alternate;
}

@keyframes uwk-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes uwk-ground { 0% { background-position: 0% 0% } 50% { background-position: 50% 0% } 100% { background-position: 100% 0% } }
@keyframes uwk-weep { 0% { transform: translateX(-50%) rotate(-10deg) translateY(0) } 25% { transform: translateX(-50%) rotate(-12deg) translateY(-2px) } 50% { transform: translateX(-50%) rotate(-8deg) translateY(0) } 75% { transform: translateX(-50%) rotate(-14deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(-10deg) translateY(0) } }
@keyframes uwk-moon { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-10px) translateY(5px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes uwk-tree { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-7deg) scaleY(1.02) } 100% { transform: rotate(-3deg) scaleY(.98) } }
@keyframes uwk-star1 { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.3 } }
@keyframes uwk-star2 { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.5 } }

/* Scene: redcrosse-and-false-una */
.scn-redcrosse-and-false-una {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #2a1a2e 100%), radial-gradient(ellipse at 50% 0%, #2a2a4e 0%, transparent 70%);
}
.scn-redcrosse-and-false-una .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #0f0f1a 100%);
  animation: rc-skyfade 12s ease-in-out infinite alternate;
}
.scn-redcrosse-and-false-una .moon {
  position: absolute; top: 10%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d4d4e8 0%, #a0a0c0 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(160,160,192,0.4);
  animation: rc-moondrift 50s linear infinite;
}
.scn-redcrosse-and-false-una .tree-trunk {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 150px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2b2b1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 5% 5% 10% 10%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
  animation: rc-treesway 8s ease-in-out infinite;
}
.scn-redcrosse-and-false-una .bleeding-bough {
  position: absolute; bottom: 60%; left: 40%; width: 60px; height: 10px;
  background: linear-gradient(90deg, #6b2a1a 0%, #4a1010 100%);
  border-radius: 50% 10% 10% 50% / 100% 100% 100% 100%;
  transform-origin: left center;
  box-shadow: 0 0 15px 5px rgba(107,42,26,0.6);
  animation: rc-boughdrop 3s ease-in-out infinite;
}
.scn-redcrosse-and-false-una .blood-drop {
  position: absolute; bottom: 55%; left: 42%; width: 4px; height: 8px;
  background: #6b2a1a;
  border-radius: 50%;
  box-shadow: 0 5px 10px rgba(107,42,26,0.5);
  animation: rc-drip 4s ease-in-out infinite;
}
.scn-redcrosse-and-false-una .false-una {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  box-shadow: -2px 0 4px rgba(0,0,0,0.5);
  animation: rc-falseshift 6s ease-in-out infinite;
}
.scn-redcrosse-and-false-una .redcrosse {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(-5deg);
  animation: rc-redshift 6s ease-in-out infinite;
}
.scn-redcrosse-and-false-una .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0f0f05 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
@keyframes rc-skyfade { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes rc-moondrift { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }
@keyframes rc-treesway { 0%, 100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes rc-boughdrop { 0%, 100% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(5deg) scaleY(0.9); } }
@keyframes rc-drip { 0% { opacity: 1; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(12px); } 100% { opacity: 1; transform: translateY(0); } }
@keyframes rc-falseshift { 0%, 100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(13deg) translateY(-2px); } }
@keyframes rc-redshift { 0%, 100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }

/* Scene: duessa-faints */
.scn-duessa-faints {
  background: linear-gradient(180deg, #0d0d1f 0%, #1a1a30 50%, #2a1a2e 100%), radial-gradient(ellipse at 30% 70%, #2a2a4e 0%, transparent 60%);
}
.scn-duessa-faints .night-sky-df {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #13132b 0%, #0a0a1a 100%);
  animation: df-skydim 10s ease-in-out infinite alternate;
}
.scn-duessa-faints .moon-df {
  position: absolute; top: 12%; left: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c0c0d8 0%, #8080a0 80%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px rgba(128,128,160,0.3);
  animation: df-moonrise 45s linear infinite;
}
.scn-duessa-faints .feigned-dead {
  position: absolute; bottom: 22%; left: 35%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: df-faint 4s ease-in-out infinite;
}
.scn-duessa-faints .kneeling-figure {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  transform: rotate(-10deg);
  animation: df-kneel 5s ease-in-out infinite;
}
.scn-duessa-faints .arm-reach {
  position: absolute; bottom: 30%; left: 52%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: right center;
  animation: df-arm 3s ease-in-out infinite;
}
.scn-duessa-faints .cloak {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 25px;
  background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: df-cloaksway 6s ease-in-out infinite;
}
.scn-duessa-faints .ground-df {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #1a1a0f 0%, #0f0f08 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
@keyframes df-skydim { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes df-moonrise { 0% { transform: translateX(0); } 100% { transform: translateX(140vw); } }
@keyframes df-faint { 0%, 100% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-1px); } }
@keyframes df-kneel { 0%, 100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes df-arm { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(15deg); } }
@keyframes df-cloaksway { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(3px); } }

/* Scene: canto-3-argument */
.scn-canto-3-argument {
  background: linear-gradient(180deg, #ffdab9 0%, #ffc8a0 30%, #f0d8c0 70%, #e0c0a0 100%), radial-gradient(ellipse at 50% 100%, #ffecd5 0%, transparent 60%);
}
.scn-canto-3-argument .dawn-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #ffe8d0 0%, #ffd4a8 70%, #ffc090 100%);
  animation: ct-skyglow 15s ease-in-out infinite alternate;
}
.scn-canto-3-argument .sun-glow {
  position: absolute; top: 15%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5e0 0%, #ffd4a8 40%, transparent 80%);
  border-radius: 50%;
  animation: ct-sunrise 20s ease-in-out infinite;
}
.scn-canto-3-argument .lion {
  position: absolute; bottom: 30%; left: 25%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #b08968 0%, #8b6b4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform: rotate(-5deg);
  box-shadow: 0 5px 10px rgba(0,0,0,0.2);
  animation: ct-lionbreathe 4s ease-in-out infinite;
}
.scn-canto-3-argument .una-figure {
  position: absolute; bottom: 25%; left: 55%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c4a8 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform: rotate(5deg);
  animation: ct-unastand 6s ease-in-out infinite;
}
.scn-canto-3-argument .broken-column {
  position: absolute; bottom: 28%; left: 10%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #c8b89a 0%, #a09070 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  transform: rotate(-15deg);
  box-shadow: inset 0 0 8px rgba(0,0,0,0.2);
  animation: ct-columnfall 12s ease-in-out infinite;
}
.scn-canto-3-argument .flowers {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #ffb0a0 0%, #ffd0c0 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ct-flowersway 7s ease-in-out infinite;
}
.scn-canto-3-argument .ground-ct {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a880 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
@keyframes ct-skyglow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ct-sunrise { 0% { transform: scale(0.9); opacity: 0.9; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.95; } }
@keyframes ct-lionbreathe { 0%, 100% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-5deg) scaleY(1.05); } }
@keyframes ct-unastand { 0%, 100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes ct-columnfall { 0%, 100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(3px); } }
@keyframes ct-flowersway { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(4px); } }

/* Scene: pity-for-una */
.scn-pity-for-una {
  background: linear-gradient(180deg, #8fa8b0 0%, #b0c8d0 30%, #c8d8e0 70%, #d8d8d0 100%), radial-gradient(ellipse at 50% 100%, #c0d0d8 0%, transparent 60%);
}
.scn-pity-for-una .dawn-sky-pf {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0c8d8 0%, #d0d8d8 50%, #e0e0d0 100%);
  animation: pf-skysad 18s ease-in-out infinite alternate;
}
.scn-pity-for-una .sunrise {
  position: absolute; top: 20%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, #f0e0c0 0%, #d8c8a0 40%, transparent 80%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: pf-dawn 25s ease-in-out infinite;
}
.scn-pity-for-una .weeping-una {
  position: absolute; bottom: 20%; left: 40%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #d0c8b8 0%, #b8a898 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform: rotate(10deg);
  animation: pf-weep 4s ease-in-out infinite;
}
.scn-pity-for-una .knight-kneeling {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  transform: rotate(-8deg);
  animation: pf-kneel 5s ease-in-out infinite;
}
.scn-pity-for-una .teardrop {
  position: absolute; bottom: 30%; left: 42%; width: 4px; height: 6px;
  background: #a0b0c0;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(160,176,192,0.5);
  animation: pf-tear 4s ease-in-out infinite;
}
.scn-pity-for-una .hand-reaching {
  position: absolute; bottom: 28%; left: 50%; width: 16px; height: 8px;
  background: linear-gradient(90deg, #d0c8b8 0%, #b8a898 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: left center;
  animation: pf-hand 6s ease-in-out infinite;
}
.scn-pity-for-una .ground-pf {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b0b0a0 0%, #909080 100%);
  border-radius: 30% 70% 0 0 / 40% 40% 0 0;
}
@keyframes pf-skysad { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pf-dawn { 0% { transform: translateX(-50%) scale(0.9); opacity: 0.7; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.8; } }
@keyframes pf-weep { 0%, 100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } }
@keyframes pf-kneel { 0%, 100% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-3px); } }
@keyframes pf-tear { 0% { opacity: 0.8; transform: translateY(0); } 50% { opacity: 1; transform: translateY(15px); } 100% { opacity: 0.8; transform: translateY(30px) scale(0.8); } }
@keyframes pf-hand { 0%, 100% { transform: rotate(0) translateX(0); } 50% { transform: rotate(10deg) translateX(2px); } }

.scn-be-at-your-keeping-well {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #d4c4a8 40%),
    radial-gradient(ellipse at 50% 100%, #e8d8b8 0%, transparent 60%);
}
.scn-be-at-your-keeping-well .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #b8a68a 0%, #d4c4a8 50%, #b8a68a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.15);
}
.scn-be-at-your-keeping-well .window-arch {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, transparent 70%, #8a7a64 72%, #6a5a44 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
}
.scn-be-at-your-keeping-well .sky-out {
  position: absolute; top: 12%; left: 37%; width: 26%; height: 46%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #f0e68c 100%);
  border-radius: 50% 50% 0 0;
}
.scn-be-at-your-keeping-well .hills-out {
  position: absolute; bottom: 45%; left: 37%; width: 26%; height: 12%;
  background: linear-gradient(180deg, #6b8e23 0%, #3cb371 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
}
.scn-be-at-your-keeping-well .guard {
  position: absolute; bottom: 20%; left: 42%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: bky-guard 6s ease-in-out infinite;
}
.scn-be-at-your-keeping-well .lantern {
  position: absolute; bottom: 28%; left: 35%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 10px 2px rgba(255, 140, 0, 0.4);
  animation: bky-lantern 4s ease-in-out infinite alternate;
}
.scn-be-at-your-keeping-well .candle-glow {
  position: absolute; bottom: 31%; left: 35.5%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffa500 0%, #ff8c00 40%, transparent 80%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 8px rgba(255, 140, 0, 0.6);
  animation: bky-glow 2s ease-in-out infinite alternate;
}
.scn-be-at-your-keeping-well .flagstone {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}

@keyframes bky-guard {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-2px) rotate(0deg); }
  60% { transform: translateY(0) rotate(1deg); }
  100% { transform: translateY(-1px) rotate(-0.5deg); }
}
@keyframes bky-lantern {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); }
}
@keyframes bky-glow {
  0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(255, 140, 0, 0.4); }
  50% { opacity: 1; box-shadow: 0 0 25px 10px rgba(255, 140, 0, 0.7); }
  100% { opacity: 0.8; box-shadow: 0 0 18px 5px rgba(255, 140, 0, 0.5); }
}

.scn-o-thou-sacred-muse {
  background: 
    linear-gradient(180deg, #fdf5e6 0%, #f5deb3 40%),
    radial-gradient(ellipse at 60% 50%, rgba(255, 215, 0, 0.2) 0%, transparent 70%);
}
.scn-o-thou-sacred-muse .room {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #e8dcc8 0%, #dcd0b8 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
}
.scn-o-thou-sacred-muse .window-light {
  position: absolute; top: 8%; left: 30%; width: 40%; height: 55%;
  background: radial-gradient(ellipse at 50% 0%, #fff8dc 60%, transparent 80%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 40px 20px rgba(255, 248, 220, 0.4);
}
.scn-o-thou-sacred-muse .light-beam {
  position: absolute; top: 20%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(255, 255, 224, 0.3) 0%, transparent 80%);
  transform: skewX(-10deg);
  filter: blur(4px);
  animation: osm-beam 8s ease-in-out infinite alternate;
}
.scn-o-thou-sacred-muse .muse {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #d2b48c 0%, #8b6f47 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: osm-muse 6s ease-in-out infinite;
}
.scn-o-thou-sacred-muse .scroll {
  position: absolute; bottom: 18%; left: 48%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
  border-radius: 10% 10% 10% 10%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.scn-o-thou-sacred-muse .lyre {
  position: absolute; bottom: 25%; left: 38%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%);
  border-radius: 30% 30% 10% 10%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: osm-lyre 5s ease-in-out infinite alternate;
}
.scn-o-thou-sacred-muse .laurel {
  position: absolute; top: 22%; left: 42%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #228b22 30%, transparent 60%);
  border-radius: 50%;
  filter: blur(1px);
  animation: osm-laurel 12s ease-in-out infinite;
}

@keyframes osm-beam {
  0% { opacity: 0.3; transform: skewX(-10deg) translateX(0); }
  50% { opacity: 0.6; transform: skewX(-5deg) translateX(8px); }
  100% { opacity: 0.4; transform: skewX(-12deg) translateX(-5px); }
}
@keyframes osm-muse {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes osm-lyre {
  0% { transform: rotate(-10deg) scale(1); }
  100% { transform: rotate(10deg) scale(1.05); }
}
@keyframes osm-laurel {
  0%, 100% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
}

.scn-her-flitting-parts {
  background: 
    linear-gradient(180deg, #e0e8f0 0%, #c0d0e0 60%),
    radial-gradient(ellipse at 50% 20%, #d8e4ec 0%, transparent 60%);
}
.scn-her-flitting-parts .mews-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #a89880 0%, #c8b8a0 50%, #a89880 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-her-flitting-parts .window-sky {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
}
.scn-her-flitting-parts .falcon-perch {
  position: absolute; bottom: 30%; left: 45%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  transform-origin: bottom;
}
.scn-her-flitting-parts .falcon {
  position: absolute; bottom: 42%; left: 44%; width: 40px; height: 20px;
  background: linear-gradient(135deg, #4a3a2a 0%, #6a5a4a 100%);
  border-radius: 50% 20% 20% 50%;
  clip-path: polygon(30% 0%, 100% 30%, 70% 100%, 0% 70%);
  animation: hfp-falcon 4s ease-in-out infinite alternate;
}
.scn-her-flitting-parts .falconer {
  position: absolute; bottom: 15%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: hfp-falconer 7s ease-in-out infinite;
}
.scn-her-flitting-parts .glove {
  position: absolute; bottom: 28%; left: 32%; width: 16px; height: 12px;
  background: #6b4226;
  border-radius: 30% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hfp-glove 4s ease-in-out infinite;
}
.scn-her-flitting-parts .dust-mote {
  position: absolute; top: 30%; left: 20%; width: 4px; height: 4px;
  background: rgba(255,255,255,0.5);
  border-radius: 50%;
  filter: blur(1px);
  animation: hfp-dust 15s linear infinite;
  box-shadow: 30px 50px 0 rgba(255,255,255,0.3), 70px 20px 0 rgba(255,255,255,0.4);
}

@keyframes hfp-falcon {
  0% { transform: translateY(0) rotate(-10deg); }
  50% { transform: translateY(-5px) rotate(5deg); }
  100% { transform: translateY(2px) rotate(-15deg); }
}
@keyframes hfp-falconer {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes hfp-glove {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(-2px); }
}
@keyframes hfp-dust {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translateY(-200px) translateX(50px); opacity: 0; }
}

.scn-that-great-champion-hercules {
  background: 
    linear-gradient(180deg, #fff8e7 0%, #f5deb3 30%, #d2b48c 60%),
    radial-gradient(ellipse at 50% 0%, #fffacd 0%, transparent 70%);
}
.scn-that-great-champion-hercules .harsh-sky {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #ffffe0 0%, #fff8dc 40%, #f0e68c 100%);
  opacity: 0.7;
}
.scn-that-great-champion-hercules .sun-disc {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(circle, #ffffff 0%, #fffacd 30%, #ffd700 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: gch-sun 12s ease-in-out infinite alternate;
}
.scn-that-great-champion-hercules .ground-scorch {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, #c2956a 0%, #8b5a2b 50%, #5a3a1a 100%);
  border-radius: 60% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-that-great-champion-hercules .hero {
  position: absolute; bottom: 15%; left: 38%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: gch-hero 3s ease-in-out infinite;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
}
.scn-that-great-champion-hercules .poison-robe {
  position: absolute; bottom: 30%; left: 36%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #8b0000 0%, #5a1a1a 100%);
  border-radius: 40% 20% 40% 20%;
  clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%);
  opacity: 0.8;
  animation: gch-robe 2s ease-in-out infinite alternate;
  box-shadow: 0 0 30px rgba(139,0,0,0.5);
}
.scn-that-great-champion-hercules .rock-left {
  position: absolute; bottom: 5%; left: 10%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30% 50% 10% 20%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
}
.scn-that-great-champion-hercules .rock-right {
  position: absolute; bottom: 5%; right: 10%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 30% 20% 10%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
}

@keyframes gch-sun {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.9; }
}
@keyframes gch-hero {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-10px) rotate(0deg); }
  50% { transform: translateY(0) rotate(5deg); }
  75% { transform: translateY(-5px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes gch-robe {
  0% { transform: rotate(-10deg) scale(1); opacity: 0.7; }
  100% { transform: rotate(10deg) scale(1.1); opacity: 1; }
}

.scn-notes-technique-stanza {
  background:
    linear-gradient(180deg, #3b2e22 0%, #201711 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-notes-technique-stanza .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2c2418 0%, #1c1410 100%);
}
.scn-notes-technique-stanza .desk {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #5c4a38 0%, #3a2e22 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: nts-desk 12s ease-in-out infinite;
}
.scn-notes-technique-stanza .book {
  position: absolute; bottom: 28%; left: 40%; width: 22%; height: 12%;
  background: linear-gradient(170deg, #b89a6a 0%, #8a7048 30%, #6a5434 100%);
  border-radius: 0 12% 12% 0 / 0 40% 40% 0; transform: skewY(-4deg);
  box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
  animation: nts-book 8s ease-in-out infinite alternate;
}
.scn-notes-technique-stanza .candle {
  position: absolute; bottom: 33%; left: 32%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b888 40%, #b89860 100%);
  border-radius: 20% 20% 10% 10%;
  animation: nts-candle-wick 3s ease-in-out infinite alternate;
}
.scn-notes-technique-stanza .candle-glow {
  position: absolute; bottom: 35%; left: 31%; width: 6%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, #ffdd88 0%, #cc8844 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,200,80,0.4);
  animation: nts-glow 2.5s ease-in-out infinite alternate;
}
.scn-notes-technique-stanza .figure {
  position: absolute; bottom: 15%; left: 55%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #1a1510 0%, #0e0b08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nts-figure 6s ease-in-out infinite;
}
.scn-notes-technique-stanza .particle {
  position: absolute; width: 2px; height: 2px;
  background: rgba(255,220,160,0.6); border-radius: 50%;
  filter: blur(1px);
}
.scn-notes-technique-stanza .particle-1 {
  top: 20%; left: 50%; animation: nts-drift-a 20s linear infinite;
}
.scn-notes-technique-stanza .particle-2 {
  top: 40%; left: 30%; animation: nts-drift-b 25s linear infinite reverse;
}
@keyframes nts-desk {
  0%,100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.005); }
}
@keyframes nts-book {
  0% { transform: skewY(-4deg) scaleY(1); }
  50% { transform: skewY(-6deg) scaleY(0.98); }
  100% { transform: skewY(-3deg) scaleY(1); }
}
@keyframes nts-candle-wick {
  0% { transform: scaleY(1) scaleX(1); }
  50% { transform: scaleY(1.06) scaleX(0.96); }
  100% { transform: scaleY(0.98) scaleX(1.02); }
}
@keyframes nts-glow {
  0% { opacity: 0.85; box-shadow: 0 0 20px 10px rgba(255,200,80,0.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(255,200,80,0.5); }
  100% { opacity: 0.9; box-shadow: 0 0 25px 12px rgba(255,200,80,0.35); }
}
@keyframes nts-figure {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes nts-drift-a {
  0% { transform: translateX(0) translateY(0); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translateX(60vw) translateY(-20vh); opacity: 0; }
}
@keyframes nts-drift-b {
  0% { transform: translateX(0) translateY(0); opacity: 0; }
  10% { opacity: 0.8; }
  90% { opacity: 0.8; }
  100% { transform: translateX(-40vw) translateY(-30vh); opacity: 0; }
}

.scn-notes-dryer-braine {
  background:
    linear-gradient(180deg, #2c2018 0%, #1a1210 100%),
    radial-gradient(ellipse at 40% 70%, #3a2a22 0%, transparent 60%);
}
.scn-notes-dryer-braine .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e18 0%, #140e0c 100%);
}
.scn-notes-dryer-braine .shelf {
  position: absolute; top: 20%; left: 10%; right: 10%; height: 4%;
  background: linear-gradient(180deg, #504030 0%, #2e221c 100%);
  border-radius: 0 4px 4px 0; box-shadow: 0 2px 6px rgba(0,0,0,0.7);
}
.scn-notes-dryer-braine .cauldron {
  position: absolute; bottom: 10%; left: 25%; width: 30%; height: 24%;
  background: radial-gradient(ellipse at 50% 40%, #3a3a2e 0%, #1a1a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6);
  animation: ndb-cauldron 10s ease-in-out infinite;
}
.scn-notes-dryer-braine .candle {
  position: absolute; bottom: 32%; left: 15%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #f0d8b0 0%, #c8a870 100%);
  border-radius: 20% 20% 5% 5%;
  animation: ndb-candle 3s ease-in-out infinite alternate;
}
.scn-notes-dryer-braine .skull {
  position: absolute; bottom: 30%; left: 60%; width: 8%; height: 10%;
  background: radial-gradient(ellipse at 50% 60%, #d0c0a0 0%, #a89878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ndb-skull 8s ease-in-out infinite;
}
.scn-notes-dryer-braine .book {
  position: absolute; bottom: 26%; left: 70%; width: 12%; height: 8%;
  background: linear-gradient(160deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 0 20% 20% 0 / 0 40% 40% 0; transform: rotate(6deg);
  box-shadow: -2px 3px 6px rgba(0,0,0,0.6);
}
.scn-notes-dryer-braine .figure {
  position: absolute; bottom: 10%; left: 8%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ndb-figure 7s ease-in-out infinite;
}
.scn-notes-dryer-braine .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
}
@keyframes ndb-cauldron {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
}
@keyframes ndb-candle {
  0% { transform: scaleY(1) scaleX(1); }
  50% { transform: scaleY(1.08) scaleX(0.95); }
  100% { transform: scaleY(0.97) scaleX(1.03); }
}
@keyframes ndb-skull {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
}
@keyframes ndb-figure {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(1px) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
}

.scn-notes-borne-dew {
  background:
    linear-gradient(180deg, #3a3028 0%, #241c18 100%),
    radial-gradient(ellipse at 60% 50%, #4a3830 0%, transparent 50%);
}
.scn-notes-borne-dew .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #30241c 0%, #1c1410 100%);
}
.scn-notes-borne-dew .pedestal {
  position: absolute; bottom: 12%; left: 30%; width: 20%; height: 20%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2a1e 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
}
.scn-notes-borne-dew .statue {
  position: absolute; bottom: 28%; left: 32%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 40%, #8a7a68 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: nbd-statue 15s ease-in-out infinite;
}
.scn-notes-borne-dew .mallet {
  position: absolute; bottom: 18%; left: 60%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #6a5438 0%, #3a2e1e 100%);
  border-radius: 0 30% 30% 0; transform: rotate(-20deg);
  animation: nbd-tool 6s ease-in-out infinite alternate;
}
.scn-notes-borne-dew .chisel {
  position: absolute; bottom: 20%; left: 72%; width: 8%; height: 2%;
  background: linear-gradient(90deg, #b0a090 0%, #787060 100%);
  border-radius: 10% 30% 30% 10%; transform: rotate(15deg);
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.scn-notes-borne-dew .window {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 3px solid #3a2a1e; border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(100,150,200,0.1);
}
.scn-notes-borne-dew .beam {
  position: absolute; top: 15%; left: 50%; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(200,220,255,0.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  transform-origin: top left;
  animation: nbd-beam 12s ease-in-out infinite alternate;
}
.scn-notes-borne-dew .mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(200,210,220,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: nbd-mist 20s ease-in-out infinite alternate;
}
@keyframes nbd-statue {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes nbd-tool {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-15deg); }
  100% { transform: rotate(-22deg); }
}
@keyframes nbd-beam {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.4; transform: scaleX(0.95); }
}
@keyframes nbd-mist {
  0% { opacity: 0.4; transform: translateY(0); }
  50% { opacity: 0.6; transform: translateY(-5px); }
  100% { opacity: 0.3; transform: translateY(2px); }
}

.scn-notes-flora {
  background:
    linear-gradient(180deg, #3a3024 0%, #241c14 100%),
    radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-notes-flora .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2e241c 0%, #1a1410 100%);
}
.scn-notes-flora .pot {
  position: absolute; bottom: 12%; left: 30%; width: 22%; height: 20%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3420 100%);
  border-radius: 0 0 10% 10% / 0 0 30% 30%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-notes-flora .stem {
  position: absolute; bottom: 28%; width: 2%; height: 30%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-notes-flora .stem-a {
  left: 36%; transform: rotate(-8deg);
  animation: nfl-stem-a 10s ease-in-out infinite alternate;
}
.scn-notes-flora .stem-b {
  left: 44%; transform: rotate(5deg);
  animation: nfl-stem-b 12s ease-in-out infinite alternate;
}
.scn-notes-flora .bloom {
  position: absolute; bottom: 56%; left: 34%; width: 10%; height: 12%;
  background: radial-gradient(ellipse at 50% 60%, #c8a080 0%, #a07050 60%, #604030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 0 10px 4px rgba(200,160,120,0.3);
  animation: nfl-bloom 8s ease-in-out infinite;
}
.scn-notes-flora .figure {
  position: absolute; bottom: 12%; left: 55%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #1a1510 0%, #0e0c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nfl-figure 7s ease-in-out infinite;
}
.scn-notes-flora .petals {
  position: absolute; bottom: 60%; left: 30%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(220,180,140,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: nfl-petals 18s ease-in-out infinite alternate;
}
.scn-notes-flora .window-light {
  position: absolute; top: 10%; right: 10%; width: 18%; height: 25%;
  background: linear-gradient(135deg, rgba(180,200,220,0.2) 0%, transparent 100%);
  border-radius: 4% 4% 0 0;
  animation: nfl-light 15s ease-in-out infinite alternate;
}
@keyframes nfl-stem-a {
  0%,100% { transform: rotate(-8deg) scaleY(1); }
  50% { transform: rotate(-6deg) scaleY(1.02); }
}
@keyframes nfl-stem-b {
  0%,100% { transform: rotate(5deg) scaleY(1); }
  50% { transform: rotate(7deg) scaleY(0.98); }
}
@keyframes nfl-bloom {
  0%,100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.04) rotate(2deg); }
}
@keyframes nfl-figure {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes nfl-petals {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.2; transform: scale(0.9); }
}
@keyframes nfl-light {
  0% { opacity: 0.2; width: 18%; }
  50% { opacity: 0.4; width: 20%; }
  100% { opacity: 0.3; width: 17%; }
}

/* one block per scene id. Append to style.css. */
.scn-canto-xi-questions-1 { background: linear-gradient(180deg, #d4c5a2 0%, #b8a78a 50%, #a08b6b 100%), radial-gradient(ellipse at 30% 80%, #e4d4b4 0%, transparent 70%); }
.scn-canto-xi-questions-1 .study-wall { position:absolute; inset:0; background: linear-gradient(135deg, #c9ba9e, #ad9e82); border-radius: 4px; box-shadow: inset 0 0 60px rgba(0,0,0,0.2); }
.scn-canto-xi-questions-1 .window { position:absolute; top:10%; left:60%; width:30%; height:40%; background: linear-gradient(180deg, #7ea8d6 0%, #b4d0f0 70%); border-radius: 8% 8% 4% 4% / 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(255,255,255,0.5); }
.scn-canto-xi-questions-1 .desk { position:absolute; bottom:20%; left:10%; width:55%; height:15%; background: linear-gradient(180deg, #8b6f4a 0%, #6d5538 100%); border-radius: 4% 4% 2% 2% / 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-canto-xi-questions-1 .book-1 { position:absolute; bottom:24%; left:14%; width:18%; height:10%; background: linear-gradient(135deg, #5a3e2a, #7a5a3a); border-radius: 6% 6% 3% 3% / 30% 30% 15% 15%; box-shadow: 2px 2px 8px rgba(0,0,0,0.3); transform: rotate(-5deg); }
.scn-canto-xi-questions-1 .book-2 { position:absolute; bottom:23%; left:34%; width:20%; height:9%; background: linear-gradient(135deg, #3e6a3a, #2a5a2a); border-radius: 6% 6% 3% 3% / 30% 30% 15% 15%; box-shadow: 2px 2px 8px rgba(0,0,0,0.3); transform: rotate(3deg); }
.scn-canto-xi-questions-1 .globe { position:absolute; bottom:22%; left:52%; width:14%; height:20%; background: radial-gradient(circle at 40% 35%, #7a9a6a 0%, #4a6a3a 100%); border-radius: 50%; box-shadow: 0 4px 16px rgba(0,0,0,0.5); transform: rotate(-15deg); animation: cit-globe 15s ease-in-out infinite alternate; }
.scn-canto-xi-questions-1 .candle { position:absolute; bottom:20%; left:80%; width:6%; height:18%; background: linear-gradient(180deg, #f0d0a0 0%, #c8a070 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 0 30px 8px rgba(255,200,100,0.6); animation: cit-candle 2s ease-in-out infinite alternate; }
.scn-canto-xi-questions-1 .dust { position:absolute; inset:0; background: radial-gradient(circle at 70% 40%, rgba(255,240,200,0.15) 0%, transparent 60%); animation: cit-dust 12s ease-in-out infinite; }
@keyframes cit-globe { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.02); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes cit-candle { 0% { box-shadow: 0 0 20px 4px rgba(255,200,100,0.4); opacity: 0.9; } 50% { box-shadow: 0 0 40px 12px rgba(255,220,130,0.7); opacity: 1; } 100% { box-shadow: 0 0 25px 6px rgba(255,200,100,0.5); opacity: 0.95; } }
@keyframes cit-dust { 0% { opacity: 0.3; transform: translateY(0); } 33% { opacity: 0.6; transform: translateY(-5px); } 66% { opacity: 0.4; transform: translateY(3px); } 100% { opacity: 0.3; transform: translateY(0); } }

.scn-canto-xi-questions-2 { background: linear-gradient(180deg, #d6c8b0 0%, #c0ae90 60%, #a89878 100%), radial-gradient(ellipse at 70% 30%, #efe4d0 0%, transparent 50%); }
.scn-canto-xi-questions-2 .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #d4c2a8, #b8a488); }
.scn-canto-xi-questions-2 .window-sun { position:absolute; top:8%; right:10%; width:28%; height:45%; background: linear-gradient(180deg, #bfd8f0 0%, #d0e0f8 80%); border-radius: 6% 6% 4% 4% / 12% 12% 6% 6%; box-shadow: inset 0 0 30px rgba(255,255,200,0.6); }
.scn-canto-xi-questions-2 .music-stand { position:absolute; bottom:22%; left:20%; width:20%; height:18%; background: linear-gradient(180deg, #7a5a3a 0%, #5a402a 100%); border-radius: 4% 4% 2% 2% / 15% 15% 8% 8%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); transform: perspective(200px) rotateX(5deg); }
.scn-canto-xi-questions-2 .lute { position:absolute; bottom:20%; left:42%; width:16%; height:22%; background: radial-gradient(ellipse at 50% 40%, #b08050 0%, #7a5530 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.4); transform: rotate(10deg); animation: cit2-lute 6s ease-in-out infinite alternate; }
.scn-canto-xi-questions-2 .scroll { position:absolute; bottom:24%; left:62%; width:18%; height:12%; background: linear-gradient(180deg, #e0d0b0, #c0a880); border-radius: 50% 50% 40% 40% / 30% 30% 20% 20%; transform: rotate(5deg); }
.scn-canto-xi-questions-2 .inkwell { position:absolute; bottom:20%; left:80%; width:8%; height:10%; background: #1a1a2a; border-radius: 40% 40% 20% 20% / 50% 50% 25% 25%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-canto-xi-questions-2 .note-1 { position:absolute; top:28%; left:30%; width:6%; height:8%; background: radial-gradient(circle, #3a2a1a 0%, transparent 100%); border-radius: 50%; animation: cit2-note 8s ease-in-out infinite; }
.scn-canto-xi-questions-2 .note-2 { position:absolute; top:35%; left:55%; width:5%; height:7%; background: radial-gradient(circle, #3a2a1a 0%, transparent 100%); border-radius: 50%; animation: cit2-note 10s ease-in-out infinite reverse; }
.scn-canto-xi-questions-2 .sunbeam { position:absolute; top:10%; left:15%; width:10%; height:70%; background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, rgba(255,255,200,0) 100%); filter: blur(20px); transform: skewX(-10deg); animation: cit2-beam 8s ease-in-out infinite alternate; }
@keyframes cit2-lute { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(12deg) scale(1.01); } 100% { transform: rotate(8deg) scale(1); } }
@keyframes cit2-note { 0% { opacity: 0; transform: translateY(0) scale(0.6); } 30% { opacity: 0.8; transform: translateY(-10px) scale(1); } 50% { opacity: 1; transform: translateY(-20px) scale(1.1); } 70% { opacity: 0.6; transform: translateY(-30px) scale(0.9); } 100% { opacity: 0; transform: translateY(-50px) scale(0.5); } }
@keyframes cit2-beam { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-canto-xi-plot { background: linear-gradient(180deg, #e0b060 0%, #c0a050 40%, #f0d080 100%), radial-gradient(ellipse at 50% 0%, #f5e0a0 0%, transparent 50%); }
.scn-canto-xi-plot .sky-plot { position:absolute; inset:0; background: linear-gradient(180deg, #7aa0c8 0%, #b8d0e8 60%); animation: cxp-sky 12s ease-in-out infinite alternate; }
.scn-canto-xi-plot .sun { position:absolute; top:8%; left:75%; width:12%; height:14%; background: radial-gradient(circle, #fff4b0 0%, #e8c860 60%, transparent 100%); box-shadow: 0 0 80px 30px rgba(255,220,80,0.5); animation: cxp-sun 8s ease-in-out infinite alternate; }
.scn-canto-xi-plot .city-wall { position:absolute; bottom:10%; left:0; right:0; height:40%; background: linear-gradient(180deg, #b09878 0%, #907858 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,0.4); }
.scn-canto-xi-plot .tower { position:absolute; bottom:10%; left:20%; width:15%; height:45%; background: linear-gradient(180deg, #b8a080 0%, #908060 100%); border-radius: 6% 6% 0 0 / 10% 10% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.5); }
.scn-canto-xi-plot .banner { position:absolute; top:15%; left:20%; width:10%; height:18%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 0 10px rgba(200,80,60,0.5); transform-origin: top; animation: cxp-banner 2s ease-in-out infinite alternate; }
.scn-canto-xi-plot .crowd { position:absolute; bottom:10%; left:35%; right:10%; height:15%; background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 80%); filter: blur(4px); animation: cxp-crowd 4s ease-in-out infinite alternate; }
.scn-canto-xi-plot .cloud-plot-a { position:absolute; top:20%; left:-10%; width:28%; height:8%; background: rgba(255,255,255,0.5); border-radius: 50%; filter: blur(10px); animation: cxp-cloud 35s linear infinite; }
.scn-canto-xi-plot .cloud-plot-b { position:absolute; top:30%; left:50%; width:20%; height:6%; background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(8px); animation: cxp-cloud 40s linear infinite reverse; }
.scn-canto-xi-plot .dust-sparkle { position:absolute; inset:0; background: radial-gradient(circle at 60% 40%, rgba(255,255,200,0.2) 0%, transparent 70%); animation: cxp-sparkle 6s ease-in-out infinite; }
@keyframes cxp-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cxp-sun { 0% { transform: scale(0.9); box-shadow: 0 0 50px 20px rgba(255,220,80,0.3); } 50% { transform: scale(1.1); box-shadow: 0 0 100px 40px rgba(255,220,80,0.6); } 100% { transform: scale(1); box-shadow: 0 0 70px 25px rgba(255,220,80,0.4); } }
@keyframes cxp-banner { 0% { transform: rotate(-5deg); } 50% { transform: rotate(0deg) scaleX(1.1); } 100% { transform: rotate(5deg); } }
@keyframes cxp-crowd { 0% { opacity:0.5; transform: translateY(0) skewX(0deg); } 50% { opacity:0.8; transform: translateY(-2px) skewX(1deg); } 100% { opacity:0.6; transform: translateY(0) skewX(-0.5deg); } }
@keyframes cxp-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes cxp-sparkle { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-canto-xi-allegory { background: linear-gradient(180deg, #c8b898 0%, #a89878 50%, #8a7a5a 100%), radial-gradient(ellipse at 50% 80%, #e0d0b0 0%, transparent 70%); }
.scn-canto-xi-allegory .chapel-bg { position:absolute; inset:0; background: linear-gradient(135deg, #c0b098, #a09070); border-radius: 6px; box-shadow: inset 0 0 60px rgba(0,0,0,0.15); }
.scn-canto-xi-allegory .window-light { position:absolute; top:12%; left:50%; width:20%; height:35%; background: radial-gradient(ellipse at 50% 60%, #f0e0c0 0%, #c0a080 70%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 40px 10px rgba(240,200,120,0.4); animation: cxa-window 6s ease-in-out infinite alternate; }
.scn-canto-xi-allegory .knight-silhouette { position:absolute; bottom:10%; left:30%; width:14%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 20px rgba(0,0,0,0.5); transform-origin: bottom; animation: cxa-knight 4s ease-in-out infinite alternate; }
.scn-canto-xi-allegory .shield { position:absolute; bottom:28%; left:34%; width:8%; height:12%; background: radial-gradient(circle at 30% 40%, #d0b080 0%, #8a6a4a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,0.4); transform: rotate(-15deg); animation: cxa-shield 3s ease-in-out infinite; }
.scn-canto-xi-allegory .sword { position:absolute; bottom:20%; left:40%; width:3%; height:25%; background: linear-gradient(180deg, #b0a080 0%, #706050 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; transform: rotate(10deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
.scn-canto-xi-allegory .halo { position:absolute; top:5%; left:30%; width:16%; height:12%; background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, rgba(255,240,200,0) 70%); animation: cxa-halo 8s ease-in-out infinite alternate; }
.scn-canto-xi-allegory .altar { position:absolute; bottom:10%; left:60%; width:20%; height:15%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 8% 8% 4% 4% / 20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-canto-xi-allegory .drapes { position:absolute; top:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; animation: cxa-drapes 12s ease-in-out infinite alternate; }
@keyframes cxa-window { 0% { opacity:0.7; } 50% { opacity:1; box-shadow: 0 0 60px 15px rgba(240,200,120,0.6); } 100% { opacity:0.8; } }
@keyframes cxa-knight { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(-0.5deg); } }
@keyframes cxa-shield { 0% { transform: rotate(-15deg) scale(1); } 33% { transform: rotate(-12deg) scale(1.02); } 66% { transform: rotate(-18deg) scale(0.98); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes cxa-halo { 0% { opacity:0.2; transform: scale(0.8); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(0.9); } }
@keyframes cxa-drapes { 0% { transform: translateY(0); } 33% { transform: translateY(-2px); } 66% { transform: translateY(1px); } 100% { transform: translateY(0); } }

.scn-silo-jordan-bath-spau {
  background:
    linear-gradient(180deg, #87CEEB 0%, #FFD700 40%, #FFA500 70%, #8B4513 100%),
    radial-gradient(ellipse at 50% 20%, #FFD700 0%, transparent 60%);
}
.scn-silo-jordan-bath-spau .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #F0E68C 0%, #FFDF00 100%);
  opacity:0.4; animation: sjb-sky 15s ease-in-out infinite alternate;
}
.scn-silo-jordan-bath-spau .colonnade {
  position:absolute; bottom:45%; left:10%; right:10%; height:20%;
  background: linear-gradient(90deg, transparent 0%, #D2B48C 10%, #D2B48C 90%, transparent 100%);
  border-radius: 5px; box-shadow: 0 0 15px rgba(210,180,140,0.5);
  animation: sjb-colonnade 20s ease-in-out infinite;
}
.scn-silo-jordan-bath-spau .pool {
  position:absolute; bottom:20%; left:5%; right:5%; height:30%;
  background: radial-gradient(ellipse at 50% 50%, #4682B4 0%, #5F9EA0 50%, #B0C4DE 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  animation: sjb-pool 8s ease-in-out infinite alternate;
}
.scn-silo-jordan-bath-spau .figure-bather {
  position:absolute; bottom:30%; left:50%; width:30px; height:50px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scale(1); animation: sjb-bather 4s ease-in-out infinite;
}
.scn-silo-jordan-bath-spau .sun-glow {
  position:absolute; top:10%; left:40%; width:80px; height:80px;
  background: radial-gradient(circle, #FFD700 0%, #FF8C00 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 80px #FFD700;
  animation: sjb-sunglow 6s ease-in-out infinite alternate;
}
.scn-silo-jordan-bath-spau .ripple-1,
.scn-silo-jordan-bath-spau .ripple-2 {
  position:absolute; left:20%; width:40px; height:10px;
  background: radial-gradient(ellipse at center, rgba(255,255,255,0.6) 0%, transparent 100%);
  border-radius: 50%; opacity:0.5;
}
.scn-silo-jordan-bath-spau .ripple-1 {
  bottom:35%; animation: sjb-ripple 4s ease-out infinite;
}
.scn-silo-jordan-bath-spau .ripple-2 {
  bottom:30%; left:60%; animation: sjb-ripple 4s ease-out infinite 2s;
}
.scn-silo-jordan-bath-spau .distant-hills {
  position:absolute; bottom:50%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #556B2F 0%, #8FBC8F 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0; opacity:0.6;
  animation: sjb-hills 18s ease-in-out infinite alternate;
}

@keyframes sjb-sky {
  0% { opacity:0.3; transform: translateY(0); }
  50% { opacity:0.5; transform: translateY(-5px); }
  100% { opacity:0.4; transform: translateY(0); }
}
@keyframes sjb-colonnade {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes sjb-pool {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes sjb-bather {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-45%) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(2deg); }
  75% { transform: translateX(-55%) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes sjb-sunglow {
  0% { transform: scale(1); opacity:0.7; }
  50% { transform: scale(1.1); opacity:1; }
  100% { transform: scale(1); opacity:0.8; }
}
@keyframes sjb-ripple {
  0% { transform: scale(0.5); opacity:0.8; }
  100% { transform: scale(2); opacity:0; }
}
@keyframes sjb-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

.scn-eagle-fresh-out-of-ocean {
  background:
    linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #FFD700 70%, #FFA500 100%),
    radial-gradient(ellipse at 30% 70%, #FFD700 0%, transparent 50%);
}
.scn-eagle-fresh-out-of-ocean .sky-grad {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #4682B4 0%, #87CEEB 100%);
  animation: efo-sky 20s ease-in-out infinite alternate;
}
.scn-eagle-fresh-out-of-ocean .sun {
  position:absolute; top:15%; left:70%; width:60px; height:60px;
  background: radial-gradient(circle, #FFD700 0%, #FF8C00 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 100px #FFD700;
  animation: efo-sun 12s ease-in-out infinite alternate;
}
.scn-eagle-fresh-out-of-ocean .ocean-bg {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #4682B4 0%, #2E8B57 100%);
  border-radius: 0 0 30% 30%; animation: efo-ocean 8s ease-in-out infinite alternate;
}
.scn-eagle-fresh-out-of-ocean .wave-foam {
  position:absolute; bottom:35%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(3px); animation: efo-wave 5s ease-in-out infinite alternate;
}
.scn-eagle-fresh-out-of-ocean .eagle-body {
  position:absolute; bottom:50%; left:30%; width:50px; height:40px;
  background: linear-gradient(180deg, #3C3B3A 0%, #1C1B1A 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform: rotate(-10deg); animation: efo-body 3s ease-in-out infinite;
}
.scn-eagle-fresh-out-of-ocean .eagle-wings {
  position:absolute; bottom:55%; left:25%; width:80px; height:30px;
  background: linear-gradient(180deg, #5C5A58 0%, #3C3B3A 100%);
  border-radius: 80% 20% 50% 50% / 50% 40% 60% 50%;
  transform-origin: 70% 50%; animation: efo-wings 2s ease-in-out infinite;
}
.scn-eagle-fresh-out-of-ocean .light-rays {
  position:absolute; top:20%; left:65%; width:120px; height:200px;
  background: linear-gradient(180deg, rgba(255,215,0,0.3) 0%, transparent 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: efo-rays 6s ease-in-out infinite alternate;
}
.scn-eagle-fresh-out-of-ocean .spray {
  position:absolute; bottom:40%; left:28%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(255,255,255,0.8) 0%, transparent 80%);
  border-radius: 50%; animation: efo-spray 1.5s ease-in infinite;
}

@keyframes efo-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes efo-sun {
  0% { transform: scale(1); box-shadow: 0 0 80px #FFD700; }
  50% { transform: scale(1.05); box-shadow: 0 0 120px #FFD700; }
  100% { transform: scale(1); box-shadow: 0 0 100px #FFD700; }
}
@keyframes efo-ocean {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}
@keyframes efo-wave {
  0% { transform: translateY(0); opacity:0.5; }
  50% { transform: translateY(-10px); opacity:0.7; }
  100% { transform: translateY(0); opacity:0.5; }
}
@keyframes efo-body {
  0% { transform: rotate(-12deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-5px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes efo-wings {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(-20deg) scaleX(0.8); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes efo-rays {
  0% { opacity:0.2; transform: scale(0.9); }
  50% { opacity:0.5; transform: scale(1.1); }
  100% { opacity:0.3; transform: scale(0.9); }
}
@keyframes efo-spray {
  0% { transform: scale(0.5); opacity:1; }
  100% { transform: scale(2); opacity:0; }
}

.scn-with-sharpe-intended-sting {
  background:
    linear-gradient(180deg, #F4A460 0%, #FFD700 30%, #8B4513 70%, #2F1B0E 100%),
    radial-gradient(ellipse at 50% 30%, #FFD700 0%, transparent 60%);
}
.scn-with-sharpe-intended-sting .sky-tense {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #FF6347 0%, #DAA520 100%);
  opacity:0.3; animation: wsi-sky 5s ease-in-out infinite alternate;
}
.scn-with-sharpe-intended-sting .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #8B4513 0%, #2F1B0E 100%);
  border-radius: 20% 80% 0 0 / 50% 50% 0 0;
  animation: wsi-ground 10s ease-in-out infinite alternate;
}
.scn-with-sharpe-intended-sting .dragon-body {
  position:absolute; bottom:40%; left:20%; width:120px; height:60px;
  background: linear-gradient(180deg, #6B4226 0%, #3C2415 100%);
  border-radius: 40% 30% 20% 20% / 60% 50% 30% 40%;
  transform: rotate(-5deg); box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: wsi-dragon 4s ease-in-out infinite;
}
.scn-with-sharpe-intended-sting .stinger {
  position:absolute; bottom:40%; left:15%; width:40px; height:20px;
  background: linear-gradient(180deg, #A0522D 0%, #5C3317 100%);
  clip-path: polygon(100% 50%, 0% 0%, 0% 100%);
  transform: rotate(-30deg); animation: wsi-sting 1s ease-in-out infinite alternate;
}
.scn-with-sharpe-intended-sting .shield {
  position:absolute; bottom:50%; left:50%; width:50px; height:60px;
  background: radial-gradient(circle at 50% 30%, #DAA520 0%, #B8860B 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  transform: translateX(-50%); animation: wsi-shield 2s ease-in-out infinite alternate;
}
.scn-with-sharpe-intended-sting .claw-grip {
  position:absolute; bottom:48%; left:55%; width:20px; height:30px;
  background: linear-gradient(180deg, #8B0000 0%, #5C0000 100%);
  border-radius: 50% 50% 40% 40%; transform: rotate(20deg);
  animation: wsi-claw 0.8s ease-in-out infinite alternate;
}
.scn-with-sharpe-intended-sting .sun-sharp {
  position:absolute; top:10%; right:20%; width:50px; height:50px;
  background: radial-gradient(circle, #FF4500 0%, #FF8C00 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 60px #FF4500;
  animation: wsi-sun 3s ease-in-out infinite alternate;
}
.scn-with-sharpe-intended-sting .dust-particles {
  position:absolute; bottom:35%; left:10%; width:10px; height:10px;
  background: radial-gradient(circle, #FFD700 0%, transparent 100%);
  border-radius: 50%; animation: wsi-dust 2s ease-in infinite;
}

@keyframes wsi-sky {
  0% { opacity:0.2; transform: translateY(0); }
  50% { opacity:0.5; transform: translateY(-5px); }
  100% { opacity:0.3; transform: translateY(0); }
}
@keyframes wsi-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes wsi-dragon {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-5px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes wsi-sting {
  0% { transform: rotate(-35deg) translateX(0); }
  100% { transform: rotate(-25deg) translateX(10px); }
}
@keyframes wsi-shield {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.1); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes wsi-claw {
  0% { transform: rotate(15deg) scale(1); }
  100% { transform: rotate(25deg) scale(1.2); }
}
@keyframes wsi-sun {
  0% { transform: scale(1); opacity:0.7; }
  50% { transform: scale(1.2); opacity:1; }
  100% { transform: scale(1); opacity:0.8; }
}
@keyframes wsi-dust {
  0% { transform: scale(0.5) translate(0,0); opacity:1; }
  100% { transform: scale(1.5) translate(30px,-20px); opacity:0; }
}

.scn-deadly-made-an-imitation {
  background:
    linear-gradient(180deg, #2E0854 0%, #1A1A2E 40%, #0B0B10 100%),
    radial-gradient(ellipse at 50% 80%, #2E0854 0%, transparent 70%);
}
.scn-deadly-made-an-imitation .bg-void {
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%);
  animation: dmi-void 15s ease-in-out infinite alternate;
}
.scn-deadly-made-an-imitation .winged-serpent {
  position:absolute; bottom:30%; left:20%; width:130px; height:80px;
  background: linear-gradient(180deg, #4B0082 0%, #2E0854 50%, #1A1A2E 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%;
  transform: rotate(10deg); box-shadow: 0 0 20px rgba(75,0,130,0.6);
  animation: dmi-serpent 6s ease-in-out infinite;
}
.scn-deadly-made-an-imitation .serpent-eyes {
  position:absolute; bottom:60%; left:30%; width:10px; height:10px;
  background: radial-gradient(circle, #FF4500 0%, #8B0000 100%);
  border-radius: 50%; box-shadow: 0 0 20px #FF4500;
  animation: dmi-eyes 3s ease-in-out infinite alternate;
}
.scn-deadly-made-an-imitation .serpent-tail {
  position:absolute; bottom:20%; left:60%; width:60px; height:20px;
  background: linear-gradient(180deg, #4B0082 0%, #2E0854 100%);
  border-radius: 0 50% 50% 0; transform: rotate(-20deg);
  animation: dmi-tail 5s ease-in-out infinite alternate;
}
.scn-deadly-made-an-imitation .ember-1,
.scn-deadly-made-an-imitation .ember-2 {
  position:absolute; width:8px; height:8px;
  background: radial-gradient(circle, #FFA500 0%, transparent 100%);
  border-radius: 50%; opacity:0.8;
}
.scn-deadly-made-an-imitation .ember-1 {
  bottom:40%; left:10%; animation: dmi-ember 4s ease-in infinite;
}
.scn-deadly-made-an-imitation .ember-2 {
  bottom:50%; left:70%; animation: dmi-ember 4s ease-in infinite 2s;
}
.scn-deadly-made-an-imitation .ground-shape {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1A1A2E 0%, #0B0B10 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: dmi-ground 10s ease-in-out infinite;
}

@keyframes dmi-void {
  0% { opacity:0.5; }
  50% { opacity:0.8; }
  100% { opacity:0.6; }
}
@keyframes dmi-serpent {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-8px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes dmi-eyes {
  0% { transform: scale(1); opacity:0.6; }
  50% { transform: scale(1.3); opacity:1; }
  100% { transform: scale(1); opacity:0.8; }
}
@keyframes dmi-tail {
  0% { transform: rotate(-25deg) translateX(0); }
  50% { transform: rotate(-15deg) translateX(10px); }
  100% { transform: rotate(-25deg) translateX(0); }
}
@keyframes dmi-ember {
  0% { transform: translate(0,0) scale(1); opacity:0.8; }
  100% { transform: translate(30px,-30px) scale(2); opacity:0; }
}
@keyframes dmi-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}

/* Scene 1: una-recounts-her-story */
.scn-una-recounts-her-story {
  background: linear-gradient(180deg, #f9e2b3 0%, #cba16a 40%, #5a3d2b 100%), radial-gradient(ellipse at 70% 30%, #fff4d6 0%, transparent 60%);
}
.scn-una-recounts-her-story .bg-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fff4d6 0%, #e0c28a 50%, #9b7344 100%);
  animation: una-sky 12s ease-in-out infinite alternate;
}
.scn-una-recounts-her-story .bg-floor {
  position: absolute; inset: 50% 0 0 0;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-una-recounts-her-story .window-frame {
  position: absolute; top: 15%; left: 20%; width: 120px; height: 160px;
  background: transparent;
  border: 8px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px #fff4d6, 0 0 40px #fff4d6;
  animation: una-window 8s ease-in-out infinite;
}
.scn-una-recounts-her-story .window-light {
  position: absolute; top: 15%; left: 20%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at 30% 40%, #fff8e7 0%, rgba(255,248,231,0.3) 70%, transparent 100%);
  opacity: 0.6;
  animation: una-lightfade 6s ease-in-out infinite alternate;
}
.scn-una-recounts-her-story .figure-una {
  position: absolute; bottom: 30%; left: 40%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: una-figure 10s ease-in-out infinite;
}
.scn-una-recounts-her-story .gesture-hand {
  position: absolute; bottom: 38%; left: 44%; width: 12px; height: 20px;
  background: #4a3020;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom left;
  animation: una-hand 4s ease-in-out infinite alternate;
}
.scn-una-recounts-her-story .dust-a,
.scn-una-recounts-her-story .dust-b,
.scn-una-recounts-her-story .dust-c {
  position: absolute; width: 4px; height: 4px;
  background: rgba(255, 244, 214, 0.9);
  border-radius: 50%;
  filter: blur(1px);
  animation: una-dust 8s ease-in-out infinite;
}
.scn-una-recounts-her-story .dust-a { top: 20%; left: 45%; animation-delay: 0s; }
.scn-una-recounts-her-story .dust-b { top: 25%; left: 50%; animation-delay: 2s; width: 3px; height: 3px; }
.scn-una-recounts-her-story .dust-c { top: 22%; left: 35%; animation-delay: 4s; width: 5px; height: 5px; }

@keyframes una-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes una-window {
  0% { box-shadow: inset 0 0 30px #fff4d6, 0 0 40px #fff4d6; }
  50% { box-shadow: inset 0 0 50px #fff8e7, 0 0 60px #fff8e7; }
  100% { box-shadow: inset 0 0 35px #e0c28a, 0 0 45px #e0c28a; }
}
@keyframes una-lightfade {
  0% { opacity: 0.4; transform: scale(0.95); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes una-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes una-hand {
  0% { transform: rotate(-20deg) translateY(0); }
  100% { transform: rotate(30deg) translateY(-3px); }
}
@keyframes una-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.9; }
  50% { transform: translate(10px, -15px) scale(1.2); opacity: 0.5; }
  100% { transform: translate(-5px, -30px) scale(0.8); opacity: 0; }
}

/* Scene 2: arthur-consoles */
.scn-arthur-consoles {
  background: linear-gradient(180deg, #ffddaa 0%, #f0c080 40%, #b08050 100%), radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 70%);
}
.scn-arthur-consoles .bg-meadow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fce7c4 0%, #d4a86a 40%, #7a5a2e 70%, #3d2b15 100%);
  animation: ac-meadow 20s ease-in-out infinite alternate;
}
.scn-arthur-consoles .sun-rays {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 30% 0%, rgba(255, 248, 220, 0.6) 0%, transparent 60%);
  animation: ac-rays 15s ease-in-out infinite alternate;
}
.scn-arthur-consoles .figure-arthur {
  position: absolute; bottom: 25%; left: 42%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 45% 40% 40% / 60% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ac-arthur 9s ease-in-out infinite;
}
.scn-arthur-consoles .figure-una-consoled {
  position: absolute; bottom: 25%; left: 48%; width: 38px; height: 100px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ac-una 9s ease-in-out infinite;
}
.scn-arthur-consoles .tree-trunk {
  position: absolute; bottom: 20%; left: 70%; width: 20px; height: 160px;
  background: linear-gradient(180deg, #5a4018, #3a2808);
  border-radius: 10px 10px 5px 5px;
  box-shadow: 2px 0 10px rgba(0,0,0,0.3);
}
.scn-arthur-consoles .tree-canopy {
  position: absolute; bottom: 55%; left: 60%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #7a9a4a 0%, #4a6a2a 100%);
  border-radius: 50% 40% 60% 50%;
  filter: blur(4px);
  animation: ac-canopy 25s ease-in-out infinite alternate;
}
.scn-arthur-consoles .flower-1,
.scn-arthur-consoles .flower-2 {
  position: absolute; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080, #c08040);
  border-radius: 50%;
  animation: ac-flower 6s ease-in-out infinite alternate;
}
.scn-arthur-consoles .flower-1 { bottom: 22%; left: 55%; animation-delay: 0s; }
.scn-arthur-consoles .flower-2 { bottom: 24%; left: 52%; animation-delay: 3s; width: 8px; height: 8px; }

@keyframes ac-meadow {
  0% { filter: brightness(0.95); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(1); }
}
@keyframes ac-rays {
  0% { opacity: 0.5; transform: scaleX(0.9); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.6; transform: scaleX(1); }
}
@keyframes ac-arthur {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ac-una {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ac-canopy {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-5px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes ac-flower {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.8; }
}

/* Scene 3: orgoglio-castle-gates */
.scn-orgoglio-castle-gates {
  background: linear-gradient(180deg, #ffe4b0 0%, #d4a06a 35%, #5a3a20 70%, #1a1008 100%), radial-gradient(ellipse at 60% 30%, #ffe4b0 0%, transparent 50%);
}
.scn-orgoglio-castle-gates .bg-sky-scorched {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fff0c0 0%, #e0b070 40%, #a07040 100%);
  animation: ocg-sky 10s ease-in-out infinite alternate;
}
.scn-orgoglio-castle-gates .castle-walls {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2818 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 -40px 40px rgba(0,0,0,0.5);
}
.scn-orgoglio-castle-gates .castle-gates {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 50%;
  background: linear-gradient(180deg, #8a6040 0%, #4a3018 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  border: 6px solid #3a2818;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
}
.scn-orgoglio-castle-gates .shadow-portcullis {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 50%;
  background: repeating-linear-gradient(90deg, #1a1008 0px, #1a1008 8px, transparent 8px, transparent 12px);
  opacity: 0.5;
  animation: ocg-portcullis 5s ease-in-out infinite alternate;
}
.scn-orgoglio-castle-gates .giant-orgoglio {
  position: absolute; bottom: 15%; left: 15%; width: 70px; height: 140px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ocg-giant 8s ease-in-out infinite;
}
.scn-orgoglio-castle-gates .duessa-figure {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #8a6040 0%, #4a2810 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ocg-duessa 6s ease-in-out infinite alternate;
}
.scn-orgoglio-castle-gates .sun-strike {
  position: absolute; top: 0; left: 30%; width: 5px; height: 100%;
  background: linear-gradient(180deg, rgba(255,228,176,0.8) 0%, rgba(255,228,176,0) 100%);
  filter: blur(2px);
  animation: ocg-strike 12s ease-in-out infinite alternate;
}

@keyframes ocg-sky {
  0% { filter: brightness(0.9) saturate(1.2); }
  50% { filter: brightness(1.1) saturate(0.9); }
  100% { filter: brightness(1) saturate(1.1); }
}
@keyframes ocg-portcullis {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes ocg-giant {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes ocg-duessa {
  0% { transform: translateX(0) rotate(3deg); }
  100% { transform: translateX(10px) rotate(-3deg); }
}
@keyframes ocg-strike {
  0% { transform: scaleY(0.8); opacity: 0.5; }
  50% { transform: scaleY(1.2); opacity: 0.9; }
  100% { transform: scaleY(1); opacity: 0.7; }
}

/* Scene 4: arthur-orgoglio-combat */
.scn-arthur-orgoglio-combat {
  background: linear-gradient(180deg, #e0c080 0%, #b08050 30%, #604020 60%, #201008 100%), radial-gradient(ellipse at 40% 50%, #e0c080 0%, transparent 50%);
}
.scn-arthur-orgoglio-combat .bg-arena {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0d8a0 0%, #c09060 40%, #804020 80%, #301008 100%);
  animation: aoc-arena 8s ease-in-out infinite alternate;
}
.scn-arthur-orgoglio-combat .dust {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,120,60,0.5) 0%, transparent 70%);
  animation: aoc-dust 4s ease-in-out infinite alternate;
}
.scn-arthur-orgoglio-combat .giant-club {
  position: absolute; bottom: 40%; left: 20%; width: 15px; height: 100px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 30% 30% / 10% 10% 40% 40%;
  transform-origin: bottom center;
  animation: aoc-club 3s ease-in-out infinite;
}
.scn-arthur-orgoglio-combat .arthur-leap {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: aoc-arthur 3s ease-in-out infinite alternate;
}
.scn-arthur-orgoglio-combat .sword-flash {
  position: absolute; top: 30%; left: 52%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #fff8d0 0%, #e0c080 50%, transparent 100%);
  border-radius: 2px;
  filter: blur(1px);
  animation: aoc-sword 2s ease-in-out infinite alternate;
}
.scn-arthur-orgoglio-combat .ground-shadow {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: aoc-shadow 5s ease-in-out infinite alternate;
}
.scn-arthur-orgoglio-combat .impact-burst {
  position: absolute; bottom: 35%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,224,160,0.8) 0%, rgba(255,224,160,0) 70%);
  border-radius: 50%;
  animation: aoc-impact 4s ease-in-out infinite;
}

@keyframes aoc-arena {
  0% { filter: brightness(0.9) contrast(1.1); }
  50% { filter: brightness(1.1) contrast(0.9); }
  100% { filter: brightness(1) contrast(1); }
}
@keyframes aoc-dust {
  0% { opacity: 0.2; transform: scaleY(0.8); }
  50% { opacity: 0.6; transform: scaleY(1.2); }
  100% { opacity: 0.3; transform: scaleY(1); }
}
@keyframes aoc-club {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-5px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes aoc-arthur {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  50% { transform: translateX(15px) translateY(-10px) rotate(10deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes aoc-sword {
  0% { transform: scaleX(0.5) rotate(-20deg); opacity: 0.7; }
  50% { transform: scaleX(1.5) rotate(30deg); opacity: 1; }
  100% { transform: scaleX(0.5) rotate(-10deg); opacity: 0.8; }
}
@keyframes aoc-shadow {
  0% { opacity: 0.3; transform: scaleX(0.9); }
  50% { opacity: 0.6; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(1); }
}
@keyframes aoc-impact {
  0% { transform: scale(0.5); opacity: 0.8; }
  50% { transform: scale(1.5); opacity: 0.2; }
  100% { transform: scale(0.8); opacity: 0.5; }
}

/* duessas-false-history - overcast, mood sad, muted cool palette */
.scn-duessas-false-history { background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 70%, #1a2a3a 100%), radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 70%); }
.scn-duessas-false-history .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); animation: dfh-sky 15s ease-in-out infinite alternate; }
.scn-duessas-false-history .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: dfh-hills 12s ease-in-out infinite; }
.scn-duessas-false-history .statue { position:absolute; bottom:25%; left:50%; width:40px; height:80px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.6); animation: dfh-statue 8s ease-in-out infinite; }
.scn-duessas-false-history .flower { position:absolute; bottom:28%; left:40%; width:12px; height:20px; background: radial-gradient(circle, #5a6a5a 0%, #3a4a3a 70%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dfh-flower 6s ease-in-out infinite; }
.scn-duessas-false-history .figure { position:absolute; bottom:22%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dfh-figure 10s ease-in-out infinite; }
.scn-duessas-false-history .sword { position:absolute; bottom:20%; left:50%; width:4px; height:60px; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); border-radius: 2px; transform: rotate(15deg) translateX(-12px); transform-origin: top center; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: dfh-sword 8s ease-in-out infinite; }
.scn-duessas-false-history .cloud { position:absolute; top:15%; left:20%; width:100px; height:20px; background: linear-gradient(180deg, rgba(200,200,210,.3) 0%, rgba(200,200,210,.05) 100%); border-radius: 50%; filter: blur(8px); animation: dfh-cloud 30s linear infinite; }
@keyframes dfh-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes dfh-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dfh-statue { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes dfh-flower { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes dfh-figure { 0% { transform: rotate(-2deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes dfh-sword { 0% { transform: rotate(12deg) translateX(-10px); } 50% { transform: rotate(18deg) translateX(-12px); } 100% { transform: rotate(12deg) translateX(-10px); } }
@keyframes dfh-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

/* duessas-wandering - dusk, mood sad, purple/amber palette */
.scn-duessas-wandering { background: linear-gradient(180deg, #2a1a3a 0%, #3a2a4a 30%, #4a3a3a 60%, #3a2a2a 100%), radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 70%); }
.scn-duessas-wandering .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a2a 100%); animation: dw-sky 10s ease-in-out infinite alternate; }
.scn-duessas-wandering .mountains { position:absolute; bottom:30%; left:-10%; right:-10%; height:25%; background: linear-gradient(180deg, #3a2a4a 0%, #1a0a2a 100%); border-radius: 30% 70% 0 0 / 70% 80% 0 0; box-shadow: inset 0 6px 18px rgba(0,0,0,.5); animation: dw-mountains 14s ease-in-out infinite; }
.scn-duessas-wandering .path { position:absolute; bottom:15%; left:30%; right:30%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
.scn-duessas-wandering .tree-left { position:absolute; bottom:25%; left:10%; width:30px; height:70px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform-origin: bottom center; animation: dw-tree 8s ease-in-out infinite; }
.scn-duessas-wandering .tree-right { position:absolute; bottom:25%; right:8%; width:35px; height:80px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform-origin: bottom center; animation: dw-tree 10s ease-in-out infinite reverse; }
.scn-duessas-wandering .figure { position:absolute; bottom:18%; left:35%; width:16px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dw-walk 6s ease-in-out infinite; }
.scn-duessas-wandering .lantern { position:absolute; bottom:20%; left:32%; width:8px; height:8px; background: radial-gradient(circle, #e0b060 0%, #c09040 70%); border-radius: 50%; box-shadow: 0 0 16px 6px #c09040, 0 0 32px 12px rgba(192,144,64,.4); animation: dw-lantern 3s ease-in-out infinite alternate; }
@keyframes dw-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes dw-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dw-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes dw-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes dw-lantern { 0% { box-shadow: 0 0 12px 4px #c09040, 0 0 24px 8px rgba(192,144,64,.3); opacity:.85; } 50% { box-shadow: 0 0 20px 8px #e0b060, 0 0 40px 16px rgba(224,176,96,.5); opacity:1; } 100% { box-shadow: 0 0 14px 5px #c09040, 0 0 28px 10px rgba(192,144,64,.35); opacity:.9; } }

/* duessa-meets-sansfoy - dusk, mood sad, dark muted browns and purples */
.scn-duessa-meets-sansfoy { background: linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 30%, #2a2a1a 60%, #1a1a0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-duessa-meets-sansfoy .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a3a4a 0%, #1a0a1a 100%); animation: dms-sky 12s ease-in-out infinite alternate; }
.scn-duessa-meets-sansfoy .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-duessa-meets-sansfoy .figure-standing { position:absolute; bottom:20%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dms-standing 8s ease-in-out infinite; }
.scn-duessa-meets-sansfoy .figure-prone { position:absolute; bottom:10%; left:55%; width:30px; height:12px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%; transform: rotate(-10deg); transform-origin: left center; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: dms-prone 5s ease-in-out infinite; }
.scn-duessa-meets-sansfoy .spear { position:absolute; bottom:12%; left:60%; width:3px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 1px; transform: rotate(25deg); transform-origin: bottom center; box-shadow: 0 1px 4px rgba(0,0,0,.4); animation: dms-spear 6s ease-in-out infinite; }
.scn-duessa-meets-sansfoy .shield { position:absolute; bottom:15%; left:45%; width:20px; height:25px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(10deg); box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: dms-shield 4s ease-in-out infinite; }
.scn-duessa-meets-sansfoy .clouds { position:absolute; top:20%; left:40%; width:80px; height:15px; background: linear-gradient(180deg, rgba(200,200,210,.15) 0%, rgba(200,200,210,.05) 100%); border-radius: 50%; filter: blur(6px); animation: dms-clouds 40s linear infinite; }
@keyframes dms-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes dms-standing { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes dms-prone { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes dms-spear { 0% { transform: rotate(23deg); } 50% { transform: rotate(27deg); } 100% { transform: rotate(23deg); } }
@keyframes dms-shield { 0% { transform: rotate(8deg) scale(1); } 50% { transform: rotate(12deg) scale(1.02); } 100% { transform: rotate(8deg) scale(1); } }
@keyframes dms-clouds { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

/* duessa-asks-for-protection - dusk, mood sad, warm muted amber with cool shadows */
.scn-duessa-asks-for-protection { background: linear-gradient(180deg, #2a1a3a 0%, #3a2a4a 20%, #4a3a3a 50%, #3a2a2a 100%), radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 70%); }
.scn-duessa-asks-for-protection .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a2a 100%); animation: dap-sky 10s ease-in-out infinite alternate; }
.scn-duessa-asks-for-protection .castle { position:absolute; bottom:30%; right:15%; width:50px; height:60px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: dap-castle 8s ease-in-out infinite; }
.scn-duessa-asks-for-protection .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-duessa-asks-for-protection .knight { position:absolute; bottom:20%; left:48%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: dap-knight 8s ease-in-out infinite; }
.scn-duessa-asks-for-protection .duessa { position:absolute; bottom:18%; left:38%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dap-duessa 7s ease-in-out infinite; }
.scn-duessa-asks-for-protection .clouds { position:absolute; top:12%; left:10%; width:90px; height:16px; background: linear-gradient(180deg, rgba(200,200,210,.15) 0%, rgba(200,200,210,.05) 100%); border-radius: 50%; filter: blur(5px); animation: dap-clouds 35s linear infinite; }
.scn-duessa-asks-for-protection .moon { position:absolute; top:10%; left:70%; width:20px; height:20px; background: radial-gradient(circle, #d0c0a0 0%, #b0a080 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #b0a080, 0 0 40px 12px rgba(176,160,128,.3); animation: dap-moon 6s ease-in-out infinite alternate; }
@keyframes dap-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes dap-castle { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes dap-knight { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes dap-duessa { 0% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(0deg) translateY(-1px); } 50% { transform: rotate(-2deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes dap-clouds { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes dap-moon { 0% { opacity:.85; box-shadow: 0 0 16px 4px #b0a080, 0 0 30px 8px rgba(176,160,128,.2); } 50% { opacity:1; box-shadow: 0 0 24px 8px #d0c0a0, 0 0 48px 16px rgba(208,192,160,.4); } 100% { opacity:.9; box-shadow: 0 0 18px 5px #b0a080, 0 0 36px 10px rgba(176,160,128,.25); } }

.scn-healing-chamber {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #1f1612 40%, #140f0c 100%),
    radial-gradient(ellipse at 50% 20%, #4a2f24 0%, transparent 70%);
}
.scn-healing-chamber .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a20 0%, #1f1410 100%);
  animation: hc-wall 12s ease-in-out infinite alternate;
}
.scn-healing-chamber .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a110d 0%, #0f0a08 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-healing-chamber .bed {
  position: absolute; bottom: 28%; left: 30%; width: 45%; height: 32%;
  background: linear-gradient(150deg, #5c3d2e 0%, #3a251a 60%, #2a1610 100%);
  border-radius: 4% 4% 6% 6% / 10% 10% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,.7), inset 0 2px 4px rgba(255,200,140,0.1);
  animation: hc-bed 9s ease-in-out infinite;
}
.scn-healing-chamber .patient {
  position: absolute; bottom: 32%; left: 42%; width: 16%; height: 18%;
  background: linear-gradient(180deg, #c5957a 0%, #8a5e46 40%, #5a3424 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-patient 4s ease-in-out infinite alternate;
}
.scn-healing-chamber .duessa {
  position: absolute; bottom: 26%; right: 18%; width: 14%; height: 36%;
  background: linear-gradient(180deg, #1a1210 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hc-duessa-weep 5s ease-in-out infinite;
}
.scn-healing-chamber .candle {
  position: absolute; bottom: 40%; left: 22%; width: 2.5%; height: 12%;
  background: linear-gradient(180deg, #ffe8c0 0%, #cc8844 60%, #3a2518 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 16px 8px rgba(255,200,100,0.5);
  animation: hc-candle 3s ease-in-out infinite alternate;
}
.scn-healing-chamber .music-note {
  position: absolute; width: 4%; height: 8%;
  background: transparent;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -4px 0 0 #b89a7a;
  filter: blur(1px);
}
.scn-healing-chamber .note-1 {
  bottom: 52%; left: 55%;
  animation: hc-note1 8s ease-in-out infinite;
}
.scn-healing-chamber .note-2 {
  bottom: 58%; left: 65%;
  animation: hc-note2 10s ease-in-out infinite 2s;
}
@keyframes hc-wall { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes hc-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) } }
@keyframes hc-patient { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hc-duessa-weep { 0% { transform: translateY(0) rotate(-2deg) scaleY(1) } 30% { transform: translateY(-3px) rotate(2deg) scaleY(1.02) } 60% { transform: translateY(1px) rotate(-1deg) scaleY(0.98) } 100% { transform: translateY(0) rotate(0) scaleY(1) } }
@keyframes hc-candle { 0% { transform: scaleY(0.95) scaleX(1); box-shadow: 0 0 12px 4px rgba(255,200,100,0.4) } 50% { transform: scaleY(1.05) scaleX(1.02); box-shadow: 0 0 24px 10px rgba(255,200,100,0.7) } 100% { transform: scaleY(0.98) scaleX(1); box-shadow: 0 0 16px 6px rgba(255,200,100,0.5) } }
@keyframes hc-note1 { 0% { transform: translate(0,0) rotate(0deg) scale(0.8); opacity:0.3 } 25% { transform: translate(10px, -10px) rotate(15deg) scale(1.2); opacity:0.8 } 50% { transform: translate(20px, -20px) rotate(30deg) scale(1); opacity:0.6 } 75% { transform: translate(10px, -5px) rotate(10deg) scale(0.9); opacity:0.4 } 100% { transform: translate(0,0) rotate(0deg) scale(0.8); opacity:0.3 } }
@keyframes hc-note2 { 0% { transform: translate(0,0) rotate(0deg) scale(0.7); opacity:0.2 } 20% { transform: translate(-8px, -12px) rotate(-20deg) scale(1.1); opacity:0.7 } 40% { transform: translate(-16px, -24px) rotate(-40deg) scale(1); opacity:0.5 } 60% { transform: translate(-10px, -8px) rotate(-15deg) scale(0.8); opacity:0.3 } 80% { transform: translate(-4px, -2px) rotate(-5deg) scale(0.9); opacity:0.4 } 100% { transform: translate(0,0) rotate(0deg) scale(0.7); opacity:0.2 } }

.scn-night-cave-entrance {
  background:
    linear-gradient(180deg, #0a0a12 0%, #12101e 30%, #1a1628 60%, #0e0c18 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a30 0%, transparent 70%);
}
.scn-night-cave-entrance .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #060612 0%, #10102a 50%, #1a1a38 100%);
  animation: nce-sky 20s ease-in-out infinite alternate;
}
.scn-night-cave-entrance .cave-roof {
  position: absolute; top: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0f0b14 0%, #1a1422 50%, #0f0b14 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.9);
  animation: nce-roof 15s ease-in-out infinite;
}
.scn-night-cave-entrance .cave-floor {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #1a1220 0%, #0a0a12 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
}
.scn-night-cave-entrance .chariot {
  position: absolute; bottom: 30%; left: 35%; width: 25%; height: 18%;
  background: linear-gradient(135deg, #2a1a2a 0%, #0f0812 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.8);
  animation: nce-chariot 8s ease-in-out infinite;
}
.scn-night-cave-entrance .horse {
  position: absolute; bottom: 34%; width: 18%; height: 26%;
  background: linear-gradient(180deg, #0e0a10 0%, #060408 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
}
.scn-night-cave-entrance .horse-front { left: 20%; animation: nce-horse-f 3s ease-in-out infinite; }
.scn-night-cave-entrance .horse-rear { left: 55%; animation: nce-horse-r 3.5s ease-in-out infinite 0.5s; }
.scn-night-cave-entrance .night-figure {
  position: absolute; bottom: 32%; right: 15%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #08060c 0%, #020104 100%);
  border-radius: 50% 50% 20% 20%;
  animation: nce-figure 6s ease-in-out infinite alternate;
}
.scn-night-cave-entrance .wheel-1,
.scn-night-cave-entrance .wheel-2 {
  position: absolute; bottom: 28%; width: 9%; height: 9%;
  background: radial-gradient(circle, #1a1220 30%, #0d0812 60%, #060408 100%);
  border-radius: 50%;
  border: 2px solid #1a1220;
  box-shadow: inset 0 0 6px rgba(0,0,0,1), 0 4px 6px rgba(0,0,0,0.7);
  animation: nce-wheel 5s linear infinite;
}
.scn-night-cave-entrance .wheel-1 { left: 32%; animation-delay: 0s; }
.scn-night-cave-entrance .wheel-2 { left: 58%; animation-delay: 0.7s; }
@keyframes nce-sky { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.4 } }
@keyframes nce-roof { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes nce-chariot { 0% { transform: translateY(0) rotate(-2deg) } 33% { transform: translateY(-2px) rotate(1deg) } 66% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nce-horse-f { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(5px) translateY(0) rotate(-1deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes nce-horse-r { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 30% { transform: translateX(-2px) translateY(-1px) rotate(-2deg) } 60% { transform: translateX(2px) translateY(1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes nce-figure { 0% { transform: scaleY(1) rotate(-3deg) } 50% { transform: scaleY(1.05) rotate(3deg) } 100% { transform: scaleY(0.95) rotate(0) } }
@keyframes nce-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

.scn-journey-to-hell {
  background:
    linear-gradient(180deg, #08060a 0%, #12101a 40%, #0a0810 100%),
    radial-gradient(ellipse at 50% 20%, #1a1420 0%, transparent 70%);
}
.scn-journey-to-hell .dark-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #040408 0%, #0e0c16 50%, #1c1724 100%);
  animation: jh-sky 25s ease-in-out infinite alternate;
}
.scn-journey-to-hell .wagon-body {
  position: absolute; bottom: 30%; left: 20%; width: 40%; height: 20%;
  background: linear-gradient(135deg, #2a1a1a 0%, #0f080a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.9);
  animation: jh-wagon 6s ease-in-out infinite;
}
.scn-journey-to-hell .wagon-wheel {
  position: absolute; bottom: 28%; width: 10%; height: 10%;
  background: radial-gradient(circle, #1a0e0e 30%, #0a0404 70%);
  border-radius: 50%;
  border: 2px solid #1a0e0e;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
  animation: jh-wheel 4s linear infinite;
}
.scn-journey-to-hell .left-wheel { left: 22%; }
.scn-journey-to-hell .right-wheel { left: 48%; animation-delay: 0.5s; }
.scn-journey-to-hell .horse-dark,
.scn-journey-to-hell .horse-brown {
  position: absolute; bottom: 35%; width: 15%; height: 28%;
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: jh-horse 3.5s ease-in-out infinite;
}
.scn-journey-to-hell .horse-dark {
  left: 60%; background: linear-gradient(180deg, #08060a 0%, #020204 100%);
  animation-name: jh-horse-dark;
}
.scn-journey-to-hell .horse-brown {
  left: 72%; background: linear-gradient(180deg, #2a1a0e 0%, #0f0804 100%);
  animation-name: jh-horse-brown;
  animation-delay: 0.4s;
}
.scn-journey-to-hell .tar-foam {
  position: absolute; bottom: 30%; left: 25%; width: 30%; height: 4%;
  background: radial-gradient(circle, rgba(20,10,8,0.6) 0%, transparent 70%);
  filter: blur(6px);
  animation: jh-foam 4s ease-in-out infinite alternate;
}
@keyframes jh-sky { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }
@keyframes jh-wagon { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(-5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes jh-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes jh-horse-dark { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(-4px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(-8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(-4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes jh-horse-brown { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 30% { transform: translateX(-3px) translateY(-1px) rotate(-2deg) } 60% { transform: translateX(-6px) translateY(1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes jh-foam { 0% { transform: scaleX(0.8) translateY(0); opacity: 0.4 } 50% { transform: scaleX(1.2) translateY(-2px); opacity: 0.8 } 100% { transform: scaleX(0.9) translateY(0); opacity: 0.5 } }

.scn-hell-gates {
  background:
    linear-gradient(180deg, #0a0608 0%, #140e12 40%, #1a141a 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a22 0%, transparent 60%);
}
.scn-hell-gates .gate-back {
  position: absolute; inset: 10% 10% 20% 10%;
  background: radial-gradient(ellipse at 50% 0%, #241e2a 0%, #0a080e 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.9);
  animation: hg-back 12s ease-in-out infinite;
}
.scn-hell-gates .gate-arch {
  position: absolute; top: 12%; left: 20%; right: 20%; height: 40%;
  background: transparent;
  border: 6px solid #3a222a;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  filter: drop-shadow(0 10px 20px #1a0a12);
  animation: hg-arch 8s ease-in-out infinite alternate;
}
.scn-hell-gates .gate-pillar {
  position: absolute; bottom: 20%; width: 6%; height: 70%;
  background: linear-gradient(180deg, #2a1a22 0%, #0e0810 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 16px rgba(40,20,30,0.5);
}
.scn-hell-gates .left-pillar { left: 18%; animation: hg-pillar-l 5s ease-in-out infinite; }
.scn-hell-gates .right-pillar { right: 18%; animation: hg-pillar-r 5s ease-in-out infinite 0.5s; }
.scn-hell-gates .chariot-hell {
  position: absolute; bottom: 22%; left: 30%; width: 25%; height: 20%;
  background: linear-gradient(135deg, #3a1a1a 0%, #120a0a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.8), inset 0 2px 4px rgba(100,30,30,0.2);
  animation: hg-chariot 7s ease-in-out infinite;
}
.scn-hell-gates .ghost {
  position: absolute; width: 8%; height: 20%;
  background: radial-gradient(ellipse, rgba(120,90,120,0.3) 0%, transparent 70%);
  filter: blur(4px);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: hg-ghost 4s ease-in-out infinite alternate;
}
.scn-hell-gates .ghost-1 { bottom: 25%; left: 12%; animation-duration: 4s; }
.scn-hell-gates .ghost-2 { bottom: 35%; left: 60%; animation-duration: 5s; animation-delay: 1s; }
.scn-hell-gates .ghost-3 { bottom: 30%; right: 12%; animation-duration: 6s; animation-delay: 2.5s; }
@keyframes hg-back { 0% { opacity: 0.5; transform: scale(0.98) } 50% { opacity: 0.7; transform: scale(1.02) } 100% { opacity: 0.4; transform: scale(0.99) } }
@keyframes hg-arch { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) scale(0.99) } }
@keyframes hg-pillar-l { 0% { transform: translateX(0) scaleY(1) } 33% { transform: translateX(2px) scaleY(1.02) } 66% { transform: translateX(-1px) scaleY(0.98) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes hg-pillar-r { 0% { transform: translateX(0) scaleY(1) } 33% { transform: translateX(-2px) scaleY(1.01) } 66% { transform: translateX(1px) scaleY(0.99) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes hg-chariot { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(1px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hg-ghost { 0% { transform: translateY(0) scale(0.8) rotate(-5deg); opacity: 0.2 } 33% { transform: translateY(-8px) scale(1.1) rotate(3deg); opacity: 0.6 } 66% { transform: translateY(3px) scale(0.9) rotate(-2deg); opacity: 0.3 } 100% { transform: translateY(0) scale(1) rotate(0); opacity: 0.2 } }

.scn-defense-of-spensers-originality {
  background: linear-gradient(180deg, #f5e6d0 0%, #c9b89a 50%, #a58e70 100%), radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-defense-of-spensers-originality .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8d9c0 0%, #d4c4a4 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
}
.scn-defense-of-spensers-originality .window {
  position: absolute; top: 5%; left: 10%; width: 30%; height: 40%; background: linear-gradient(180deg, #fff8e7 0%, #f0e0c0 100%); border: 3px solid #8b7355; box-shadow: 0 0 80px #ffe9b0; animation: spn-window 12s ease-in-out infinite alternate;
}
.scn-defense-of-spensers-originality .desk {
  position: absolute; bottom: 8%; left: 25%; right: 20%; height: 28%; background: linear-gradient(180deg, #6b4f3a 0%, #4a3422 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-defense-of-spensers-originality .books {
  position: absolute; bottom: 24%; left: 30%; width: 24%; height: 12%; background: linear-gradient(90deg, #7a3a2a 0%, #5a2a1a 30%, #8a4a2a 60%, #6a3a1a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: spn-books 18s ease-in-out infinite;
}
.scn-defense-of-spensers-originality .figure {
  position: absolute; bottom: 16%; left: 38%; width: 14%; height: 40%; background: linear-gradient(135deg, #3a2a22 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spn-figure 8s ease-in-out infinite;
}
.scn-defense-of-spensers-originality .curtain-left {
  position: absolute; top: 2%; left: 8%; width: 8%; height: 50%; background: linear-gradient(180deg, #b89a7a 0%, #8a6a4a 100%); border-radius: 0 0 40% 40%; transform-origin: top center; animation: spn-curtain-l 10s ease-in-out infinite alternate;
}
.scn-defense-of-spensers-originality .curtain-right {
  position: absolute; top: 2%; right: 8%; width: 8%; height: 50%; background: linear-gradient(180deg, #b89a7a 0%, #8a6a4a 100%); border-radius: 0 0 40% 40%; transform-origin: top center; animation: spn-curtain-r 10s ease-in-out infinite alternate;
}
@keyframes spn-window { 0% { opacity: 0.85; box-shadow: 0 0 60px #ffe9b0; } 50% { opacity: 1; box-shadow: 0 0 100px #fff0c0; } 100% { opacity: 0.9; box-shadow: 0 0 70px #f0d090; } }
@keyframes spn-books { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes spn-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(12px) rotate(-1deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes spn-curtain-l { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.05) rotate(2deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes spn-curtain-r { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.05) rotate(-2deg); } 100% { transform: scaleX(1) rotate(0deg); } }

.scn-classical-mythology-and-beauty {
  background: linear-gradient(180deg, #7fc8f8 0%, #a0d8ff 30%, #e0f0ff 60%, #d4c9a8 100%), radial-gradient(ellipse at 70% 30%, #fff8d0 0%, transparent 50%);
}
.scn-classical-mythology-and-beauty .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #b0d8ff 0%, #d0e8ff 100%); animation: clm-sky 20s ease-in-out infinite alternate;
}
.scn-classical-mythology-and-beauty .temple-columns {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 40%; background: linear-gradient(90deg, #d4c9a8 0%, #f0e8d0 20%, #d4c9a8 50%, #f0e8d0 80%, #d4c9a8 100%); box-shadow: 0 0 20px rgba(255,255,200,0.3); clip-path: polygon(0% 0%, 10% 0%, 10% 100%, 20% 100%, 20% 0%, 30% 0%, 30% 100%, 40% 100%, 40% 0%, 50% 0%, 50% 100%, 60% 100%, 60% 0%, 70% 0%, 70% 100%, 80% 100%, 80% 0%, 90% 0%, 90% 100%, 100% 0%, 100% 100%, 0% 100%); animation: clm-columns 30s ease-in-out infinite;
}
.scn-classical-mythology-and-beauty .statue {
  position: absolute; bottom: 35%; left: 40%; width: 20%; height: 35%; background: linear-gradient(135deg, #f0e8d0 0%, #c0b098 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; box-shadow: 0 0 40px rgba(255,255,200,0.2); animation: clm-statue 15s ease-in-out infinite;
}
.scn-classical-mythology-and-beauty .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #c4b896 0%, #a89878 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-classical-mythology-and-beauty .olive-branch {
  position: absolute; bottom: 40%; left: 15%; width: 15%; height: 30%; background: radial-gradient(ellipse at 50% 30%, #6a8a4a 0%, #4a6a2a 50%, transparent 70%); transform-origin: bottom center; animation: clm-branch 8s ease-in-out infinite alternate;
}
.scn-classical-mythology-and-beauty .sun-rays {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: repeating-linear-gradient(110deg, rgba(255,255,200,0.15) 0px, rgba(255,255,200,0.15) 8px, transparent 8px, transparent 30px); animation: clm-rays 40s linear infinite;
}
@keyframes clm-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes clm-columns { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes clm-statue { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes clm-branch { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes clm-rays { 0% { transform: translateX(0); } 100% { transform: translateX(100%); } }

.scn-worship-of-beauty {
  background: linear-gradient(180deg, #e8d5b7 0%, #d4b896 50%, #b6936a 100%), radial-gradient(ellipse at 30% 20%, #fff4d6 0%, transparent 60%);
}
.scn-worship-of-beauty .studio-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #dfc9a8 0%, #c9b090 100%); box-shadow: inset 0 0 50px rgba(0,0,0,0.05);
}
.scn-worship-of-beauty .canvas {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%); width: 30%; height: 35%; background: linear-gradient(180deg, #f5eed6 0%, #e0d4b8 100%); border: 3px solid #8a6a4a; border-radius: 2px; box-shadow: 0 0 20px rgba(0,0,0,0.15); animation: wop-canvas 12s ease-in-out infinite;
}
.scn-worship-of-beauty .painter {
  position: absolute; bottom: 12%; left: 20%; width: 18%; height: 40%; background: linear-gradient(135deg, #3a2a22 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wop-painter 8s ease-in-out infinite;
}
.scn-worship-of-beauty .palette {
  position: absolute; bottom: 28%; left: 18%; width: 12%; height: 10%; background: linear-gradient(135deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 40%; box-shadow: 0 0 10px rgba(0,0,0,0.2); animation: wop-palette 6s ease-in-out infinite alternate;
}
.scn-worship-of-beauty .light-beam {
  position: absolute; top: 0; left: 30%; width: 30%; height: 100%; background: linear-gradient(180deg, rgba(255,244,214,0.4) 0%, transparent 60%); clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%); animation: wop-light 15s ease-in-out infinite alternate;
}
.scn-worship-of-beauty .easel {
  position: absolute; bottom: 12%; left: 48%; width: 8%; height: 45%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); transform: skewX(-3deg); transform-origin: bottom center; animation: wop-easel 20s ease-in-out infinite;
}
@keyframes wop-canvas { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes wop-painter { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(12px) rotate(-2deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes wop-palette { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-8deg); } }
@keyframes wop-light { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes wop-easel { 0% { transform: skewX(-3deg) scaleY(1); } 50% { transform: skewX(0deg) scaleY(1.01); } 100% { transform: skewX(-3deg) scaleY(1); } }

.scn-una-and-womanhood {
  background: linear-gradient(180deg, #ffb7c5 0%, #ffb0b0 20%, #f8a4a4 40%, #c9a4b4 60%, #7a5c7a 100%), radial-gradient(ellipse at 70% 0%, #ffd1d1 0%, transparent 60%);
}
.scn-una-and-womanhood .dawn-sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #ffc4d4 0%, #ffb0b0 30%, #e0a0a0 60%, transparent 100%); animation: una-sky 25s ease-in-out infinite alternate;
}
.scn-una-and-womanhood .hills {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,0.2); animation: una-hills 18s ease-in-out infinite alternate;
}
.scn-una-and-womanhood .meadow {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #7a9a5a 0%, #5a7a3a 100%); border-radius: 20% 40% 0 0; box-shadow: inset 0 -4px 10px rgba(0,0,0,0.1);
}
.scn-una-and-womanhood .figure-una {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 40%; background: linear-gradient(135deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: una-figure 10s ease-in-out infinite;
}
.scn-una-and-womanhood .dress {
  position: absolute; bottom: 20%; left: 44%; width: 14%; height: 30%; background: linear-gradient(180deg, #c8a0b8 0%, #a878a0 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 0 20px rgba(255,200,230,0.2); animation: una-dress 8s ease-in-out infinite alternate;
}
.scn-una-and-womanhood .glow {
  position: absolute; top: 15%; left: 44%; width: 20%; height: 30%; background: radial-gradient(ellipse, #ffe0e8 0%, transparent 70%); box-shadow: 0 0 60px rgba(255,220,230,0.4); animation: una-glow 6s ease-in-out infinite alternate;
}
.scn-una-and-womanhood .lamb {
  position: absolute; bottom: 22%; left: 55%; width: 8%; height: 12%; background: radial-gradient(ellipse at 50% 30%, #f0f0e0 0%, #c0b0a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: una-lamb 4s ease-in-out infinite;
}
@keyframes una-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes una-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes una-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(0deg); } 75% { transform: translateX(9px) rotate(-1deg); } 100% { transform: translateX(12px) rotate(0deg); } }
@keyframes una-dress { 0% { transform: skewX(2deg); } 50% { transform: skewX(-2deg); } 100% { transform: skewX(1deg); } }
@keyframes una-glow { 0% { opacity: 0.5; transform: scale(0.9); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes una-lamb { 0% { transform: translateY(0); } 25% { transform: translateY(-5px); } 50% { transform: translateY(0); } 75% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

.scn-notes-beech-ash {
  background: linear-gradient(135deg, #3a2f1c 0%, #5a4a2a 50%, #2e2410 100%), radial-gradient(ellipse at 40% 60%, #7a6a3a 0%, transparent 70%);
}
.scn-notes-beech-ash .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a1a 0%, #2e2210 100%);
  animation: nba-wall 15s ease-in-out infinite alternate;
}
.scn-notes-beech-ash .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a10 0%, #1a1208 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-notes-beech-ash .window {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse, #6a5a2a 0%, transparent 70%);
  border: 3px solid #2a1a08;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(200,180,100,0.3);
  animation: nba-window 8s ease-in-out infinite;
}
.scn-notes-beech-ash .workbench {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a5a2a 50%, #5a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
.scn-notes-beech-ash .branch-beech {
  position: absolute; bottom: 28%; left: 25%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1a04 100%);
  border-radius: 20% 80% 50% 50% / 60% 40% 60% 40%;
  transform: rotate(-15deg);
  animation: nba-branch 6s ease-in-out infinite;
}
.scn-notes-beech-ash .branch-ash {
  position: absolute; bottom: 28%; right: 30%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #5a3a16 0%, #2a1a08 100%);
  border-radius: 80% 20% 50% 50% / 40% 60% 40% 60%;
  transform: rotate(10deg);
  animation: nba-branch 6s ease-in-out infinite reverse;
}
.scn-notes-beech-ash .lantern {
  position: absolute; top: 12%; left: 18%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 60%, #ffd080 0%, #b08040 60%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(255,200,100,0.6), 0 0 60px 16px rgba(255,200,100,0.3);
  animation: nba-lantern 4s ease-in-out infinite alternate;
}
.scn-notes-beech-ash .dust {
  position: absolute; top: 30%; left: 50%; width: 4px; height: 4px;
  background: rgba(255,220,160,0.4);
  border-radius: 50%;
  filter: blur(1px);
  animation: nba-dust 20s linear infinite;
}
@keyframes nba-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes nba-window {
  0%, 100% { transform: scale(1) rotate(0deg); box-shadow: inset 0 0 20px rgba(200,180,100,0.3); }
  50% { transform: scale(1.02) rotate(0.5deg); box-shadow: inset 0 0 30px rgba(200,180,100,0.5); }
}
@keyframes nba-branch {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-13deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes nba-lantern {
  0% { box-shadow: 0 0 20px 4px rgba(255,200,100,0.4), 0 0 40px 8px rgba(255,200,100,0.2); opacity: 0.8; }
  100% { box-shadow: 0 0 40px 12px rgba(255,200,100,0.7), 0 0 80px 20px rgba(255,200,100,0.4); opacity: 1; }
}
@keyframes nba-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  25% { transform: translate(20px, -30px) scale(1.2); opacity: 0.6; }
  50% { transform: translate(40px, -10px) scale(0.8); opacity: 0.4; }
  75% { transform: translate(60px, -50px) scale(1.1); opacity: 0.7; }
  100% { transform: translate(80px, 0) scale(1); opacity: 0.3; }
}

.scn-notes-revoke-shame {
  background: linear-gradient(180deg, #2a1e10 0%, #3a2818 50%, #1a1008 100%), radial-gradient(ellipse at 60% 30%, #5a4020 0%, transparent 60%);
}
.scn-notes-revoke-shame .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e10 0%, #1a1008 100%);
}
.scn-notes-revoke-shame .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.7);
}
.scn-notes-revoke-shame .window-frame {
  position: absolute; top: 8%; right: 10%; width: 40%; height: 60%;
  border: 4px solid #1a1008;
  border-radius: 2%;
  background: transparent;
}
.scn-notes-revoke-shame .forest-blur {
  position: absolute; top: 10%; right: 12%; width: 36%; height: 56%;
  background: linear-gradient(180deg, #0a1a0a 0%, #1a2a1a 50%, #0a0a08 100%);
  filter: blur(4px);
  animation: rsv-forest 30s ease-in-out infinite alternate;
}
.scn-notes-revoke-shame .desk {
  position: absolute; bottom: 28%; left: 15%; width: 50%; height: 12%;
  background: linear-gradient(90deg, #3a2a12 0%, #5a4a22 50%, #3a2a12 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-notes-revoke-shame .book {
  position: absolute; bottom: 32%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 4% 4% 10% 10%;
  transform: rotate(-10deg);
  animation: rsv-book 12s ease-in-out infinite;
}
.scn-notes-revoke-shame .figure {
  position: absolute; bottom: 26%; left: 22%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rsv-figure 6s ease-in-out infinite;
}
.scn-notes-revoke-shame .lamp {
  position: absolute; top: 12%; left: 20%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 60%, #ffe0a0 0%, #c09040 60%, #3a2a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,200,100,0.5), 0 0 60px 20px rgba(255,200,100,0.2);
  animation: rsv-lamp 5s ease-in-out infinite alternate;
}
@keyframes rsv-forest {
  0% { opacity: 0.6; filter: blur(4px); }
  50% { opacity: 0.8; filter: blur(3px); }
  100% { opacity: 0.5; filter: blur(5px); }
}
@keyframes rsv-book {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
}
@keyframes rsv-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(0.5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rsv-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(255,200,100,0.4), 0 0 50px 14px rgba(255,200,100,0.2); opacity: 0.8; }
  100% { box-shadow: 0 0 40px 14px rgba(255,200,100,0.6), 0 0 70px 22px rgba(255,200,100,0.3); opacity: 1; }
}

.scn-notes-vile-disdaine {
  background: linear-gradient(135deg, #2a1e1e 0%, #3a2828 50%, #1a1010 100%), radial-gradient(ellipse at 50% 40%, #5a3030 0%, transparent 60%);
}
.scn-notes-vile-disdaine .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1010 100%);
}
.scn-notes-vile-disdaine .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1212 0%, #0a0808 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
}
.scn-notes-vile-disdaine .monster-figure {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1418 0%, #0a080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vld-monster 8s ease-in-out infinite;
}
.scn-notes-vile-disdaine .offspring-1 {
  position: absolute; bottom: 35%; left: 30%; width: 10px; height: 14px;
  background: #2a2028;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vld-offspring 6s ease-in-out infinite;
}
.scn-notes-vile-disdaine .offspring-2 {
  position: absolute; bottom: 38%; left: 60%; width: 8px; height: 12px;
  background: #1c141c;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vld-offspring 6s ease-in-out infinite 0.5s;
}
.scn-notes-vile-disdaine .offspring-3 {
  position: absolute; bottom: 40%; left: 45%; width: 12px; height: 16px;
  background: #2a2028;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vld-offspring 6s ease-in-out infinite 1s;
}
.scn-notes-vile-disdaine .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(20,10,15,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: vld-mist 20s ease-in-out infinite alternate;
}
.scn-notes-vile-disdaine .lantern {
  position: absolute; top: 10%; left: 15%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 50%, #c07040 0%, #803820 60%, #2a1810 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 25px 8px rgba(192,112,64,0.5), 0 0 50px 16px rgba(192,112,64,0.2);
  animation: vld-lantern 5s ease-in-out infinite alternate;
}
@keyframes vld-monster {
  0%, 100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-3px); }
}
@keyframes vld-offspring {
  0% { transform: translate(0, 0) scale(1); opacity: 0.7; }
  25% { transform: translate(5px, -8px) scale(1.1); opacity: 1; }
  50% { transform: translate(10px, -4px) scale(0.9); opacity: 0.8; }
  75% { transform: translate(15px, -12px) scale(1.05); opacity: 0.9; }
  100% { transform: translate(20px, 0) scale(1); opacity: 0.7; }
}
@keyframes vld-mist {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.6; transform: translateY(-10px); }
  100% { opacity: 0.4; transform: translateY(5px); }
}
@keyframes vld-lantern {
  0% { box-shadow: 0 0 20px 4px rgba(192,112,64,0.4), 0 0 40px 10px rgba(192,112,64,0.2); opacity: 0.7; }
  100% { box-shadow: 0 0 35px 10px rgba(192,112,64,0.7), 0 0 70px 20px rgba(192,112,64,0.3); opacity: 1; }
}

.scn-notes-valiant-elfe {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 50%, #0e0e1a 100%), radial-gradient(ellipse at 40% 50%, #4a4a7a 0%, transparent 60%);
}
.scn-notes-valiant-elfe .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
}
.scn-notes-valiant-elfe .pedestal {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 60px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-notes-valiant-elfe .elf-figure {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 70px;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vel-figure 8s ease-in-out infinite;
}
.scn-notes-valiant-elfe .cape {
  position: absolute; bottom: 42%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a3a6a 0%, #1a1a3a 100%);
  border-radius: 50% 20% 60% 40% / 40% 30% 70% 60%;
  transform-origin: top center;
  animation: vel-cape 6s ease-in-out infinite alternate;
}
.scn-notes-valiant-elfe .glow-halo {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,200,255,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: vel-halo 10s ease-in-out infinite alternate;
}
.scn-notes-valiant-elfe .sparkle-1 {
  position: absolute; top: 15%; left: 30%; width: 4px; height: 4px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,200,255,0.6);
  animation: vel-sparkle 5s linear infinite;
}
.scn-notes-valiant-elfe .sparkle-2 {
  position: absolute; top: 25%; left: 60%; width: 3px; height: 3px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(200,200,255,0.6);
  animation: vel-sparkle 5s linear infinite 1.5s;
}
@keyframes vel-figure {
  0%, 100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-2px); }
}
@keyframes vel-cape {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes vel-halo {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 0.6; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.4; transform: translateX(-50%) scale(1); }
}
@keyframes vel-sparkle {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  20% { opacity: 1; }
  40% { transform: translate(20px, -30px) scale(0.8); opacity: 0.6; }
  60% { transform: translate(40px, -10px) scale(1.2); opacity: 0.8; }
  80% { transform: translate(60px, -40px) scale(0.9); opacity: 0.4; }
  100% { transform: translate(80px, 0) scale(1); opacity: 0; }
}

.scn-errour-spews-poison {
  background:
    radial-gradient(ellipse at 50% 30%, #2a0a2a 0%, #0a0a14 60%, #05020a 100%),
    linear-gradient(180deg, #140a1a 0%, #05020a 50%, #000005 100%);
}
.scn-errour-spews-poison .bg-maw {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, #050105 0%, #0a0510 40%, transparent 100%);
}
.scn-errour-spews-poison .maw-rim {
  position: absolute; bottom: 45%; left: 50%; width: 220px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 10%, #1a0510 0%, #0a0205 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 -20px 40px rgba(40, 10, 20, .8);
  animation: es-maw 4s ease-in-out infinite alternate;
}
.scn-errour-spews-poison .poison-stream {
  position: absolute; bottom: 40%; left: 50%; width: 40px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 40%, #050205 100%);
  border-radius: 10px;
  box-shadow: 0 0 30px 10px rgba(60, 20, 20, .5);
  animation: es-stream 3s ease-in-out infinite;
}
.scn-errour-spews-poison .lump-1 {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 24px;
  background: radial-gradient(circle, #1a0a0a 0%, #0a0205 100%);
  border-radius: 60% 40% 50% 50%;
  filter: blur(2px);
  animation: es-lump 5s ease-in-out infinite;
}
.scn-errour-spews-poison .lump-2 {
  position: absolute; bottom: 28%; right: 38%; width: 26px; height: 20px;
  background: radial-gradient(circle, #1a0505 0%, #050105 100%);
  border-radius: 50% 60% 40% 50%;
  filter: blur(2px);
  animation: es-lump 6s ease-in-out infinite reverse;
}
.scn-errour-spews-poison .book-1 {
  position: absolute; bottom: 35%; left: 35%; width: 32px; height: 24px;
  background: linear-gradient(135deg, #2a1a0a 0%, #1a0a05 50%, #0a0502 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.8);
  transform: rotate(-15deg);
  animation: es-fall 7s ease-in infinite;
}
.scn-errour-spews-poison .book-2 {
  position: absolute; bottom: 32%; right: 32%; width: 28px; height: 20px;
  background: linear-gradient(135deg, #2a1a05 0%, #1a0a02 50%, #0a0501 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.8);
  transform: rotate(25deg);
  animation: es-fall 9s ease-in infinite;
}
.scn-errour-spews-poison .frog-1 {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 14px;
  background: radial-gradient(circle at 30% 20%, #1a2a0a 0%, #0a1a05 100%);
  border-radius: 50% 50% 40% 40%;
  filter: blur(1px);
  animation: es-hop 4s ease-in-out infinite;
}
.scn-errour-spews-poison .toad-1 {
  position: absolute; bottom: 22%; right: 28%; width: 26px; height: 18px;
  background: radial-gradient(circle, #1a1a05 0%, #0a0a02 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(1px);
  animation: es-hop 6s ease-in-out infinite reverse;
}
@keyframes es-maw { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05, .95) } 100% { transform: translateX(-50%) scale(.95, 1.05) } }
@keyframes es-stream { 0% { transform: translateX(-50%) translateY(0) scaleX(1); opacity: .7 } 50% { transform: translateX(-50%) translateY(10px) scaleX(1.3); opacity: 1 } 100% { transform: translateX(-50%) translateY(-5px) scaleX(.8); opacity: .6 } }
@keyframes es-lump { 0% { transform: translate(0, 0) rotate(0deg) } 33% { transform: translate(5px, -8px) rotate(15deg) } 66% { transform: translate(-4px, -3px) rotate(-10deg) } 100% { transform: translate(2px, 0) rotate(5deg) } }
@keyframes es-fall { 0% { transform: translateY(-20px) rotate(-5deg); opacity: 0 } 10% { opacity: 1 } 90% { opacity: 1 } 100% { transform: translateY(60px) rotate(25deg); opacity: 0 } }
@keyframes es-hop { 0% { transform: translate(0, 0) scale(1) } 25% { transform: translate(10px, -8px) scale(1.1) } 50% { transform: translate(20px, 0) scale(1) } 75% { transform: translate(10px, -5px) scale(.95) } 100% { transform: translate(0, 0) scale(1) } }

.scn-simile-of-nile {
  background:
    linear-gradient(180deg, #7a8a7a 0%, #9aaa8a 30%, #8a9a7a 60%, #5a6a4a 100%),
    radial-gradient(ellipse at 50% 0%, #aabb9a 0%, transparent 60%);
}
.scn-simile-of-nile .nile-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a9a8a 0%, #aabb9a 50%, #9aaa8a 100%);
  animation: ns-sky 20s ease-in-out infinite alternate;
}
.scn-simile-of-nile .nile-sun {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #eaeecc 0%, #caccaa 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(202, 204, 170, .3);
  animation: ns-sun 30s linear infinite;
}
.scn-simile-of-nile .nile-river {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #4a5a3a 0%, #6a7a5a 40%, #8a9a6a 100%);
  border-radius: 20% 30% 0 0 / 60% 80% 0 0;
  animation: ns-river 15s ease-in-out infinite alternate;
}
.scn-simile-of-nile .nile-bank-left {
  position: absolute; bottom: 20%; left: 0; width: 35%; height: 30%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 0 60% 0 0 / 0 40% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,.2);
}
.scn-simile-of-nile .nile-bank-right {
  position: absolute; bottom: 20%; right: 0; width: 40%; height: 25%;
  background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%);
  border-radius: 60% 0 0 0 / 40% 0 0 0;
  box-shadow: inset 10px 0 20px rgba(0,0,0,.2);
}
.scn-simile-of-nile .nile-slime-1 {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(0deg, rgba(60, 80, 40, .6) 0%, rgba(80, 100, 60, .3) 100%);
  border-radius: 50% 40% 60% 50%;
  filter: blur(4px);
  animation: ns-slime 12s ease-in-out infinite alternate;
}
.scn-simile-of-nile .nile-slime-2 {
  position: absolute; bottom: 10%; left: 20%; width: 70%; height: 8%;
  background: linear-gradient(0deg, rgba(80, 100, 50, .4) 0%, transparent 100%);
  border-radius: 40% 60% 50% 50%;
  filter: blur(6px);
  animation: ns-slime 18s ease-in-out infinite alternate-reverse;
}
.scn-simile-of-nile .nile-croc {
  position: absolute; bottom: 22%; left: 40%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: ns-croc 8s ease-in-out infinite;
}
.scn-simile-of-nile .nile-bird {
  position: absolute; top: 15%; left: 20%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #5a6a4a 0%, #4a5a3a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: ns-bird 6s ease-in-out infinite;
}
@keyframes ns-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ns-sun { 0% { transform: translateX(0) } 100% { transform: translateX(30px) } }
@keyframes ns-river { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes ns-slime { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(10px) scaleX(1.1) } 100% { transform: translateX(-10px) scaleX(.95) } }
@keyframes ns-croc { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ns-bird { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(15px) translateY(-5px) } 50% { transform: translateX(30px) translateY(0) } 75% { transform: translateX(15px) translateY(-3px) } 100% { transform: translateX(0) translateY(0) } }

.scn-knight-almost-choked {
  background:
    radial-gradient(ellipse at 50% 40%, #1a0a0a 0%, #0a0505 40%, #020101 100%),
    linear-gradient(180deg, #0a0202 0%, #050101 50%, #000000 100%);
}
.scn-knight-almost-choked .knight-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(10, 5, 5, .5) 100%);
  animation: kc-bg 6s ease-in-out infinite alternate;
}
.scn-knight-almost-choked .knight-fig {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #0a0a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,.8);
  animation: kc-knight 2s ease-in-out infinite;
}
.scn-knight-almost-choked .knight-shield {
  position: absolute; bottom: 25%; left: 36%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 50%, #1a1a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: kc-shield 3s ease-in-out infinite;
}
.scn-knight-almost-choked .knight-sword {
  position: absolute; bottom: 28%; left: 55%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 50%, #3a3a3a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 0 8px rgba(100, 100, 100, .3);
  animation: kc-sword 1.5s ease-in-out infinite;
}
.scn-knight-almost-choked .monster-1 {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 20px;
  background: radial-gradient(circle, #0a0a0a 0%, #050505 100%);
  border-radius: 40% 60% 50% 50%;
  filter: blur(1px);
  animation: kc-monster 3s ease-in-out infinite;
}
.scn-knight-almost-choked .monster-2 {
  position: absolute; bottom: 12%; right: 30%; width: 25px; height: 18px;
  background: radial-gradient(circle, #0a0505 0%, #020202 100%);
  border-radius: 60% 40% 40% 60%;
  filter: blur(1px);
  animation: kc-monster 3.5s ease-in-out infinite reverse;
}
.scn-knight-almost-choked .monster-3 {
  position: absolute; bottom: 20%; left: 20%; width: 20px; height: 15px;
  background: radial-gradient(circle, #0a0a05 0%, #030305 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: kc-monster 4s ease-in-out infinite;
}
.scn-knight-almost-choked .monster-4 {
  position: absolute; bottom: 18%; right: 20%; width: 22px; height: 16px;
  background: radial-gradient(circle, #050a0a 0%, #020305 100%);
  border-radius: 40% 50% 60% 50%;
  filter: blur(1px);
  animation: kc-monster 4.5s ease-in-out infinite reverse;
}
.scn-knight-almost-choked .stink-cloud {
  position: absolute; bottom: 30%; left: 40%; width: 100px; height: 60px;
  background: radial-gradient(ellipse, rgba(20, 15, 10, .6) 0%, transparent 100%);
  filter: blur(8px);
  animation: kc-stink 5s ease-in-out infinite;
}
@keyframes kc-bg { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes kc-knight { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-48%) translateY(-3px) rotate(2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-52%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes kc-shield { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-4px) rotate(-5deg) } 100% { transform: translateX(2px) rotate(3deg) } }
@keyframes kc-sword { 0% { transform: rotate(15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(15deg) } }
@keyframes kc-monster { 0% { transform: translate(0, 0) scale(1) } 25% { transform: translate(8px, -6px) scale(1.2) } 50% { transform: translate(16px, 0) scale(.9) } 75% { transform: translate(8px, -4px) scale(1.1) } 100% { transform: translate(0, 0) scale(1) } }
@keyframes kc-stink { 0% { transform: scale(1) translate(0, 0); opacity: .5 } 50% { transform: scale(1.3) translate(10px, -5px); opacity: .8 } 100% { transform: scale(.9) translate(-5px, 2px); opacity: .4 } }

.scn-simile-of-gentle-shepherd {
  background:
    linear-gradient(180deg, #4a3a5a 0%, #6a4a6a 20%, #8a6a7a 40%, #aa8a7a 60%, #7a6a5a 80%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #baaab5 0%, transparent 70%);
}
.scn-simile-of-gentle-shepherd .shep-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #6a4a6a 40%, #9a7a7a 100%);
  animation: sg-sky 25s ease-in-out infinite alternate;
}
.scn-simile-of-gentle-shepherd .shep-sunset {
  position: absolute; top: 5%; left: 20%; width: 120px; height: 80px;
  background: radial-gradient(ellipse, #caaa8a 0%, #ba8a7a 30%, transparent 100%);
  filter: blur(15px);
  animation: sg-sunset 30s ease-in-out infinite alternate;
}
.scn-simile-of-gentle-shepherd .shep-hill {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 60%, #4a3a2a 100%);
  border-radius: 70% 60% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
}
.scn-simile-of-gentle-shepherd .shep-fig {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sg-fig 5s ease-in-out infinite;
}
.scn-simile-of-gentle-shepherd .shep-staff {
  position: absolute; bottom: 30%; left: 42%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  transform-origin: bottom center;
  animation: sg-staff 5s ease-in-out infinite;
}
.scn-simile-of-gentle-shepherd .sheep-1 {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 18px;
  background: radial-gradient(ellipse, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: sg-sheep 7s ease-in-out infinite;
}
.scn-simile-of-gentle-shepherd .sheep-2 {
  position: absolute; bottom: 26%; right: 30%; width: 26px; height: 16px;
  background: radial-gradient(ellipse, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: sg-sheep 9s ease-in-out infinite reverse;
}
.scn-simile-of-gentle-shepherd .gnat-swarm-1 {
  position: absolute; top: 20%; left: 30%; width: 50px; height: 30px;
  background: radial-gradient(ellipse, rgba(60, 50, 40, .5) 0%, transparent 100%);
  filter: blur(3px);
  animation: sg-gnat 4s ease-in-out infinite;
}
.scn-simile-of-gentle-shepherd .gnat-swarm-2 {
  position: absolute; top: 28%; right: 25%; width: 40px; height: 25px;
  background: radial-gradient(ellipse, rgba(50, 40, 30, .4) 0%, transparent 100%);
  filter: blur(3px);
  animation: sg-gnat 6s ease-in-out infinite reverse;
}
@keyframes sg-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes sg-sunset { 0% { transform: translateX(0) scale(1); opacity: .6 } 50% { transform: translateX(15px) scale(1.1); opacity: .9 } 100% { transform: translateX(-10px) scale(.95); opacity: .7 } }
@keyframes sg-fig { 0% { transform: translateX(0) rotate(-1deg) } 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 sg-staff { 0% { transform: rotate(-8deg) } 25% { transform: rotate(-6deg) } 50% { transform: rotate(-10deg) } 75% { transform: rotate(-5deg) } 100% { transform: rotate(-8deg) } }
@keyframes sg-sheep { 0% { transform: translateX(0) } 50% { transform: translateX(12px) } 100% { transform: translateX(0) } }
@keyframes sg-gnat { 0% { transform: translate(0, 0) scale(1) } 33% { transform: translate(10px, -8px) scale(1.2) } 66% { transform: translate(-6px, 4px) scale(.9) } 100% { transform: translate(0, 0) scale(1) } }

/* archimago-conjures */
.scn-archimago-conjures { background: linear-gradient(180deg, #0a0a12 0%, #1a0a1a 30%, #0f0510 70%, #050108 100%), radial-gradient(ellipse at 50% 60%, #2a0a2a 0%, transparent 80%); }
.scn-archimago-conjures .bg     { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #0f0a1a 0%, transparent 70%); }
.scn-archimago-conjures .circle { position:absolute; bottom:20%; left:50%; width:120px; height:120px; transform:translateX(-50%); border:2px solid rgba(160,80,255,.3); border-radius:50%; box-shadow: 0 0 20px 10px rgba(160,80,255,.15); animation: ac-circle 6s ease-in-out infinite; }
.scn-archimago-conjures .figure { position:absolute; bottom:28%; left:50%; width:24px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #0a050a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 0 12px 2px rgba(160,80,255,.2); animation: ac-figure 4s ease-in-out infinite; }
.scn-archimago-conjures .staff  { position:absolute; bottom:30%; left:calc(50% + 16px); width:4px; height:50px; background: linear-gradient(180deg, #3a1a3a 0%, #1a0a1a 100%); transform-origin: bottom center; border-radius:2px; box-shadow: 0 0 8px 2px rgba(160,80,255,.3); animation: ac-staff 3s ease-in-out infinite; }
.scn-archimago-conjures .glow   { position:absolute; bottom:34%; left:50%; width:60px; height:60px; transform:translate(-50%, 0); background: radial-gradient(circle, rgba(200,100,255,.4) 0%, transparent 70%); border-radius:50%; animation: ac-glow 2s ease-in-out infinite alternate; }
.scn-archimago-conjures .rune-left  { position:absolute; bottom:26%; left:calc(50% - 50px); width:16px; height:16px; background: radial-gradient(circle, #b060ff 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 10px 3px #b060ff; animation: ac-rune1 5s ease-in-out infinite; }
.scn-archimago-conjures .rune-right { position:absolute; bottom:26%; left:calc(50% + 34px); width:16px; height:16px; background: radial-gradient(circle, #b060ff 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 10px 3px #b060ff; animation: ac-rune2 5s ease-in-out infinite reverse; }
.scn-archimago-conjures .smoke-a   { position:absolute; bottom:40%; left:30%; width:80px; height:40px; background: linear-gradient(180deg, rgba(60,0,60,.2) 0%, transparent 100%); border-radius:50%; filter: blur(10px); animation: ac-smoke1 12s linear infinite; }
.scn-archimago-conjures .smoke-b   { position:absolute; bottom:45%; right:20%; width:60px; height:30px; background: linear-gradient(180deg, rgba(80,20,80,.15) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: ac-smoke2 15s linear infinite reverse; }
@keyframes ac-circle  { 0% { transform:translateX(-50%) scale(1); opacity:.7 } 50% { transform:translateX(-50%) scale(1.08); opacity:1 } 100% { transform:translateX(-50%) scale(1); opacity:.7 } }
@keyframes ac-figure  { 0% { transform:translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform:translateX(-50%) translateY(-3px) rotate(2deg) } 50% { transform:translateX(-50%) translateY(0) rotate(-2deg) } 75% { transform:translateX(-50%) translateY(-3px) rotate(2deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0) } }
@keyframes ac-staff   { 0% { transform:rotate(-8deg); opacity:.6 } 50% { transform:rotate(8deg); opacity:1 } 100% { transform:rotate(-8deg); opacity:.6 } }
@keyframes ac-glow    { 0% { opacity:.3; transform:translate(-50%,0) scale(.9) } 100% { opacity:.8; transform:translate(-50%,0) scale(1.3) } }
@keyframes ac-rune1   { 0% { opacity:.2; transform:translateY(0) scale(.8) } 25% { opacity:1; transform:translateY(-10px) scale(1.2) } 50% { opacity:.3; transform:translateY(0) scale(1) } 75% { opacity:1; transform:translateY(-12px) scale(1.1) } 100% { opacity:.2; transform:translateY(0) scale(.8) } }
@keyframes ac-rune2   { 0% { opacity:.3; transform:translateY(-5px) scale(1) } 25% { opacity:1; transform:translateY(0) scale(1.3) } 50% { opacity:.4; transform:translateY(10px) scale(1.1) } 75% { opacity:1; transform:translateY(0) scale(1.2) } 100% { opacity:.3; transform:translateY(-5px) scale(1) } }
@keyframes ac-smoke1  { 0% { transform:translateX(0) translateY(0) scale(1); opacity:.5 } 50% { transform:translateX(30px) translateY(-20px) scale(1.4); opacity:.2 } 100% { transform:translateX(60px) translateY(-40px) scale(1.8); opacity:0 } }
@keyframes ac-smoke2  { 0% { transform:translateX(0) translateY(0) scale(1); opacity:.4 } 50% { transform:translateX(-40px) translateY(-30px) scale(1.3); opacity:.1 } 100% { transform:translateX(-80px) translateY(-60px) scale(1.6); opacity:0 } }

/* spirits-summoned */
.scn-spirits-summoned { background: linear-gradient(180deg, #04020a 0%, #0f0515 40%, #1a0820 70%, #0a0210 100%), radial-gradient(ellipse at 50% 80%, #1f0a2a 0%, transparent 60%); }
.scn-spirits-summoned .bg         { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, #1f0a1f 0%, transparent 80%); }
.scn-spirits-summoned .figure-mage { position:absolute; bottom:15%; left:50%; width:28px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0a1a 0%, #0a020a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 0 15px 3px rgba(120,40,180,.3); animation: ss-mage 5s ease-in-out infinite; }
.scn-spirits-summoned .spirit-1  { position:absolute; top:20%; left:20%; width:40px; height:60px; background: linear-gradient(180deg, rgba(140,60,200,.3) 0%, rgba(80,20,120,.2) 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(4px); box-shadow: 0 0 20px 8px rgba(140,60,200,.15); animation: ss-spirit1 8s ease-in-out infinite; }
.scn-spirits-summoned .spirit-2  { position:absolute; top:15%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, rgba(160,80,220,.25) 0%, rgba(100,30,160,.15) 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(3px); box-shadow: 0 0 20px 8px rgba(160,80,220,.12); animation: ss-spirit2 9s ease-in-out infinite; }
.scn-spirits-summoned .aura      { position:absolute; bottom:20%; left:50%; width:100px; height:100px; transform:translateX(-50%); background: radial-gradient(circle, rgba(140,40,200,.1) 0%, transparent 70%); border-radius:50%; animation: ss-aura 4s ease-in-out infinite alternate; }
.scn-spirits-summoned .mist-left { position:absolute; bottom:30%; left:0; width:50%; height:40px; background: linear-gradient(90deg, rgba(80,20,100,.2) 0%, transparent 100%); filter: blur(6px); animation: ss-mistL 10s linear infinite; }
.scn-spirits-summoned .mist-right{ position:absolute; bottom:25%; right:0; width:50%; height:30px; background: linear-gradient(270deg, rgba(100,20,120,.2) 0%, transparent 100%); filter: blur(5px); animation: ss-mistR 12s linear infinite; }
@keyframes ss-mage   { 0% { transform:translateX(-50%) translateY(0); opacity:.8 } 50% { transform:translateX(-50%) translateY(-5px) rotate(2deg); opacity:1 } 100% { transform:translateX(-50%) translateY(0); opacity:.8 } }
@keyframes ss-spirit1 { 0% { transform:translateY(0) scale(.9) rotate(-5deg); opacity:.3 } 25% { transform:translateY(-20px) scale(1.1) rotate(10deg); opacity:.7 } 50% { transform:translateY(-10px) scale(1) rotate(0); opacity:.5 } 75% { transform:translateY(-30px) scale(1.2) rotate(-15deg); opacity:.8 } 100% { transform:translateY(0) scale(.9) rotate(-5deg); opacity:.3 } }
@keyframes ss-spirit2 { 0% { transform:translateY(0) scale(1) rotate(10deg); opacity:.2 } 25% { transform:translateY(-30px) scale(1.2) rotate(-5deg); opacity:.6 } 50% { transform:translateY(-15px) scale(1.1) rotate(10deg); opacity:.4 } 75% { transform:translateY(-40px) scale(1.3) rotate(0); opacity:.7 } 100% { transform:translateY(0) scale(1) rotate(10deg); opacity:.2 } }
@keyframes ss-aura   { 0% { opacity:.2; transform:translateX(-50%) scale(.8) } 100% { opacity:.6; transform:translateX(-50%) scale(1.3) } }
@keyframes ss-mistL  { 0% { transform:translateX(0); opacity:.3 } 50% { transform:translateX(30px); opacity:.1 } 100% { transform:translateX(60px); opacity:0 } }
@keyframes ss-mistR  { 0% { transform:translateX(0); opacity:.3 } 50% { transform:translateX(-30px); opacity:.1 } 100% { transform:translateX(-60px); opacity:0 } }

/* spirit-goes-to-morpheus */
.scn-spirit-goes-to-morpheus { background: linear-gradient(180deg, #020a10 0%, #0a1520 30%, #0a0f1a 60%, #05080e 100%), radial-gradient(ellipse at 50% 0%, #0a1a2a 0%, transparent 80%); }
.scn-spirit-goes-to-morpheus .bg-deep    { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 10%, #0f1a2a 0%, transparent 70%); }
.scn-spirit-goes-to-morpheus .bg-water   { position:absolute; top:60%; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, #0a1525 40%, #050a15 100%); opacity:.6; animation: sgm-water 20s ease-in-out infinite alternate; }
.scn-spirit-goes-to-morpheus .rock-left  { position:absolute; bottom:20%; left:10%; width:80px; height:100px; background: linear-gradient(180deg, #0f1218 0%, #05070a 100%); border-radius:60% 40% 30% 20% / 50% 40% 30% 30%; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); animation: sgm-rock 15s ease-in-out infinite; }
.scn-spirit-goes-to-morpheus .rock-right { position:absolute; bottom:25%; right:8%; width:60px; height:80px; background: linear-gradient(180deg, #11151a 0%, #06080c 100%); border-radius:30% 60% 20% 40% / 40% 50% 30% 40%; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); animation: sgm-rock2 18s ease-in-out infinite reverse; }
.scn-spirit-goes-to-morpheus .spirit     { position:absolute; top:10%; left:50%; width:18px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(200,220,255,.6) 0%, rgba(140,180,255,.3) 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); box-shadow: 0 0 15px 5px rgba(140,180,255,.2); animation: sgm-spirit 12s linear infinite; }
.scn-spirit-goes-to-morpheus .bubble-1   { position:absolute; bottom:50%; left:30%; width:12px; height:12px; background: radial-gradient(circle, rgba(200,220,255,.3) 0%, transparent 70%); border-radius:50%; animation: sgm-bub1 7s ease-in-out infinite; }
.scn-spirit-goes-to-morpheus .bubble-2   { position:absolute; bottom:40%; left:55%; width:8px; height:8px; background: radial-gradient(circle, rgba(200,220,255,.2) 0%, transparent 70%); border-radius:50%; animation: sgm-bub2 9s ease-in-out infinite reverse; }
.scn-spirit-goes-to-morpheus .light-beam { position:absolute; top:0; left:45%; width:20px; height:100%; background: linear-gradient(180deg, rgba(140,180,255,.08) 0%, transparent 60%); filter: blur(6px); animation: sgm-beam 8s ease-in-out infinite alternate; }
@keyframes sgm-water { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes sgm-rock  { 0% { transform:translateY(0) } 50% { transform:translateY(3px) } 100% { transform:translateY(0) } }
@keyframes sgm-rock2 { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-2px) rotate(-2deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes sgm-spirit { 0% { top:10%; opacity:.7; transform:translateX(-50%) scale(1) } 25% { top:30%; opacity:1; transform:translateX(-50%) scale(1.1) rotate(5deg) } 50% { top:50%; opacity:.8; transform:translateX(-50%) scale(.95) rotate(-3deg) } 75% { top:70%; opacity:1; transform:translateX(-50%) scale(1.05) rotate(4deg) } 100% { top:90%; opacity:.5; transform:translateX(-50%) scale(.9) } }
@keyframes sgm-bub1  { 0% { transform:translateY(0) scale(.8); opacity:0 } 50% { transform:translateY(-30px) scale(1.2); opacity:.5 } 100% { transform:translateY(-60px) scale(1); opacity:0 } }
@keyframes sgm-bub2  { 0% { transform:translateY(0) scale(1); opacity:0 } 50% { transform:translateY(-40px) scale(1.4); opacity:.4 } 100% { transform:translateY(-80px) scale(1.2); opacity:0 } }
@keyframes sgm-beam  { 0% { opacity:.1 } 50% { opacity:.4 } 100% { opacity:.1 } }

/* house-of-sleep */
.scn-house-of-sleep { background: linear-gradient(180deg, #0a0a14 0%, #15102a 40%, #201830 70%, #0f0a1a 100%), radial-gradient(ellipse at 50% 50%, #2a2040 0%, transparent 70%); }
.scn-house-of-sleep .bg          { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #1a1530 0%, transparent 80%); }
.scn-house-of-sleep .gate-ivory  { position:absolute; bottom:10%; left:25%; width:70px; height:120px; background: linear-gradient(180deg, #e8e0d0 0%, #c8b898 100%); border-radius:12% 12% 4% 4%; box-shadow: inset 0 -6px 12px rgba(0,0,0,.3), 0 0 20px 4px rgba(200,200,180,.1); animation: hs-gate1 10s ease-in-out infinite; }
.scn-house-of-sleep .gate-silver { position:absolute; bottom:10%; right:25%; width:70px; height:120px; background: linear-gradient(180deg, #c0c0d0 0%, #9098b0 100%); border-radius:12% 12% 4% 4%; box-shadow: inset 0 -6px 12px rgba(0,0,0,.3), 0 0 20px 4px rgba(180,180,200,.1); animation: hs-gate2 12s ease-in-out infinite reverse; }
.scn-house-of-sleep .threshold   { position:absolute; bottom:8%; left:20%; right:20%; height:10px; background: linear-gradient(90deg, #3a3050 0%, #5a4a70 50%, #3a3050 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-house-of-sleep .figure-sleep { position:absolute; bottom:20%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2040 0%, #1a1028 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 10px 2px rgba(80,60,120,.2); animation: hs-sleep 6s ease-in-out infinite; }
.scn-house-of-sleep .dream-1     { position:absolute; top:30%; left:30%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,180,255,.3) 0%, transparent 70%); border-radius:50%; animation: hs-dream1 15s ease-in-out infinite; }
.scn-house-of-sleep .dream-2     { position:absolute; top:40%; right:25%; width:14px; height:14px; background: radial-gradient(circle, rgba(180,200,255,.25) 0%, transparent 70%); border-radius:50%; animation: hs-dream2 18s ease-in-out infinite reverse; }
.scn-house-of-sleep .dream-3     { position:absolute; top:25%; left:60%; width:10px; height:10px; background: radial-gradient(circle, rgba(220,200,255,.2) 0%, transparent 70%); border-radius:50%; animation: hs-dream3 20s ease-in-out infinite; }
@keyframes hs-gate1  { 0% { opacity:.85; transform:translateY(0) } 50% { opacity:1; transform:translateY(-5px) } 100% { opacity:.85; transform:translateY(0) } }
@keyframes hs-gate2  { 0% { opacity:.85; transform:translateY(0) } 50% { opacity:1; transform:translateY(-4px) } 100% { opacity:.85; transform:translateY(0) } }
@keyframes hs-sleep  { 0% { transform:translateX(-50%) translateY(0) scale(1); opacity:.7 } 50% { transform:translateX(-50%) translateY(-2px) scale(1.05); opacity:1 } 100% { transform:translateX(-50%) translateY(0) scale(1); opacity:.7 } }
@keyframes hs-dream1 { 0% { transform:translateY(0) scale(.8); opacity:.2 } 25% { transform:translateY(-20px) scale(1.2); opacity:.6 } 50% { transform:translateY(-10px) scale(1); opacity:.4 } 75% { transform:translateY(-30px) scale(1.3); opacity:.7 } 100% { transform:translateY(0) scale(.8); opacity:.2 } }
@keyframes hs-dream2 { 0% { transform:translateY(0) scale(1); opacity:.3 } 33% { transform:translateY(-15px) scale(1.1); opacity:.6 } 66% { transform:translateY(-25px) scale(1.2); opacity:.4 } 100% { transform:translateY(0) scale(1); opacity:.3 } }
@keyframes hs-dream3 { 0% { transform:translateX(0) translateY(0) scale(.9); opacity:.2 } 50% { transform:translateX(10px) translateY(-30px) scale(1.1); opacity:.5 } 100% { transform:translateX(20px) translateY(-60px) scale(1.2); opacity:0 } }

.scn-lucifera-speaks {
  background: linear-gradient(180deg, #c8a87c 0%, #b08a5e 40%, #7a5a3a 100%), radial-gradient(ellipse at 50% 0%, #e3c090 0%, transparent 60%);
}
.scn-lucifera-speaks .throne {
  position:absolute; bottom:20%; left:50%; width:120px; height:160px; transform:translateX(-50%);
  background: linear-gradient(180deg, #8a6038 0%, #5a3a1a 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: ls-throne 8s ease-in-out infinite;
}
.scn-lucifera-speaks .figure {
  position:absolute; bottom:32%; left:50%; width:50px; height:100px; transform:translateX(-50%);
  background: linear-gradient(180deg, #c8a070 0%, #a08050 60%, #705030 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3);
  animation: ls-figure 6s ease-in-out infinite;
}
.scn-lucifera-speaks .crown {
  position:absolute; bottom:68%; left:50%; width:30px; height:20px; transform:translateX(-50%);
  background: linear-gradient(135deg, #d4a54a 0%, #b8862a 50%, #8a6020 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0% 100%, 20% 0%, 40% 30%, 60% 0%, 80% 30%, 100% 0%, 100% 100%);
  animation: ls-crown 4s ease-in-out infinite;
}
.scn-lucifera-speaks .courtier-a {
  position:absolute; bottom:30%; left:25%; width:40px; height:80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  animation: ls-courtier-a 12s ease-in-out infinite;
}
.scn-lucifera-speaks .courtier-b {
  position:absolute; bottom:30%; right:25%; width:40px; height:80px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  animation: ls-courtier-b 14s ease-in-out infinite;
}
.scn-lucifera-speaks .window {
  position:absolute; top:10%; left:50%; width:80px; height:100px; transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #fff8e0 0%, #d4c090 40%, transparent 70%);
  border-radius: 20%;
  box-shadow: inset 0 0 30px #b09050;
  animation: ls-window 10s ease-in-out infinite;
}
.scn-lucifera-speaks .tapestry {
  position:absolute; top:20%; left:10%; width:60px; height:120px;
  background: linear-gradient(0deg, #5a3a3a 0%, #7a5a4a 50%, #5a3a3a 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: ls-tapestry 20s linear infinite;
}
@keyframes ls-throne { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px) skewY(0.5deg); } }
@keyframes ls-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(2deg); } 70% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ls-crown { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(3deg); } }
@keyframes ls-courtier-a { 0%,100% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-2px); } 75% { transform: translateX(-5px) translateY(1px); } }
@keyframes ls-courtier-b { 0%,100% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-4px) translateY(-2px); } 75% { transform: translateX(4px) translateY(1px); } }
@keyframes ls-window { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes ls-tapestry { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }

.scn-they-entertain-redcrosse {
  background: linear-gradient(180deg, #d4c0a0 0%, #c0a880 50%, #a08860 100%), radial-gradient(ellipse at 50% 0%, #f0d8b0 0%, transparent 70%);
}
.scn-they-entertain-redcrosse .hall-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 100%);
  border-radius: 30% 30% 0 0;
  animation: er-floor 15s ease-in-out infinite;
}
.scn-they-entertain-redcrosse .knight {
  position:absolute; bottom:30%; left:35%; width:40px; height:90px;
  background: linear-gradient(180deg, #a88868 0%, #806040 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: er-knight 8s ease-in-out infinite;
}
.scn-they-entertain-redcrosse .duessa {
  position:absolute; bottom:30%; left:55%; width:35px; height:85px;
  background: linear-gradient(180deg, #b89878 0%, #907050 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 30% 30%;
  animation: er-duessa 9s ease-in-out infinite;
}
.scn-they-entertain-redcrosse .banner {
  position:absolute; top:15%; left:50%; width:100px; height:60px; transform:translateX(-50%);
  background: linear-gradient(0deg, #8a6848 0%, #c0a070 50%, #8a6848 100%);
  border-radius: 10% 10% 50% 50% / 30% 30% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: er-banner 12s ease-in-out infinite;
}
.scn-they-entertain-redcrosse .chandelier {
  position:absolute; top:5%; left:50%; width:60px; height:40px; transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #d4b080 0%, #b09060 60%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 30px #b09060;
  animation: er-chandelier 6s ease-in-out infinite;
}
.scn-they-entertain-redcrosse .guest-a {
  position:absolute; bottom:30%; left:15%; width:30px; height:70px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  animation: er-guest-a 20s linear infinite;
}
.scn-they-entertain-redcrosse .guest-b {
  position:absolute; bottom:30%; right:15%; width:30px; height:70px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  animation: er-guest-b 18s linear infinite reverse;
}
@keyframes er-floor { 0%,100% { opacity:0.9; } 50% { opacity:1; transform: translateY(-2px); } }
@keyframes er-knight { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes er-duessa { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-4px) rotate(-1deg); } 70% { transform: translateX(4px) rotate(1deg); } }
@keyframes er-banner { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-6px) scale(1.02); } }
@keyframes er-chandelier { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg) scale(1.01); } }
@keyframes er-guest-a { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }
@keyframes er-guest-b { 0% { transform: translateX(0); } 100% { transform: translateX(20px); } }

.scn-lucifera-in-coach {
  background: linear-gradient(180deg, #5a80a0 0%, #406090 50%, #204070 100%), radial-gradient(ellipse at 50% 20%, #b0d0e0 0%, transparent 70%);
}
.scn-lucifera-in-coach .coach-body {
  position:absolute; bottom:25%; left:50%; width:140px; height:80px; transform:translateX(-50%);
  background: linear-gradient(180deg, #8a6848 0%, #604028 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: lic-coach 6s ease-in-out infinite;
}
.scn-lucifera-in-coach .wheel-a {
  position:absolute; bottom:15%; left:35%; width:50px; height:50px;
  border: 6px solid #705030; border-radius: 50%;
  background: radial-gradient(circle, #5a3a1a 0%, #3a2a0a 80%);
  animation: lic-wheel 4s linear infinite;
}
.scn-lucifera-in-coach .wheel-b {
  position:absolute; bottom:15%; right:35%; width:50px; height:50px;
  border: 6px solid #705030; border-radius: 50%;
  background: radial-gradient(circle, #5a3a1a 0%, #3a2a0a 80%);
  animation: lic-wheel 4s linear infinite reverse;
}
.scn-lucifera-in-coach .horses {
  position:absolute; bottom:28%; left:15%; width:100px; height:50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: scaleX(1.5);
  animation: lic-horses 3s ease-in-out infinite;
}
.scn-lucifera-in-coach .figure {
  position:absolute; bottom:45%; left:50%; width:30px; height:60px; transform:translateX(-50%);
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,0.3);
  animation: lic-figure 5s ease-in-out infinite;
}
.scn-lucifera-in-coach .sunburst {
  position:absolute; top:0; left:50%; width:200px; height:200px; transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #fff8c0 0%, #f0d080 30%, transparent 70%);
  border-radius: 50%;
  animation: lic-sun 15s linear infinite;
}
.scn-lucifera-in-coach .dust {
  position:absolute; bottom:10%; left:20%; width:40px; height:20px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: lic-dust 8s linear infinite;
}
@keyframes lic-coach { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-5px); } }
@keyframes lic-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes lic-horses { 0%,100% { transform: scaleX(1.5) translateX(0); } 25% { transform: scaleX(1.5) translateX(3px); } 75% { transform: scaleX(1.5) translateX(-3px); } }
@keyframes lic-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 30% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 70% { transform: translateX(-50%) translateY(1px) rotate(-1deg); } }
@keyframes lic-sun { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes lic-dust { 0% { transform: translateX(0) translateY(0); } 100% { transform: translateX(30px) translateY(-10px); } }

.scn-coach-described {
  background: linear-gradient(180deg, #4a6080 0%, #304060 50%, #1a2a40 100%), radial-gradient(ellipse at 50% 20%, #80a8c0 0%, transparent 80%);
}
.scn-coach-described .coach-frame {
  position:absolute; bottom:30%; left:50%; width:160px; height:100px; transform:translateX(-50%);
  background: linear-gradient(135deg, #b89860 0%, #8a7040 50%, #604020 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6), inset 0 0 20px #c8a860;
  animation: cd-frame 10s ease-in-out infinite;
}
.scn-coach-described .wing-a {
  position:absolute; bottom:55%; left:20%; width:60px; height:40px;
  background: linear-gradient(180deg, #c8a860 0%, #a08040 100%);
  border-radius: 80% 20% 50% 50% / 50% 30% 70% 50%;
  transform: rotate(-20deg);
  animation: cd-wing-a 4s ease-in-out infinite;
}
.scn-coach-described .wing-b {
  position:absolute; bottom:55%; right:20%; width:60px; height:40px;
  background: linear-gradient(180deg, #c8a860 0%, #a08040 100%);
  border-radius: 20% 80% 50% 50% / 30% 50% 50% 70%;
  transform: rotate(20deg);
  animation: cd-wing-b 4s ease-in-out infinite reverse;
}
.scn-coach-described .peacock-tail {
  position:absolute; bottom:40%; left:50%; width:120px; height:80px; transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #4a7a4a 0%, #3a5a3a 40%, transparent 70%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 0 20px #5a8a5a;
  animation: cd-tail 6s ease-in-out infinite;
}
.scn-coach-described .juno-throne {
  position:absolute; bottom:30%; left:50%; width:60px; height:70px; transform:translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: cd-throne 5s ease-in-out infinite;
}
.scn-coach-described .rays {
  position:absolute; top:10%; left:50%; width:200px; height:200px; transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #fff0a0 0%, #e8c860 20%, transparent 60%);
  border-radius: 50%;
  animation: cd-rays 20s linear infinite;
}
.scn-coach-described .gold-detail {
  position:absolute; top:30%; left:30%; width:20px; height:20px;
  background: radial-gradient(circle, #f0d060 0%, #b09030 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px #f0d060;
  animation: cd-gold 3s ease-in-out infinite;
}
@keyframes cd-frame { 0%,100% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-5px) scale(1.01); } }
@keyframes cd-wing-a { 0%,100% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-25deg) scaleY(1.1); } }
@keyframes cd-wing-b { 0%,100% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(1.1); } }
@keyframes cd-tail { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05) rotate(2deg); } }
@keyframes cd-throne { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes cd-rays { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes cd-gold { 0%,100% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.3); opacity:1; } }

.scn-forest-satyrs-rescue {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 40%, #F5DEB3 70%, #8FBC8F 100%),
              radial-gradient(ellipse at 20% 80%, #FFD700 0%, transparent 50%);
}
.scn-forest-satyrs-rescue .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 100%); animation: fsa-sky 10s ease-in-out infinite alternate; }
.scn-forest-satyrs-rescue .sun { position:absolute; top:10%; left:20%; width:80px; height:80px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, transparent 70%); border-radius:50%; animation: fsa-sun 8s ease-in-out infinite; }
.scn-forest-satyrs-rescue .trees-bg { position:absolute; bottom:40%; left:0; right:0; height:35%; background: linear-gradient(180deg, #2E8B57 0%, #228B22 50%, #006400 100%); border-radius: 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,40,0,0.5); animation: fsa-trees 12s ease-in-out infinite alternate; }
.scn-forest-satyrs-rescue .trees-fg { position:absolute; bottom:30%; left:-10%; right:-10%; height:50%; background: linear-gradient(180deg, #1E4D2B 0%, #0A2E1A 100%); clip-path: polygon(10% 0%, 30% 20%, 50% 0%, 70% 20%, 90% 0%, 100% 100%, 0% 100%); animation: fsa-trees-fg 15s ease-in-out infinite alternate; }
.scn-forest-satyrs-rescue .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8FBC8F 0%, #6B8E23 40%, #556B2F 100%); border-radius: 20% 20% 0 0; }
.scn-forest-satyrs-rescue .lion-claw { position:absolute; bottom:32%; left:55%; width:30px; height:40px; background: #D2B48C; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(20deg); box-shadow: 0 0 10px rgba(139,90,43,0.5); animation: fsa-claw 0.5s ease-in-out infinite alternate; }
.scn-forest-satyrs-rescue .una { position:absolute; bottom:28%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: fsa-una 4s ease-in-out infinite; }
.scn-forest-satyrs-rescue .satyr-1 { position:absolute; bottom:22%; left:10%; width:35px; height:45px; background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: fsa-satyr 3s ease-in-out infinite; transform-origin: center bottom; }
.scn-forest-satyrs-rescue .satyr-2 { position:absolute; bottom:20%; right:15%; width:35px; height:45px; background: linear-gradient(180deg, #A0522D 0%, #6B3A1F 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: fsa-satyr 3.5s ease-in-out infinite 0.5s; transform-origin: center bottom; }
@keyframes fsa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes fsa-sun { 0% { transform: scale(1) translate(0,0); opacity: 0.9; } 50% { transform: scale(1.05) translate(3px,-3px); opacity: 1; } 100% { transform: scale(1) translate(0,0); opacity: 0.85; } }
@keyframes fsa-trees { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fsa-trees-fg { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-3px) scale(1.01); } 100% { transform: translateX(0) scale(1); } }
@keyframes fsa-claw { 0% { transform: rotate(20deg) translateY(0); } 100% { transform: rotate(25deg) translateY(-3px); } }
@keyframes fsa-una { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(-8deg) translateY(-2px); } 50% { transform: rotate(-10deg) translateY(0); } 75% { transform: rotate(-12deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes fsa-satyr { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-forest-sylvanus {
  background: linear-gradient(180deg, #FFD700 0%, #FFA500 30%, #FF8C00 60%, #8B4513 100%),
              radial-gradient(ellipse at 80% 20%, #FFE4B5 0%, transparent 60%);
}
.scn-forest-sylvanus .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #FFD700 0%, #FFA500 100%); animation: fsv-sky 15s ease-in-out infinite alternate; }
.scn-forest-sylvanus .canopy { position:absolute; top:5%; left:0; right:0; height:40%; background: linear-gradient(180deg, #2E8B57 0%, #1E4D2B 100%); clip-path: polygon(0% 100%, 10% 20%, 20% 100%, 30% 30%, 40% 100%, 50% 10%, 60% 100%, 70% 40%, 80% 100%, 90% 15%, 100% 100%); animation: fsv-canopy 20s ease-in-out infinite alternate; }
.scn-forest-sylvanus .pool { position:absolute; bottom:25%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, #87CEEB 0%, #4682B4 50%, #1E90FF 100%); border-radius: 50% / 30% 30% 70% 70%; box-shadow: inset 0 10px 30px rgba(0,0,139,0.3); animation: fsv-pool 8s ease-in-out infinite; }
.scn-forest-sylvanus .sylvanus { position:absolute; bottom:15%; left:50%; width:40px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(139,69,19,0.5); animation: fsv-figure 5s ease-in-out infinite; }
.scn-forest-sylvanus .trunk { position:absolute; bottom:10%; left:15%; width:20px; height:60%; background: linear-gradient(180deg, #5C3317 0%, #3E1F0D 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 5px 10px rgba(0,0,0,0.3); }
.scn-forest-sylvanus .lightbeams { position:absolute; top:5%; left:10%; width:30%; height:80%; background: radial-gradient(ellipse at 50% 0%, rgba(255,215,0,0.3) 0%, transparent 70%); filter: blur(5px); animation: fsv-beams 12s ease-in-out infinite alternate; }
.scn-forest-sylvanus .flowers { position:absolute; bottom:25%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #FF69B4 0%, #C71585 50%, transparent 70%); border-radius: 50%; animation: fsv-flowers 6s ease-in-out infinite; }
@keyframes fsv-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fsv-canopy { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(1.05); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes fsv-pool { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-3px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes fsv-figure { 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 fsv-beams { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.5); } 100% { opacity: 0.3; transform: scaleX(1); } }
@keyframes fsv-flowers { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0deg); } }

.scn-forest-una-teaching {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #F5DEB3 60%, #D2B48C 100%),
              radial-gradient(ellipse at 70% 30%, #FFFACD 0%, transparent 40%);
}
.scn-forest-una-teaching .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%); animation: fut-sky 18s ease-in-out infinite alternate; }
.scn-forest-una-teaching .canopy { position:absolute; top:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2E8B57 0%, #1E4D2B 100%); clip-path: polygon(0% 100%, 5% 10%, 15% 100%, 20% 20%, 30% 100%, 40% 5%, 50% 100%, 60% 30%, 70% 100%, 80% 15%, 90% 100%, 100% 25%); animation: fut-canopy 25s ease-in-out infinite alternate; }
.scn-forest-una-teaching .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #D2B48C 0%, #C4A882 40%, #A0845C 100%); border-radius: 30% 30% 0 0; }
.scn-forest-una-teaching .una { position:absolute; bottom:25%; left:45%; width:25px; height:60px; background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: fut-una 6s ease-in-out infinite; }
.scn-forest-una-teaching .faun-1 { position:absolute; bottom:22%; left:25%; width:30px; height:40px; background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: fut-faun 8s ease-in-out infinite; }
.scn-forest-una-teaching .faun-2 { position:absolute; bottom:20%; right:25%; width:30px; height:40px; background: linear-gradient(180deg, #A0522D 0%, #6B3A1F 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: fut-faun 8s ease-in-out infinite 2s; }
.scn-forest-una-teaching .rays { position:absolute; top:5%; left:30%; width:60%; height:70%; background: radial-gradient(ellipse at 50% 0%, rgba(255,215,0,0.2) 0%, transparent 50%); filter: blur(10px); animation: fut-rays 15s ease-in-out infinite alternate; }
@keyframes fut-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fut-canopy { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes fut-una { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(3deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes fut-faun { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fut-rays { 0% { opacity: 0.2; transform: scaleX(1) scaleY(1); } 50% { opacity: 0.4; transform: scaleX(1.2) scaleY(1.1); } 100% { opacity: 0.2; transform: scaleX(1) scaleY(1); } }

.scn-forest-satyrane-arrival {
  background: linear-gradient(180deg, #87CEEB 0%, #B0C4DE 30%, #F5DEB3 60%, #C4A882 100%),
              radial-gradient(ellipse at 50% 100%, #F5DEB3 0%, transparent 70%);
}
.scn-forest-satyrane-arrival .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0C4DE 100%); animation: far-sky 20s ease-in-out infinite alternate; }
.scn-forest-satyrane-arrival .trees-distance { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2E8B57 0%, #1E4D2B 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,40,0,0.4); animation: far-trees 15s ease-in-out infinite alternate; }
.scn-forest-satyrane-arrival .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #D2B48C 0%, #A0845C 100%); border-radius: 30% 30% 0 0; }
.scn-forest-satyrane-arrival .knight { position:absolute; bottom:25%; left:35%; width:30px; height:65px; background: linear-gradient(180deg, #808080 0%, #4F4F4F 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 15px rgba(128,128,128,0.5); animation: far-knight 7s ease-in-out infinite; }
.scn-forest-satyrane-arrival .horse { position:absolute; bottom:22%; left:28%; width:45px; height:35px; background: linear-gradient(180deg, #A0522D 0%, #6B3A1F 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: scaleX(0.8); animation: far-horse 7s ease-in-out infinite; }
.scn-forest-satyrane-arrival .shield { position:absolute; bottom:35%; left:45%; width:12px; height:18px; background: linear-gradient(180deg, #B87333 0%, #8B5A2B 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-15deg); animation: far-shield 5s ease-in-out infinite alternate; }
.scn-forest-satyrane-arrival .border-trees { position:absolute; bottom:0; left:-10%; right:-10%; height:60%; background: linear-gradient(180deg, transparent 0%, #1E4D2B 50%, #0A2E1A 100%); clip-path: polygon(0% 100%, 5% 10%, 10% 100%, 15% 20%, 20% 100%, 25% 5%, 30% 100%, 35% 15%, 40% 100%, 45% 25%, 50% 100%, 55% 10%, 60% 100%, 65% 30%, 70% 100%, 75% 15%, 80% 100%, 85% 20%, 90% 100%, 95% 10%, 100% 100%); animation: far-border 12s ease-in-out infinite alternate; }
@keyframes far-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes far-trees { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes far-knight { 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 far-horse { 0% { transform: scaleX(0.8) translateX(0); } 25% { transform: scaleX(0.8) translateX(3px); } 50% { transform: scaleX(0.8) translateX(0); } 75% { transform: scaleX(0.8) translateX(-3px); } 100% { transform: scaleX(0.8) translateX(0); } }
@keyframes far-shield { 0% { transform: rotate(-15deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(-2px); } }
@keyframes far-border { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-5px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }

/* Scene: una-on-white-asse */
.scn-una-on-white-asse { background: linear-gradient(180deg, #6baed6 0%, #87ceeb 40%, #f5deb3 80%, #ffecd2 100%), radial-gradient(ellipse at 50% 100%, #ffdd99 0%, transparent 70%); }
.scn-una-on-white-asse .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 100%); animation: una-sky 15s ease-in-out infinite alternate; }
.scn-una-on-white-asse .sun { position:absolute; top:10%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #fff7d4 0%, #ffcc00 60%, transparent 100%); border-radius:50%; box-shadow:0 0 60px 20px rgba(255,204,0,.4); animation: una-sun 6s ease-in-out infinite alternate; }
.scn-una-on-white-asse .clouds { position:absolute; top:15%; left:0; width:100%; height:80px; background: radial-gradient(ellipse at 20% 50%, rgba(255,255,255,.6) 0%, transparent 50%), radial-gradient(ellipse at 80% 50%, rgba(255,255,255,.5) 0%, transparent 50%); filter: blur(8px); animation: una-clouds 30s linear infinite; }
.scn-una-on-white-asse .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #8fbc8f 0%, #6b8e23 40%, #556b2f 100%); border-radius: 60% 40% 0 0 / 20% 30% 0 0; }
.scn-una-on-white-asse .ass { position:absolute; bottom:20%; left:45%; width:80px; height:60px; background: linear-gradient(180deg, #f5f5f5 0%, #e0e0e0 100%); border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%; transform-origin: bottom center; animation: una-ass 4s ease-in-out infinite; }
.scn-una-on-white-asse .lady { position:absolute; bottom:35%; left:52%; width:24px; height:40px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: una-lady 4s ease-in-out infinite alternate; }
.scn-una-on-white-asse .veil { position:absolute; bottom:45%; left:50%; width:35px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.2) 100%); border-radius: 50% 50% 10% 10%; filter: blur(1px); transform: rotate(-10deg); animation: una-veil 5s ease-in-out infinite; }
.scn-una-on-white-asse .stole { position:absolute; bottom:30%; left:48%; width:30px; height:15px; background: #1a1a2e; border-radius: 20% 80% 50% 50%; transform: rotate(5deg); animation: una-stole 6s ease-in-out infinite; }
@keyframes una-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes una-sun { 0% { transform: scale(1); box-shadow:0 0 60px 20px rgba(255,204,0,.4) } 50% { transform: scale(1.1); box-shadow:0 0 80px 30px rgba(255,204,0,.6) } 100% { transform: scale(.95); box-shadow:0 0 50px 15px rgba(255,204,0,.3) } }
@keyframes una-clouds { 0% { transform: translateX(-100px) } 50% { transform: translateX(50px) } 100% { transform: translateX(200px) } }
@keyframes una-ass { 0%,100% { transform: translateX(0) translateY(0) } 25% { transform: translateX(2px) translateY(-1px) } 50% { transform: translateX(0) translateY(-2px) } 75% { transform: translateX(-2px) translateY(-1px) } }
@keyframes una-lady { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes una-veil { 0%,100% { transform: rotate(-10deg) skewX(0deg) } 50% { transform: rotate(-15deg) skewX(2deg) } }
@keyframes una-stole { 0%,100% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(8deg) translateX(3px) } }

/* Scene: dwarfe-and-storm */
.scn-dwarfe-and-storm { background: linear-gradient(180deg, #3c3f51 0%, #4e5260 30%, #6b7080 60%, #808080 100%), radial-gradient(ellipse at 50% 100%, #4a4d5e 0%, transparent 80%); }
.scn-dwarfe-and-storm .sky-storm { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2f313c 0%, #40444d 50%, #5a5f6b 100%); animation: dwa-sky 20s ease-in-out infinite alternate; }
.scn-dwarfe-and-storm .rain-fg { position:absolute; top:0; left:0; width:100%; height:100%; background: repeating-linear-gradient(transparent, transparent 4px, rgba(255,255,255,.15) 4px, rgba(255,255,255,.15) 6px), repeating-linear-gradient(60deg, transparent, transparent 5px, rgba(255,255,255,.1) 5px, rgba(255,255,255,.1) 7px); animation: dwa-rain-fg .8s linear infinite; }
.scn-dwarfe-and-storm .rain-bg { position:absolute; top:0; left:0; width:100%; height:100%; background: repeating-linear-gradient(transparent, transparent 6px, rgba(255,255,255,.08) 6px, rgba(255,255,255,.08) 8px); animation: dwa-rain-bg 1.2s linear infinite; }
.scn-dwarfe-and-storm .ground-mud { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #5c4e3a 0%, #3e3428 100%); border-radius: 30% 70% 0 0 / 10% 40% 0 0; }
.scn-dwarfe-and-storm .dwarf { position:absolute; bottom:15%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #2b2b3a 0%, #1a1a24 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dwa-dwarf 3s ease-in-out infinite; }
.scn-dwarfe-and-storm .bag { position:absolute; bottom:18%; left:43%; width:22px; height:18px; background: linear-gradient(180deg, #6b5b4e 0%, #4a3d33 100%); border-radius: 40% 40% 20% 20%; transform-origin: top center; animation: dwa-bag 3s ease-in-out infinite; }
.scn-dwarfe-and-storm .lightning { position:absolute; top:5%; left:60%; width:4px; height:60px; background: linear-gradient(180deg, #fff5e6 0%, #ffe0b2 50%, transparent 100%); filter: blur(2px); animation: dwa-lightning 4s ease-in-out infinite; box-shadow: 0 0 20px 5px rgba(255,240,200,.5); }
@keyframes dwa-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes dwa-rain-fg { 0% { transform: translateY(0) } 100% { transform: translateY(-10px) } }
@keyframes dwa-rain-bg { 0% { transform: translateY(10px) } 100% { transform: translateY(0) } }
@keyframes dwa-dwarf { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(0deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(-1deg) } }
@keyframes dwa-bag { 0%,100% { transform: rotate(5deg) translateX(0) } 25% { transform: rotate(8deg) translateX(2px) } 50% { transform: rotate(-3deg) translateX(-1px) } 75% { transform: rotate(6deg) translateX(1px) } }
@keyframes dwa-lightning { 0%,100% { opacity:0 } 10% { opacity:1 } 20% { opacity:0 } 30% { opacity:1 } 40% { opacity:0 } 50% { opacity:0 } 60% { opacity:1 } 70% { opacity:0 } 80% { opacity:0 } 90% { opacity:1 } }

/* Scene: shady-grove-entered */
.scn-shady-grove-entered { background: linear-gradient(180deg, #1a2a1a 0%, #2d442d 40%, #1f3b1f 100%), radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, transparent 70%); }
.scn-shady-grove-entered .bg-canopy { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2d4a2d 0%, #1a3a1a 100%); animation: gro-canopy 20s ease-in-out infinite alternate; }
.scn-shady-grove-entered .light-beams { position:absolute; top:0; left:10%; width:80%; height:100%; background: repeating-linear-gradient(45deg, transparent, transparent 40px, rgba(255,255,200,.08) 40px, rgba(255,255,200,.08) 80px); animation: gro-beams 15s ease-in-out infinite alternate; }
.scn-shady-grove-entered .branch-left { position:absolute; top:8%; left:-10%; width:50%; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 0 0; transform: rotate(30deg); animation: gro-branch 10s ease-in-out infinite alternate; }
.scn-shady-grove-entered .branch-right { position:absolute; top:5%; right:-10%; width:50%; height:18px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 0 0; transform: rotate(-20deg); animation: gro-branch 12s ease-in-out infinite alternate-reverse; }
.scn-shady-grove-entered .leaves-cluster { position:absolute; top:0; left:20%; width:60%; height:40%; background: radial-gradient(ellipse at 30% 40%, #3a6a3a 0%, #2a4a2a 40%, transparent 70%), radial-gradient(ellipse at 70% 30%, #4a7a4a 0%, #2a5a2a 40%, transparent 70%); filter: blur(3px); animation: gro-leaves 8s ease-in-out infinite alternate; }
.scn-shady-grove-entered .ground-path { position:absolute; bottom:0; left:20%; width:60%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 20% 20% / 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-shady-grove-entered .moss { position:absolute; bottom:20%; left:15%; width:20%; height:10%; background: radial-gradient(ellipse, #6a8a5a 0%, transparent 80%); filter: blur(2px); animation: gro-moss 20s ease-in-out infinite; }
@keyframes gro-canopy { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes gro-beams { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(3deg) scale(1.05) } 100% { transform: rotate(-2deg) scale(.95) } }
@keyframes gro-branch { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(32deg) translateY(-2px) } 100% { transform: rotate(28deg) translateY(0) } }
@keyframes gro-leaves { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(2px) scale(.98) } }
@keyframes gro-moss { 0%,100% { opacity:.5 } 50% { opacity:.8 } }

/* Scene: catalogue-of-trees */
.scn-catalogue-of-trees { background: linear-gradient(180deg, #4a3a2a 0%, #6b5a3a 30%, #8b7a5a 60%, #a09070 100%), radial-gradient(ellipse at 50% 100%, #7a6a4a 0%, transparent 80%); }
.scn-catalogue-of-trees .bg-forest { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #5a4a2a 100%); animation: cat-bg 25s ease-in-out infinite alternate; }
.scn-catalogue-of-trees .ground-humus { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; }
.scn-catalogue-of-trees .tree-pine { position:absolute; bottom:30%; left:10%; width:30px; height:100px; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: cat-pine 5s ease-in-out infinite; }
.scn-catalogue-of-trees .tree-oak { position:absolute; bottom:25%; left:30%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 30%, #3a5a2a 0%, #2a4a1a 60%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); animation: cat-oak 6s ease-in-out infinite alternate; }
.scn-catalogue-of-trees .tree-cedar { position:absolute; bottom:32%; left:55%; width:25px; height:90px; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%); clip-path: polygon(50% 0%, 20% 100%, 80% 100%); animation: cat-cedar 7s ease-in-out infinite alternate-reverse; }
.scn-catalogue-of-trees .tree-cypress { position:absolute; bottom:28%; left:75%; width:20px; height:110px; background: linear-gradient(180deg, #2a3a1a 0%, #0a1a0a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: cat-cypress 8s ease-in-out infinite; }
.scn-catalogue-of-trees .laurel-branch { position:absolute; bottom:40%; left:45%; width:40px; height:15px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-20deg); animation: cat-laurel 10s ease-in-out infinite alternate; }
.scn-catalogue-of-trees .fireflies { position:absolute; top:30%; left:20%; width:6px; height:6px; background: radial-gradient(circle, #ffd700 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,215,0,.5); animation: cat-fireflies 4s ease-in-out infinite; }
@keyframes cat-bg { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes cat-pine { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes cat-oak { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.02) translateX(2px) } 100% { transform: scale(.98) translateX(-1px) } }
@keyframes cat-cedar { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(2px) rotate(-1deg) } }
@keyframes cat-cypress { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(.95) } }
@keyframes cat-laurel { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-25deg) translateX(3px) } 100% { transform: rotate(-15deg) translateX(-2px) } }
@keyframes cat-fireflies { 0%,100% { opacity:.2; transform: translate(0,0) } 25% { opacity:.8; transform: translate(10px,-5px) } 50% { opacity:.3; transform: translate(5px,10px) } 75% { opacity:1; transform: translate(-8px,-3px) } }

/* Scene 1: uma-wanders-alone – overcast, sad, wide horizon */
.scn-una-wanders-alone {
  background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 30%, #3a4a4a 70%, #2a3a3a 100%),
              radial-gradient(ellipse at 50% 100%, #3a4a4a 0%, transparent 70%);
}
.scn-una-wanders-alone .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 50%, #4a5a5a 100%);
  animation: ul-sky 12s ease-in-out infinite alternate;
}
.scn-una-wanders-alone .ground-waste {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: ul-ground 18s ease-in-out infinite alternate;
}
.scn-una-wanders-alone .hills-distant {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a3a 100%);
  border-radius: 60% 40% 0 0 / 90% 70% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.3);
  animation: ul-hills 25s ease-in-out infinite alternate;
}
.scn-una-wanders-alone .tree-bare {
  position: absolute; bottom: 30%; left: 20%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: ul-tree 6s ease-in-out infinite;
}
.scn-una-wanders-alone .tree-bare::after {
  content: ''; position: absolute; top: 0; left: 50%; width: 2px; height: 40px;
  background: #2a1a0a; transform: translateX(-50%);
}
.scn-una-wanders-alone .figure-una-walk {
  position: absolute; bottom: 26%; left: 40%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ul-walk 4s ease-in-out infinite;
}
.scn-una-wanders-alone .mist-drift-1 {
  position: absolute; top: 20%; left: 0; width: 120px; height: 20px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,210,210,0.4) 50%, transparent 100%);
  filter: blur(8px);
  animation: ul-mist-a 35s linear infinite;
}
.scn-una-wanders-alone .mist-drift-2 {
  position: absolute; top: 35%; right: 0; width: 80px; height: 15px;
  background: linear-gradient(90deg, transparent 0%, rgba(180,190,190,0.3) 50%, transparent 100%);
  filter: blur(6px);
  animation: ul-mist-b 40s linear infinite;
}

@keyframes ul-sky { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.6; } }
@keyframes ul-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ul-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes ul-tree { 0%,100% { transform: rotate(-2deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(2deg); } }
@keyframes ul-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(0deg); } }
@keyframes ul-mist-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes ul-mist-b { 0% { transform: translateX(80vw); } 100% { transform: translateX(-80vw); } }

/* Scene 2: una-rests-and-reveals-her-face – sunlit, calm, dappled shade */
.scn-una-rests-and-reveals-her-face {
  background: linear-gradient(180deg, #7aa8d0 0%, #b8d8e8 40%, #e8d8a8 70%, #f0e0c0 100%),
              radial-gradient(ellipse at 50% 0%, #d8e8f0 0%, transparent 50%);
}
.scn-una-rests-and-reveals-her-face .sky-sunlit {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8d8f0 0%, #e8f0c0 100%);
  animation: ur-sky 8s ease-in-out infinite alternate;
}
.scn-una-rests-and-reveals-her-face .canopy-shade {
  position: absolute; top: 0; left: 10%; right: 10%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(40,80,40,0.5) 0%, transparent 80%);
  filter: blur(10px);
  animation: ur-canopy 10s ease-in-out infinite alternate;
}
.scn-una-rests-and-reveals-her-face .seat-rock {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-una-rests-and-reveals-her-face .figure-seated {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a7a 0%, #4a3a5a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ur-seated 6s ease-in-out infinite alternate;
}
.scn-una-rests-and-reveals-her-face .face-radiance {
  position: absolute; bottom: 46%; left: 50%; width: 18px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0e8c0 0%, #e0d0a0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #f0d8a0, 0 0 60px 20px rgba(240,216,160,0.5);
  animation: ur-glow 3s ease-in-out infinite alternate;
}
.scn-una-rests-and-reveals-her-face .veil-draped {
  position: absolute; bottom: 42%; left: 46%; width: 30px; height: 12px;
  background: linear-gradient(180deg, rgba(220,200,180,0.8) 0%, rgba(200,180,160,0.3) 100%);
  border-radius: 20% 20% 50% 50%;
  transform-origin: top left;
  animation: ur-veil 5s ease-in-out infinite alternate;
}
.scn-una-rests-and-reveals-her-face .sunrays {
  position: absolute; top: 10%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,0.3) 0%, transparent 70%);
  filter: blur(15px);
  animation: ur-rays 12s ease-in-out infinite alternate;
}

@keyframes ur-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ur-canopy { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes ur-seated { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } }
@keyframes ur-glow { 0% { box-shadow: 0 0 20px 6px #f0d8a0, 0 0 40px 12px rgba(240,216,160,0.4); opacity: 0.9; } 50% { box-shadow: 0 0 40px 14px #f0e0b0, 0 0 80px 24px rgba(240,224,176,0.6); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #f0d8a0, 0 0 50px 16px rgba(240,216,160,0.45); opacity: 0.95; } }
@keyframes ur-veil { 0% { transform: rotate(5deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(3deg); } }
@keyframes ur-rays { 0% { transform: scale(0.9) rotate(0deg); } 50% { transform: scale(1.1) rotate(3deg); } 100% { transform: scale(0.95) rotate(-2deg); } }

/* Scene 3: lion-appears – tense, sunlit, harsh contrast */
.scn-lion-appears {
  background: linear-gradient(180deg, #8a9a50 0%, #5a7a30 40%, #3a5a20 70%, #1a3a10 100%),
              radial-gradient(ellipse at 50% 100%, #4a6a20 0%, transparent 60%);
}
.scn-lion-appears .forest-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #6a8a40 0%, #3a5a20 100%);
  animation: la-bg 8s ease-in-out infinite alternate;
}
.scn-lion-appears .trees-back {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #2a4a1a 0px, #1a3a0a 10px, #2a4a1a 20px);
  opacity: 0.6;
  animation: la-trees 15s linear infinite;
}
.scn-lion-appears .lion-body-leap {
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #8a6a3a 0%, #5a3a1a 50%, #3a2a0a 100%);
  border-radius: 40% 60% 40% 50% / 60% 40% 50% 40%;
  transform-origin: center bottom;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
  animation: la-leap 2s ease-in-out infinite;
}
.scn-lion-appears .lion-head-mouth {
  position: absolute; bottom: 45%; left: 50%; width: 40px; height: 30px;
  transform: translate(-50%, 0);
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  box-shadow: inset 0 -8px 0 #2a1a0a, 0 0 10px rgba(0,0,0,0.5);
  animation: la-mouth 0.8s ease-in-out infinite alternate;
}
.scn-lion-appears .lion-paws {
  position: absolute; bottom: 15%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 50% 50% / 20% 20% 40% 40%;
  animation: la-paws 2s ease-in-out infinite;
}
.scn-lion-appears .una-figure-small {
  position: absolute; bottom: 30%; left: 70%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: la-una 2s ease-in-out infinite alternate;
}
.scn-lion-appears .dust-particles {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,180,120,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: la-dust 1.5s ease-in-out infinite alternate;
}

@keyframes la-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes la-trees { 0% { background-position: 0 0; } 100% { background-position: -100px 0; } }
@keyframes la-leap { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 25% { transform: translateX(20px) translateY(-10px) rotate(0deg); } 50% { transform: translateX(40px) translateY(-20px) rotate(5deg); } 75% { transform: translateX(60px) translateY(-10px) rotate(0deg); } 100% { transform: translateX(80px) translateY(0) rotate(-5deg); } }
@keyframes la-mouth { 0% { transform: translate(-50%, 0) scaleY(1); } 50% { transform: translate(-50%, 0) scaleY(1.3); } 100% { transform: translate(-50%, 0) scaleY(1); } }
@keyframes la-paws { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-10deg); } }
@keyframes la-una { 0% { transform: scale(1); opacity: 0.8; } 100% { transform: scale(0.9); opacity: 0.5; } }
@keyframes la-dust { 0% { transform: scale(0.8); opacity: 0.3; } 100% { transform: scale(1.2); opacity: 0.6; } }

/* Scene 4: lion-kisses-her-feet – calm, sunlit, intimate */
.scn-lion-kisses-her-feet {
  background: linear-gradient(180deg, #b8d8a0 0%, #a0c888 30%, #78a868 60%, #588848 100%),
              radial-gradient(ellipse at 50% 0%, #c8e8b0 0%, transparent 40%);
}
.scn-lion-kisses-her-feet .sky-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8e0b0 0%, #a0c888 100%);
  animation: lk-sky 10s ease-in-out infinite alternate;
}
.scn-lion-kisses-her-feet .grass-meadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #78a868 0%, #588848 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2);
  animation: lk-grass 12s ease-in-out infinite alternate;
}
.scn-lion-kisses-her-feet .figure-una-seated {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #5a4a6a 0%, #3a2a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lk-figure 6s ease-in-out infinite alternate;
}
.scn-lion-kisses-her-feet .lion-bowing {
  position: absolute; bottom: 15%; left: 35%; width: 100px; height: 70px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 40% 30% 50% 40% / 50% 40% 60% 50%;
  transform-origin: bottom center;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: lk-bow 8s ease-in-out infinite alternate;
}
.scn-lion-kisses-her-feet .lion-head-kiss {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lk-head 6s ease-in-out infinite alternate;
}
.scn-lion-kisses-her-feet .feet-una {
  position: absolute; bottom: 22%; left: 38%; width: 10px; height: 6px;
  background: linear-gradient(180deg, #c8a888 0%, #a88868 100%);
  border-radius: 20% 20% 40% 40%;
  animation: lk-feet 4s ease-in-out infinite alternate;
}
.scn-lion-kisses-her-feet .flowers-scattered {
  position: absolute; bottom: 12%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle at 30% 40%, #d8a0a8 0%, transparent 30%),
              radial-gradient(circle at 60% 80%, #b87878 0%, transparent 30%),
              radial-gradient(circle at 80% 20%, #a0c060 0%, transparent 30%);
  filter: blur(2px);
  animation: lk-flowers 15s ease-in-out infinite alternate;
}

@keyframes lk-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lk-grass { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lk-figure { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes lk-bow { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(0deg) scale(1.05); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes lk-head { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes lk-feet { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lk-flowers { 0% { transform: scale(0.9); opacity: 0.7; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }

.scn-notes-limbo-lake {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4e 40%, #3a3a5a 100%),
              radial-gradient(ellipse at 50% 90%, #2a2a4a 0%, transparent 70%);
}
.scn-notes-limbo-lake .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0e0e2a 0%, #1a1a3a 50%, #2a2a4e 100%);
  animation: nll-sky 14s ease-in-out infinite alternate;
}
.scn-notes-limbo-lake .mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
  animation: nll-mountains 20s ease-in-out infinite alternate;
}
.scn-notes-limbo-lake .lake {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a2a3a 0%, #2a3a4a 50%, #3a4a5a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: nll-lake 8s ease-in-out infinite alternate;
}
.scn-notes-limbo-lake .boat {
  position: absolute; bottom: 28%; left: 30%; width: 24px; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(-2deg);
  animation: nll-boat 6s ease-in-out infinite;
}
.scn-notes-limbo-lake .figure {
  position: absolute; bottom: 22%; left: 55%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: nll-figure 10s ease-in-out infinite alternate;
}
.scn-notes-limbo-lake .mist {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 15%;
  background: linear-gradient(90deg, transparent, rgba(200,200,220,.12), transparent);
  filter: blur(10px);
  animation: nll-mist 30s linear infinite;
}
@keyframes nll-sky { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:.8; transform: scaleY(1); } }
@keyframes nll-mountains { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes nll-lake { 0% { background-position: 0 0; } 50% { background-position: 4px 2px; } 100% { background-position: 0 0; } }
@keyframes nll-boat { 0%,100% { transform: translate(0, 0) rotate(-2deg); } 25% { transform: translate(4px, -1px) rotate(1deg); } 50% { transform: translate(8px, 0) rotate(-1deg); } 75% { transform: translate(4px, -1px) rotate(0); } }
@keyframes nll-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes nll-mist { 0% { transform: translateX(-10%) scaleX(1); } 50% { transform: translateX(20%) scaleX(1.1); } 100% { transform: translateX(-10%) scaleX(1); } }

.scn-notes-faire-in-place {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #2a1a1a 100%),
              radial-gradient(circle at 50% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-notes-faire-in-place .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, #2a2a3a 0px, #2a2a3a 4px, #1a1a2a 4px, #1a1a2a 8px);
  opacity: .3;
  animation: nfi-wall 15s ease-in-out infinite alternate;
}
.scn-notes-faire-in-place .trunk {
  position: absolute; bottom: 10%; left: 50%; width: 20px; height: 60%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 40%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 12px rgba(0,0,0,.5);
  animation: nfi-trunk 8s ease-in-out infinite alternate;
}
.scn-notes-faire-in-place .branch-a {
  position: absolute; bottom: 55%; left: 42%; width: 40px; height: 6px;
  background: linear-gradient(0deg, #4a3a2a 0%, #5a4a3a 100%);
  border-radius: 40% 20% 0 0;
  transform-origin: right center;
  animation: nfi-branch 12s ease-in-out infinite alternate;
}
.scn-notes-faire-in-place .branch-b {
  position: absolute; bottom: 65%; left: 54%; width: 30px; height: 5px;
  background: linear-gradient(0deg, #4a3a2a 0%, #5a4a3a 100%);
  border-radius: 20% 40% 0 0;
  transform-origin: left center;
  animation: nfi-branch 14s ease-in-out infinite alternate-reverse;
}
.scn-notes-faire-in-place .leaves {
  position: absolute; bottom: 50%; left: 35%; width: 80px; height: 40px;
  background: radial-gradient(circle at 30% 40%, #3a5a3a 0%, #1a2a1a 80%);
  border-radius: 40% 60% 50% 50%;
  filter: blur(4px);
  animation: nfi-leaves 6s ease-in-out infinite alternate;
}
.scn-notes-faire-in-place .figure {
  position: absolute; bottom: 8%; left: 40%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: nfi-figure 9s ease-in-out infinite alternate;
}
.scn-notes-faire-in-place .lantern {
  position: absolute; bottom: 38%; left: 34%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d0a060 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #c09050, 0 0 32px 8px rgba(192,144,80,.4);
  animation: nfi-lantern 4s ease-in-out infinite alternate;
}
@keyframes nfi-wall { 0% { opacity: .2; } 50% { opacity: .35; } 100% { opacity: .2; } }
@keyframes nfi-trunk { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.01) rotate(.5deg); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes nfi-branch { 0% { transform: rotate(-3deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-3deg); } }
@keyframes nfi-leaves { 0% { transform: translate(0, 0) scaleX(1); } 50% { transform: translate(-2px, -1px) scaleX(1.05); } 100% { transform: translate(0, 0) scaleX(1); } }
@keyframes nfi-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes nfi-lantern { 0% { opacity: .7; box-shadow: 0 0 12px 3px #c09050; } 50% { opacity: 1; box-shadow: 0 0 24px 6px #e0b070, 0 0 40px 10px rgba(224,176,112,.5); } 100% { opacity: .8; box-shadow: 0 0 16px 4px #c09050; } }

.scn-notes-chaunges-cheare {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a3a4a 100%),
              radial-gradient(circle at 50% 20%, #4a4a5a 0%, transparent 60%);
}
.scn-notes-chaunges-cheare .bg-stone {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 6px, #1a1a2a 6px, #1a1a2a 12px);
  opacity: .4;
  animation: ncc-stone 20s ease-in-out infinite alternate;
}
.scn-notes-chaunges-cheare .well-rim {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: ncc-rim 6s ease-in-out infinite;
}
.scn-notes-chaunges-cheare .water {
  position: absolute; bottom: 18%; left: 50%; width: 64px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a4a4a 0%, #1a3a3a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: ncc-water 4s ease-in-out infinite alternate;
}
.scn-notes-chaunges-cheare .bucket {
  position: absolute; bottom: 32%; left: 48%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 6px rgba(0,0,0,.5);
  transform-origin: top center;
  animation: ncc-bucket 5s ease-in-out infinite;
}
.scn-notes-chaunges-cheare .figure {
  position: absolute; bottom: 6%; left: 40%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: ncc-figure 8s ease-in-out infinite alternate;
}
.scn-notes-chaunges-cheare .reflection {
  position: absolute; bottom: 14%; left: 50%; width: 50px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(200,230,240,.15) 0%, transparent 70%);
  filter: blur(3px);
  animation: ncc-reflection 9s ease-in-out infinite alternate;
}
.scn-notes-chaunges-cheare .glow {
  position: absolute; bottom: 38%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #70b0c0 0%, #4090a0 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #60a0b0, 0 0 40px 12px rgba(96,160,176,.3);
  animation: ncc-glow 7s ease-in-out infinite alternate;
}
@keyframes ncc-stone { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .3; } }
@keyframes ncc-rim { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes ncc-water { 0% { opacity: .6; transform: translateX(-50%) scaleY(1); } 50% { opacity: .9; transform: translateX(-50%) scaleY(1.05); } 100% { opacity: .7; transform: translateX(-50%) scaleY(1); } }
@keyframes ncc-bucket { 0% { transform: rotate(0); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(0); } }
@keyframes ncc-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ncc-reflection { 0% { opacity: .3; transform: translateX(-50%) scaleX(1); } 50% { opacity: .6; transform: translateX(-50%) scaleX(1.08); } 100% { opacity: .3; transform: translateX(-50%) scaleX(1); } }
@keyframes ncc-glow { 0% { opacity: .5; box-shadow: 0 0 12px 4px #60a0b0; } 50% { opacity: .9; box-shadow: 0 0 28px 8px #80c0d0; } 100% { opacity: .6; box-shadow: 0 0 16px 5px #60a0b0; } }

.scn-notes-passed-feare {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 40%, #2a1a1a 100%),
              radial-gradient(circle at 50% 80%, #3a2a2a 0%, transparent 60%);
}
.scn-notes-passed-feare .vault {
  position: absolute; top: 0; left: 10%; right: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 80%);
  border-radius: 30% 30% 0 0;
  animation: npf-vault 12s ease-in-out infinite alternate;
}
.scn-notes-passed-feare .floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(0deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.7);
}
.scn-notes-passed-feare .knight {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: npf-knight 8s ease-in-out infinite alternate;
}
.scn-notes-passed-feare .lady {
  position: absolute; bottom: 14%; right: 32%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: npf-lady 10s ease-in-out infinite alternate;
}
.scn-notes-passed-feare .light {
  position: absolute; bottom: 40%; left: 45%; width: 14px; height: 14px;
  background: radial-gradient(circle, #c0a070 0%, #806040 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #a08060, 0 0 48px 16px rgba(160,128,96,.3);
  animation: npf-light 5s ease-in-out infinite alternate;
}
.scn-notes-passed-feare .chalice {
  position: absolute; bottom: 24%; left: 48%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30%;
  transform: translateX(-50%);
  animation: npf-chalice 6s ease-in-out infinite;
}
@keyframes npf-vault { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes npf-knight { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes npf-lady { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes npf-light { 0% { opacity: .6; box-shadow: 0 0 16px 4px #a08060; } 50% { opacity: 1; box-shadow: 0 0 32px 10px #d0b090, 0 0 48px 16px rgba(208,176,144,.3); } 100% { opacity: .7; box-shadow: 0 0 20px 6px #a08060; } }
@keyframes npf-chalice { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } }

.scn-dragon-writhes-in-pain {
  background: linear-gradient(180deg, #b87c4a 0%, #e0b060 30%, #f0d080 60%, #c89850 100%),
              radial-gradient(ellipse at 50% 20%, #ffdca0 0%, transparent 50%);
}
.scn-dragon-writhes-in-pain .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0dca0 0%, transparent 100%);
  animation: dw-sky 12s ease-in-out infinite alternate;
}
.scn-dragon-writhes-in-pain .sun {
  position: absolute; top: 8%; left: 50%; width: 40px; height: 40px;
  margin-left: -20px;
  background: radial-gradient(circle, #ffedc0 0%, #e0b060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #e0b060;
  animation: dw-sun 6s ease-in-out infinite alternate;
}
.scn-dragon-writhes-in-pain .clouds {
  position: absolute; top: 12%; left: 0; right: 0; height: 15%;
  background: radial-gradient(ellipse at 20% 50%, rgba(255,240,200,0.4) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 30%, rgba(255,240,200,0.3) 0%, transparent 50%);
  filter: blur(8px);
  animation: dw-clouds 40s linear infinite;
}
.scn-dragon-writhes-in-pain .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: dw-hills 18s ease-in-out infinite alternate;
}
.scn-dragon-writhes-in-pain .trees {
  position: absolute; bottom: 22%; left: 10%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #3a4a2a 0%, #1a2a1a 100%);
  clip-path: polygon(10% 100%, 30% 20%, 50% 100%, 70% 10%, 90% 100%);
  animation: dw-trees 8s ease-in-out infinite alternate;
}
.scn-dragon-writhes-in-pain .dragon-body {
  position: absolute; bottom: 18%; left: 30%; width: 160px; height: 90px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 20% 30% 50% / 60% 40% 60% 30%;
  transform-origin: center bottom;
  animation: dw-body 5s ease-in-out infinite alternate;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
}
.scn-dragon-writhes-in-pain .dragon-tail {
  position: absolute; bottom: 10%; left: 60%; width: 120px; height: 20px;
  background: linear-gradient(90deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 0 50% 50% 0;
  transform-origin: left center;
  animation: dw-tail 3s ease-in-out infinite;
}
@keyframes dw-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes dw-sun { 0% { transform: scale(0.9); box-shadow: 0 0 40px 20px #c89850 } 50% { transform: scale(1.1); box-shadow: 0 0 80px 40px #e0b060 } 100% { transform: scale(0.95); box-shadow: 0 0 50px 25px #d0a058 } }
@keyframes dw-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(200px) } }
@keyframes dw-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes dw-trees { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes dw-body { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(8deg) scaleX(1.1) } 100% { transform: rotate(-3deg) scaleX(0.95) } }
@keyframes dw-tail { 0% { transform: rotate(-20deg) } 50% { transform: rotate(60deg) } 100% { transform: rotate(-10deg) } }

.scn-dragon-stings-knight {
  background: linear-gradient(180deg, #c89050 0%, #e0b060 40%, #f0d080 70%, #d0a058 100%),
              radial-gradient(ellipse at 30% 70%, #e8c080 0%, transparent 60%);
}
.scn-dragon-stings-knight .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0dca0 0%, transparent 100%);
  animation: ds-sky 10s ease-in-out infinite alternate;
}
.scn-dragon-stings-knight .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-dragon-stings-knight .dragon-head {
  position: absolute; bottom: 45%; left: 55%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 20% 50% 30% / 60% 40% 60% 30%;
  transform-origin: bottom center;
  animation: ds-head 4s ease-in-out infinite alternate;
}
.scn-dragon-stings-knight .dragon-neck {
  position: absolute; bottom: 35%; left: 45%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 20% 10% 30% 40% / 30% 20% 40% 50%;
  transform-origin: 60% 100%;
  animation: ds-neck 5s ease-in-out infinite alternate;
}
.scn-dragon-stings-knight .dragon-sting {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 50% 50% 0;
  transform-origin: right center;
  animation: ds-sting 3s ease-in-out infinite;
  box-shadow: 0 0 10px 2px rgba(100,60,20,0.6);
}
.scn-dragon-stings-knight .knight {
  position: absolute; bottom: 15%; left: 25%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-45deg);
  transform-origin: bottom center;
  animation: ds-knight 6s ease-in-out infinite;
}
.scn-dragon-stings-knight .shield {
  position: absolute; bottom: 18%; left: 22%; width: 18px; height: 22px;
  background: radial-gradient(circle at 50% 50%, #8a7a5a 0%, #5a4a3a 70%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(20deg);
  animation: ds-shield 4s ease-in-out infinite alternate;
  box-shadow: 0 0 15px 3px rgba(100,80,40,0.5);
}
@keyframes ds-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ds-head { 0% { transform: translate(0, 0) rotate(0deg) } 50% { transform: translate(-20px, -15px) rotate(-10deg) } 100% { transform: translate(-5px, -5px) rotate(-3deg) } }
@keyframes ds-neck { 0% { transform: rotate(-5deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes ds-sting { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(30deg) scaleX(1.3) } 100% { transform: rotate(10deg) scaleX(0.9) } }
@keyframes ds-knight { 0% { transform: rotate(-45deg) translateY(0) } 50% { transform: rotate(-30deg) translateY(-5px) } 100% { transform: rotate(-40deg) translateY(0) } }
@keyframes ds-shield { 0% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(40deg) scale(1.2) } 100% { transform: rotate(15deg) scale(0.95) } }

.scn-knight-cuts-sting {
  background: linear-gradient(180deg, #d0a058 0%, #e8c080 40%, #f0d8a0 70%, #d8b068 100%),
              radial-gradient(ellipse at 60% 30%, #f5e0b0 0%, transparent 60%);
}
.scn-knight-cuts-sting .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0dcb0 0%, transparent 100%);
  animation: kc-sky 8s ease-in-out infinite alternate;
}
.scn-knight-cuts-sting .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-knight-cuts-sting .knight-body {
  position: absolute; bottom: 15%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kc-knight 5s ease-in-out infinite alternate;
}
.scn-knight-cuts-sting .sword {
  position: absolute; bottom: 30%; left: 32%; width: 35px; height: 5px;
  background: linear-gradient(90deg, #b0a080 0%, #d0c0a0 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: kc-sword 3s ease-in-out infinite alternate;
  box-shadow: 0 0 8px 2px rgba(200,180,140,0.5);
}
.scn-knight-cuts-sting .dragon-tail {
  position: absolute; bottom: 20%; left: 55%; width: 100px; height: 18px;
  background: linear-gradient(90deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 0 50% 50% 0;
  transform-origin: left center;
  animation: kc-tail 4s ease-in-out infinite;
}
.scn-knight-cuts-sting .dragon-sting {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 7px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 50% 50% 0;
  transform-origin: left center;
  animation: kc-sting 4s ease-in-out infinite alternate;
}
.scn-knight-cuts-sting .spark {
  position: absolute; bottom: 32%; left: 35%; width: 15px; height: 15px;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 60%, transparent 100%);
  border-radius: 50%;
  animation: kc-spark 0.6s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 10px #e8a040;
}
@keyframes kc-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes kc-knight { 0% { transform: translate(0, 0) rotate(-5deg) } 50% { transform: translate(10px, -2px) rotate(5deg) } 100% { transform: translate(0, 0) rotate(-3deg) } }
@keyframes kc-sword { 0% { transform: rotate(-30deg) } 50% { transform: rotate(60deg) } 100% { transform: rotate(-20deg) } }
@keyframes kc-tail { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(20deg) scaleX(1.2) } 100% { transform: rotate(-5deg) scaleX(0.9) } }
@keyframes kc-sting { 0% { transform: translate(0, 0) rotate(0deg) } 50% { transform: translate(-10px, 5px) rotate(15deg) } 100% { transform: translate(-2px, 2px) rotate(-5deg) } }
@keyframes kc-spark { 0% { transform: scale(0.5); opacity: 0.3 } 50% { transform: scale(1.5); opacity: 1 } 100% { transform: scale(0.8); opacity: 0.7 } }

.scn-dragon-fury-attack {
  background: linear-gradient(180deg, #b87c4a 0%, #dca868 40%, #f0c888 70%, #c89050 100%),
              radial-gradient(ellipse at 30% 50%, #f5d8a0 0%, transparent 60%);
}
.scn-dragon-fury-attack .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0dca0 0%, transparent 100%);
  animation: da-sky 6s ease-in-out infinite alternate;
}
.scn-dragon-fury-attack .dragon-head {
  position: absolute; bottom: 35%; left: 40%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 30% 40% 40% / 60% 50% 40% 30%;
  transform-origin: bottom center;
  animation: da-head 4s ease-in-out infinite alternate;
}
.scn-dragon-fury-attack .dragon-mouth {
  position: absolute; bottom: 25%; left: 42%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 30% 50%, #5a1a1a 0%, #3a0a0a 100%);
  border-radius: 40% 60% 30% 50% / 50% 40% 60% 50%;
  animation: da-mouth 2s ease-in-out infinite alternate;
  box-shadow: inset 0 0 20px 5px rgba(100,20,20,0.5);
}
.scn-dragon-fury-attack .flame {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 50px;
  background: linear-gradient(90deg, #ff8c40 0%, #ffaa60 40%, transparent 100%);
  border-radius: 0 50% 50% 50% / 0 70% 70% 40%;
  animation: da-flame 0.8s ease-in-out infinite alternate;
  filter: blur(3px);
  box-shadow: 0 0 30px 15px #ff8c40;
}
.scn-dragon-fury-attack .smoke {
  position: absolute; bottom: 45%; left: 25%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(80,60,40,0.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: da-smoke 5s ease-in-out infinite;
}
.scn-dragon-fury-attack .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-dragon-fury-attack .sparks {
  position: absolute; bottom: 30%; left: 20%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 30px -20px 0 2px #ffd080, 50px 10px 0 3px #ffb060, 70px -10px 0 1px #ffcc70;
  animation: da-sparks 1.2s ease-in-out infinite alternate;
}
@keyframes da-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes da-head { 0% { transform: translate(0, 0) rotate(-5deg) } 50% { transform: translate(-15px, -10px) rotate(10deg) } 100% { transform: translate(-5px, -3px) rotate(-2deg) } }
@keyframes da-mouth { 0% { transform: scaleX(0.8) } 50% { transform: scaleX(1.3) } 100% { transform: scaleX(0.9) } }
@keyframes da-flame { 0% { transform: scaleX(0.7) scaleY(0.8); opacity: 0.8 } 50% { transform: scaleX(1.4) scaleY(1.2); opacity: 1 } 100% { transform: scaleX(0.9) scaleY(0.9); opacity: 0.9 } }
@keyframes da-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.4 } 50% { transform: translateY(-15px) scale(1.3); opacity: 0.6 } 100% { transform: translateY(-5px) scale(1.1); opacity: 0.5 } }
@keyframes da-sparks { 0% { transform: translateY(0) scale(0.8); opacity: 0.3 } 50% { transform: translateY(-10px) scale(1.2); opacity: 0.8 } 100% { transform: translateY(-3px) scale(0.9); opacity: 0.5 } }

/* Scene 1: friendship-with-kirke-and-harvey – warm bright interior */
.scn-friendship-with-kirke-and-harvey {
  background: linear-gradient(180deg, #e8c992 0%, #cba66a 40%, #a88555 100%),
              radial-gradient(ellipse at 60% 20%, #fce0b0 0%, transparent 60%);
}
.scn-friendship-with-kirke-and-harvey .scn-kh-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #dbb580 0%, #b99660 100%);
  animation: kh-bg-pulse 15s ease-in-out infinite alternate;
}
.scn-friendship-with-kirke-and-harvey .scn-kh-window {
  position: absolute; top: 10%; left: 70%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #fef9e6 0%, #e8d5a0 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,230,180,.6);
  animation: kh-window-glow 6s ease-in-out infinite alternate;
}
.scn-friendship-with-kirke-and-harvey .scn-kh-desk {
  position: absolute; bottom: 12%; left: 20%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2e1a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: kh-desk-shift 12s ease-in-out infinite;
}
.scn-friendship-with-kirke-and-harvey .scn-kh-figure1 {
  position: absolute; bottom: 22%; left: 30%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #3a2e1a 0%, #1a1208 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kh-figure1-talk 4s ease-in-out infinite;
}
.scn-friendship-with-kirke-and-harvey .scn-kh-figure2 {
  position: absolute; bottom: 20%; left: 50%; width: 13%; height: 32%;
  background: linear-gradient(180deg, #3a2e1a 0%, #1a1208 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: kh-figure2-listen 6s ease-in-out infinite;
}
.scn-friendship-with-kirke-and-harvey .scn-kh-book1 {
  position: absolute; bottom: 15%; left: 35%; width: 10%; height: 6%;
  background: linear-gradient(135deg, #5e3a1a, #3a220e);
  border-radius: 1px; transform: rotate(-5deg);
  animation: kh-book-flip 10s ease-in-out infinite;
}
.scn-friendship-with-kirke-and-harvey .scn-kh-book2 {
  position: absolute; bottom: 13%; left: 45%; width: 12%; height: 5%;
  background: linear-gradient(135deg, #4a2e1a, #2a1808);
  border-radius: 1px; transform: rotate(3deg);
  animation: kh-book-flip 12s ease-in-out infinite reverse;
}
.scn-friendship-with-kirke-and-harvey .scn-kh-lightray {
  position: absolute; top: 5%; left: 72%; width: 40%; height: 90%;
  background: linear-gradient(135deg, rgba(255,248,200,.4), transparent 60%);
  transform: skewX(-15deg); filter: blur(8px);
  animation: kh-ray-dance 8s ease-in-out infinite alternate;
}
@keyframes kh-bg-pulse { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes kh-window-glow { 0% { opacity:0.8; box-shadow: inset 0 0 20px rgba(255,230,180,.4) } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,240,200,.8) } 100% { opacity:0.85; box-shadow: inset 0 0 25px rgba(255,230,180,.5) } }
@keyframes kh-desk-shift { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes kh-figure1-talk { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-3deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes kh-figure2-listen { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(1px) rotate(-1deg) } }
@keyframes kh-book-flip { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(3deg) scale(1.05) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes kh-ray-dance { 0% { opacity:0.6; transform: skewX(-15deg) translateX(0) } 50% { opacity:0.9; transform: skewX(-12deg) translateX(5px) } 100% { opacity:0.7; transform: skewX(-15deg) translateX(0) } }

/* Scene 2: seven-years-at-cambridge – calm dim interior */
.scn-seven-years-at-cambridge {
  background: linear-gradient(180deg, #2c3040 0%, #1e2230 50%, #0e1218 100%),
              radial-gradient(ellipse at 50% 70%, #3a4050 0%, transparent 70%);
}
.scn-seven-years-at-cambridge .scn-cam-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #22283a 0%, #12161e 100%);
  animation: cam-bg-breathe 20s ease-in-out infinite alternate;
}
.scn-seven-years-at-cambridge .scn-cam-window {
  position: absolute; top: 8%; left: 65%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #2a3040 0%, #1a1e28 100%);
  border-radius: 3px; box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: cam-window-dim 15s ease-in-out infinite alternate;
}
.scn-seven-years-at-cambridge .scn-cam-desk {
  position: absolute; bottom: 15%; left: 25%; width: 45%; height: 6%;
  background: linear-gradient(180deg, #3a2e24 0%, #1a140e 100%);
  border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,.6);
  animation: cam-desk-float 18s ease-in-out infinite;
}
.scn-seven-years-at-cambridge .scn-cam-candle {
  position: absolute; bottom: 25%; left: 43%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #e0c080, #b08a40);
  border-radius: 50% 50% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px #d4a050, 0 0 40px 12px rgba(200,140,60,.4);
  animation: cam-candle-flicker 3s ease-in-out infinite alternate;
}
.scn-seven-years-at-cambridge .scn-cam-figure {
  position: absolute; bottom: 20%; left: 35%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #1a1e2a 0%, #0a0c14 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: cam-figure-bow 9s ease-in-out infinite;
}
.scn-seven-years-at-cambridge .scn-cam-books {
  position: absolute; bottom: 13%; left: 50%; width: 20%; height: 12%;
  background: linear-gradient(135deg, #4a3828 0%, #2a1e12 100%);
  border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,.4);
  animation: cam-books-stack 25s ease-in-out infinite alternate;
}
@keyframes cam-bg-breathe { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cam-window-dim { 0% { opacity:0.7; box-shadow: inset 0 0 20px rgba(0,0,0,.3) } 50% { opacity:0.85; box-shadow: inset 0 0 40px rgba(0,0,0,.6) } 100% { opacity:0.75; box-shadow: inset 0 0 25px rgba(0,0,0,.4) } }
@keyframes cam-desk-float { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes cam-candle-flicker { 0% { opacity:0.8; box-shadow: 0 0 15px 4px #d4a050, 0 0 30px 8px rgba(200,140,60,.3) } 50% { opacity:1; box-shadow: 0 0 25px 8px #e8b870, 0 0 50px 16px rgba(220,160,80,.5) } 100% { opacity:0.85; box-shadow: 0 0 18px 5px #d4a050, 0 0 35px 10px rgba(200,140,60,.35) } }
@keyframes cam-figure-bow { 0% { transform: translateY(0) rotate(0) } 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 cam-books-stack { 0%,100% { transform: scale(1) } 50% { transform: scale(0.98) } }

/* Scene 3: failure-for-fellowship – tense dim interior */
.scn-failure-for-fellowship {
  background: linear-gradient(180deg, #1a1420 0%, #0e0a12 40%, #08060a 100%),
              radial-gradient(ellipse at 30% 40%, #2a2030 0%, transparent 60%);
}
.scn-failure-for-fellowship .scn-fel-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e162a 0%, #0a0610 100%);
  animation: fel-bg-throb 8s ease-in-out infinite alternate;
}
.scn-failure-for-fellowship .scn-fel-figure1 {
  position: absolute; bottom: 20%; left: 40%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #2a1e3a 0%, #0a0610 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: fel-fig1-slump 5s ease-in-out infinite;
}
.scn-failure-for-fellowship .scn-fel-figure2 {
  position: absolute; bottom: 25%; left: 55%; width: 15%; height: 38%;
  background: linear-gradient(180deg, #2a1e3a 0%, #100a18 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fel-fig2-point 4s ease-in-out infinite alternate;
}
.scn-failure-for-fellowship .scn-fel-shadow {
  position: absolute; bottom: 5%; left: 35%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, #000 0%, transparent 70%);
  animation: fel-shadow-grow 9s ease-in-out infinite alternate;
}
.scn-failure-for-fellowship .scn-fel-light {
  position: absolute; top: 15%; right: 20%; width: 10%; height: 60%;
  background: linear-gradient(135deg, rgba(200,160,120,.4), transparent 60%);
  transform: skewX(20deg); filter: blur(10px);
  animation: fel-light-flicker 3s ease-in-out infinite alternate;
}
.scn-failure-for-fellowship .scn-fel-door {
  position: absolute; top: 5%; right: 5%; width: 18%; height: 90%;
  background: linear-gradient(180deg, #2a1e20 0%, #120a0c 100%);
  border-radius: 0 0 4px 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: fel-door-shut 10s ease-in-out infinite alternate;
}
@keyframes fel-bg-throb { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes fel-fig1-slump { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fel-fig2-point { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-5px) rotate(-15deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fel-shadow-grow { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:0.9; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }
@keyframes fel-light-flicker { 0% { opacity:0.5; transform: skewX(20deg) translateX(0) } 50% { opacity:0.8; transform: skewX(18deg) translateX(2px) } 100% { opacity:0.6; transform: skewX(20deg) translateX(0) } }
@keyframes fel-door-shut { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-3px) } }

/* Scene 4: residence-in-lancashire – calm overcast exterior */
.scn-residence-in-lancashire {
  background: linear-gradient(180deg, #b8c4d0 0%, #8896a8 40%, #5c6878 100%),
              radial-gradient(ellipse at 50% 100%, #6a7a8a 0%, transparent 70%);
}
.scn-residence-in-lancashire .scn-lan-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c8d4e0 0%, #a0aec0 100%);
  animation: lan-sky-dim 30s ease-in-out infinite alternate;
}
.scn-residence-in-lancashire .scn-lan-hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 50% 40% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.3);
  animation: lan-hills-sway 22s ease-in-out infinite alternate;
}
.scn-residence-in-lancashire .scn-lan-cottage {
  position: absolute; bottom: 28%; left: 30%; width: 25%; height: 20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 6% 6% 3% 3%; box-shadow: 0 5px 10px rgba(0,0,0,.4);
  animation: lan-cottage-breathe 14s ease-in-out infinite;
}
.scn-residence-in-lancashire .scn-lan-tree {
  position: absolute; bottom: 15%; left: 55%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: lan-tree-sway 16s ease-in-out infinite alternate;
}
.scn-residence-in-lancashire .scn-lan-figure1 {
  position: absolute; bottom: 20%; left: 35%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1a1e2a 0%, #0a0c14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lan-fig1-walk 6s ease-in-out infinite;
}
.scn-residence-in-lancashire .scn-lan-figure2 {
  position: absolute; bottom: 20%; left: 45%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #1a1e2a 0%, #0a0c14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lan-fig2-follow 7s ease-in-out infinite reverse;
}
.scn-residence-in-lancashire .scn-lan-path {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0; opacity:0.6;
  animation: lan-path-roll 40s linear infinite;
}
@keyframes lan-sky-dim { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes lan-hills-sway { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lan-cottage-breathe { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes lan-tree-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes lan-fig1-walk { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(0) } 75% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lan-fig2-follow { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(6px) rotate(0) } 75% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lan-path-roll { 0% { background-position: 0 0 } 100% { background-position: -200% 0 } }

/* ===== scene: knight-wounds-dragon-wing ===== */
.scn-knight-wounds-dragon-wing {
  background: 
    linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 30%, #1a3a5a 60%, #0a1a2a 100%),
    radial-gradient(ellipse at 70% 20%, #f0d060 0%, transparent 40%);
}
.scn-knight-wounds-dragon-wing .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a9aba 0%, #3a6a8a 100%);
  animation: kwdw-sky 12s ease-in-out infinite alternate;
}
.scn-knight-wounds-dragon-wing .sun {
  position: absolute; top: 5%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #f0b040 50%, transparent 70%);
  box-shadow: 0 0 60px 20px #f0b040;
  animation: kwdw-sun 6s ease-in-out infinite alternate;
}
.scn-knight-wounds-dragon-wing .cloud-far {
  position: absolute; top: 12%; left: 10%; width: 120px; height: 30px;
  background: linear-gradient(90deg, rgba(255,255,255,0.3), transparent);
  filter: blur(8px);
  animation: kwdw-cloud 40s linear infinite;
}
.scn-knight-wounds-dragon-wing .dragon-wing {
  position: absolute; bottom: 20%; left: -10%; width: 70%; height: 60%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 80% 0 60% 20% / 90% 0 50% 10%;
  transform-origin: 80% 100%;
  animation: kwdw-wing 4s ease-in-out infinite alternate;
}
.scn-knight-wounds-dragon-wing .spear {
  position: absolute; bottom: 35%; left: 40%; width: 200px; height: 6px;
  background: linear-gradient(90deg, #8a6a3a 0%, #b09a6a 50%, #6a4a1a 100%);
  transform-origin: left center;
  animation: kwdw-spear 2s ease-in-out infinite alternate;
}
.scn-knight-wounds-dragon-wing .knight {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: kwdw-knight 3s ease-in-out infinite;
}
.scn-knight-wounds-dragon-wing .dust {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 20px;
  background: rgba(180,140,80,0.3);
  filter: blur(6px);
  animation: kwdw-dust 5s ease-in-out infinite;
}
.scn-knight-wounds-dragon-wing .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
@keyframes kwdw-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes kwdw-sun { 0% { transform: scale(0.9); opacity: 0.8; } 100% { transform: scale(1.1); opacity: 1; } }
@keyframes kwdw-cloud { 0% { transform: translateX(-120px); } 100% { transform: translateX(110vw); } }
@keyframes kwdw-wing { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(0.95); } 100% { transform: rotate(-2deg) scaleX(1.02); } }
@keyframes kwdw-spear { 0% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(10px,-5px) rotate(0deg); } 100% { transform: translate(0,0) rotate(3deg); } }
@keyframes kwdw-knight { 0% { transform: translateY(0); } 25% { transform: translateY(-3px); } 50% { transform: translateY(0); } 75% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes kwdw-dust { 0% { transform: translate(0,0) scale(0.8); opacity: 0.3; } 50% { transform: translate(-5px,2px) scale(1.2); opacity: 0.6; } 100% { transform: translate(0,0) scale(0.8); opacity: 0.3; } }

/* ===== scene: dragon-roar-pain ===== */
.scn-dragon-roar-pain {
  background: 
    linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 30%, #1a1a2a 60%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #f0c060 0%, transparent 50%);
}
.scn-dragon-roar-pain .storm-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  animation: drp-sky 10s ease-in-out infinite alternate;
}
.scn-dragon-roar-pain .sun-glow {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 80px; transform: translateX(-50%);
  background: radial-gradient(circle, #ffd070 0%, #f0a030 40%, transparent 70%);
  box-shadow: 0 0 80px 30px rgba(240,160,48,0.5);
  animation: drp-sun 8s ease-in-out infinite;
}
.scn-dragon-roar-pain .dragon-head {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 100px; transform: translateX(-50%);
  background: linear-gradient(135deg, #2a1a0a 0%, #4a3a2a 50%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  animation: drp-head 3s ease-in-out infinite;
}
.scn-dragon-roar-pain .jaw-upper {
  position: absolute; bottom: 45%; left: 50%; width: 80px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  animation: drp-jaw 2s ease-in-out infinite alternate;
}
.scn-dragon-roar-pain .jaw-lower {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 25px; transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0a00 0%, #3a2a1a 100%);
  border-radius: 30% 30% 50% 50% / 20% 20% 80% 80%;
  animation: drp-jaw 2s ease-in-out infinite alternate-reverse;
}
.scn-dragon-roar-pain .teeth {
  position: absolute; bottom: 40%; left: 50%; width: 40px; height: 15px; transform: translateX(-50%);
  background: linear-gradient(90deg, transparent 10%, #d0c0a0 20%, transparent 30%, #d0c0a0 40%, transparent 50%, #d0c0a0 60%, transparent 70%);
  clip-path: polygon(0% 100%, 10% 0%, 20% 100%, 30% 0%, 40% 100%, 50% 0%, 60% 100%, 70% 0%, 80% 100%, 90% 0%, 100% 100%);
  animation: drp-teeth 0.5s ease-in-out infinite;
}
.scn-dragon-roar-pain .wave-left {
  position: absolute; bottom: 10%; left: 0; width: 60%; height: 20%;
  background: linear-gradient(180deg, #2a4a5a 0%, #1a3a4a 100%);
  border-radius: 0 50% 0 0;
  animation: drp-wave 6s ease-in-out infinite alternate;
}
.scn-dragon-roar-pain .wave-right {
  position: absolute; bottom: 8%; right: 0; width: 60%; height: 20%;
  background: linear-gradient(180deg, #2a4a5a 0%, #1a3a4a 100%);
  border-radius: 50% 0 0 0;
  animation: drp-wave 5s ease-in-out infinite alternate-reverse;
}
.scn-dragon-roar-pain .foam {
  position: absolute; bottom: 15%; left: 20%; width: 120px; height: 20px;
  background: rgba(200,210,220,0.4);
  filter: blur(5px);
  animation: drp-foam 3s ease-in-out infinite;
}
@keyframes drp-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes drp-sun { 0% { transform: translateX(-50%) scale(0.9); opacity: 0.7; } 50% { transform: translateX(-50%) scale(1.1); opacity: 1; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.7; } }
@keyframes drp-head { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-5px); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes drp-jaw { 0% { transform: translateX(-50%) scaleY(1); } 100% { transform: translateX(-50%) scaleY(1.3); } }
@keyframes drp-teeth { 0% { opacity: 1; } 50% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes drp-wave { 0% { transform: translateY(0) scaleX(1); } 33% { transform: translateY(-5px) scaleX(1.05); } 66% { transform: translateY(3px) scaleX(0.95); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes drp-foam { 0% { transform: translate(0,0) scale(0.8); opacity: 0.3; } 50% { transform: translate(10px,-3px) scale(1.2); opacity: 0.6; } 100% { transform: translate(0,0) scale(0.8); opacity: 0.3; } }

/* ===== scene: dragon-spear-break ===== */
.scn-dragon-spear-break {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #1a1a0a 60%, #0a0a00 100%),
    radial-gradient(ellipse at 40% 50%, #8a3a1a 0%, transparent 60%);
}
.scn-dragon-spear-break .bg-smoke {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 40%, #3a3a2a 0%, transparent 70%);
  animation: dsb-smoke 15s ease-in-out infinite alternate;
}
.scn-dragon-spear-break .claw-top {
  position: absolute; top: 20%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 60% 40% 30% 20% / 50% 30% 70% 50%;
  transform-origin: 50% 100%;
  animation: dsb-claw 2s ease-in-out infinite alternate;
}
.scn-dragon-spear-break .claw-bottom {
  position: absolute; top: 45%; left: 40%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 50% 20% 40% / 30% 50% 50% 40%;
  transform-origin: 50% 0%;
  animation: dsb-claw-bottom 2s ease-in-out infinite alternate;
}
.scn-dragon-spear-break .spear-shaft {
  position: absolute; top: 35%; left: 50%; width: 180px; height: 8px;
  background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 50%, #5a4a2a 100%);
  transform: rotate(20deg);
  transform-origin: left center;
  animation: dsb-spear-shaft 3s ease-in-out infinite;
}
.scn-dragon-spear-break .spear-broken {
  position: absolute; top: 38%; left: 35%; width: 40px; height: 6px;
  background: #5a4a2a;
  transform: rotate(-30deg);
  animation: dsb-spear-broken 2s ease-in-out infinite alternate;
}
.scn-dragon-spear-break .blood-pool {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, #5e1a1d 0%, #3a0a0c 70%, transparent 100%);
  animation: dsb-blood 8s ease-in-out infinite;
}
.scn-dragon-spear-break .flame-a {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(0deg, #ff8030 0%, #ffd060 50%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: dsb-flame 0.6s ease-in-out infinite;
}
.scn-dragon-spear-break .flame-b {
  position: absolute; bottom: 25%; left: 65%; width: 20px; height: 40px;
  background: linear-gradient(0deg, #ff6020 0%, #ffb040 50%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: dsb-flame 0.8s ease-in-out infinite reverse;
}
.scn-dragon-spear-break .ground-ash {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
}
@keyframes dsb-smoke { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.3; transform: scale(1); } }
@keyframes dsb-claw { 0% { transform: rotate(0deg) scaleY(1); } 100% { transform: rotate(-5deg) scaleY(1.1); } }
@keyframes dsb-claw-bottom { 0% { transform: rotate(0deg) scaleY(1); } 100% { transform: rotate(5deg) scaleY(1.1); } }
@keyframes dsb-spear-shaft { 0% { transform: rotate(20deg) translateY(0); } 25% { transform: rotate(25deg) translateY(-5px); } 50% { transform: rotate(15deg) translateY(0); } 75% { transform: rotate(20deg) translateY(3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes dsb-spear-broken { 0% { transform: rotate(-30deg) translate(0,0); } 100% { transform: rotate(-40deg) translate(5px,5px); } }
@keyframes dsb-blood { 0% { transform: scaleY(0.8); opacity: 0.7; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(0.8); opacity: 0.7; } }
@keyframes dsb-flame { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.3) translateY(-5px); } 100% { transform: scaleY(1) translateY(0); } }

/* ===== scene: dragon-tail-coil ===== */
.scn-dragon-tail-coil {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #1a1a1a 60%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 50%);
}
.scn-dragon-tail-coil .sky-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  animation: dtc-sky 15s ease-in-out infinite alternate;
}
.scn-dragon-tail-coil .sun-dim {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 60px; transform: translateX(-50%);
  background: radial-gradient(circle, #c0a060 0%, #8a6a30 40%, transparent 70%);
  box-shadow: 0 0 40px 10px rgba(138,106,48,0.3);
  animation: dtc-sun 10s ease-in-out infinite;
}
.scn-dragon-tail-coil .tail-loop {
  position: absolute; bottom: 20%; left: 10%; width: 250px; height: 120px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 0 50% 50% 0 / 0 50% 50% 0;
  transform-origin: left center;
  animation: dtc-tail-loop 6s ease-in-out infinite;
}
.scn-dragon-tail-coil .tail-wrap {
  position: absolute; bottom: 30%; left: 30%; width: 200px; height: 80px;
  background: linear-gradient(135deg, #2a1a0a 0%, #4a3a2a 100%);
  border-radius: 50% 0 50% 0;
  transform-origin: center;
  animation: dtc-tail-wrap 5s ease-in-out infinite alternate;
}
.scn-dragon-tail-coil .horse-body {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: dtc-horse 4s ease-in-out infinite;
}
.scn-dragon-tail-coil .knight-silhouette {
  position: absolute; bottom: 35%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  animation: dtc-knight 3s ease-in-out infinite;
}
.scn-dragon-tail-coil .blood-splatter {
  position: absolute; bottom: 15%; left: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle, #5e1a1d 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: dtc-blood 2s ease-in-out infinite;
}
.scn-dragon-tail-coil .ground-mud {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 0 0 / 10% 10% 0 0;
}
@keyframes dtc-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes dtc-sun { 0% { transform: translateX(-50%) scale(0.9); opacity: 0.5; } 50% { transform: translateX(-50%) scale(1.05); opacity: 0.8; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.5; } }
@keyframes dtc-tail-loop { 0% { transform: rotate(0deg) scaleX(1); } 33% { transform: rotate(5deg) scaleX(1.05); } 66% { transform: rotate(-3deg) scaleX(0.95); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes dtc-tail-wrap { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.1); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes dtc-horse { 0% { transform: translateY(0) ; } 25% { transform: translateY(-4px); } 50% { transform: translateY(0); } 75% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dtc-knight { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dtc-blood { 0% { transform: scale(0.8); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.6; } }

/* notes-gall-grate */
.scn-notes-gall-grate {
  background: linear-gradient(140deg, #2b1d14 0%, #4a3226 40%, #3a2218 100%),
              radial-gradient(ellipse at 30% 50%, #6a4a38 0%, transparent 70%);
}
.scn-notes-gall-grate .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(40,20,10,.4) 0%, transparent 80%); animation: gg-ambient 8s ease-in-out infinite alternate; }
.scn-notes-gall-grate .floor { position:absolute; bottom:0; left:0;right:0; height:25%; background: linear-gradient(0deg, #2a1a0e 0%, #3a2216 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.6); }
.scn-notes-gall-grate .desk { position:absolute; bottom:12%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: gg-desk 12s ease-in-out infinite alternate; }
.scn-notes-gall-grate .candle { position:absolute; bottom:22%; left:40%; width:12px; height:30px; background: linear-gradient(0deg, #6a4a30 0%, #8a6040 60%, #f0d0a0 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 8px rgba(240,200,100,.3); animation: gg-candle 2s ease-in-out infinite alternate; }
.scn-notes-gall-grate .figure { position:absolute; bottom:8%; left:30%; width:40px; height:70px; background: linear-gradient(0deg, #1a0e08 0%, #2a180e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gg-figure 6s ease-in-out infinite; }
.scn-notes-gall-grate .bookstack { position:absolute; bottom:8%; left:55%; width:50px; height:20px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: gg-books 5s ease-in-out infinite alternate; }
.scn-notes-gall-grate .shadow { position:absolute; bottom:10%; left:18%; width:70%; height:4px; background: rgba(0,0,0,.3); filter: blur(3px); animation: gg-shad 8s ease-in-out infinite; }
@keyframes gg-ambient { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes gg-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes gg-candle { 0% { transform: scaleY(1) scaleX(1); opacity:.9 } 50% { transform: scaleY(1.05) scaleX(.98); opacity:1 } 100% { transform: scaleY(.95) scaleX(1.01); opacity:.85 } }
@keyframes gg-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gg-books { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes gg-shad { 0%,100% { transform: scaleX(1) translateX(0); opacity:.3 } 50% { transform: scaleX(1.1) translateX(2px); opacity:.2 } }

/* notes-nile-mud */
.scn-notes-nile-mud {
  background: linear-gradient(180deg, #1f1a15 0%, #3a3228 60%, #4a3c2e 100%),
              radial-gradient(ellipse at 50% 50%, #2a2218 0%, transparent 80%);
}
.scn-notes-nile-mud .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1e1a14 0%, #2e281e 100%); animation: nm-wall 10s ease-in-out infinite alternate; }
.scn-notes-nile-mud .table { position:absolute; bottom:10%; left:15%; width:70%; height:8%; background: linear-gradient(180deg, #4a3e30 0%, #2e2218 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: nm-table 8s ease-in-out infinite; }
.scn-notes-nile-mud .jar { position:absolute; bottom:14%; left:25%; width:30px; height:40px; background: linear-gradient(180deg, #3a3228 0%, #1f1a14 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4), 0 2px 4px rgba(0,0,0,.3); animation: nm-jar 12s ease-in-out infinite; }
.scn-notes-nile-mud .mud { position:absolute; bottom:14%; left:28%; width:24px; height:10px; background: radial-gradient(ellipse, #2a2218 0%, #1a140e 100%); border-radius: 50% 50% 30% 30%; opacity: .8; animation: nm-mud 6s ease-in-out infinite; }
.scn-notes-nile-mud .mouse { position:absolute; bottom:14%; left:40%; width:16px; height:12px; background: radial-gradient(ellipse, #5a4a3a 0%, #3a2a1e 100%); border-radius: 50%; transform-origin: center bottom; animation: nm-mouse 4s ease-in-out infinite; }
.scn-notes-nile-mud .book { position:absolute; bottom:10%; left:55%; width:40px; height:18px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2218 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: nm-book 7s ease-in-out infinite alternate; }
.scn-notes-nile-mud .blot { position:absolute; bottom:8%; left:60%; width:20px; height:6px; background: rgba(30,20,10,.4); filter: blur(4px); animation: nm-blot 9s ease-in-out infinite; }
@keyframes nm-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes nm-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes nm-jar { 0% { transform: scaleY(1) rotate(0) } 50% { transform: scaleY(1.02) rotate(1deg) } 100% { transform: scaleY(1) rotate(0) } }
@keyframes nm-mud { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(.95) translateY(-1px) } 100% { transform: scaleX(1) translateY(0) } }
@keyframes nm-mouse { 0% { transform: scale(1) translateX(0) } 25% { transform: scale(.95) translateX(2px) } 50% { transform: scale(1) translateX(0) } 75% { transform: scale(1.05) translateX(-2px) } 100% { transform: scale(1) translateX(0) } }
@keyframes nm-book { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes nm-blot { 0%,100% { opacity:.3; transform: scale(1) } 50% { opacity:.2; transform: scale(1.1) } }

/* notes-serpent-young */
.scn-notes-serpent-young {
  background: linear-gradient(180deg, #151c14 0%, #1e2a1e 50%, #2a3228 100%),
              radial-gradient(ellipse at 30% 30%, #2a3a1e 0%, transparent 70%);
}
.scn-notes-serpent-young .cave { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a201a 0%, #2a302a 100%); animation: sy-cave 15s ease-in-out infinite; }
.scn-notes-serpent-young .rock { position:absolute; bottom:18%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #3a4230 0%, #1a2218 100%); border-radius: 40% 40% 20% 20%; box-shadow: inset 0 6px 12px rgba(0,0,0,.6); animation: sy-rock 10s ease-in-out infinite alternate; }
.scn-notes-serpent-young .serpent { position:absolute; bottom:20%; left:30%; width:80px; height:16px; background: linear-gradient(180deg, #3a4a2e 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; transform-origin: 30% 50%; animation: sy-serpent 6s ease-in-out infinite; }
.scn-notes-serpent-young .young1 { position:absolute; bottom:16%; left:40%; width:20px; height:8px; background: radial-gradient(ellipse, #4a5a3a 0%, #2a3a1e 100%); border-radius: 50%; animation: sy-young1 4s ease-in-out infinite; }
.scn-notes-serpent-young .young2 { position:absolute; bottom:14%; left:50%; width:15px; height:6px; background: radial-gradient(ellipse, #4a5a3a 0%, #2a3a1e 100%); border-radius: 50%; animation: sy-young2 4.5s ease-in-out infinite; }
.scn-notes-serpent-young .blood { position:absolute; bottom:20%; left:35%; width:6px; height:6px; background: radial-gradient(circle, #5e1a1d 0%, #3a1012 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(94,26,29,.4); animation: sy-blood 3s ease-in-out infinite alternate; }
.scn-notes-serpent-young .ground { position:absolute; bottom:0; left:0;right:0; height:18%; background: linear-gradient(0deg, #1e241c 0%, #2a3228 100%); }
@keyframes sy-cave { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes sy-rock { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sy-serpent { 0% { transform: rotate(-3deg) translateX(0) } 25% { transform: rotate(3deg) translateX(5px) } 50% { transform: rotate(-2deg) translateX(0) } 75% { transform: rotate(2deg) translateX(-5px) } 100% { transform: rotate(-3deg) translateX(0) } }
@keyframes sy-young1 { 0% { transform: scale(1) translateX(0) rotate(0) } 50% { transform: scale(.9) translateX(3px) rotate(10deg) } 100% { transform: scale(1) translateX(0) rotate(0) } }
@keyframes sy-young2 { 0% { transform: scale(1) translateX(0) rotate(0) } 50% { transform: scale(.95) translateX(-2px) rotate(-8deg) } 100% { transform: scale(1) translateX(0) rotate(0) } }
@keyframes sy-blood { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.5; transform: scale(.9) } }

/* notes-astrology */
.scn-notes-astrology {
  background: linear-gradient(180deg, #12152a 0%, #1a1c3a 40%, #222440 100%),
              radial-gradient(ellipse at 50% 30%, #282a4a 0%, transparent 80%);
}
.scn-notes-astrology .wallbg { position:absolute; inset:0; background: linear-gradient(180deg, #0e1020 0%, #181a30 100%); animation: as-wall 12s ease-in-out infinite; }
.scn-notes-astrology .window { position:absolute; top:10%; left:35%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 50%, #1a1c3a 0%, #2a2c4a 100%); border-radius: 50% 50% 40% 40%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: as-window 8s ease-in-out infinite; }
.scn-notes-astrology .desk { position:absolute; bottom:12%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #2a2c3a 0%, #1a1c2a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: as-desk 10s ease-in-out infinite; }
.scn-notes-astrology .astrolabe { position:absolute; bottom:20%; left:42%; width:40px; height:40px; background: radial-gradient(circle, #4a5060 0%, #2a2c3a 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(100,120,180,.3); animation: as-astrolabe 15s linear infinite; }
.scn-notes-astrology .figure { position:absolute; bottom:8%; left:32%; width:36px; height:64px; background: linear-gradient(0deg, #1a1c2a 0%, #2a2c3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: as-figure 7s ease-in-out infinite; }
.scn-notes-astrology .book { position:absolute; bottom:10%; left:55%; width:40px; height:16px; background: linear-gradient(180deg, #3a3c4a 0%, #1a1c2a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: as-book 5s ease-in-out infinite alternate; }
.scn-notes-astrology .stars { position:absolute; top:5%; left:10%; width:20px; height:20px; background: radial-gradient(circle, #d0d8ff 0%, transparent 80%); filter: blur(2px); animation: as-stars 4s ease-in-out infinite; }
@keyframes as-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes as-window { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes as-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes as-astrolabe { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(180deg) scale(1.05) } 100% { transform: rotate(360deg) scale(1) } }
@keyframes as-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes as-book { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes as-stars { 0% { opacity:.4; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.6; transform: scale(.9) } }

/* contemplate-hill-lineage */
.scn-contemplate-hill-lineage { background: linear-gradient(180deg, #fce4c0 0%, #b8d4e8 50%, #7aa5c2 100%), radial-gradient(ellipse at 30% 80%, #ffe8a0 0%, transparent 60%); }
.scn-contemplate-hill-lineage .sky { position:absolute; inset:0; background: linear-gradient(180deg, #8fc5e8 0%, transparent 100%); animation: chl-sky 15s ease-in-out infinite alternate; }
.scn-contemplate-hill-lineage .hill-back { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 100%); border-radius: 50% 60% 0 0 / 40% 50% 0 0; animation: chl-hill 20s ease-in-out infinite; }
.scn-contemplate-hill-lineage .hill-front { position:absolute; bottom:10%; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a7a4a 0%, #2a4a2a 100%); border-radius: 30% 70% 0 0 / 60% 30% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.3); animation: chl-hill 20s ease-in-out infinite 2s; }
.scn-contemplate-hill-lineage .figure { position:absolute; bottom:15%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: chl-figure 6s ease-in-out infinite; }
.scn-contemplate-hill-lineage .staff { position:absolute; bottom:15%; left:38%; width:3px; height:55px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(-5deg); transform-origin: bottom center; animation: chl-staff 6s ease-in-out infinite; }
.scn-contemplate-hill-lineage .sun-glow { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #fff8e0 0%, #ffe080 40%, transparent 70%); border-radius: 50%; animation: chl-sunglow 8s ease-in-out infinite alternate; }
.scn-contemplate-hill-lineage .cloud { position:absolute; top:18%; left:10%; width:80px; height:16px; 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: chl-cloud 40s linear infinite; }
@keyframes chl-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes chl-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes chl-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-2deg) } 75% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes chl-staff { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }
@keyframes chl-sunglow { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes chl-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

/* contemplate-hill-revelation */
.scn-contemplate-hill-revelation { background: linear-gradient(180deg, #d9c68a 0%, #a0b97a 30%, #6a8a5a 70%), radial-gradient(ellipse at 60% 20%, #f4e2a0 0%, transparent 70%); }
.scn-contemplate-hill-revelation .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d0e0 0%, #e0e8c0 100%); animation: chr-sky 18s ease-in-out infinite alternate; }
.scn-contemplate-hill-revelation .field { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a9a4a 0%, #5a6a2a 100%); border-radius: 40% 60% 0 0 / 80% 40% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.2); animation: chr-field 20s ease-in-out infinite; }
.scn-contemplate-hill-revelation .furrow { position:absolute; bottom:25%; left:30%; width:40%; height:8px; background: linear-gradient(90deg, #4a3a1a 0%, #6a5a2a 30%, transparent 70%); border-radius: 50%; transform: rotate(-5deg); filter: blur(1px); animation: chr-furrow 25s ease-in-out infinite; }
.scn-contemplate-hill-revelation .ploughman-fig { position:absolute; bottom:20%; left:35%; width:22px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: chr-plough 8s ease-in-out infinite; }
.scn-contemplate-hill-revelation .baby-fig { position:absolute; bottom:23%; left:32%; width:12px; height:18px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: chr-baby 6s ease-in-out infinite; }
.scn-contemplate-hill-revelation .sun { position:absolute; top:10%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #fff4c0 0%, #ffe080 40%, transparent 70%); border-radius: 50%; animation: chr-sun 10s ease-in-out infinite alternate; }
.scn-contemplate-hill-revelation .cloud { position:absolute; top:12%; left:5%; width:70px; height:14px; background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50%; filter: blur(6px); animation: chr-cloud 50s linear infinite; }
@keyframes chr-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes chr-field { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes chr-furrow { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(-3deg) scaleX(1.2) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes chr-plough { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-2deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes chr-baby { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes chr-sun { 0% { opacity:0.8; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.9; transform: scale(0.95) } }
@keyframes chr-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

/* contemplate-hill-departure */
.scn-contemplate-hill-departure { background: linear-gradient(180deg, #ead4a8 0%, #b8a878 30%, #7a6a4a 70%), radial-gradient(ellipse at 40% 80%, #f0dca0 0%, transparent 50%); }
.scn-contemplate-hill-departure .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c0d0d8 0%, #e8dca8 100%); animation: chd-sky 16s ease-in-out infinite alternate; }
.scn-contemplate-hill-departure .hill { position:absolute; bottom:15%; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a7a4a 0%, #3a4a2a 100%); border-radius: 60% 40% 0 0 / 50% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: chd-hill 22s ease-in-out infinite; }
.scn-contemplate-hill-departure .castle-bg { position:absolute; bottom:25%; left:10%; width:70px; height:50px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: chd-castle 20s ease-in-out infinite; }
.scn-contemplate-hill-departure .knight-fig { position:absolute; bottom:18%; left:40%; width:20px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1000 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: chd-figure 7s ease-in-out infinite; }
.scn-contemplate-hill-departure .una-fig { position:absolute; bottom:18%; left:46%; width:18px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: chd-figure 7s ease-in-out infinite -1s; }
.scn-contemplate-hill-departure .daughter-1 { position:absolute; bottom:22%; left:25%; width:16px; height:34px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: chd-daughter 5s ease-in-out infinite; }
.scn-contemplate-hill-departure .daughter-2 { position:absolute; bottom:22%; left:30%; width:16px; height:34px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: chd-daughter 5s ease-in-out infinite 1s; }
.scn-contemplate-hill-departure .daughter-3 { position:absolute; bottom:22%; left:35%; width:16px; height:34px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: chd-daughter 5s ease-in-out infinite 2s; }
@keyframes chd-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes chd-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes chd-castle { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes chd-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(9px) rotate(0deg) } 100% { transform: translateX(12px) rotate(-1deg) } }
@keyframes chd-daughter { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }

/* dragon-approach-una-speech */
.scn-dragon-approach-una-speech { background: linear-gradient(180deg, #d4a040 0%, #8a6040 40%, #4a3020 100%), radial-gradient(ellipse at 30% 60%, #e0b060 0%, transparent 70%); }
.scn-dragon-approach-una-speech .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f0d080 0%, #c09050 50%, #604020 100%); animation: dau-sky 4s ease-in-out infinite alternate; }
.scn-dragon-approach-una-speech .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); animation: dau-ground 6s ease-in-out infinite; }
.scn-dragon-approach-una-speech .dragon { position:absolute; bottom:35%; left:-10%; width:60%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); clip-path: polygon(0% 100%, 20% 60%, 40% 30%, 60% 20%, 80% 30%, 70% 60%, 100% 100%); animation: dau-dragon 3s ease-in-out infinite; }
.scn-dragon-approach-una-speech .knight { position:absolute; bottom:15%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dau-fight 2s ease-in-out infinite; }
.scn-dragon-approach-una-speech .una { position:absolute; bottom:15%; left:28%; width:18px; height:38px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: dau-fight 2s ease-in-out infinite -0.5s; }
.scn-dragon-approach-una-speech .tower { position:absolute; bottom:20%; right:15%; width:30px; height:60px; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 5% 5% 3% 3%; box-shadow: 0 8px 16px rgba(0,0,0,0.5); animation: dau-tower 8s ease-in-out infinite; }
.scn-dragon-approach-una-speech .shock { position:absolute; bottom:30%; left:30%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,200,100,0.8) 0%, transparent 70%); border-radius: 50%; animation: dau-shock 1.5s ease-in-out infinite; }
@keyframes dau-sky { 0% { opacity:0.9 } 50% { opacity:0.6 } 100% { opacity:0.9 } }
@keyframes dau-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dau-dragon { 0% { transform: translateX(0) scale(1) } 25% { transform: translateX(5%) scale(1.05) } 50% { transform: translateX(10%) scale(1.1) } 75% { transform: translateX(5%) scale(1.05) } 100% { transform: translateX(0) scale(1) } }
@keyframes dau-fight { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes dau-tower { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dau-shock { 0% { transform: scale(0.5); opacity:0.8 } 50% { transform: scale(1.2); opacity:0.3 } 100% { transform: scale(0.5); opacity:0.8 } }

.scn-notes-frend {
  background: 
    radial-gradient(ellipse at 60% 80%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #2a1f14 0%, #1f140e 50%, #0f0a06 100%);
}
.scn-notes-frend .wall-back  { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #4a3520 0%, #3a2a1a 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-notes-frend .floor      { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1f140e 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,.6); }
.scn-notes-frend .window     { position:absolute; top:18%; right:20%; width:50px; height:70px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border: 4px solid #5a3a1a; border-radius:6px; box-shadow: inset 0 0 20px rgba(100,150,200,.2); }
.scn-notes-frend .figure     { position:absolute; bottom:28%; left:40%; width:40px; height:80px; background: linear-gradient(180deg, #352515 0%, #1a1410 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nf-figure 8s ease-in-out infinite; }
.scn-notes-frend .book       { position:absolute; bottom:30%; left:46%; width:30px; height:20px; background: linear-gradient(135deg, #6a4a2a 0%, #4a3020 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.4); transform: rotate(-5deg); animation: nf-book 10s ease-in-out infinite alternate; }
.scn-notes-frend .candle     { position:absolute; bottom:32%; left:54%; width:6px; height:18px; background: linear-gradient(180deg, #c8a060 0%, #8a6030 100%); border-radius: 3px 3px 2px 2px; }
.scn-notes-frend .glow       { position:absolute; bottom:32%; left:54%; width:6px; height:18px; background: radial-gradient(ellipse at 50% 0%, #e0b040 0%, transparent 80%); border-radius:50%; filter: blur(4px); box-shadow: 0 -8px 20px 6px #c08030, 0 -16px 40px 12px rgba(192,128,48,.4); animation: nf-glow 3s ease-in-out infinite alternate; }
.scn-notes-frend .shadow     { position:absolute; bottom:30%; left:38%; width:60px; height:8px; background: radial-gradient(ellipse, #0a0604 0%, transparent 70%); animation: nf-shadow 8s ease-in-out infinite; }
.scn-notes-frend .dust       { position:absolute; top:10%; left:10%; width:4px; height:4px; background: rgba(200,180,140,.3); border-radius:50%; filter: blur(2px); animation: nf-dust 25s linear infinite; box-shadow: 20px 30px 0 2px rgba(200,180,140,.2), 70px 50px 0 1px rgba(200,180,140,.25), 120px 80px 0 3px rgba(200,180,140,.15); }
@keyframes nf-figure { 0%{transform: translateY(0) rotate(0deg)} 50%{transform: translateY(-2px) rotate(1deg)} 100%{transform: translateY(1px) rotate(-1deg)} }
@keyframes nf-book   { 0%{transform: rotate(-5deg) translateX(0)} 50%{transform: rotate(-3deg) translateX(2px)} 100%{transform: rotate(-5deg) translateX(0)} }
@keyframes nf-glow   { 0%{opacity:.6; box-shadow: 0 -8px 20px 4px #c08030, 0 -16px 40px 8px rgba(192,128,48,.3)} 50%{opacity:1; box-shadow: 0 -8px 30px 8px #e0b040, 0 -16px 60px 16px rgba(224,176,64,.5)} 100%{opacity:.7; box-shadow: 0 -8px 20px 5px #c08030, 0 -16px 40px 10px rgba(192,128,48,.35)} }
@keyframes nf-shadow { 0%{transform: scaleX(1); opacity:.5} 50%{transform: scaleX(1.1); opacity:.7} 100%{transform: scaleX(1); opacity:.5} }
@keyframes nf-dust   { 0%{transform: translateY(0) rotate(0deg); opacity:.1} 50%{opacity:.3} 100%{transform: translateY(-100px) rotate(120deg); opacity:0} }

.scn-notes-take-inn {
  background:
    radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1410 0%, #0f0a06 50%, #050302 100%);
}
.scn-notes-take-inn .wall            { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1f14 0%, #1f140e 100%); border-radius: 0 0 20% 20%; }
.scn-notes-take-inn .window          { position:absolute; top:12%; left:20%; width:45px; height:60px; background: linear-gradient(180deg, #2a4a5a 0%, #1a3a4a 100%); border: 4px solid #4a3020; border-radius:6px; box-shadow: inset 0 0 20px rgba(160,200,220,.2); animation: ti-window 15s ease-in-out infinite alternate; }
.scn-notes-take-inn .moon            { position:absolute; top:6%; left:24%; width:20px; height:20px; background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(176,192,208,.5); animation: ti-moon 20s ease-in-out infinite; }
.scn-notes-take-inn .bed             { position:absolute; bottom:22%; left:30%; width:120px; height:40px; background: linear-gradient(180deg, #4a3520 0%, #2a1f14 100%); border-radius: 10px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-notes-take-inn .figure-sleeping { position:absolute; bottom:24%; left:35%; width:50px; height:30px; background: linear-gradient(180deg, #2a1f14 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: ti-sleep 7s ease-in-out infinite; }
.scn-notes-take-inn .lamp            { position:absolute; bottom:26%; right:25%; width:8px; height:12px; background: linear-gradient(180deg, #d0a070 0%, #8a6030 100%); border-radius: 3px; }
.scn-notes-take-inn .dew-drops       { position:absolute; top:40%; left:10%; width:6px; height:6px; background: rgba(200,220,240,.3); border-radius:50%; filter: blur(3px); animation: ti-dew 30s linear infinite; box-shadow: 40px 20px 0 2px rgba(200,220,240,.2), 90px 60px 0 1px rgba(200,220,240,.15); }
.scn-notes-take-inn .prayer-beads    { position:absolute; bottom:30%; left:45%; width:20px; height:6px; background: repeating-linear-gradient(90deg, #6a4a2a 0px, #6a4a2a 3px, transparent 3px, transparent 5px); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ti-beads 12s ease-in-out infinite alternate; }
@keyframes ti-window { 0% {opacity:.6; transform: scaleY(1)} 50% {opacity:.9; transform: scaleY(1.02)} 100% {opacity:.7; transform: scaleY(1)} }
@keyframes ti-moon   { 0% {transform: translate(0,0); opacity:.7} 50% {transform: translate(3px,-2px); opacity:1} 100% {transform: translate(-1px,1px); opacity:.8} }
@keyframes ti-sleep  { 0% {transform: rotate(10deg) translateY(0)} 50% {transform: rotate(8deg) translateY(-1px)} 100% {transform: rotate(10deg) translateY(0)} }
@keyframes ti-dew    { 0% {transform: translateY(0) rotate(0deg); opacity:.1} 50% {opacity:.3} 100% {transform: translateY(-80px) rotate(100deg); opacity:0} }
@keyframes ti-beads  { 0% {transform: translateX(0)} 50% {transform: translateX(2px)} 100% {transform: translateX(-1px)} }

.scn-notes-magic-books {
  background:
    radial-gradient(ellipse at 70% 50%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #0f0a06 0%, #1a1410 40%, #2a1f14 100%);
}
.scn-notes-magic-books .floor        { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1f14 0%, #0f0a06 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
.scn-notes-magic-books .table        { position:absolute; bottom:15%; left:10%; width:160px; height:60px; background: linear-gradient(180deg, #4a3520 0%, #2a1f14 100%); border-radius: 4px; box-shadow: 0 6px 15px rgba(0,0,0,.6); }
.scn-notes-magic-books .books-stack  { position:absolute; bottom:25%; left:20%; width:40px; height:50px; background: linear-gradient(135deg, #5a4030 0%, #2a1f14 100%); border-radius: 2px; box-shadow: 4px 4px 0 #1f140e; animation: mb-books 14s ease-in-out infinite alternate; }
.scn-notes-magic-books .monk         { position:absolute; bottom:18%; left:45%; width:45px; height:80px; background: linear-gradient(180deg, #2a1f14 0%, #1a1410 100%); border-radius: 45% 45% 35% 35% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mb-monk 9s ease-in-out infinite; }
.scn-notes-magic-books .candle       { position:absolute; bottom:32%; left:55%; width:6px; height:16px; background: linear-gradient(180deg, #c8a060 0%, #8a6030 100%); border-radius: 3px 3px 2px 2px; }
.scn-notes-magic-books .glow         { position:absolute; bottom:32%; left:55%; width:6px; height:16px; background: radial-gradient(ellipse at 50% 0%, #e0b040 0%, transparent 85%); filter: blur(3px); box-shadow: 0 -8px 20px 6px #c08030; animation: mb-glow 3.5s ease-in-out infinite alternate; }
.scn-notes-magic-books .pentagram    { position:absolute; bottom:5%; left:5%; width:60px; height:60px; border: 2px solid rgba(180,140,80,.4); border-radius: 50%; background: radial-gradient(circle, transparent 40%, rgba(180,140,80,.1) 60%); transform: rotate(0deg); animation: mb-pentagram 40s linear infinite; }
.scn-notes-magic-books .vapour       { position:absolute; bottom:36%; left:53%; width:20px; height:20px; background: radial-gradient(ellipse, rgba(200,180,140,.2) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: mb-vapour 12s ease-in-out infinite; }
@keyframes mb-books    { 0% {transform: translateY(0) rotate(-2deg)} 50% {transform: translateY(-2px) rotate(1deg)} 100% {transform: translateY(1px) rotate(0deg)} }
@keyframes mb-monk     { 0% {transform: translateY(0) rotate(0deg)} 50% {transform: translateY(-1px) rotate(0.5deg)} 100% {transform: translateY(1px) rotate(-0.5deg)} }
@keyframes mb-glow     { 0% {opacity:.5; box-shadow: 0 -8px 20px 4px #c08030} 50% {opacity:1; box-shadow: 0 -8px 30px 8px #e0b040} 100% {opacity:.6; box-shadow: 0 -8px 20px 5px #c08030} }
@keyframes mb-pentagram{ 0% {transform: rotate(0deg); opacity:.3} 50% {opacity:.5} 100% {transform: rotate(360deg); opacity:.3} }
@keyframes mb-vapour   { 0% {transform: translate(0,0) scale(1); opacity:.2} 50% {transform: translate(-5px,-20px) scale(1.5); opacity:.4} 100% {transform: translate(3px,-40px) scale(0.8); opacity:0} }

.scn-notes-proserpine {
  background:
    radial-gradient(ellipse at 60% 40%, #2a1f14 0%, transparent 60%),
    linear-gradient(180deg, #0f0a06 0%, #2a1f14 40%, #1a1410 100%);
}
.scn-notes-proserpine .cave-wall { position:absolute; inset:0 0 10% 0; background: linear-gradient(135deg, #2a1f14 0%, #1a1410 50%, #0f0a06 100%); border-radius: 0 0 40% 40% / 0 0 15% 15%; }
.scn-notes-proserpine .torch     { position:absolute; bottom:30%; left:50%; width:8px; height:30px; background: linear-gradient(180deg, #8a6030 0%, #4a3020 100%); border-radius: 3px; transform: rotate(5deg); }
.scn-notes-proserpine .glow      { position:absolute; bottom:30%; left:50%; width:8px; height:30px; background: radial-gradient(ellipse at 50% 0%, #e08040 0%, transparent 80%); filter: blur(5px); box-shadow: 0 -10px 30px 8px #c06030, 0 -20px 60px 16px rgba(192,96,48,.4); animation: pp-glow 4s ease-in-out infinite alternate; }
.scn-notes-proserpine .figure    { position:absolute; bottom:18%; left:35%; width:50px; height:90px; background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pp-figure 10s ease-in-out infinite; }
.scn-notes-proserpine .crown     { position:absolute; bottom:73%; left:38%; width:30px; height:12px; background: repeating-linear-gradient(90deg, #6a4a2a 0px, #6a4a2a 3px, transparent 3px, transparent 6px); border-radius: 8px 8px 0 0; box-shadow: 0 -2px 6px rgba(180,140,80,.5); animation: pp-crown 6s ease-in-out infinite alternate; }
.scn-notes-proserpine .vines     { position:absolute; bottom:10%; left:10%; width:40px; height:20px; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; filter: blur(3px); animation: pp-vines 20s ease-in-out infinite alternate; }
.scn-notes-proserpine .shadow    { position:absolute; bottom:16%; left:34%; width:60px; height:10px; background: radial-gradient(ellipse, #0a0604 0%, transparent 70%); opacity:.6; animation: pp-shadow 10s ease-in-out infinite; }
.scn-notes-proserpine .sparks    { position:absolute; top:20%; left:45%; width:4px; height:4px; background: rgba(224,160,80,.3); border-radius: 50%; filter: blur(2px); animation: pp-sparks 8s linear infinite; box-shadow: 10px -20px 0 1px rgba(224,160,80,.2), 30px -10px 0 2px rgba(224,160,80,.15); }
@keyframes pp-glow   { 0% {opacity:.5; box-shadow: 0 -10px 30px 6px #c06030} 50% {opacity:1; box-shadow: 0 -10px 40px 10px #e08040} 100% {opacity:.6; box-shadow: 0 -10px 30px 8px #c06030} }
@keyframes pp-figure { 0% {transform: translateY(0) rotate(0deg)} 50% {transform: translateY(-3px) rotate(1deg)} 100% {transform: translateY(0) rotate(-1deg)} }
@keyframes pp-crown  { 0% {transform: translateY(0) scaleX(1)} 50% {transform: translateY(-1px) scaleX(1.05)} 100% {transform: translateY(0) scaleX(1)} }
@keyframes pp-vines  { 0% {transform: translateX(0) scaleY(1)} 50% {transform: translateX(3px) scaleY(1.05)} 100% {transform: translateX(-2px) scaleY(0.95)} }
@keyframes pp-shadow { 0% {transform: scaleX(1); opacity:.4} 50% {transform: scaleX(1.15); opacity:.7} 100% {transform: scaleX(1); opacity:.4} }
@keyframes pp-sparks { 0% {transform: translateY(0) rotate(0deg); opacity:.1} 50% {opacity:.3} 100% {transform: translateY(-60px) rotate(100deg); opacity:0} }

.scn-age-productive-faerie-queene {
  background: linear-gradient(180deg, #e3d7c0 0%, #c8b898 40%, #a58a6a 100%), radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.4) 0%, transparent 70%);
}
.scn-age-productive-faerie-queene .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4c5a0 0%, #b8a070 100%); animation: fp-wall 20s ease-in-out infinite alternate;
}
.scn-age-productive-faerie-queene .window-frame {
  position: absolute; top: 8%; left: 65%; width: 20%; height: 35%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); animation: fp-frame 12s ease-in-out infinite alternate;
}
.scn-age-productive-faerie-queene .window-pane {
  position: absolute; top: 11%; left: 67%; width: 16%; height: 30%; background: linear-gradient(135deg, rgba(255,240,200,0.5) 0%, rgba(200,180,120,0.3) 100%), radial-gradient(circle at 30% 40%, #fff4d0 0%, #c8b878 50%, transparent 70%); border-radius: 3%; animation: fp-pane 8s ease-in-out infinite alternate;
}
.scn-age-productive-faerie-queene .desk {
  position: absolute; bottom: 10%; left: 8%; width: 50%; height: 12%; background: linear-gradient(180deg, #6b4a2a 0%, #3a2510 100%); border-radius: 2% 2% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: fp-desk 10s ease-in-out infinite;
}
.scn-age-productive-faerie-queene .book-a {
  position: absolute; bottom: 18%; left: 14%; width: 10%; height: 8%; background: linear-gradient(135deg, #b04030 0%, #602010 100%); border-radius: 2% 8% 8% 2%; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: fp-book-a 14s ease-in-out infinite alternate;
}
.scn-age-productive-faerie-queene .book-b {
  position: absolute; bottom: 20%; left: 28%; width: 12%; height: 6%; background: linear-gradient(135deg, #407050 0%, #204030 100%); border-radius: 2% 10% 10% 2%; transform: rotate(2deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: fp-book-b 18s ease-in-out infinite alternate;
}
.scn-age-productive-faerie-queene .candle {
  position: absolute; bottom: 22%; left: 46%; width: 3%; height: 12%; background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 100%); border-radius: 30% 30% 10% 10%; animation: fp-candle 6s ease-in-out infinite;
}
.scn-age-productive-faerie-queene .flame {
  position: absolute; bottom: 33%; left: 46.5%; width: 2%; height: 6%; background: radial-gradient(circle, #ffc860 0%, #ff8020 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 16px rgba(255,160,64,0.4); animation: fp-flame 2s ease-in-out infinite alternate;
}
.scn-age-productive-faerie-queene .armchair {
  position: absolute; bottom: 0; left: 55%; width: 28%; height: 22%; background: linear-gradient(180deg, #704020 0%, #401800 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); animation: fp-chair 15s ease-in-out infinite alternate;
}
@keyframes fp-wall { 0% { opacity: 0.9; filter: brightness(1); } 50% { opacity: 1; filter: brightness(1.05); } 100% { opacity: 0.95; filter: brightness(0.95); } }
@keyframes fp-frame { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.3); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.4); } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,0.2); } }
@keyframes fp-pane { 0% { background: linear-gradient(135deg, rgba(255,240,200,0.5) 0%, rgba(200,180,120,0.3) 100%), radial-gradient(circle at 30% 40%, #fff4d0 0%, #c8b878 50%, transparent 70%); } 50% { background: linear-gradient(135deg, rgba(255,240,200,0.6) 0%, rgba(210,190,130,0.4) 100%), radial-gradient(circle at 30% 40%, #fff8e0 0%, #d0c080 50%, transparent 70%); } 100% { background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, rgba(190,170,110,0.2) 100%), radial-gradient(circle at 30% 40%, #f8e8c0 0%, #b8a868 50%, transparent 70%); } }
@keyframes fp-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes fp-book-a { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-7deg) translateY(0); } }
@keyframes fp-book-b { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes fp-candle { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes fp-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.85; } }
@keyframes fp-chair { 0% { transform: scale(1); } 50% { transform: scale(1.005); } 100% { transform: scale(0.995); } }

.scn-three-national-conditions {
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a080 30%, #8a6a50 70%, #604030 100%), radial-gradient(ellipse at 50% 20%, rgba(255,230,180,0.3) 0%, transparent 60%);
}
.scn-three-national-conditions .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 10% 10% 0 0; animation: nc-floor 15s ease-in-out infinite alternate;
}
.scn-three-national-conditions .pillar-left {
  position: absolute; bottom: 20%; left: 12%; width: 12%; height: 70%; background: linear-gradient(90deg, #b8a080 0%, #d4c4a0 30%, #c0b090 50%, #a08868 80%, #8a6a50 100%); border-radius: 5% 5% 2% 2%; box-shadow: inset -5px 0 10px rgba(0,0,0,0.2); animation: nc-pillar-l 12s ease-in-out infinite;
}
.scn-three-national-conditions .pillar-center {
  position: absolute; bottom: 20%; left: 44%; width: 12%; height: 80%; background: linear-gradient(90deg, #c0b090 0%, #dcc8a8 30%, #c8b498 50%, #b09878 80%, #907058 100%); border-radius: 5% 5% 2% 2%; box-shadow: inset -5px 0 10px rgba(0,0,0,0.2); animation: nc-pillar-c 14s ease-in-out infinite;
}
.scn-three-national-conditions .pillar-right {
  position: absolute; bottom: 20%; left: 76%; width: 12%; height: 65%; background: linear-gradient(90deg, #a08868 0%, #b8a080 30%, #a89070 50%, #907060 80%, #705040 100%); border-radius: 5% 5% 2% 2%; box-shadow: inset -5px 0 10px rgba(0,0,0,0.2); animation: nc-pillar-r 16s ease-in-out infinite;
}
.scn-three-national-conditions .banner-left {
  position: absolute; top: 10%; left: 10%; width: 16%; height: 30%; background: linear-gradient(180deg, #c04040 0%, #802020 50%, #501010 100%); border-radius: 2% 2% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: nc-banner-l 8s ease-in-out infinite alternate;
}
.scn-three-national-conditions .banner-center {
  position: absolute; top: 6%; left: 42%; width: 16%; height: 35%; background: linear-gradient(180deg, #4060a0 0%, #203070 50%, #101840 100%); border-radius: 2% 2% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: nc-banner-c 10s ease-in-out infinite alternate;
}
.scn-three-national-conditions .banner-right {
  position: absolute; top: 12%; left: 74%; width: 16%; height: 28%; background: linear-gradient(180deg, #60a040 0%, #307020 50%, #104010 100%); border-radius: 2% 2% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: nc-banner-r 9s ease-in-out infinite alternate;
}
.scn-three-national-conditions .torch-left {
  position: absolute; bottom: 35%; left: 16%; width: 4%; height: 12%; background: linear-gradient(180deg, #c8a060 0%, #7a5020 100%); border-radius: 20% 20% 5% 5%; animation: nc-torch-l 5s ease-in-out infinite;
}
.scn-three-national-conditions .torch-right {
  position: absolute; bottom: 35%; left: 80%; width: 4%; height: 12%; background: linear-gradient(180deg, #c8a060 0%, #7a5020 100%); border-radius: 20% 20% 5% 5%; animation: nc-torch-r 6s ease-in-out infinite;
}
@keyframes nc-floor { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes nc-pillar-l { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-2px); } }
@keyframes nc-pillar-c { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.015) translateY(-3px); } }
@keyframes nc-pillar-r { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes nc-banner-l { 0% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.05); } 100% { transform: rotate(2deg) scaleX(1); } }
@keyframes nc-banner-c { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.03); } 100% { transform: rotate(-2deg) scaleX(1); } }
@keyframes nc-banner-r { 0% { transform: rotate(3deg) scaleX(1); } 50% { transform: rotate(-1deg) scaleX(1.04); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes nc-torch-l { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-2px); } }
@keyframes nc-torch-r { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.15) translateY(-1px); } }

.scn-reaction-toward-romanticism {
  background: linear-gradient(180deg, #e8d8b0 0%, #c8a870 40%, #906040 70%, #503020 100%), radial-gradient(ellipse at 50% 100%, rgba(220,180,100,0.3) 0%, transparent 60%);
}
.scn-reaction-toward-romanticism .hall-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4b888 0%, #b08858 100%); animation: rt-wall 18s ease-in-out infinite alternate;
}
.scn-reaction-toward-romanticism .dais {
  position: absolute; bottom: 0; left: 25%; width: 50%; height: 18%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); animation: rt-dais 12s ease-in-out infinite;
}
.scn-reaction-toward-romanticism .noble {
  position: absolute; bottom: 15%; left: 44%; width: 12%; height: 40%; background: linear-gradient(180deg, #d4b888 0%, #b08858 40%, #705040 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: rt-noble 10s ease-in-out infinite;
}
.scn-reaction-toward-romanticism .cloak {
  position: absolute; bottom: 15%; left: 42%; width: 16%; height: 35%; background: linear-gradient(180deg, #804020 0%, #502010 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: rt-cloak 8s ease-in-out infinite alternate;
}
.scn-reaction-toward-romanticism .collar {
  position: absolute; bottom: 47%; left: 46%; width: 8%; height: 6%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%); border-radius: 50%; animation: rt-collar 6s ease-in-out infinite;
}
.scn-reaction-toward-romanticism .medallion {
  position: absolute; bottom: 35%; left: 48%; width: 4%; height: 6%; background: radial-gradient(circle, #f0d080 0%, #b08030 50%, #604010 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(240,208,128,0.5); animation: rt-medallion 5s ease-in-out infinite alternate;
}
.scn-reaction-toward-romanticism .tapestry {
  position: absolute; top: 5%; left: 10%; width: 30%; height: 50%; background: linear-gradient(180deg, #6050a0 0%, #403080 50%, #201050 100%), radial-gradient(circle at 50% 30%, #8070c0 0%, transparent 60%); border-radius: 2%; box-shadow: 0 8px 20px rgba(0,0,0,0.3); animation: rt-tapestry 20s ease-in-out infinite alternate;
}
.scn-reaction-toward-romanticism .candle-bracket {
  position: absolute; top: 10%; left: 5%; width: 6%; height: 10%; background: linear-gradient(180deg, #8a6a50 0%, #503020 100%); border-radius: 20% 20% 5% 5%; animation: rt-bracket 7s ease-in-out infinite;
}
@keyframes rt-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes rt-dais { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes rt-noble { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes rt-cloak { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.05) rotate(2deg); } 100% { transform: scaleX(0.95) rotate(-2deg); } }
@keyframes rt-collar { 0%,100% { transform: scale(1); } 50% { transform: scale(1.1) translateY(-1px); } }
@keyframes rt-medallion { 0% { box-shadow: 0 0 8px 2px rgba(240,208,128,0.5); } 50% { box-shadow: 0 0 16px 6px rgba(240,208,128,0.7); } 100% { box-shadow: 0 0 4px 1px rgba(240,208,128,0.3); } }
@keyframes rt-tapestry { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.01); } 100% { opacity: 0.85; transform: scaleY(0.99); } }
@keyframes rt-bracket { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-2px); } }

.scn-gallant-courtiers-and-sea-kings {
  background: linear-gradient(180deg, #87ceeb 0%, #6bb3d9 30%, #4a90a8 60%, #2c5f6e 100%), radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.4) 0%, transparent 60%);
}
.scn-gallant-courtiers-and-sea-kings .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #7ec8e3 0%, #a4d8f0 30%, #d4e8f0 60%, #f0e8d0 100%); animation: cs-sky 20s ease-in-out infinite alternate;
}
.scn-gallant-courtiers-and-sea-kings .sea {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3c7a8a 0%, #2a5060 50%, #1a3038 100%); border-radius: 20% 20% 0 0; animation: cs-sea 15s ease-in-out infinite;
}
.scn-gallant-courtiers-and-sea-kings .shore {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #d4b888 0%, #b09060 50%, #8a6a40 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.2); animation: cs-shore 12s ease-in-out infinite alternate;
}
.scn-gallant-courtiers-and-sea-kings .ship-fore {
  position: absolute; bottom: 20%; left: 10%; width: 20%; height: 30%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 5% 5% 40% 40%; animation: cs-ship-f 18s ease-in-out infinite;
}
.scn-gallant-courtiers-and-sea-kings .ship-aft {
  position: absolute; bottom: 25%; right: 15%; width: 15%; height: 25%; background: linear-gradient(180deg, #4a2a18 0%, #2a1808 100%); border-radius: 5% 5% 40% 40%; animation: cs-ship-a 22s ease-in-out infinite;
}
.scn-gallant-courtiers-and-sea-kings .sail-1 {
  position: absolute; bottom: 30%; left: 14%; width: 8%; height: 20%; background: linear-gradient(90deg, #f0e0c0 0%, #d0b898 100%); border-radius: 5% 5% 20% 20%; transform: rotate(-10deg); animation: cs-sail1 8s ease-in-out infinite alternate;
}
.scn-gallant-courtiers-and-sea-kings .sail-2 {
  position: absolute; bottom: 35%; left: 20%; width: 6%; height: 16%; background: linear-gradient(90deg, #e8d8b0 0%, #c8a878 100%); border-radius: 5% 5% 20% 20%; transform: rotate(-15deg); animation: cs-sail2 10s ease-in-out infinite alternate;
}
.scn-gallant-courtiers-and-sea-kings .courtier-a {
  position: absolute; bottom: 5%; left: 30%; width: 6%; height: 18%; background: linear-gradient(180deg, #c8a878 0%, #a08058 50%, #705038 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: cs-court-a 14s ease-in-out infinite;
}
.scn-gallant-courtiers-and-sea-kings .courtier-b {
  position: absolute; bottom: 5%; left: 40%; width: 6%; height: 20%; background: linear-gradient(180deg, #b89868 0%, #907048 50%, #604028 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: cs-court-b 16s ease-in-out infinite;
}
@keyframes cs-sky { 0% { opacity: 0.9; background-position: 0% 0%; } 50% { opacity: 1; background-position: 10% 5%; } 100% { opacity: 0.85; background-position: -5% -2%; } }
@keyframes cs-sea { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes cs-shore { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(1px); } }
@keyframes cs-ship-f { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes cs-ship-a { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes cs-sail1 { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(1.05); } 100% { transform: rotate(-15deg) scaleX(0.95); } }
@keyframes cs-sail2 { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.1); } 100% { transform: rotate(-20deg) scaleX(0.9); } }
@keyframes cs-court-a { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes cs-court-b { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(1deg); } }

/* Scene: una-wakes-alone */
.scn-una-wakes-alone {
  background: linear-gradient(180deg, #6b5a4d 0%, #a48c78 20%, #c9b5a2 40%, #dfd0c0 60%, #f2e8dc 80%, #faf3ea 100%),
              radial-gradient(ellipse at 50% 0%, #f7e8d8 0%, transparent 70%);
}
.scn-una-wakes-alone .dawn-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b08d7a 0%, #d9c5b5 30%, #f0e0d0 60%, #fdf6ee 100%);
  animation: uwa-sky 20s ease-in-out infinite alternate;
}
.scn-una-wakes-alone .distant-hill {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a6b5d 0%, #5a4a3a 100%);
  border-radius: 70% 30% 0 0 / 100% 60% 0 0;
  transform: scaleY(1.2);
  animation: uwa-hills 15s ease-in-out infinite alternate;
}
.scn-una-wakes-alone .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4d3e2e 0%, #2e231a 100%);
}
.scn-una-wakes-alone .figure-una {
  position: absolute; bottom: 28%; left: 60%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uwa-figure 6s ease-in-out infinite;
}
.scn-una-wakes-alone .bed-cover {
  position: absolute; bottom: 25%; left: 55%; width: 40px; height: 20px;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10% 10% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-una-wakes-alone .lonely-tree {
  position: absolute; bottom: 40%; left: 20%; width: 8px; height: 60px;
  background: linear-gradient(0deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
}
.scn-una-wakes-alone .lonely-tree::after {
  content: ''; position: absolute; top: -20px; left: -12px; width: 30px; height: 30px;
  background: radial-gradient(circle at 50% 0%, #4a5a3a 0%, #2a3a2a 60%, transparent 100%);
  border-radius: 50%;
}
.scn-una-wakes-alone .cloud-a {
  position: absolute; top: 15%; left: 10%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,240,220,.6) 0%, rgba(255,240,220,.1) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: uwa-drift-a 40s linear infinite;
}
.scn-una-wakes-alone .cloud-b {
  position: absolute; top: 10%; right: 20%; width: 50px; height: 12px;
  background: linear-gradient(180deg, rgba(255,240,220,.45) 0%, rgba(255,240,220,.05) 100%);
  border-radius: 50%; filter: blur(3px);
  animation: uwa-drift-b 55s linear infinite reverse;
}
@keyframes uwa-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes uwa-hills {
  0% { transform: translateY(0) scaleY(1.2); }
  50% { transform: translateY(-4px) scaleY(1.18); }
  100% { transform: translateY(0) scaleY(1.2); }
}
@keyframes uwa-figure {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(4px) rotate(-2deg) scaleY(1.01); }
  50% { transform: translateX(0) rotate(0deg) scaleY(1); }
  75% { transform: translateX(-4px) rotate(2deg) scaleY(1.01); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes uwa-drift-a {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}
@keyframes uwa-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

/* Scene: una-seeks-knight */
.scn-una-seeks-knight {
  background: linear-gradient(180deg, #8a7a6a 0%, #b09888 30%, #d0c0b0 60%, #e8ddd0 100%),
              radial-gradient(ellipse at 50% 0%, #f0e0d0 0%, transparent 60%);
}
.scn-una-seeks-knight .riding-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a6b5d 0%, #b09888 40%, #d8c8b8 80%, #ede0d0 100%);
  animation: usk-sky 18s ease-in-out infinite alternate;
}
.scn-una-seeks-knight .road {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e231a 100%);
  clip-path: polygon(0% 20%, 100% 0%, 100% 100%, 0% 80%);
  transform-origin: bottom;
  animation: usk-road 4s ease-in-out infinite;
}
.scn-una-seeks-knight .horse-body {
  position: absolute; bottom: 35%; left: 40%; width: 80px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 30% 40% 50% / 60% 50% 50% 60%;
  transform-origin: center bottom;
  animation: usk-horse 2s ease-in-out infinite;
}
.scn-una-seeks-knight .horse-legs {
  position: absolute; bottom: 28%; left: 42%; width: 60px; height: 30px;
  background: transparent;
  animation: usk-legs 1.5s ease-in-out infinite;
}
.scn-una-seeks-knight .horse-legs::before,
.scn-una-seeks-knight .horse-legs::after {
  content: ''; position: absolute; bottom: 0;
  width: 8px; height: 25px;
  background: linear-gradient(0deg, #2a1a0a 0%, #4a3a2a 100%);
  border-radius: 2px;
}
.scn-una-seeks-knight .horse-legs::before { left: 10%; }
.scn-una-seeks-knight .horse-legs::after { left: 70%; }
@keyframes usk-legs {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-10deg); }
}
.scn-una-seeks-knight .rider {
  position: absolute; bottom: 55%; left: 43%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: usk-rider 2s ease-in-out infinite;
}
.scn-una-seeks-knight .rider-cloak {
  position: absolute; bottom: 50%; left: 42%; width: 30px; height: 35px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%;
  transform-origin: top center;
  animation: usk-cloak 3s ease-in-out infinite;
}
.scn-una-seeks-knight .dust {
  position: absolute; bottom: 20%; left: 35%; width: 100px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: usk-dust 1.5s ease-out infinite;
}
.scn-una-seeks-knight .blur-tree {
  position: absolute; bottom: 40%; left: 70%; width: 10px; height: 80px;
  background: linear-gradient(0deg, #3a2a1a 0%, #2a1a0a 100%);
  filter: blur(3px);
  animation: usk-tree 6s linear infinite;
}
@keyframes usk-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes usk-road {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}
@keyframes usk-horse {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes usk-rider {
  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 usk-cloak {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(-5deg) scaleX(1.1); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes usk-dust {
  0% { transform: translateX(0) scaleY(1); opacity: 0.6; }
  50% { transform: translateX(20px) scaleY(2); opacity: 0.3; }
  100% { transform: translateX(50px) scaleY(3); opacity: 0; }
}
@keyframes usk-tree {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-5px) scaleX(1.2); }
  100% { transform: translateX(0) scaleX(1); }
}

/* Scene: archimago-delighted */
.scn-archimago-delighted {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 30%, #1a2a3a 60%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a4a 0%, transparent 60%);
}
.scn-archimago-delighted .cave-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, #0a0a1a 80%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: ard-cave 25s ease-in-out infinite alternate;
}
.scn-archimago-delighted .cave-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 50%, rgba(0,0,0,.5) 0%, transparent 60%);
  animation: ard-shadow 12s ease-in-out infinite alternate;
}
.scn-archimago-delighted .archimago-figure {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(100,50,150,.3);
  animation: ard-figure 8s ease-in-out infinite;
}
.scn-archimago-delighted .archimago-cloak {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #3a2a5a 0%, #1a0a2a 100%);
  border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%;
  transform-origin: top center;
  animation: ard-cloak 6s ease-in-out infinite;
}
.scn-archimago-delighted .glowing-orb {
  position: absolute; bottom: 55%; left: 55%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 40%, #8a6a3a 0%, #5a3a1a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(138,106,58,.5), 0 0 60px 20px rgba(90,58,26,.3);
  animation: ard-orb 4s ease-in-out infinite alternate;
}
.scn-archimago-delighted .smoke {
  position: absolute; bottom: 50%; left: 40%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(100,80,120,.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: ard-smoke 10s ease-in-out infinite;
}
@keyframes ard-cave {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ard-shadow {
  0% { opacity: 0.5; transform: scale(0.95); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes ard-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-3px) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes ard-cloak {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(-8deg) scaleX(1.2); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes ard-orb {
  0% { box-shadow: 0 0 20px 5px rgba(138,106,58,.4), 0 0 40px 10px rgba(90,58,26,.2); }
  50% { box-shadow: 0 0 40px 15px rgba(200,160,80,.6), 0 0 80px 25px rgba(138,106,58,.4); transform: scale(1.05); }
  100% { box-shadow: 0 0 20px 5px rgba(138,106,58,.4), 0 0 40px 10px rgba(90,58,26,.2); }
}
@keyframes ard-smoke {
  0% { transform: translateY(0) scaleX(1) rotate(0deg); opacity: 0.3; }
  50% { transform: translateY(-15px) scaleX(1.5) rotate(10deg); opacity: 0.6; }
  100% { transform: translateY(0) scaleX(1) rotate(0deg); opacity: 0.3; }
}

/* Scene: archimago-disguises */
.scn-archimago-disguises {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 30%, #1a2a3a 60%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a4a 0%, transparent 70%);
}
.scn-archimago-disguises .dawn-mist {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(40,30,50,.3) 0%, rgba(20,15,30,.5) 50%, rgba(10,5,20,.8) 100%);
  animation: ardi-mist 30s ease-in-out infinite alternate;
}
.scn-archimago-disguises .archimago-core {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 65px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px 3px rgba(100,50,150,.4);
  animation: ardi-core 10s ease-in-out infinite;
}
.scn-archimago-disguises .form-fox {
  position: absolute; bottom: 40%; left: 20%; width: 35px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 30% 30% 50% / 40% 30% 30% 40%;
  transform: rotate(-15deg);
  animation: ardi-fox 7s ease-in-out infinite;
}
.scn-archimago-disguises .form-fox::after {
  content: ''; position: absolute; top: -10px; left: 20px;
  width: 10px; height: 10px;
  background: #6a4a2a;
  border-radius: 50%;
}
.scn-archimago-disguises .form-fish {
  position: absolute; bottom: 30%; left: 70%; width: 40px; height: 15px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: ardi-fish 9s ease-in-out infinite;
}
.scn-archimago-disguises .form-fish::after {
  content: ''; position: absolute; right: -8px; top: -2px;
  width: 12px; height: 8px;
  background: #3a4a5a;
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
}
.scn-archimago-disguises .form-dragon {
  position: absolute; bottom: 50%; left: 10%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 20% 50% 20% 50% / 40% 60% 40% 60%;
  transform: rotate(-20deg);
  animation: ardi-dragon 12s ease-in-out infinite;
}
.scn-archimago-disguises .form-dragon::before {
  content: ''; position: absolute; top: -8px; left: 10px;
  width: 8px; height: 12px;
  background: #2a3a3a;
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
}
.scn-archimago-disguises .form-ghost {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(150,130,180,.15) 0%, transparent 70%);
  filter: blur(5px);
  animation: ardi-ghost 8s ease-in-out infinite;
}
.scn-archimago-disguises .glint {
  position: absolute; bottom: 45%; left: 45%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c0a070 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(192,160,112,.5);
  animation: ardi-glint 3s ease-in-out infinite alternate;
}
@keyframes ardi-mist {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes ardi-core {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-2px) scale(1.02); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes ardi-fox {
  0% { transform: translateX(0) rotate(-15deg) scaleX(1); }
  33% { transform: translateX(10px) rotate(-10deg) scaleX(0.9); }
  66% { transform: translateX(-5px) rotate(-20deg) scaleX(1.1); }
  100% { transform: translateX(0) rotate(-15deg) scaleX(1); }
}
@keyframes ardi-fish {
  0% { transform: translateX(0) rotate(10deg) scaleX(1); }
  33% { transform: translateX(-8px) rotate(5deg) scaleX(0.9); }
  66% { transform: translateX(8px) rotate(15deg) scaleX(1.1); }
  100% { transform: translateX(0) rotate(10deg) scaleX(1); }
}
@keyframes ardi-dragon {
  0% { transform: translateX(0) rotate(-20deg) scale(1); }
  50% { transform: translateX(15px) rotate(-10deg) scale(1.1); }
  100% { transform: translateX(0) rotate(-20deg) scale(1); }
}
@keyframes ardi-ghost {
  0% { transform: translateY(0) scaleY(1) rotate(0deg); opacity: 0.3; }
  50% { transform: translateY(-10px) scaleY(1.5) rotate(5deg); opacity: 0.6; }
  100% { transform: translateY(0) scaleY(1) rotate(0deg); opacity: 0.3; }
}
@keyframes ardi-glint {
  0% { opacity: 0.5; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(2); }
  100% { opacity: 0.5; transform: scale(0.5); }
}

.scn-personal-allegory {
  background: linear-gradient(180deg, #f5e8c8 0%, #e4d4b0 40%, #c8b898 100%),
              radial-gradient(ellipse at 50% 20%, #fff6e0 0%, transparent 60%);
}
.scn-personal-allegory .bg-wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #e8dcc4 0%, #d4c4a8 100%);
  animation: pa1-wall 12s ease-in-out infinite alternate;
}
.scn-personal-allegory .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b8a48c 0%, #a08c74 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.15);
  animation: pa1-floor 12s ease-in-out infinite alternate;
}
.scn-personal-allegory .window-light {
  position: absolute; top: 12%; left: 60%; width: 22%; height: 35%;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #ffe8b0 50%, transparent 100%);
  border-radius: 8% 8% 4% 4% / 12% 12% 6% 6%;
  box-shadow: 0 0 60px 20px rgba(255,232,176,.5), 0 0 120px 40px rgba(255,232,176,.2);
  animation: pa1-light 5s ease-in-out infinite alternate;
}
.scn-personal-allegory .throne {
  position: absolute; bottom: 30%; left: 50%; width: 30%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c8a878 0%, #a08050 60%, #806030 100%);
  border-radius: 10% 10% 20% 20% / 15% 15% 30% 30%;
  box-shadow: 0 12px 24px rgba(0,0,0,.3);
  animation: pa1-throne 8s ease-in-out infinite;
}
.scn-personal-allegory .figure {
  position: absolute; bottom: 28%; left: 45%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: pa1-figure 6s ease-in-out infinite;
}
.scn-personal-allegory .cushion {
  position: absolute; bottom: 32%; left: 50%; width: 14%; height: 8%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #b07050 0%, #805030 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: pa1-cushion 8s ease-in-out infinite alternate;
}
.scn-personal-allegory .candle {
  position: absolute; bottom: 40%; left: 36%; width: 1.5%; height: 10%;
  background: linear-gradient(180deg, #f0d090 0%, #e0c080 80%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(240,208,144,.6);
  animation: pa1-candle 4s ease-in-out infinite alternate;
}
@keyframes pa1-wall {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .92; }
}
@keyframes pa1-floor {
  0% { opacity: .85; }
  50% { opacity: .95; }
  100% { opacity: .88; }
}
@keyframes pa1-light {
  0% { opacity: .7; transform: scale(1) translateY(0); }
  50% { opacity: 1; transform: scale(1.02) translateY(-2px); }
  100% { opacity: .8; transform: scale(.98) translateY(0); }
}
@keyframes pa1-throne {
  0% { transform: translateX(-50%) rotate(-.5deg); }
  50% { transform: translateX(-50%) rotate(0); }
  100% { transform: translateX(-50%) rotate(.5deg); }
}
@keyframes pa1-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(4px) rotate(-.5deg); }
  75% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes pa1-cushion {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.03); }
  100% { transform: translateX(-50%) scale(.97); }
}
@keyframes pa1-candle {
  0% { opacity: .8; box-shadow: 0 0 15px 5px rgba(240,208,144,.5); }
  50% { opacity: 1; box-shadow: 0 0 25px 10px rgba(240,208,144,.7); }
  100% { opacity: .85; box-shadow: 0 0 18px 6px rgba(240,208,144,.55); }
}

.scn-archimago-and-duessa-satire {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-archimago-and-duessa-satire .bg-darkwall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a0a 100%);
  animation: ads-wall 14s ease-in-out infinite alternate;
}
.scn-archimago-and-duessa-satire .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 8% 8% 4% 4% / 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: ads-table 10s ease-in-out infinite;
}
.scn-archimago-and-duessa-satire .candle-glow {
  position: absolute; bottom: 40%; left: 50%; width: 12%; height: 20%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #ffa050 0%, #ff8020 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,128,32,.6), 0 0 120px 60px rgba(255,128,32,.3);
  animation: ads-candle 6s ease-in-out infinite alternate;
}
.scn-archimago-and-duessa-satire .figure-archimago {
  position: absolute; bottom: 30%; left: 25%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 8px 16px rgba(0,0,0,.7);
  animation: ads-archimago 5s ease-in-out infinite;
}
.scn-archimago-and-duessa-satire .figure-duessa {
  position: absolute; bottom: 30%; right: 25%; width: 18%; height: 48%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 8px 16px rgba(0,0,0,.7);
  animation: ads-duessa 5s ease-in-out infinite reverse;
}
.scn-archimago-and-duessa-satire .shadow-layer {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, transparent 40%, rgba(0,0,0,.4) 100%);
  pointer-events: none;
  animation: ads-shadow 8s ease-in-out infinite alternate;
}
@keyframes ads-wall {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes ads-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ads-candle {
  0% { opacity: .8; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { opacity: .9; transform: translateX(-50%) scale(.98); }
}
@keyframes ads-archimago {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-.5deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ads-duessa {
  0% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(-2px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(.5deg); }
  75% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ads-shadow {
  0% { opacity: .5; }
  50% { opacity: .7; }
  100% { opacity: .6; }
}

.scn-key-to-allegory-continued {
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 50%, #0a0a0a 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a2a 0%, transparent 70%);
}
.scn-key-to-allegory-continued .bg-shelf {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 100%);
  border-bottom: 4px solid #3a2a1a;
  animation: kac-shelf 20s ease-in-out infinite alternate;
}
.scn-key-to-allegory-continued .desk {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2% / 8% 8% 4% 4%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.5);
  animation: kac-desk 15s ease-in-out infinite;
}
.scn-key-to-allegory-continued .book {
  position: absolute; bottom: 35%; left: 25%; width: 18%; height: 22%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 80%);
  border-radius: 4%;
  box-shadow: 2px 4px 8px rgba(0,0,0,.5);
  transform: rotate(-5deg);
  animation: kac-book 8s ease-in-out infinite alternate;
}
.scn-key-to-allegory-continued .cross {
  position: absolute; bottom: 45%; left: 45%; width: 6%; height: 25%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10%;
  box-shadow: 0 0 12px 4px rgba(200,180,140,.3);
  animation: kac-cross 12s ease-in-out infinite;
}
.scn-key-to-allegory-continued .crown {
  position: absolute; bottom: 40%; right: 20%; width: 15%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, #b09060 0%, #806040 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: kac-crown 7s ease-in-out infinite alternate;
}
.scn-key-to-allegory-continued .dragon-sigil {
  position: absolute; bottom: 30%; left: 10%; width: 12%; height: 18%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(50% 0%, 80% 30%, 100% 50%, 80% 80%, 50% 100%, 20% 80%, 0% 50%, 20% 30%);
  animation: kac-dragon 10s ease-in-out infinite;
}
.scn-key-to-allegory-continued .orb {
  position: absolute; bottom: 35%; right: 35%; width: 8%; height: 8%;
  background: radial-gradient(circle at 35% 35%, #c0a880 0%, #8a7050 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,168,128,.5);
  animation: kac-orb 6s ease-in-out infinite alternate;
}
@keyframes kac-shelf {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes kac-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes kac-book {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-3deg) scale(1.02); }
  100% { transform: rotate(-7deg) scale(.98); }
}
@keyframes kac-cross {
  0% { opacity: .7; box-shadow: 0 0 10px 3px rgba(200,180,140,.2); }
  50% { opacity: 1; box-shadow: 0 0 16px 6px rgba(200,180,140,.4); }
  100% { opacity: .8; box-shadow: 0 0 12px 4px rgba(200,180,140,.3); }
}
@keyframes kac-crown {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes kac-dragon {
  0% { opacity: .6; transform: scale(1) rotate(0); }
  50% { opacity: .9; transform: scale(1.05) rotate(3deg); }
  100% { opacity: .7; transform: scale(.95) rotate(-2deg); }
}
@keyframes kac-orb {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 15px 5px rgba(200,168,128,.4); }
  50% { transform: translateY(-4px) scale(1.03); box-shadow: 0 0 25px 10px rgba(200,168,128,.6); }
  100% { transform: translateY(0) scale(.98); box-shadow: 0 0 18px 6px rgba(200,168,128,.45); }
}

.scn-more-allegorical-characters {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #05050a 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, transparent 70%);
}
.scn-more-allegorical-characters .bg-apse {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: mac-apse 18s ease-in-out infinite alternate;
}
.scn-more-allegorical-characters .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: repeating-linear-gradient(90deg, #1a1a1a 0px, #1a1a1a 4px, #0a0a0a 4px, #0a0a0a 8px);
  opacity: .5;
  animation: mac-floor 24s linear infinite;
}
.scn-more-allegorical-characters .pillar-left {
  position: absolute; bottom: 20%; left: 8%; width: 6%; height: 60%;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%);
  border-radius: 10%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.5);
  animation: mac-pillar 15s ease-in-out infinite alternate;
}
.scn-more-allegorical-characters .pillar-right {
  position: absolute; bottom: 20%; right: 8%; width: 6%; height: 60%;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%);
  border-radius: 10%;
  box-shadow: inset 4px 0 8px rgba(0,0,0,.5);
  animation: mac-pillar 15s ease-in-out infinite alternate-reverse;
}
.scn-more-allegorical-characters .nun-left {
  position: absolute; bottom: 25%; left: 22%; 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;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: mac-nun 9s ease-in-out infinite;
}
.scn-more-allegorical-characters .nun-center {
  position: absolute; bottom: 25%; left: 42%; width: 12%; height: 36%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: mac-nun 9s ease-in-out infinite 3s;
}
.scn-more-allegorical-characters .nun-right {
  position: absolute; bottom: 25%; right: 22%; width: 12%; height: 34%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: mac-nun 9s ease-in-out infinite 6s;
}
.scn-more-allegorical-characters .altar {
  position: absolute; bottom: 20%; left: 50%; width: 20%; height: 12%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 8% 8% 4% 4% / 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: mac-altar 12s ease-in-out infinite alternate;
}
@keyframes mac-apse {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes mac-floor {
  0% { background-position: 0 0; }
  100% { background-position: 16px 0; }
}
@keyframes mac-pillar {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(.99); }
}
@keyframes mac-nun {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-.5deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes mac-altar {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(.98); }
}

.scn-lost-in-the-wood {
  background: linear-gradient(180deg, #2a1f3a 0%, #4a2a1a 40%, #6a3a2a 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a4a 0%, transparent 60%);
}
.scn-lost-in-the-wood .sky-dusk {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a3a4a 0%, #8a5a3a 50%, #3a2a2a 100%);
  animation: liw-sky 8s ease-in-out infinite alternate;
}
.scn-lost-in-the-wood .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #1a1a1a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: liw-ground 12s ease-in-out infinite alternate;
}
.scn-lost-in-the-wood .tree-trunks {
  position: absolute; bottom: 30%; left: 15%; width: 12px; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 4px;
  box-shadow: 40px 0 0 #2a1a0a, 80px -10px 0 #3a2a1a, 120px 5px 0 #1a120a;
  animation: liw-trunks 15s ease-in-out infinite;
}
.scn-lost-in-the-wood .foliage-left {
  position: absolute; top: 10%; left: 0; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 30% 50%, #2a4a2a 0%, transparent 70%);
  filter: blur(8px);
  animation: liw-foliage 20s ease-in-out infinite alternate;
}
.scn-lost-in-the-wood .foliage-right {
  position: absolute; top: 15%; right: 0; width: 35%; height: 35%;
  background: radial-gradient(ellipse at 70% 40%, #1a3a1a 0%, transparent 65%);
  filter: blur(6px);
  animation: liw-foliage 25s ease-in-out infinite alternate-reverse;
}
.scn-lost-in-the-wood .path-twist {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(90deg, transparent 0%, #5a3a2a 30%, #6a4a3a 50%, #5a3a2a 70%, transparent 100%);
  border-radius: 50%;
  transform: rotate(-5deg);
  animation: liw-path 6s ease-in-out infinite alternate;
}
.scn-lost-in-the-wood .figure-lost {
  position: absolute; bottom: 25%; left: 45%; width: 18px; 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: liw-figure 4s ease-in-out infinite;
}
.scn-lost-in-the-wood .wind-gust {
  position: absolute; top: 30%; right: 10%; width: 80px; height: 20px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,180,160,0.3) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: liw-wind 8s linear infinite;
}
@keyframes liw-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes liw-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes liw-trunks { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes liw-foliage { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.05) translateX(5px); } 100% { transform: scale(1) translateX(0); } }
@keyframes liw-path { 0% { opacity:0.6; transform: rotate(-5deg) scaleY(1); } 50% { opacity:1; transform: rotate(0deg) scaleY(1.1); } 100% { opacity:0.6; transform: rotate(5deg) scaleY(1); } }
@keyframes liw-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(9px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes liw-wind { 0% { transform: translateX(0) scaleX(1); opacity:0; } 20% { opacity:0.7; } 50% { transform: translateX(40px) scaleX(1.5); opacity:0.5; } 80% { opacity:0.2; } 100% { transform: translateX(80px) scaleX(0.5); opacity:0; } }

.scn-cave-found {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 70%);
}
.scn-cave-found .sky-night {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 80%, transparent 100%);
  animation: cf-sky 15s ease-in-out infinite alternate;
}
.scn-cave-found .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
  animation: cf-ground 20s ease-in-out infinite alternate;
}
.scn-cave-found .cave-wall-left {
  position: absolute; bottom: 20%; left: 0; width: 30%; height: 80%;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, transparent 100%);
  border-radius: 0 60% 40% 0 / 0 80% 70% 0;
  box-shadow: inset -5px 0 15px rgba(0,0,0,0.5);
  animation: cf-wall 10s ease-in-out infinite;
}
.scn-cave-found .cave-wall-right {
  position: absolute; bottom: 15%; right: 0; width: 25%; height: 70%;
  background: linear-gradient(270deg, #1a1a2a 0%, #2a2a3a 50%, transparent 100%);
  border-radius: 60% 0 0 40% / 80% 0 0 70%;
  box-shadow: inset 5px 0 15px rgba(0,0,0,0.5);
  animation: cf-wall 12s ease-in-out infinite reverse;
}
.scn-cave-found .cave-interior {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 60%, #0a0a1a 0%, #000005 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9);
  animation: cf-interior 8s ease-in-out infinite alternate;
}
.scn-cave-found .stalactite {
  position: absolute; top: 15%; left: 45%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 25px 10px 0 #2a2a3a, -20px 20px 0 #1a1a2a;
  animation: cf-stalactite 6s ease-in-out infinite;
}
.scn-cave-found .figure-entrance {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cf-figure 5s ease-in-out infinite;
}
.scn-cave-found .rock {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 30% 50%;
  box-shadow: 15px 5px 0 #0a0a1a;
  animation: cf-rock 9s ease-in-out infinite alternate;
}
@keyframes cf-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes cf-ground { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes cf-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes cf-interior { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes cf-stalactite { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cf-figure { 0% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-48%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(-0.5deg); } 75% { transform: translateX(-52%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes cf-rock { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }

.scn-warning-from-una {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, transparent 70%);
}
.scn-warning-from-una .bg-dark-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%);
  animation: wfu-bg 10s ease-in-out infinite alternate;
}
.scn-warning-from-una .ground-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #00000a 0%, #0a0a1a 100%);
  border-radius: 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: wfu-ground 18s ease-in-out infinite alternate;
}
.scn-warning-from-una .tree-trunk-left {
  position: absolute; bottom: 30%; left: 5%; width: 15px; height: 70%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 3px;
  box-shadow: 10px -5px 0 #1a1a2a;
  animation: wfu-tree 14s ease-in-out infinite;
}
.scn-warning-from-una .tree-trunk-right {
  position: absolute; bottom: 25%; right: 8%; width: 12px; height: 75%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 3px;
  box-shadow: -8px 0 0 #1a1a2a;
  animation: wfu-tree 16s ease-in-out infinite reverse;
}
.scn-warning-from-una .figure-una {
  position: absolute; bottom: 28%; left: 40%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wfu-una 6s ease-in-out infinite;
}
.scn-warning-from-una .hand-pointing {
  position: absolute; bottom: 42%; left: 45%; width: 14px; height: 14px;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 10% 10% 50%;
  transform: rotate(-30deg);
  animation: wfu-hand 3s ease-in-out infinite alternate;
}
.scn-warning-from-una .hidden-eyes {
  position: absolute; bottom: 50%; left: 65%; width: 20px; height: 20px;
  background: radial-gradient(circle, #4a4a5a 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #4a4a5a, 0 0 20px 5px rgba(74,74,90,0.3);
  animation: wfu-eyes 4s ease-in-out infinite alternate;
}
.scn-warning-from-una .hidden-eyes::before,
.scn-warning-from-una .hidden-eyes::after {
  content: '';
  position: absolute;
  width: 6px; height: 6px;
  background: #5a5a6a;
  border-radius: 50%;
  top: 5px;
}
.scn-warning-from-una .hidden-eyes::before {
  left: 3px;
  animation: wfu-pupil 2s ease-in-out infinite;
}
.scn-warning-from-una .hidden-eyes::after {
  right: 3px;
  animation: wfu-pupil 2s ease-in-out infinite reverse;
}
@keyframes wfu-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes wfu-ground { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes wfu-tree { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wfu-una { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wfu-hand { 0% { transform: rotate(-30deg) scale(1); } 50% { transform: rotate(-20deg) scale(1.1); } 100% { transform: rotate(-30deg) scale(1); } }
@keyframes wfu-eyes { 0% { opacity:0.3; } 50% { opacity:0.8; } 100% { opacity:0.2; } }
@keyframes wfu-pupil { 0% { transform: translateX(0); } 50% { transform: translateX(1px); } 100% { transform: translateX(0); } }

.scn-wandering-wood-and-errour {
  background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 50%, #0a0a12 100%),
              radial-gradient(ellipse at 50% 20%, #2a2a3a 0%, transparent 60%);
}
.scn-wandering-wood-and-errour .bg-forest-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a12 0%, #15151f 40%, #0a0a12 100%);
  animation: wwe-bg 12s ease-in-out infinite alternate;
}
.scn-wandering-wood-and-errour .ground-moss {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0;
  box-shadow: inset 0 5px 20px rgba(0,0,0,0.8);
  animation: wwe-ground 20s ease-in-out infinite alternate;
}
.scn-wandering-wood-and-errour .cave-arch {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, #2a2a3a 0%, #1a1a2a 50%, transparent 70%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9);
  animation: wwe-arch 15s ease-in-out infinite;
}
.scn-wandering-wood-and-errour .cave-interior-error {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 80%, #0a0a1a 0%, #000005 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(0,0,0,0.8);
  animation: wwe-interior 6s ease-in-out infinite alternate;
}
.scn-wandering-wood-and-errour .knight-silhouette {
  position: absolute; bottom: 28%; left: 45%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: inset 2px 2px 0 #2a2a3a;
  animation: wwe-knight 5s ease-in-out infinite;
}
.scn-wandering-wood-and-errour .armor-gleam {
  position: absolute; bottom: 38%; left: 46%; width: 6px; height: 10px;
  background: radial-gradient(circle, #8a8a9a 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #8a8a9a, 0 0 16px 4px rgba(138,138,154,0.3);
  animation: wwe-gleam 2s ease-in-out infinite alternate;
}
.scn-wandering-wood-and-errour .error-tendrils {
  position: absolute; bottom: 35%; left: 35%; width: 30%; height: 20%;
  background: repeating-linear-gradient(45deg, #2a2a3a 0px, #2a2a3a 4px, transparent 4px, transparent 8px);
  border-radius: 50% 50% 10% 10%;
  filter: blur(2px);
  animation: wwe-tendrils 8s ease-in-out infinite;
}
.scn-wandering-wood-and-errour .error-tendrils::before {
  content: '';
  position: absolute; top: -10px; left: 10%; width: 10px; height: 15px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 0 0;
  animation: wwe-tendril-move 4s ease-in-out infinite alternate;
}
.scn-wandering-wood-and-errour .error-tendrils::after {
  content: '';
  position: absolute; top: -15px; right: 20%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 0 0;
  animation: wwe-tendril-move 4s ease-in-out infinite alternate-reverse;
}
@keyframes wwe-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes wwe-ground { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes wwe-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes wwe-interior { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.3; } }
@keyframes wwe-knight { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-52%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes wwe-gleam { 0% { opacity:0.2; } 50% { opacity:0.9; } 100% { opacity:0.1; } }
@keyframes wwe-tendrils { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes wwe-tendril-move { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-virgins-dance-music {
  background:
    linear-gradient(180deg, #fceabb 0%, #f8b500 50%, #d49a2a 100%),
    radial-gradient(ellipse at 80% 10%, #ffedb0 0%, transparent 60%);
}
.scn-virgins-dance-music .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b4d6f0 0%, #e3edfa 100%);
  animation: vdm-sky 12s ease-in-out infinite alternate;
}
.scn-virgins-dance-music .sun {
  position: absolute; top: 8%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5c0 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.4);
  animation: vdm-sun 20s linear infinite;
}
.scn-virgins-dance-music .tree-left {
  position: absolute; bottom: 20%; left: 12%; width: 28px; height: 100px;
  background: linear-gradient(180deg, #3e5a2e 0%, #1e2e14 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: vdm-sway 6s ease-in-out infinite;
}
.scn-virgins-dance-music .tree-right {
  position: absolute; bottom: 18%; right: 10%; width: 35px; height: 120px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a3a1a 100%);
  border-radius: 30% 30% 15% 15% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: vdm-sway 8s ease-in-out infinite reverse;
}
.scn-virgins-dance-music .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7aaa4a 0%, #4a7a2a 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
}
.scn-virgins-dance-music .dancer {
  position: absolute; bottom: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #6a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-virgins-dance-music .dancer-a { left: 30%; animation: vdm-dance 3s ease-in-out infinite; }
.scn-virgins-dance-music .dancer-b { left: 48%; animation: vdm-dance 3.5s ease-in-out infinite 0.5s; }
.scn-virgins-dance-music .dancer-c { left: 65%; animation: vdm-dance 2.8s ease-in-out infinite 1s; }
@keyframes vdm-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes vdm-sun {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.05); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes vdm-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes vdm-dance {
  0%   { transform: translateY(0) rotate(-5deg); }
  25%  { transform: translateY(-3px) rotate(5deg); }
  50%  { transform: translateY(-1px) rotate(-3deg); }
  75%  { transform: translateY(-4px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}

.scn-una-crowned-queen {
  background:
    linear-gradient(180deg, #f5e6b8 0%, #e2c275 50%, #c49a3e 100%),
    radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 70%);
}
.scn-una-crowned-queen .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4e2c9 0%, #ebf0d5 100%);
}
.scn-una-crowned-queen .rays {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: repeating-linear-gradient(60deg, transparent, transparent 30px, rgba(255,235,180,0.15) 30px, rgba(255,235,180,0.15) 60px);
  animation: ucq-rays 15s linear infinite;
}
.scn-una-crowned-queen .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #9eb87a 0%, #6a8a4a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
}
.scn-una-crowned-queen .queen {
  position: absolute; bottom: 25%; left: 50%; width: 32px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4b080 0%, #8a6030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ucq-queen 6s ease-in-out infinite;
}
.scn-una-crowned-queen .queen::after {
  content: ''; position: absolute; top: -8px; left: 50%; width: 14px; height: 10px;
  background: #f0c060; border-radius: 50% 50% 0 0;
  transform: translateX(-50%);
}
.scn-una-crowned-queen .maiden {
  position: absolute; bottom: 22%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-una-crowned-queen .maiden-l { left: 28%; animation: ucq-maiden 5s ease-in-out infinite; }
.scn-una-crowned-queen .maiden-r { right: 28%; animation: ucq-maiden 5.5s ease-in-out infinite 0.5s; }
.scn-una-crowned-queen .garland {
  position: absolute; bottom: 62%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #6a8a4a 0%, #3a5a2a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(106,138,74,0.5);
  animation: ucq-garland 10s linear infinite;
}
@keyframes ucq-rays {
  0% { transform: translateX(-10px); }
  100% { transform: translateX(10px); }
}
@keyframes ucq-queen {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
}
@keyframes ucq-maiden {
  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 ucq-garland {
  0%   { transform: translateX(-50%) rotate(0deg) scale(1); }
  50%  { transform: translateX(-50%) rotate(180deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(360deg) scale(1); }
}

.scn-crowd-at-dragon-body {
  background:
    linear-gradient(180deg, #f2d07a 0%, #d4a23a 50%, #8a6a1a 100%),
    radial-gradient(ellipse at 40% 70%, #e8b040 0%, transparent 60%);
}
.scn-crowd-at-dragon-body .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8d8e0 0%, #e8efe0 100%);
  animation: cdb-sky 8s ease-in-out infinite alternate;
}
.scn-crowd-at-dragon-body .sun {
  position: absolute; top: 5%; left: 60%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff5d0 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,215,0,0.5);
}
.scn-crowd-at-dragon-body .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a7a4a 0%, #2a3a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-crowd-at-dragon-body .dragon.dead {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: cdb-dragon 14s ease-in-out infinite;
}
.scn-crowd-at-dragon-body .figure {
  position: absolute; bottom: 12%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-crowd-at-dragon-body .crowd-1 { left: 25%; animation: cdb-crowd 4s ease-in-out infinite; }
.scn-crowd-at-dragon-body .crowd-2 { left: 40%; animation: cdb-crowd 4.5s ease-in-out infinite 0.3s; }
.scn-crowd-at-dragon-body .crowd-3 { left: 55%; animation: cdb-crowd 3.8s ease-in-out infinite 0.8s; }
@keyframes cdb-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cdb-dragon {
  0%   { transform: scaleX(1) translateY(0); }
  25%  { transform: scaleX(1.01) translateY(-1px); }
  50%  { transform: scaleX(0.99) translateY(1px); }
  75%  { transform: scaleX(1.005) translateY(-0.5px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes cdb-crowd {
  0%   { transform: translateY(0) rotate(0deg); }
  30%  { transform: translateY(-2px) rotate(2deg); }
  60%  { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-crowd-fear-dragon {
  background:
    linear-gradient(180deg, #e8c86a 0%, #c8a030 50%, #7a5818 100%),
    radial-gradient(ellipse at 70% 30%, #f0d860 0%, transparent 60%);
}
.scn-crowd-fear-dragon .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0b8c8 0%, #d0d8c0 100%);
  animation: cfd-sky 10s ease-in-out infinite alternate;
}
.scn-crowd-fear-dragon .sun {
  position: absolute; top: 8%; right: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle, #ffe080 0%, #f0b020 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 50px 20px rgba(240,176,32,0.5);
}
.scn-crowd-fear-dragon .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6a6a3a 0%, #2a2a0a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
}
.scn-crowd-fear-dragon .dragon.corpse {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a02 100%);
  border-radius: 60% 40% 50% 50% / 70% 60% 40% 30%;
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.5);
  animation: cfd-corpse 20s ease-in-out infinite;
}
.scn-crowd-fear-dragon .runner {
  position: absolute; bottom: 15%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0802 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-crowd-fear-dragon .run-1 { left: 20%; animation: cfd-run 3s linear infinite; }
.scn-crowd-fear-dragon .run-2 { left: 45%; animation: cfd-run 3.5s linear infinite 0.4s; }
.scn-crowd-fear-dragon .run-3 { left: 70%; animation: cfd-run 2.8s linear infinite 0.9s; }
.scn-crowd-fear-dragon .warner {
  position: absolute; bottom: 16%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a02 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfd-warner 4s ease-in-out infinite;
}
@keyframes cfd-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cfd-corpse {
  0%   { transform: scaleX(1) rotate(0deg); }
  30%  { transform: scaleX(0.98) rotate(-1deg); }
  70%  { transform: scaleX(1.02) rotate(1deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes cfd-run {
  0%   { transform: translateX(0) translateY(0) rotate(0deg); }
  20%  { transform: translateX(30px) translateY(-2px) rotate(10deg); }
  40%  { transform: translateX(60px) translateY(-1px) rotate(-5deg); }
  60%  { transform: translateX(90px) translateY(-3px) rotate(8deg); }
  80%  { transform: translateX(120px) translateY(-1px) rotate(-3deg); }
  100% { transform: translateX(150px) translateY(0) rotate(0deg); }
}
@keyframes cfd-warner {
  0%   { transform: translateY(0) rotate(-5deg); }
  30%  { transform: translateY(-3px) rotate(10deg); }
  60%  { transform: translateY(-1px) rotate(-8deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}

.scn-luciferas-pride { background: linear-gradient(180deg, #7a9bbf 0%, #c2d4e0 40%, #f2e6c4 70%, #d9b382 100%), radial-gradient(ellipse at 80% 20%, #ffdfa0 0%, transparent 60%), radial-gradient(circle at 30% 80%, #3a2a1a 0%, transparent 50%); }
.scn-luciferas-pride .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6b8db5 0%, #aac4da 100%); animation: lp-sky 14s ease-in-out infinite alternate; }
.scn-luciferas-pride .throne { position:absolute; bottom:12%; left:35%; width:30%; height:55%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 12px 24px rgba(0,0,0,.6); transform-origin: bottom; animation: lp-throne 9s ease-in-out infinite; }
.scn-luciferas-pride .figure { position:absolute; bottom:20%; left:42%; width:14%; height:40%; background: linear-gradient(135deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lp-figure 7s ease-in-out infinite alternate; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); }
.scn-luciferas-pride .mirror { position:absolute; bottom:28%; left:50%; width:12%; height:18%; background: linear-gradient(135deg, #aae0f0 0%, #e0f4ff 30%, #ffffff 70%, #cce0f0 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 30px 8px rgba(255,255,200,.3), 0 0 60px 16px rgba(255,255,200,.15); animation: lp-mirror 4s ease-in-out infinite alternate; transform: translateX(-30%); }
.scn-luciferas-pride .dragon-head { position:absolute; bottom:25%; left:10%; width:20%; height:25%; background: linear-gradient(180deg, #2c5a3a 0%, #1a3a2a 100%); border-radius: 60% 40% 40% 60% / 70% 60% 30% 30%; clip-path: polygon(0% 0%, 100% 0%, 90% 40%, 100% 100%, 0% 100%, 10% 40%); animation: lp-dragon 12s ease-in-out infinite; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-luciferas-pride .dragon-tail { position:absolute; bottom:18%; left:70%; width:25%; height:12%; background: linear-gradient(90deg, #2c5a3a 0%, #1a3a2a 50%, #0e1e14 100%); border-radius: 30% 80% 50% 30% / 40% 70% 30% 50%; transform-origin: left center; animation: lp-tail 10s ease-in-out infinite alternate; }
.scn-luciferas-pride .sun-rays { position:absolute; top:0; left:0; width:100%; height:100%; background: repeating-linear-gradient(105deg, rgba(255,220,120,.03) 0%, rgba(255,220,120,.1) 20%, transparent 30%, transparent 40%, rgba(255,220,120,.04) 50%, rgba(255,220,120,.1) 70%, transparent 80%, transparent 100%); animation: lp-rays 20s linear infinite; }
.scn-luciferas-pride .shadow-floor { position:absolute; bottom:0; left:0; width:100%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); }
@keyframes lp-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes lp-throne { 0% { transform: rotate(-1deg) scaleY(1); } 50% { transform: rotate(1deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(1); } }
@keyframes lp-figure { 0% { transform: translateX(-2%) rotate(-1deg); } 50% { transform: translateX(2%) rotate(1deg); } 100% { transform: translateX(-2%) rotate(-1deg); } }
@keyframes lp-mirror { 0% { transform: translateX(-30%) rotate(-2deg); opacity: .7; } 50% { transform: translateX(-30%) rotate(3deg) scale(1.03); opacity: 1; } 100% { transform: translateX(-30%) rotate(-1deg); opacity: .8; } }
@keyframes lp-dragon { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(2px) rotate(-2deg); } }
@keyframes lp-tail { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.1); } 100% { transform: rotate(-3deg) scaleX(1); } }
@keyframes lp-rays { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

.scn-luciferas-parentage { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3a 30%, #4a2a3a 60%, #3a1a2a 100%), radial-gradient(ellipse at 30% 50%, #6a3a4a 0%, transparent 70%), linear-gradient(0deg, rgba(0,0,0,.3) 0%, transparent 50%); }
.scn-luciferas-parentage .chamber { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, #2a1a2e 0%, #3a2a3e 50%, #1a1a2a 100%); animation: lpa-chamber 15s ease-in-out infinite alternate; }
.scn-luciferas-parentage .throne-large { position:absolute; bottom:10%; left:25%; width:50%; height:60%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a1a 50%, #2a0a0a 100%); border-radius: 50% 50% 10% 10% / 70% 70% 20% 20%; box-shadow: 0 10px 30px rgba(0,0,0,.7); animation: lpa-throne 8s ease-in-out infinite; }
.scn-luciferas-parentage .figure-central { position:absolute; bottom:15%; left:42%; width:16%; height:45%; background: linear-gradient(135deg, #1a1a2a 0%, #0e0a1a 100%); border-radius: 25% 25% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom; animation: lpa-figure 6s ease-in-out infinite alternate; }
.scn-luciferas-parentage .parent-left { position:absolute; bottom:18%; left:15%; width:18%; height:35%; background: linear-gradient(135deg, #2a1a2a 0%, #1a0e1a 100%); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; opacity: .6; animation: lpa-parentL 12s ease-in-out infinite alternate; }
.scn-luciferas-parentage .parent-right { position:absolute; bottom:18%; right:15%; width:18%; height:35%; background: linear-gradient(135deg, #2a1a2a 0%, #1a0e1a 100%); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; opacity: .6; animation: lpa-parentR 12s ease-in-out infinite alternate reverse; }
.scn-luciferas-parentage .scepter { position:absolute; bottom:30%; left:50%; width:2%; height:30%; background: linear-gradient(180deg, #d4a050 0%, #b08030 50%, #806020 100%); border-radius: 40%; box-shadow: 0 0 12px 4px rgba(180,120,40,.5), 0 0 24px 6px rgba(180,120,40,.2); transform: translateX(-50%); animation: lpa-scepter 4s ease-in-out infinite; }
.scn-luciferas-parentage .fire-veil { position:absolute; bottom:5%; left:10%; width:80%; height:30%; background: radial-gradient(ellipse at 50% 100%, #6a1a1a 0%, #2a0a0a 40%, transparent 70%); animation: lpa-fire 7s ease-in-out infinite alternate; }
@keyframes lpa-chamber { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes lpa-throne { 0% { transform: rotate(-1deg) scaleY(1); } 50% { transform: rotate(1deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(1); } }
@keyframes lpa-figure { 0% { transform: translateX(-1%) rotate(-1deg); } 50% { transform: translateX(1%) rotate(1deg); } 100% { transform: translateX(-1%) rotate(-1deg); } }
@keyframes lpa-parentL { 0% { transform: translateX(0) rotate(0deg); opacity: .5; } 50% { transform: translateX(-5px) rotate(-2deg); opacity: .7; } 100% { transform: translateX(0) rotate(0deg); opacity: .5; } }
@keyframes lpa-parentR { 0% { transform: translateX(0) rotate(0deg); opacity: .5; } 50% { transform: translateX(5px) rotate(2deg); opacity: .7; } 100% { transform: translateX(0) rotate(0deg); opacity: .5; } }
@keyframes lpa-scepter { 0% { transform: translateX(-50%) rotate(-3deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(3deg) scaleY(1.05); } 100% { transform: translateX(-50%) rotate(-3deg) scaleY(1); } }
@keyframes lpa-fire { 0% { opacity: .4; transform: scaleY(1); } 50% { opacity: .8; transform: scaleY(1.1); } 100% { opacity: .4; transform: scaleY(1); } }

.scn-luciferas-usurpation { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 40%, #3a2a3e 70%, #1a1a2e 100%), radial-gradient(ellipse at 60% 30%, #5a3a4a 0%, transparent 70%), linear-gradient(0deg, rgba(20,10,10,.4) 0%, transparent 60%); }
.scn-luciferas-usurpation .council-floor { position:absolute; bottom:0; left:0; width:100%; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 20% 0 0 / 60% 10% 0 0; animation: lpu-floor 20s ease-in-out infinite alternate; }
.scn-luciferas-usurpation .throne-high { position:absolute; bottom:15%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 15px 30px rgba(0,0,0,.8); animation: lpu-throne 10s ease-in-out infinite; }
.scn-luciferas-usurpation .queen-figure { position:absolute; bottom:20%; left:42%; width:16%; height:42%; background: linear-gradient(135deg, #1a1a2a 0%, #0e0a1a 100%); border-radius: 25% 25% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom; animation: lpu-queen 7s ease-in-out infinite alternate; }
.scn-luciferas-usurpation .crown-glow { position:absolute; bottom:55%; left:44%; width:12%; height:8%; background: radial-gradient(circle, #d4a050 0%, #b08030 50%, transparent 100%); box-shadow: 0 0 30px 8px #b08030, 0 0 60px 20px rgba(200,150,60,.3); animation: lpu-crown 4s ease-in-out infinite alternate; }
.scn-luciferas-usurpation .wizard-left { position:absolute; bottom:8%; left:8%; width:15%; height:30%; background: linear-gradient(135deg, #1a2a3a 0%, #0e1a2a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; clip-path: polygon(20% 0%, 80% 0%, 100% 40%, 80% 100%, 20% 100%, 0% 40%); animation: lpu-wizL 13s ease-in-out infinite alternate; }
.scn-luciferas-usurpation .wizard-right { position:absolute; bottom:8%; right:8%; width:15%; height:30%; background: linear-gradient(135deg, #1a2a3a 0%, #0e1a2a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; clip-path: polygon(20% 0%, 80% 0%, 100% 40%, 80% 100%, 20% 100%, 0% 40%); animation: lpu-wizR 13s ease-in-out infinite alternate; }
.scn-luciferas-usurpation .wizard-mid { position:absolute; bottom:6%; left:38%; width:24%; height:28%; background: linear-gradient(135deg, #1a2a3a 0%, #0e1a2a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; clip-path: polygon(10% 0%, 90% 0%, 100% 30%, 80% 100%, 20% 100%, 0% 30%); animation: lpu-wizM 16s ease-in-out infinite alternate; }
.scn-luciferas-usurpation .shadow-cast { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%); }
.scn-luciferas-usurpation .candle-row { position:absolute; bottom:30%; left:10%; width:80%; height:4%; background: repeating-linear-gradient(90deg, #d4a050 0%, #d4a050 2%, transparent 2%, transparent 8%, #d4a050 8%, #d4a050 10%, transparent 10%, transparent 18%); animation: lpu-candles 5s ease-in-out infinite alternate; }
@keyframes lpu-floor { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes lpu-throne { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes lpu-queen { 0% { transform: translateX(-2%) rotate(-1deg); } 50% { transform: translateX(2%) rotate(1deg); } 100% { transform: translateX(-2%) rotate(-1deg); } }
@keyframes lpu-crown { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .7; transform: scale(1); } }
@keyframes lpu-wizL { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes lpu-wizR { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-5px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes lpu-wizM { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes lpu-candles { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }

.scn-redcrosse-received { background: linear-gradient(180deg, #f2e6c4 0%, #e6d4b0 40%, #d4c09a 70%, #c2ae88 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%), linear-gradient(0deg, rgba(180,160,120,.15) 0%, transparent 50%); }
.scn-redcrosse-received .hall-bright { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, #f0e4c8 0%, #e8d8b8 60%, #dcc8a0 100%); animation: rr-hall 18s ease-in-out infinite alternate; }
.scn-redcrosse-received .throne-dais { position:absolute; bottom:15%; left:50%; width:50%; height:40%; background: linear-gradient(180deg, #c8b08a 0%, #a08a68 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; transform: translateX(-50%); box-shadow: 0 8px 20px rgba(0,0,0,.2); animation: rr-dais 9s ease-in-out infinite; }
.scn-redcrosse-received .elfin-knight { position:absolute; bottom:22%; left:30%; width:12%; height:35%; background: linear-gradient(135deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 20% 20% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: rr-knight 6s ease-in-out infinite alternate; box-shadow: 0 0 8px 2px rgba(60,70,80,.3); }
.scn-redcrosse-received .usher-figure { position:absolute; bottom:18%; left:45%; width:10%; height:30%; background: linear-gradient(135deg, #d4c0a0 0%, #b8a888 100%); border-radius: 25% 25% 20% 20% / 50% 50% 30% 30%; animation: rr-usher 8s ease-in-out infinite alternate; }
.scn-redcrosse-received .banner { position:absolute; bottom:30%; left:60%; width:8%; height:30%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #702243 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform-origin: bottom; animation: rr-banner 12s ease-in-out infinite alternate; }
.scn-redcrosse-received .candle-sconce { position:absolute; bottom:40%; left:20%; width:4%; height:12%; background: linear-gradient(180deg, #d4a050 0%, #b08030 100%); border-radius: 30%; box-shadow: 0 0 12px 4px #b08030, 0 0 24px 8px rgba(200,150,60,.3); animation: rr-candle 4s ease-in-out infinite alternate; }
.scn-redcrosse-received .prayer-rug { position:absolute; bottom:8%; left:35%; width:30%; height:10%; background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 50%, #3a1a0a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: rr-rug 7s ease-in-out infinite alternate; }
@keyframes rr-hall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes rr-dais { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes rr-knight { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes rr-usher { 0% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes rr-banner { 0% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.05); } 100% { transform: rotate(-3deg) scaleY(1); } }
@keyframes rr-candle { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes rr-rug { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.02) scaleY(1.01); } 100% { transform: scaleX(1) scaleY(1); } }

.scn-knight-retreats-mire {
  background: linear-gradient(180deg, #1a1018 0%, #0f0b10 40%, #1e1420 70%, #2a1e28 100%), radial-gradient(ellipse at 20% 80%, #2a1e28 0%, transparent 60%);
  box-shadow: inset 0 0 40px #00000044;
}
.scn-knight-retreats-mire .bg-shadows {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0e0a12 0%, transparent 80%);
  animation: krm-shadow 14s ease-in-out infinite alternate;
}
.scn-knight-retreats-mire .mire-floor {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1e28 0%, #1a1018 100%);
  border-radius: 30% 50% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 8px 20px #00000066;
  animation: krm-floor 8s ease-in-out infinite alternate;
}
.scn-knight-retreats-mire .mire-puddle {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, #2a2a1a 0%, #1a1a0e 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  box-shadow: inset 0 0 20px #0a0a00aa;
  animation: krm-puddle 6s ease-in-out infinite alternate;
}
.scn-knight-retreats-mire .knight {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(135deg, #3a2a30 0%, #1a1018 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 12px #00000077;
  animation: krm-knight 4s ease-in-out infinite;
}
.scn-knight-retreats-mire .sword-glow {
  position: absolute; bottom: 32%; left: 52%; width: 8px; height: 30px;
  background: radial-gradient(circle, #c0b080 0%, #806040 70%, transparent 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 6px #80604066, 0 0 40px 12px #60402033;
  animation: krm-sword 3s ease-in-out infinite alternate;
}
.scn-knight-retreats-mire .drip-a {
  position: absolute; bottom: 15%; left: 30%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  animation: krm-drip 2.5s ease-in-out infinite;
}
.scn-knight-retreats-mire .drip-b {
  position: absolute; bottom: 15%; left: 65%; width: 5px; height: 16px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  animation: krm-drip 3.2s ease-in-out infinite 0.8s;
}
.scn-knight-retreats-mire .fog {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #3a2a3a55 0%, transparent 70%);
  filter: blur(8px);
  animation: krm-fog 20s linear infinite;
}

@keyframes krm-shadow { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes krm-floor { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes krm-puddle { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.1) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes krm-knight { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-6px) rotate(3deg) } 50% { transform: translateX(-12px) rotate(-2deg) } 75% { transform: translateX(-18px) rotate(4deg) } 100% { transform: translateX(-24px) rotate(0deg) } }
@keyframes krm-sword { 0% { opacity: 0.5; box-shadow: 0 0 12px 4px #80604066, 0 0 24px 8px #60402033; } 50% { opacity: 1; box-shadow: 0 0 30px 10px #c0b08088, 0 0 60px 20px #c0b08044; } 100% { opacity: 0.6; box-shadow: 0 0 16px 6px #80604066, 0 0 32px 12px #60402033; } }
@keyframes krm-drip { 0% { transform: translateY(0) scaleY(1); opacity: 1 } 50% { transform: translateY(15px) scaleY(1.3); opacity: 0.7 } 100% { transform: translateY(30px) scaleY(0.5); opacity: 0 } }
@keyframes krm-fog { 0% { transform: translateX(-20px) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.1); } 100% { transform: translateX(-20px) scaleX(1); } }

.scn-item-tree-of-life {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #ffe4b5 70%, #f5deb3 100%), radial-gradient(ellipse at 50% 100%, #fff8dc 0%, transparent 70%);
  box-shadow: inset 0 0 60px #fffacd44;
}
.scn-item-tree-of-life .sky-warm {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceebaa 0%, #b0e0e6aa 60%, transparent 100%);
  animation: tol-sky 12s ease-in-out infinite alternate;
}
.scn-item-tree-of-life .sun-glow {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8dc 0%, #ffe4b5 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: tol-sun 20s ease-in-out infinite alternate;
}
.scn-item-tree-of-life .tree-trunk {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #7a4a2a 0%, #5a3a1a 60%, #3a2a0a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 4px 0 12px #5a3a1a66;
  animation: tol-trunk 8s ease-in-out infinite;
}
.scn-item-tree-of-life .foliage {
  position: absolute; bottom: 45%; left: 50%; width: 150px; height: 100px;
  background: radial-gradient(ellipse at 50% 60%, #3a6a1a 0%, #2a5a0a 40%, #1a3a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 40px #1a3a0066, inset 0 -20px 20px #0a1a00aa;
}
.scn-item-tree-of-life .foliage::after {
  content: '';
  position: absolute; top: 20%; left: 30%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 60%);
  border-radius: 50%;
  box-shadow: 30px 10px 0 #a0461a88, -20px 30px 0 #c8553d66, 15px -10px 0 #b85a3a77;
}
.scn-item-tree-of-life .ray-l {
  position: absolute; top: 20%; left: 20%; width: 15%; height: 60%;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  animation: tol-ray 7s ease-in-out infinite alternate;
}
.scn-item-tree-of-life .ray-r {
  position: absolute; top: 20%; right: 20%; width: 15%; height: 60%;
  background: linear-gradient(225deg, rgba(255, 255, 255, 0.25) 0%, transparent 100%);
  clip-path: polygon(100% 0, 0 0, 20% 100%, 100% 100%);
  animation: tol-ray 9s ease-in-out infinite alternate 0.5s;
}
.scn-item-tree-of-life .grass {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a8a3a 0%, #3a6a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px #1a3a0066;
  animation: tol-grass 6s ease-in-out infinite alternate;
}

@keyframes tol-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes tol-sun { 0% { transform: translateX(-10px) scale(1); opacity: 0.7 } 50% { transform: translateX(10px) scale(1.05); opacity: 1 } 100% { transform: translateX(-5px) scale(0.98); opacity: 0.8 } }
@keyframes tol-trunk { 0%, 100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes tol-ray { 0% { opacity: 0.3; transform: scaleY(1) } 50% { opacity: 0.6; transform: scaleY(1.02) } 100% { opacity: 0.4; transform: scaleY(0.98) } }
@keyframes tol-grass { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }

.scn-knight-falls-into-balm {
  background: linear-gradient(180deg, #b0d0e0 0%, #d0e8f0 40%, #e0f0e8 70%, #f0f8f0 100%), radial-gradient(ellipse at 50% 100%, #e0f0e8 0%, transparent 60%);
  box-shadow: inset 0 0 30px #d0e8f0aa;
}
.scn-knight-falls-into-balm .sky-calm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d0e0aa 0%, #d0e8f0aa 60%, transparent 100%);
  animation: kfb-sky 16s ease-in-out infinite alternate;
}
.scn-knight-falls-into-balm .balm-pool {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, #c0e8d8 0%, #90c8b0 50%, #509880 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  box-shadow: inset 0 0 40px #40908066, 0 0 30px #80c0b088;
  animation: kfb-pool 10s ease-in-out infinite alternate;
}
.scn-knight-falls-into-balm .knight-falling {
  position: absolute; bottom: 30%; left: 42%; width: 35px; height: 70px;
  background: linear-gradient(135deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 50% 50%;
  transform-origin: top center;
  box-shadow: 2px 0 10px #1a1a2a66;
  animation: kfb-fall 6s ease-in-out infinite;
}
.scn-knight-falls-into-balm .ripple-1 {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, transparent 30%, #f0f8f088 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: kfb-ripple 4s ease-out infinite;
}
.scn-knight-falls-into-balm .ripple-2 {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, transparent 30%, #f0f8f088 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: kfb-ripple 5s ease-out infinite 1.5s;
}
.scn-knight-falls-into-balm .light-kiss {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #fff4e0aa 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: kfb-light 12s ease-in-out infinite alternate;
}

@keyframes kfb-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes kfb-pool { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-5px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes kfb-fall { 0% { transform: translateY(0) rotate(5deg) } 25% { transform: translateY(20px) rotate(-3deg) } 50% { transform: translateY(40px) rotate(2deg) } 75% { transform: translateY(60px) rotate(-4deg) } 100% { transform: translateY(80px) rotate(0deg) } }
@keyframes kfb-ripple { 0% { transform: scale(0.5); opacity: 1 } 50% { transform: scale(1.2); opacity: 0.5 } 100% { transform: scale(2); opacity: 0 } }
@keyframes kfb-light { 0% { transform: translateX(-10px) scaleX(0.8); opacity: 0.5 } 50% { transform: translateX(10px) scaleX(1.1); opacity: 0.8 } 100% { transform: translateX(-5px) scaleX(0.9); opacity: 0.6 } }

.scn-dragon-flees-tree {
  background: linear-gradient(135deg, #4a1000 0%, #8a3000 20%, #c06000 40%, #a08030 60%, #406080 80%, #1a2a3a 100%), radial-gradient(ellipse at 70% 30%, #c08030 0%, transparent 60%);
  box-shadow: inset 0 0 50px #1a0a00aa;
}
.scn-dragon-flees-tree .sky-twilight {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2a3a 0%, #406080 40%, #a08030 70%, #c06000 100%);
  animation: dft-sky 20s ease-in-out infinite alternate;
}
.scn-dragon-flees-tree .tree-silhouette {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 180px;
  background: #0a0a0a;
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px #00000088, inset 0 20px 10px #1a1a1a;
}
.scn-dragon-flees-tree .tree-silhouette::after {
  content: '';
  position: absolute; top: -40px; left: -60px; width: 160px; height: 80px;
  background: radial-gradient(ellipse at 50% 80%, #0a0a0a 0%, #1a1a1a 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px #000000aa;
}
.scn-dragon-flees-tree .dragon-sil {
  position: absolute; bottom: 30%; right: 10%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #1a0a0a 0%, #0a0a0a 100%);
  clip-path: polygon(0 30%, 40% 20%, 70% 10%, 100% 0, 90% 40%, 100% 70%, 70% 60%, 40% 80%, 10% 100%, 0 70%);
  filter: drop-shadow(0 0 10px #00000088);
  animation: dft-dragon 7s ease-in-out infinite;
}
.scn-dragon-flees-tree .moon-half {
  position: absolute; top: 15%; right: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle at 30% 30%, #ffe0b0 0%, #c08030 100%);
  border-radius: 50%;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  filter: blur(2px);
  box-shadow: 0 0 30px #c0803066;
  animation: dft-moon 15s ease-in-out infinite alternate;
}
.scn-dragon-flees-tree .shadow-a {
  position: absolute; bottom: 10%; left: 20%; width: 30%; height: 20px;
  background: linear-gradient(180deg, #1a0a0a88 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: dft-shadow 8s ease-in-out infinite alternate;
}
.scn-dragon-flees-tree .shadow-b {
  position: absolute; bottom: 5%; left: 60%; width: 20%; height: 15px;
  background: linear-gradient(180deg, #1a0a0a88 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: dft-shadow 10s ease-in-out infinite alternate 0.5s;
}
.scn-dragon-flees-tree .embers {
  position: absolute; top: 40%; left: 30%; width: 10px; height: 10px;
  background: radial-gradient(circle, #c06000 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  box-shadow: 20px 30px 0 #c0600066, -10px 50px 0 #c0600044, 30px 10px 0 #c0600055;
  animation: dft-ember 5s ease-in-out infinite;
}

@keyframes dft-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes dft-dragon { 0% { transform: translateX(0) rotate(-2deg) scaleX(1) } 50% { transform: translateX(-40px) rotate(3deg) scaleX(1.2) } 100% { transform: translateX(-80px) rotate(-1deg) scaleX(0.9) } }
@keyframes dft-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-8px) scale(1.05) } 100% { transform: translateY(0) scale(0.95) } }
@keyframes dft-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.8) } }
@keyframes dft-ember { 0% { transform: translateY(0) scale(1); opacity: 0.6 } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.2 } 100% { transform: translateY(0) scale(0.8); opacity: 0.8 } }

/* events-table-1587-1591 – calm, bright-interior */
.scn-events-table-1587-1591 {
  background:
    linear-gradient(180deg, #f5f0e8 0%, #e8dcc8 60%, #d4c4a8 100%),
    radial-gradient(ellipse at 30% 0%, #fff8e7 0%, transparent 70%);
}
.scn-events-table-1587-1591 .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #f0e8d8 0%, #dcd0bc 100%); }
.scn-events-table-1587-1591 .window-light { position:absolute; top:10%; left:15%; width:25%; height:50%; background: linear-gradient(135deg, #fffce8 0%, #eceae0 80%); border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%; box-shadow: 0 0 60px 20px rgba(255,255,210,0.3); animation: et1-window 14s ease-in-out infinite alternate; }
.scn-events-table-1587-1591 .sunbeam { position:absolute; top:20%; left:20%; width:40%; height:70%; background: linear-gradient(180deg, rgba(255,255,200,0.25) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: et1-beam 18s ease-in-out infinite alternate; }
.scn-events-table-1587-1591 .desk { position:absolute; bottom:10%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #8b6f47 0%, #6b4f2f 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.3); }
.scn-events-table-1587-1591 .papers { position:absolute; bottom:30%; left:30%; width:30%; height:15%; background: #f5f0e0; border-radius: 2%; box-shadow: 0 2px 8px rgba(0,0,0,0.2); animation: et1-papers 12s ease-in-out infinite alternate; }
.scn-events-table-1587-1591 .quill { position:absolute; bottom:35%; left:55%; width:8px; height:40px; background: linear-gradient(180deg, #f0e0d0 0%, #c8b8a8 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: et1-quill 5s ease-in-out infinite; }
.scn-events-table-1587-1591 .inkwell { position:absolute; bottom:28%; left:50%; width:20px; height:24px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-events-table-1587-1591 .globe { position:absolute; bottom:18%; left:65%; width:40px; height:40px; background: radial-gradient(circle at 35% 35%, #6a9ab8 0%, #3a6a88 50%, #2a4a6a 100%); border-radius: 50%; box-shadow: inset -4px -4px 12px rgba(0,0,0,0.4); animation: et1-globe 30s linear infinite; }
@keyframes et1-window { 0% { opacity:0.85; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.05); } 100% { opacity:0.9; transform: scaleX(0.98); } }
@keyframes et1-beam { 0% { opacity:0.5; transform: rotate(-2deg) translateX(0); } 50% { opacity:0.7; transform: rotate(2deg) translateX(10px); } 100% { opacity:0.5; transform: rotate(-1deg) translateX(-5px); } }
@keyframes et1-papers { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes et1-quill { 0% { transform: rotate(-5deg) translateY(0); } 30% { transform: rotate(3deg) translateY(-2px); } 60% { transform: rotate(-2deg) translateY(1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes et1-globe { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(30deg); } 100% { transform: rotateY(360deg); } }

/* events-table-1593-1596 – calm, bright-interior */
.scn-events-table-1593-1596 {
  background:
    linear-gradient(180deg, #f7f3ec 0%, #eae3d8 50%, #d6cebe 100%),
    radial-gradient(ellipse at 60% 0%, #fffcf0 0%, transparent 70%);
}
.scn-events-table-1593-1596 .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #ede6da 0%, #d8cbb8 100%); }
.scn-events-table-1593-1596 .window { position:absolute; top:8%; left:15%; width:30%; height:55%; background: linear-gradient(135deg, #fffbe6 0%, #e8e2d0 80%); border-radius: 12% 12% 60% 60% / 25% 25% 65% 65%; box-shadow: 0 0 50px 15px rgba(255,255,210,0.25); animation: et2-wind 12s ease-in-out infinite alternate; }
.scn-events-table-1593-1596 .bookshelf { position:absolute; right:5%; top:12%; bottom:20%; width:18%; background: linear-gradient(90deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 4% 4% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,0.3); }
.scn-events-table-1593-1596 .armchair { position:absolute; bottom:22%; left:20%; width:30%; height:40%; background: linear-gradient(180deg, #3a6a3a 0%, #2a4a2a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-events-table-1593-1596 .figure { position:absolute; bottom:28%; left:28%; width:14%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: et2-figure 8s ease-in-out infinite; }
.scn-events-table-1593-1596 .lamp { position:absolute; bottom:20%; left:55%; width:16px; height:24px; background: linear-gradient(180deg, #d4b080 0%, #a08050 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 20px 8px rgba(200,150,80,0.5); animation: et2-lamp 6s ease-in-out infinite alternate; }
.scn-events-table-1593-1596 .stack { position:absolute; bottom:30%; right:28%; width:20%; height:10%; background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%); border-radius: 2%; box-shadow: 0 4px 12px rgba(0,0,0,0.2); animation: et2-stack 14s ease-in-out infinite alternate; }
@keyframes et2-wind { 0% { opacity:0.9; transform: scale(1); } 50% { opacity:1; transform: scale(1.03) translateX(2px); } 100% { opacity:0.95; transform: scale(0.98) translateX(-2px); } }
@keyframes et2-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes et2-lamp { 0% { box-shadow: 0 0 15px 5px rgba(200,150,80,0.3); opacity:0.8; } 50% { box-shadow: 0 0 30px 12px rgba(220,180,100,0.6); opacity:1; } 100% { box-shadow: 0 0 20px 8px rgba(200,150,80,0.4); opacity:0.9; } }
@keyframes et2-stack { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }

/* events-table-1598-1599 – tense, dim-interior */
.scn-events-table-1598-1599 {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #1e1410 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a20 0%, transparent 80%);
}
.scn-events-table-1598-1599 .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1e1612 0%, #120c08 100%); }
.scn-events-table-1598-1599 .desk { position:absolute; bottom:8%; left:5%; right:5%; height:38%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.6); }
.scn-events-table-1598-1599 .candle { position:absolute; bottom:35%; left:35%; width:12px; height:28px; background: linear-gradient(180deg, #e8c8a0 0%, #a08050 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 0 10px 2px rgba(180,120,60,0.4); }
.scn-events-table-1598-1599 .flame { position:absolute; bottom:55%; left:35%; width:10px; height:20px; background: radial-gradient(ellipse at 50% 80%, #ffd060 0%, #ff9030 50%, #ff6020 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 25px 8px #ff8030; animation: et3-flame 0.8s ease-in-out infinite alternate; }
.scn-events-table-1598-1599 .maps { position:absolute; bottom:18%; left:10%; width:35%; height:20%; background: #d4c4a8; border-radius: 3% 3% 10% 10%; box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: et3-maps 10s ease-in-out infinite alternate; }
.scn-events-table-1598-1599 .quill { position:absolute; bottom:30%; left:55%; width:6px; height:36px; background: linear-gradient(180deg, #c0a890 0%, #907060 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: et3-quill 4s ease-in-out infinite; }
.scn-events-table-1598-1599 .seal { position:absolute; bottom:20%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #8a5a3a 0%, #5a2a1a 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(0,0,0,0.4); }
.scn-events-table-1598-1599 .shadow-figure { position:absolute; bottom:30%; left:40%; width:18%; height:50%; background: linear-gradient(180deg, #0a0604 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: et3-figure 6s ease-in-out infinite; }
@keyframes et3-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 25% { transform: scaleY(1.2) translateY(-2px); opacity:1; } 50% { transform: scaleY(0.9) translateY(1px); opacity:0.8; } 75% { transform: scaleY(1.1) translateY(-1px); opacity:1; } 100% { transform: scaleY(1) translateY(0); opacity:0.9; } }
@keyframes et3-maps { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(-4px); } 100% { transform: rotate(1deg) translateX(3px); } }
@keyframes et3-quill { 0% { transform: rotate(-8deg) translateY(0); } 30% { transform: rotate(5deg) translateY(-1px); } 60% { transform: rotate(-3deg) translateY(1px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes et3-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }

/* letter-to-raleigh-introduction – calm, bright-interior */
.scn-letter-to-raleigh-introduction {
  background:
    linear-gradient(180deg, #faf5eb 0%, #ede6d8 50%, #dbd2c0 100%),
    radial-gradient(ellipse at 20% 0%, #fffef0 0%, transparent 70%);
}
.scn-letter-to-raleigh-introduction .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #f2ede2 0%, #e0d5c0 100%); }
.scn-letter-to-raleigh-introduction .window { position:absolute; top:5%; left:10%; width:35%; height:60%; background: linear-gradient(135deg, #fffced 0%, #f0ead8 80%); border-radius: 15% 15% 50% 50% / 25% 25% 55% 55%; box-shadow: 0 0 60px 20px rgba(255,255,220,0.3); animation: lti-window 15s ease-in-out infinite alternate; }
.scn-letter-to-raleigh-introduction .desk { position:absolute; bottom:8%; left:8%; right:8%; height:35%; background: linear-gradient(180deg, #9a7a52 0%, #6a4a2a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.25); }
.scn-letter-to-raleigh-introduction .letter { position:absolute; bottom:30%; left:25%; width:40%; height:20%; background: #f8f2e4; border-radius: 2% 2% 8% 8%; box-shadow: 0 2px 10px rgba(0,0,0,0.2); animation: lti-letter 12s ease-in-out infinite alternate; }
.scn-letter-to-raleigh-introduction .quill { position:absolute; bottom:38%; left:60%; width:7px; height:42px; background: linear-gradient(180deg, #e8d8c8 0%, #b8a898 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: lti-quill 5s ease-in-out infinite; }
.scn-letter-to-raleigh-introduction .inkwell { position:absolute; bottom:30%; left:55%; width:18px; height:22px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-letter-to-raleigh-introduction .chair { position:absolute; bottom:12%; left:20%; width:25%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-letter-to-raleigh-introduction .curtains-left { position:absolute; top:0; left:0; width:12%; height:100%; background: linear-gradient(135deg, #b0a090 0%, #807060 100%); border-radius: 0 30% 30% 0; animation: lti-curtains 20s ease-in-out infinite alternate; }
.scn-letter-to-raleigh-introduction .curtains-right { position:absolute; top:0; right:0; width:12%; height:100%; background: linear-gradient(135deg, #b0a090 0%, #807060 100%); border-radius: 30% 0 0 30%; animation: lti-curtains 20s ease-in-out infinite alternate-reverse; }
@keyframes lti-window { 0% { opacity:0.9; transform: scale(1); } 50% { opacity:1; transform: scale(1.02) translateX(2px); } 100% { opacity:0.95; transform: scale(0.98) translateX(-2px); } }
@keyframes lti-letter { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes lti-quill { 0% { transform: rotate(-6deg) translateY(0); } 30% { transform: rotate(4deg) translateY(-2px); } 60% { transform: rotate(-2deg) translateY(1px); } 100% { transform: rotate(6deg) translateY(0); } }
@keyframes lti-curtains { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.08); } 100% { transform: scaleX(0.95); } }

.scn-joust-of-redcrosse-and-sansfoy { background: linear-gradient(180deg, #f0d8a8 0%, #d4b878 30%, #b89860 60%, #907048 100%), radial-gradient(ellipse at 50% 0%, #ffe8c8 0%, transparent 60%); }
.scn-joust-of-redcrosse-and-sansfoy .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c8e0f0 0%, #a8c8e0 50%, transparent 100%); animation: jsr-sky 12s ease-in-out infinite alternate; }
.scn-joust-of-redcrosse-and-sansfoy .mountain { position:absolute; bottom:40%; left:0; right:0; height:18%; background: linear-gradient(180deg, #7a8a7a 0%, #4a5a4a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; animation: jsr-mtn 20s ease-in-out infinite alternate; }
.scn-joust-of-redcrosse-and-sansfoy .ground { position:absolute; bottom:0; left:0; right:0; height:42%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 40%, #3a2a1a 100%); border-radius: 20% 30% 0 0 / 12% 15% 0 0; }
.scn-joust-of-redcrosse-and-sansfoy .horse-a { position:absolute; bottom:18%; left:18%; width:44px; height:28px; background: radial-gradient(ellipse at 60% 50%, #5a3a2a 0%, #3a2a1a 100%); border-radius: 60% 40% 30% 50% / 50% 40% 30% 40%; transform: scaleX(1); animation: jsr-gallop 1.6s ease-in-out infinite; }
.scn-joust-of-redcrosse-and-sansfoy .knight-a { position:absolute; bottom:36%; left:16%; width:20px; height:30px; background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 60%, #4a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: jsr-rear-a 1.6s ease-in-out infinite; }
.scn-joust-of-redcrosse-and-sansfoy .spear-a { position:absolute; bottom:42%; left:22%; width:52px; height:4px; background: linear-gradient(180deg, #a08060 0%, #705840 100%); border-radius: 2px; transform-origin: 0% 50%; transform: rotate(-12deg); animation: jsr-spear-a 1.6s ease-in-out infinite; }
.scn-joust-of-redcrosse-and-sansfoy .horse-b { position:absolute; bottom:18%; right:18%; width:44px; height:28px; background: radial-gradient(ellipse at 40% 50%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 60% 40% 30% 50% / 50% 40% 30% 40%; transform: scaleX(-1); animation: jsr-gallop 1.6s ease-in-out infinite 0.8s; }
.scn-joust-of-redcrosse-and-sansfoy .knight-b { position:absolute; bottom:36%; right:16%; width:20px; height:30px; background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 60%, #3a1000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: scaleX(-1); animation: jsr-rear-b 1.6s ease-in-out infinite 0.8s; }
.scn-joust-of-redcrosse-and-sansfoy .spear-b { position:absolute; bottom:42%; right:22%; width:52px; height:4px; background: linear-gradient(180deg, #a08060 0%, #705840 100%); border-radius: 2px; transform-origin: 100% 50%; transform: rotate(12deg); animation: jsr-spear-b 1.6s ease-in-out infinite 0.8s; }
.scn-joust-of-redcrosse-and-sansfoy .dust { position:absolute; bottom:14%; left:30%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(200,180,140,.5) 0%, transparent 70%); filter: blur(3px); animation: jsr-dust 1.6s ease-out infinite; }
@keyframes jsr-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes jsr-mtn { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes jsr-gallop { 0% { transform: translateY(0) scaleX(1) } 25% { transform: translateY(-3px) scaleX(1) } 50% { transform: translateY(0) scaleX(1) } 75% { transform: translateY(-2px) scaleX(1) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes jsr-rear-a { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(2px,-2px) rotate(2deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes jsr-rear-b { 0% { transform: scaleX(-1) translate(0,0) rotate(2deg) } 50% { transform: scaleX(-1) translate(-2px,-2px) rotate(-2deg) } 100% { transform: scaleX(-1) translate(0,0) rotate(2deg) } }
@keyframes jsr-spear-a { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-16deg) } 100% { transform: rotate(-10deg) } }
@keyframes jsr-spear-b { 0% { transform: rotate(10deg) } 50% { transform: rotate(16deg) } 100% { transform: rotate(10deg) } }
@keyframes jsr-dust { 0% { opacity:.7; transform: translateY(0) scaleX(1) } 50% { opacity:.3; transform: translateY(-8px) scaleX(1.4) } 100% { opacity:0; transform: translateY(-16px) scaleX(1.8) } }

.scn-simile-of-two-rams { background: linear-gradient(180deg, #d4b878 0%, #b89860 25%, #907048 50%, #685838 100%), radial-gradient(ellipse at 50% 0%, #f0d8a8 0%, transparent 60%); }
.scn-simile-of-two-rams .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0d0e8 0%, #90b8d0 40%, transparent 100%); animation: s2r-sky 15s ease-in-out infinite alternate; }
.scn-simile-of-two-rams .cliff { position:absolute; bottom:50%; left:20%; right:30%; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); }
.scn-simile-of-two-rams .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 30%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-simile-of-two-rams .ram-l { position:absolute; bottom:16%; left:22%; width:36px; height:40px; background: radial-gradient(ellipse at 50% 60%, #d4c8a8 0%, #a89878 50%, #7a6a4a 100%); border-radius: 50% 50% 40% 40% / 60% 50% 30% 30%; animation: s2r-lunge-l 3s ease-in-out infinite; }
.scn-simile-of-two-rams .ram-r { position:absolute; bottom:16%; right:22%; width:36px; height:40px; background: radial-gradient(ellipse at 50% 60%, #c8b898 0%, #9a8870 50%, #6a5a3a 100%); border-radius: 50% 50% 40% 40% / 60% 50% 30% 30%; transform: scaleX(-1); animation: s2r-lunge-r 3s ease-in-out infinite 1.5s; }
.scn-simile-of-two-rams .horns-l { position:absolute; bottom:36%; left:24%; width:28px; height:16px; background: linear-gradient(135deg, #c8b890 0%, #a89878 50%, #7a6848 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: rotate(20deg); animation: s2r-horn-l 3s ease-in-out infinite; }
.scn-simile-of-two-rams .horns-r { position:absolute; bottom:36%; right:24%; width:28px; height:16px; background: linear-gradient(225deg, #c8b890 0%, #a89878 50%, #7a6848 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: scaleX(-1) rotate(20deg); animation: s2r-horn-r 3s ease-in-out infinite 1.5s; }
.scn-simile-of-two-rams .impact { position:absolute; bottom:30%; left:50%; width:18px; height:12px; background: radial-gradient(ellipse, rgba(240,210,140,.7) 0%, rgba(240,210,140,.2) 50%, transparent 100%); transform: translateX(-50%) scale(0.8); filter: blur(2px); animation: s2r-impact 3s ease-in-out infinite; }
@keyframes s2r-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes s2r-lunge-l { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(14px) translateY(-3px) rotate(2deg) } 50% { transform: translateX(18px) translateY(-4px) rotate(3deg) } 70% { transform: translateX(14px) translateY(-3px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes s2r-lunge-r { 0% { transform: scaleX(-1) translateX(0) translateY(0) rotate(-1deg) } 30% { transform: scaleX(-1) translateX(14px) translateY(-3px) rotate(2deg) } 50% { transform: scaleX(-1) translateX(18px) translateY(-4px) rotate(3deg) } 70% { transform: scaleX(-1) translateX(14px) translateY(-3px) rotate(2deg) } 100% { transform: scaleX(-1) translateX(0) translateY(0) rotate(-1deg) } }
@keyframes s2r-horn-l { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(15deg) } }
@keyframes s2r-horn-r { 0% { transform: scaleX(-1) rotate(15deg) } 50% { transform: scaleX(-1) rotate(25deg) } 100% { transform: scaleX(-1) rotate(15deg) } }
@keyframes s2r-impact { 0% { opacity:0; transform: translateX(-50%) scale(0.6) } 30% { opacity:1; transform: translateX(-50%) scale(1.2) } 50% { opacity:.7; transform: translateX(-50%) scale(1) } 70% { opacity:0; transform: translateX(-50%) scale(0.8) } 100% { opacity:0; transform: translateX(-50%) scale(0.6) } }

.scn-knights-fight-on-foot { background: linear-gradient(180deg, #e8d0a8 0%, #c8b080 25%, #a89060 50%, #887048 100%), radial-gradient(ellipse at 50% 0%, #f8e8c8 0%, transparent 60%); }
.scn-knights-fight-on-foot .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b8d8e8 0%, #90b8d0 40%, transparent 100%); animation: kff-sky 14s ease-in-out infinite alternate; }
.scn-knights-fight-on-foot .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 30%, #3a2a1a 100%); border-radius: 30% 40% 0 0 / 15% 20% 0 0; }
.scn-knights-fight-on-foot .knight-l { position:absolute; bottom:16%; left:20%; width:30px; height:48px; background: linear-gradient(180deg, #5e1a1d 0%, #3a1010 50%, #1a0808 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: inset 0 4px 8px rgba(255,255,255,.15); animation: kff-bob-l 2s ease-in-out infinite; }
.scn-knights-fight-on-foot .knight-r { position:absolute; bottom:16%; right:20%; width:30px; height:48px; background: linear-gradient(180deg, #4a1a0a 0%, #2a0a00 50%, #0a0000 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: inset 0 4px 8px rgba(255,255,255,.12); transform: scaleX(-1); animation: kff-bob-r 2s ease-in-out infinite; }
.scn-knights-fight-on-foot .sword-l { position:absolute; bottom:50%; left:30%; width:40px; height:4px; background: linear-gradient(180deg, #d4c8b8 0%, #a89888 50%, #7a6a5a 100%); border-radius: 2px; transform-origin: 0% 50%; transform: rotate(30deg); animation: kff-slash-l 2s ease-in-out infinite; }
.scn-knights-fight-on-foot .sword-r { position:absolute; bottom:50%; right:30%; width:40px; height:4px; background: linear-gradient(180deg, #d4c8b8 0%, #a89888 50%, #7a6a5a 100%); border-radius: 2px; transform-origin: 100% 50%; transform: rotate(-30deg); animation: kff-slash-r 2s ease-in-out infinite; }
.scn-knights-fight-on-foot .shield-l { position:absolute; bottom:30%; left:14%; width:22px; height:28px; background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 60%, #3a1000 100%); border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow: inset 0 3px 6px rgba(0,0,0,.4); animation: kff-shield-l 2s ease-in-out infinite; }
.scn-knights-fight-on-foot .shield-r { position:absolute; bottom:30%; right:14%; width:22px; height:28px; background: linear-gradient(180deg, #5e1a1d 0%, #3a1010 60%, #1a0808 100%); border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow: inset 0 3px 6px rgba(0,0,0,.4); transform: scaleX(-1); animation: kff-shield-r 2s ease-in-out infinite; }
.scn-knights-fight-on-foot .sparks { position:absolute; bottom:42%; left:50%; width:16px; height:16px; background: radial-gradient(circle, #f0d080 0%, rgba(240,208,128,.4) 40%, transparent 70%); transform: translateX(-50%); filter: blur(1px); animation: kff-sparks 2s ease-in-out infinite; }
@keyframes kff-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes kff-bob-l { 0% { transform: translate(0,0) rotate(-1deg) } 25% { transform: translate(-2px,-2px) rotate(-3deg) } 50% { transform: translate(0,0) rotate(-1deg) } 75% { transform: translate(2px,-2px) rotate(2deg) } 100% { transform: translate(0,0) rotate(-1deg) } }
@keyframes kff-bob-r { 0% { transform: scaleX(-1) translate(0,0) rotate(1deg) } 25% { transform: scaleX(-1) translate(-2px,-2px) rotate(3deg) } 50% { transform: scaleX(-1) translate(0,0) rotate(1deg) } 75% { transform: scaleX(-1) translate(2px,-2px) rotate(-2deg) } 100% { transform: scaleX(-1) translate(0,0) rotate(1deg) } }
@keyframes kff-slash-l { 0% { transform: rotate(25deg) } 25% { transform: rotate(40deg) } 50% { transform: rotate(25deg) } 75% { transform: rotate(15deg) } 100% { transform: rotate(25deg) } }
@keyframes kff-slash-r { 0% { transform: rotate(-25deg) } 25% { transform: rotate(-40deg) } 50% { transform: rotate(-25deg) } 75% { transform: rotate(-15deg) } 100% { transform: rotate(-25deg) } }
@keyframes kff-shield-l { 0% { transform: translate(0,0) } 25% { transform: translate(3px,-1px) } 50% { transform: translate(0,0) } 75% { transform: translate(-2px,-1px) } 100% { transform: translate(0,0) } }
@keyframes kff-shield-r { 0% { transform: scaleX(-1) translate(0,0) } 25% { transform: scaleX(-1) translate(-3px,-1px) } 50% { transform: scaleX(-1) translate(0,0) } 75% { transform: scaleX(-1) translate(2px,-1px) } 100% { transform: scaleX(-1) translate(0,0) } }
@keyframes kff-sparks { 0% { opacity:0; transform: translateX(-50%) scale(0.5) } 25% { opacity:1; transform: translateX(-50%) scale(1.3) } 50% { opacity:.6; transform: translateX(-50%) scale(1) } 75% { opacity:0; transform: translateX(-50%) scale(0.7) } 100% { opacity:0; transform: translateX(-50%) scale(0.5) } }

.scn-sansfoy-taunts-redcrosse { background: linear-gradient(180deg, #e8d0a8 0%, #c8b080 25%, #a89060 50%, #887048 100%), radial-gradient(ellipse at 50% 0%, #f8e8c8 0%, transparent 60%); }
.scn-sansfoy-taunts-redcrosse .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b8d8e8 0%, #90b8d0 40%, transparent 100%); animation: str-sky 12s ease-in-out infinite alternate; }
.scn-sansfoy-taunts-redcrosse .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 30%, #3a2a1a 100%); border-radius: 30% 40% 0 0 / 15% 20% 0 0; }
.scn-sansfoy-taunts-redcrosse .sansfoy-body { position:absolute; bottom:18%; right:28%; width:32px; height:50px; background: linear-gradient(180deg, #5e1a1d 0%, #3a1010 50%, #1a0808 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: inset 0 4px 8px rgba(255,255,255,.1); animation: str-tower 3s ease-in-out infinite; }
.scn-sansfoy-taunts-redcrosse .sansfoy-arm { position:absolute; bottom:42%; right:25%; width:18px; height:6px; background: linear-gradient(180deg, #5e1a1d 0%, #3a1010 100%); border-radius: 50% 50% 30% 30% / 100% 100% 60% 60%; transform-origin: 100% 50%; transform: rotate(-30deg); animation: str-arm-swing 3s ease-in-out infinite; }
.scn-sansfoy-taunts-redcrosse .sansfoy-sword { position:absolute; bottom:48%; right:20%; width:48px; height:4px; background: linear-gradient(180deg, #d4c8b8 0%, #a89888 50%, #7a6a5a 100%); border-radius: 2px; transform-origin: 100% 50%; transform: rotate(-25deg); animation: str-sword-swing 3s ease-in-out infinite; }
.scn-sansfoy-taunts-redcrosse .redcrosse-body { position:absolute; bottom:10%; left:34%; width:28px; height:36px; background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 50%, #4a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: rotate(10deg); animation: str-reel 3s ease-in-out infinite; }
.scn-sansfoy-taunts-redcrosse .redcrosse-shield { position:absolute; bottom:16%; left:38%; width:20px; height:26px; background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 60%, #3a1000 100%); border-radius: 15% 15% 25% 25% / 25% 25% 35% 35%; box-shadow: inset 0 3px 6px rgba(0,0,0,.4); transform: rotate(5deg); animation: str-shield 3s ease-in-out infinite; }
.scn-sansfoy-taunts-redcrosse .impact-burst { position:absolute; bottom:40%; left:50%; width:30px; height:30px; background: radial-gradient(circle, #f0d080 0%, rgba(240,208,128,.3) 30%, transparent 70%); transform: translateX(-50%); filter: blur(3px); animation: str-burst 3s ease-in-out infinite; }
@keyframes str-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes str-tower { 0% { transform: translate(0,0) rotate(-1deg) } 25% { transform: translate(0,-2px) rotate(-2deg) } 50% { transform: translate(0,0) rotate(-1deg) } 75% { transform: translate(1px,-1px) rotate(0deg) } 100% { transform: translate(0,0) rotate(-1deg) } }
@keyframes str-arm-swing { 0% { transform: rotate(-25deg) } 25% { transform: rotate(-45deg) } 50% { transform: rotate(-25deg) } 75% { transform: rotate(-40deg) } 100% { transform: rotate(-25deg) } }
@keyframes str-sword-swing { 0% { transform: rotate(-20deg) } 25% { transform: rotate(-40deg) } 50% { transform: rotate(-20deg) } 75% { transform: rotate(-35deg) } 100% { transform: rotate(-20deg) } }
@keyframes str-reel { 0% { transform: rotate(8deg) translate(0,0) } 25% { transform: rotate(15deg) translate(2px,-1px) } 50% { transform: rotate(8deg) translate(0,0) } 75% { transform: rotate(12deg) translate(1px,-1px) } 100% { transform: rotate(8deg) translate(0,0) } }
@keyframes str-shield { 0% { transform: rotate(3deg) translate(0,0) } 25% { transform: rotate(8deg) translate(2px,-1px) } 50% { transform: rotate(3deg) translate(0,0) } 75% { transform: rotate(6deg) translate(1px,-1px) } 100% { transform: rotate(3deg) translate(0,0) } }
@keyframes str-burst { 0% { opacity:0; transform: translateX(-50%) scale(0.5) } 25% { opacity:1; transform: translateX(-50%) scale(1.5) } 50% { opacity:.5; transform: translateX(-50%) scale(1.1) } 75% { opacity:0; transform: translateX(-50%) scale(0.8) } 100% { opacity:0; transform: translateX(-50%) scale(0.5) } }

/* redcrosse-strikes-back */
.scn-redcrosse-strikes-back {
  background:
    linear-gradient(180deg, #4a6b8e 0%, #87aec0 30%, #f5d89a 70%),
    radial-gradient(ellipse at 50% 100%, #7a5930 0%, transparent 60%);
}

.scn-redcrosse-strikes-back .sunburst {
  position: absolute; top: 5%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe58e 0%, #ffdd6e 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 20px #ffdd6e;
  animation: rsb-sun 6s ease-in-out infinite;
}

.scn-redcrosse-strikes-back .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2f4b6e 0%, #88b3d0 40%, #f5d89a 80%);
  animation: rsb-sky 12s ease-in-out infinite alternate;
}

.scn-redcrosse-strikes-back .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #5a3a22 0%, #8a6a3a 40%, #b89a5e 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}

.scn-redcrosse-strikes-back .knight {
  position: absolute; bottom: 30%; left: 25%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rsb-knight 1.2s ease-in-out infinite;
  box-shadow: -10px 0 20px rgba(0,0,0,0.4);
}

.scn-redcrosse-strikes-back .sword {
  position: absolute; bottom: 45%; left: 28%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #d4d4e0 0%, #a0a0b0 100%);
  border-radius: 2px;
  transform-origin: 4px 70px;
  animation: rsb-sword 0.8s ease-in-out infinite alternate;
  box-shadow: 0 0 10px 2px rgba(200,200,210,0.5);
}

.scn-redcrosse-strikes-back .enemy {
  position: absolute; bottom: 22%; right: 28%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rsb-enemy 0.8s ease-in-out infinite;
  box-shadow: 10px 0 15px rgba(0,0,0,0.3);
}

.scn-redcrosse-strikes-back .spark {
  position: absolute; top: 40%; right: 40%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffa500;
  animation: rsb-spark 0.3s ease-in-out infinite alternate;
}

.scn-redcrosse-strikes-back .shadow {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: rsb-shadow 1.5s ease-in-out infinite;
}

.scn-redcrosse-strikes-back .dust {
  position: absolute; bottom: 20%; left: 40%; right: 10%; height: 60px;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,180,140,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: rsb-dust 2s ease-in-out infinite;
}

@keyframes rsb-sun {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.15); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.85; }
}
@keyframes rsb-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes rsb-knight {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-4px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes rsb-sword {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-30deg); }
}
@keyframes rsb-enemy {
  0% { transform: translateY(0) rotate(5deg); }
  30% { transform: translateY(-15px) rotate(-10deg); }
  60% { transform: translateY(0) rotate(5deg); }
  100% { transform: translateY(0) rotate(5deg); }
}
@keyframes rsb-spark {
  0% { transform: scale(1); opacity: 1; }
  100% { transform: scale(2); opacity: 0.4; }
}
@keyframes rsb-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.3); opacity: 0.3; }
  100% { transform: scaleX(1); opacity: 0.6; }
}
@keyframes rsb-dust {
  0% { transform: translateY(0) scaleY(1); opacity: 0.5; }
  50% { transform: translateY(-20px) scaleY(1.5); opacity: 0.2; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.5; }
}

/* duessa-flees */
.scn-duessa-flees {
  background:
    linear-gradient(180deg, #3b5a7a 0%, #6a8aaa 40%, #b0c8d8 70%, #d4a050 100%),
    radial-gradient(ellipse at 50% 0%, #a0b8c8 0%, transparent 60%);
}

.scn-duessa-flees .sky-flee {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a4a6a 0%, #88aac0 50%, #d4b070 100%);
  animation: df-sky 15s ease-in-out infinite alternate;
}

.scn-duessa-flees .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, #5a4a2a 0%, #8a7a4a 40%, #b09a5e 80%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 8px 25px rgba(0,0,0,0.4);
}

.scn-duessa-flees .ruin-tower {
  position: absolute; bottom: 30%; right: 15%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 5% 5% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
  animation: df-ruin 20s linear infinite;
}

.scn-duessa-flees .duessa {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a4e 0%, #0e0e2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df-duessa 1.5s ease-in-out infinite;
}

.scn-duessa-flees .dwarf {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df-dwarf 1.2s ease-in-out infinite;
  box-shadow: 5px 0 10px rgba(0,0,0,0.3);
}

.scn-duessa-flees .shield {
  position: absolute; bottom: 32%; left: 44%; width: 18px; height: 22px;
  background: linear-gradient(135deg, #7a3a2a 0%, #4a1a0a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-20deg);
  animation: df-shield 1.5s ease-in-out infinite alternate;
  box-shadow: 0 0 10px 2px rgba(122,58,42,0.6);
}

.scn-duessa-flees .path {
  position: absolute; bottom: 12%; left: 10%; right: 20%; height: 10px;
  background: linear-gradient(90deg, transparent, #6a5a3a 20%, #8a7a4a 50%, #6a5a3a 80%, transparent);
  border-radius: 50%;
  filter: blur(3px);
  animation: df-path 4s ease-in-out infinite;
}

.scn-duessa-flees .debris {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a1a 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(8px);
  animation: df-debris 3s ease-in-out infinite alternate;
}

@keyframes df-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes df-ruin {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes df-duessa {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(10px) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(20px) translateY(-1px) rotate(-1deg); }
  75% { transform: translateX(30px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(40px) translateY(0) rotate(0); }
}
@keyframes df-dwarf {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(-1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(1deg); }
  75% { transform: translateX(24px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0); }
}
@keyframes df-shield {
  0% { transform: rotate(-20deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.05); }
  100% { transform: rotate(-20deg) scale(1); }
}
@keyframes df-path {
  0% { opacity: 0.3; background-position: 0% 50%; }
  50% { opacity: 0.6; background-position: 100% 50%; }
  100% { opacity: 0.3; background-position: 0% 50%; }
}
@keyframes df-debris {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-15px) scale(1.2); opacity: 0.2; }
  100% { transform: translateY(0) scale(1); opacity: 0.4; }
}

/* duessa-pleads-for-mercy */
.scn-duessa-pleads-for-mercy {
  background:
    linear-gradient(180deg, #4a6b7a 0%, #8aaac0 40%, #d4c08a 70%, #e8d8a0 100%),
    radial-gradient(ellipse at 30% 70%, #b0a078 0%, transparent 60%);
}

.scn-duessa-pleads-for-mercy .sky-mercy {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a4a5a 0%, #7a9aa8 40%, #c8b880 100%);
  animation: dpm-sky 18s ease-in-out infinite alternate;
}

.scn-duessa-pleads-for-mercy .meadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, #5a6a3a 0%, #7a8a5a 40%, #a8b878 100%);
  border-radius: 60% 40% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}

.scn-duessa-pleads-for-mercy .knight-stand {
  position: absolute; bottom: 28%; left: 55%; width: 45px; height: 85px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dpm-knight 2s ease-in-out infinite;
  box-shadow: 10px 0 20px rgba(0,0,0,0.3);
}

.scn-duessa-pleads-for-mercy .duessa-kneel {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2a4a 0%, #0e0e2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dpm-kneel 1.5s ease-in-out infinite;
}

.scn-duessa-pleads-for-mercy .cloak {
  position: absolute; bottom: 22%; left: 28%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #3a2a4a 0%, #1a0e2a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-15deg);
  animation: dpm-cloak 4s ease-in-out infinite;
  box-shadow: -5px 0 15px rgba(0,0,0,0.4);
}

.scn-duessa-pleads-for-mercy .light-ray {
  position: absolute; top: 10%; left: 40%; width: 60px; height: 120px;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  transform: rotate(20deg);
  filter: blur(10px);
  animation: dpm-ray 5s ease-in-out infinite alternate;
}

.scn-duessa-pleads-for-mercy .grass {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 15px;
  background: linear-gradient(90deg, transparent, #5a7a3a 20%, #6a8a4a 50%, #5a7a3a 80%, transparent);
  border-radius: 50%;
  filter: blur(4px);
  animation: dpm-grass 3s ease-in-out infinite;
}

@keyframes dpm-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dpm-knight {
  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 dpm-kneel {
  0% { transform: translateY(0) rotate(3deg); }
  25% { transform: translateY(-2px) rotate(0); }
  50% { transform: translateY(0) rotate(-3deg); }
  75% { transform: translateY(-2px) rotate(0); }
  100% { transform: translateY(0) rotate(3deg); }
}
@keyframes dpm-cloak {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(-10deg) scale(1.05); }
  100% { transform: rotate(-15deg) scale(1); }
}
@keyframes dpm-ray {
  0% { opacity: 0.3; transform: rotate(20deg) scaleY(1); }
  50% { opacity: 0.7; transform: rotate(25deg) scaleY(1.2); }
  100% { opacity: 0.3; transform: rotate(20deg) scaleY(1); }
}
@keyframes dpm-grass {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

/* duessas-false-tale */
.scn-duessas-false-tale {
  background:
    linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 40%, #6a7a8a 70%, #8a9a9a 100%),
    radial-gradient(ellipse at 50% 80%, #5a6a7a 0%, transparent 60%);
}

.scn-duessas-false-tale .overcast-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 40%, #8a9a9a 80%);
  animation: dft-sky 20s ease-in-out infinite alternate;
}

.scn-duessas-false-tale .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}

.scn-duessas-false-tale .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a100a 0%, #3a2a1a 50%, #5a4a3a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}

.scn-duessas-false-tale .woman-seated {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dft-woman 4s ease-in-out infinite;
}

.scn-duessas-false-tale .scroll {
  position: absolute; bottom: 22%; left: 45%; width: 24px; height: 8px;
  background: linear-gradient(90deg, #c8b080 0%, #e8d0a0 50%, #c8b080 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: dft-scroll 6s ease-in-out infinite;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
}

.scn-duessas-false-tale .candle-glow {
  position: absolute; bottom: 35%; left: 55%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffa040, 0 0 60px 20px rgba(255,160,64,0.3);
  animation: dft-candle 2s ease-in-out infinite alternate;
}

.scn-duessas-false-tale .shadow-fall {
  position: absolute; bottom: 10%; left: 30%; right: 20%; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: dft-shadow 3s ease-in-out infinite;
}

.scn-duessas-false-tale .tear-drop {
  position: absolute; bottom: 15%; left: 38%; width: 4px; height: 6px;
  background: radial-gradient(circle, #a0c8d8 0%, #608098 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 6px 2px rgba(96,128,152,0.5);
  animation: dft-tear 2s ease-in-out infinite;
}

@keyframes dft-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes dft-woman {
  0% { transform: translateY(0) rotate(0); }
  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 dft-scroll {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(-5deg) scaleX(1.1); }
  100% { transform: rotate(-10deg) scaleX(1); }
}
@keyframes dft-candle {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(0.9); }
}
@keyframes dft-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes dft-tear {
  0% { transform: translateY(0); opacity: 1; }
  50% { transform: translateY(8px); opacity: 0.5; }
  100% { transform: translateY(16px); opacity: 0; }
}

.scn-dedication-to-raleigh {
  background:
    linear-gradient(180deg, #fce4b8 0%, #f7d794 30%, #e8b56a 60%, #c08a4a 90%),
    radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 60%);
}
.scn-dedication-to-raleigh .sky-dr {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4e8f0 0%, #f6e6b0 100%);
  animation: dr-sky 14s ease-in-out infinite alternate;
}
.scn-dedication-to-raleigh .sun-dr {
  position: absolute; top: 8%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff5c0 0%, #f5d060 50%, transparent 70%);
  border-radius: 50%;
  animation: dr-sun 10s ease-in-out infinite alternate;
}
.scn-dedication-to-raleigh .rays-dr {
  position: absolute; top: 0; left: 60%; right: -10%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,180,0.4) 0%, transparent 60%);
  filter: blur(8px);
  animation: dr-rays 16s ease-in-out infinite alternate;
}
.scn-dedication-to-raleigh .ground-dr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b6f3e 0%, #5a4520 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: dr-ground 12s ease-in-out infinite alternate;
}
.scn-dedication-to-raleigh .poet-dr {
  position: absolute; bottom: 28%; left: 25%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0803 100%);
  border-radius: 45% 50% 40% 40% / 60% 55% 45% 40%;
  transform-origin: bottom center;
  animation: dr-walk 5s ease-in-out infinite;
}
.scn-dedication-to-raleigh .lord-dr {
  position: absolute; bottom: 28%; left: 55%; width: 34px; height: 56px;
  background: linear-gradient(180deg, #1e1208 0%, #0a0602 100%);
  border-radius: 50% 45% 40% 45% / 55% 50% 45% 50%;
  transform-origin: bottom center;
  animation: dr-stand 6s ease-in-out infinite alternate;
}
.scn-dedication-to-raleigh .book-dr {
  position: absolute; bottom: 31%; left: 40%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #c8a050 0%, #8b6f3e 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  transform: rotate(-15deg);
  animation: dr-book 3s ease-in-out infinite alternate;
}
@keyframes dr-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dr-sun { 0% { transform: translateX(0) translateY(0) scale(1); box-shadow: 0 0 40px 10px #faca50; } 50% { transform: translateX(10px) translateY(-4px) scale(1.04); box-shadow: 0 0 60px 20px #fada60; } 100% { transform: translateX(-5px) translateY(2px) scale(0.98); box-shadow: 0 0 30px 8px #f0b840; } }
@keyframes dr-rays { 0% { transform: rotate(0deg) scaleX(1); opacity:0.5; } 50% { transform: rotate(4deg) scaleX(1.1); opacity:0.7; } 100% { transform: rotate(-3deg) scaleX(0.95); opacity:0.45; } }
@keyframes dr-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(1px) scaleY(0.99); } }
@keyframes dr-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes dr-stand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes dr-book { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-1px); } 100% { transform: rotate(-18deg) translateY(0); } }

.scn-dedication-to-queen-elizabeth {
  background:
    linear-gradient(180deg, #d4c8a0 0%, #e0d4be 30%, #c4b698 70%, #a09070 100%),
    radial-gradient(ellipse at 50% 30%, #efe6d0 0%, transparent 70%);
}
.scn-dedication-to-queen-elizabeth .interior-wall-qe {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #b8a88a 0%, #d4c4a0 50%, #b0a080 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
  animation: qe-wall 20s ease-in-out infinite alternate;
}
.scn-dedication-to-queen-elizabeth .window-qe {
  position: absolute; top: 10%; left: 8%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #b8d8e8 0%, #e8f0f8 100%);
  border: 4px solid #7a6a4a;
  border-radius: 8px 8px 4px 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 0 30px rgba(200,180,120,0.3);
  animation: qe-window 8s ease-in-out infinite alternate;
}
.scn-dedication-to-queen-elizabeth .light-ray-qe {
  position: absolute; top: 0; left: 5%; width: 100px; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,200,0.35) 0%, transparent 70%);
  filter: blur(10px);
  animation: qe-rays 14s ease-in-out infinite alternate;
}
.scn-dedication-to-queen-elizabeth .throne-qe {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: qe-throne 12s ease-in-out infinite alternate;
}
.scn-dedication-to-queen-elizabeth .queen-qe {
  position: absolute; bottom: 20%; left: 50%; width: 32px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: qe-queen 6s ease-in-out infinite alternate;
}
.scn-dedication-to-queen-elizabeth .crown-qe {
  position: absolute; bottom: 68%; left: 50%; width: 30px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #f0d060 0%, #c09830 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 12px 4px rgba(200,160,60,0.5);
  animation: qe-crown 4s ease-in-out infinite alternate;
}
.scn-dedication-to-queen-elizabeth .floor-qe {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8a7860 0%, #6a5a42 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: qe-floor 18s ease-in-out infinite alternate;
}
.scn-dedication-to-queen-elizabeth .pillar-qe {
  position: absolute; bottom: 15%; left: 14%; width: 18px; height: 85%;
  background: linear-gradient(90deg, #b0a080 0%, #d0c0a0 50%, #a09070 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
  animation: qe-pillar 10s ease-in-out infinite alternate;
}
@keyframes qe-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes qe-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 0 30px rgba(200,180,120,0.3); } 50% { box-shadow: inset 0 0 30px rgba(255,255,220,0.8), 0 0 50px rgba(220,200,140,0.5); } 100% { box-shadow: inset 0 0 15px rgba(255,255,180,0.4), 0 0 25px rgba(190,170,110,0.25); } }
@keyframes qe-rays { 0% { transform: translateX(-10px) skewX(2deg); opacity:0.6; } 50% { transform: translateX(5px) skewX(-1deg); opacity:0.8; } 100% { transform: translateX(-5px) skewX(0deg); opacity:0.5; } }
@keyframes qe-throne { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(1px); } }
@keyframes qe-queen { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(1px) rotate(-1deg); } }
@keyframes qe-crown { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes qe-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes qe-pillar { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }

.scn-proem-invocation {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #4a3a5a 30%, #9a7a6a 60%, #c8a880 80%, #f0d0a0 100%),
    radial-gradient(ellipse at 70% 80%, #f0d0a0 0%, transparent 70%);
}
.scn-proem-invocation .sky-pi {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #6a5a6a 40%, #c0a080 80%, transparent 100%);
  animation: pi-sky 16s ease-in-out infinite alternate;
}
.scn-proem-invocation .horizon-pi {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 8px;
  background: linear-gradient(90deg, #d0b090 0%, #f0d8b8 50%, #d0b090 100%);
  filter: blur(2px);
  animation: pi-horizon 8s ease-in-out infinite alternate;
}
.scn-proem-invocation .shepherd-pi {
  position: absolute; bottom: 34%; left: 35%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 45% 50% 40% 40% / 60% 55% 45% 40%;
  transform-origin: bottom center;
  animation: pi-shepherd 4s ease-in-out infinite;
}
.scn-proem-invocation .staff-pi {
  position: absolute; bottom: 34%; left: 32%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #6a3a1a 0%, #3a1a08 100%);
  border-radius: 2px;
  transform: rotate(8deg);
  transform-origin: bottom center;
  animation: pi-staff 5s ease-in-out infinite alternate;
}
.scn-proem-invocation .trumpet-pi {
  position: absolute; bottom: 36%; left: 42%; width: 22px; height: 8px;
  background: linear-gradient(135deg, #d0a060 0%, #a08040 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: pi-trumpet 3s ease-in-out infinite alternate;
}
.scn-proem-invocation .muse-pi {
  position: absolute; bottom: 30%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a4a6a 0%, #2a1a3a 100%);
  border-radius: 50% 45% 40% 45% / 55% 50% 45% 50%;
  transform-origin: bottom center;
  animation: pi-muse 7s ease-in-out infinite alternate;
}
.scn-proem-invocation .ground-pi {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a08 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: pi-ground 10s ease-in-out infinite alternate;
}
@keyframes pi-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes pi-horizon { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.5 } }
@keyframes pi-shepherd { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(9px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(12px) translateY(0) rotate(0deg); } }
@keyframes pi-staff { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(1px); } }
@keyframes pi-trumpet { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.05); } 100% { transform: rotate(-25deg) scaleX(0.95); } }
@keyframes pi-muse { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(2px) rotate(-1deg); } }
@keyframes pi-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(1px) scaleY(0.99); } }

.scn-invocation-to-muse {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #3a2a5a 30%, #8a6a6a 60%, #c8a080 80%, #e8c8a0 100%),
    radial-gradient(ellipse at 50% 90%, #e8c8a0 0%, transparent 70%);
}
.scn-invocation-to-muse .sky-im {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #6a5a6a 40%, #b09070 80%, transparent 100%);
  animation: im-sky 18s ease-in-out infinite alternate;
}
.scn-invocation-to-muse .horizon-im {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 6px;
  background: linear-gradient(90deg, #c8a880 0%, #f0d8c0 50%, #c8a880 100%);
  filter: blur(2px);
  animation: im-horizon 6s ease-in-out infinite alternate;
}
.scn-invocation-to-muse .knight-im {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 56px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 45% 50% 40% 40% / 55% 50% 45% 40%;
  transform-origin: bottom center;
  animation: im-knight 5s ease-in-out infinite;
}
.scn-invocation-to-muse .shield-im {
  position: absolute; bottom: 32%; left: 26%; width: 16px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #8a7a5a 0%, #5a4a2a 60%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(15deg);
  animation: im-shield 4s ease-in-out infinite alternate;
}
.scn-invocation-to-muse .scroll-im {
  position: absolute; bottom: 35%; left: 42%; width: 20px; height: 12px;
  background: linear-gradient(135deg, #e8d0a0 0%, #c8a870 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-10deg);
  animation: im-scroll 3s ease-in-out infinite alternate;
}
.scn-invocation-to-muse .muse-im {
  position: absolute; bottom: 25%; left: 55%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #6a5a7a 0%, #3a2a4a 100%);
  border-radius: 50% 45% 40% 45% / 55% 50% 45% 50%;
  transform-origin: bottom center;
  animation: im-muse 8s ease-in-out infinite alternate;
}
.scn-invocation-to-muse .stars-im {
  position: absolute; top: 5%; left: 5%; width: 60px; height: 30px;
  background:
    radial-gradient(2px 2px at 20% 30%, #fff8e0, transparent),
    radial-gradient(2px 2px at 50% 60%, #fff8e0, transparent),
    radial-gradient(2px 2px at 80% 20%, #fff8e0, transparent),
    radial-gradient(2px 2px at 10% 70%, #fff8e0, transparent),
    radial-gradient(2px 2px at 70% 80%, #fff8e0, transparent);
  opacity: 0.6;
  animation: im-stars 12s ease-in-out infinite alternate;
}
@keyframes im-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes im-horizon { 0% { opacity:0.5 } 50% { opacity:0.9 } 100% { opacity:0.4 } }
@keyframes im-knight { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes im-shield { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-1px); } 100% { transform: rotate(18deg) translateY(1px); } }
@keyframes im-scroll { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-7deg) scaleY(1.04); } 100% { transform: rotate(-13deg) scaleY(0.96); } }
@keyframes im-muse { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(2px) rotate(-1deg); } }
@keyframes im-stars { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.3 } }

.scn-prothalamion-and-hymns { 
  background: linear-gradient(180deg, #fce4bb 0%, #f9d585 30%, #f8da8a 60%, #aaccdd 100%), 
              radial-gradient(ellipse at 70% 20%, #fff7e0 0%, transparent 60%); 
}
.scn-prothalamion-and-hymns .sky { 
  position:absolute; inset:0 0 30% 0; 
  background: linear-gradient(180deg, #87CEEB 0%, #b0e0f0 50%, transparent 100%); 
  animation: pr-sky 15s ease-in-out infinite alternate; 
}
.scn-prothalamion-and-hymns .sun { 
  position:absolute; top:10%; left:70%; 
  width:80px; height:80px; 
  background: radial-gradient(circle, #fff7b0 0%, #ffd700 40%, #ffa500 70%, transparent 100%); 
  border-radius:50%; 
  box-shadow: 0 0 60px 30px rgba(255,215,0,0.3); 
  animation: pr-sun 8s ease-in-out infinite; 
}
.scn-prothalamion-and-hymns .cloud-a, .scn-prothalamion-and-hymns .cloud-b { 
  position:absolute; top:18%; 
  width:120px; height:25px; 
  background: linear-gradient(90deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.3) 50%, transparent 100%); 
  border-radius:50%; 
  filter: blur(6px); 
}
.scn-prothalamion-and-hymns .cloud-a { left:-10%; animation: pr-drift-a 40s linear infinite; }
.scn-prothalamion-and-hymns .cloud-b { left:30%; top:25%; width:80px; height:18px; animation: pr-drift-b 50s linear infinite reverse; }
.scn-prothalamion-and-hymns .hills { 
  position:absolute; bottom:25%; left:0; right:0; height:20%; 
  background: linear-gradient(180deg, #7ba07b 0%, #4a6e4a 100%); 
  border-radius: 60% 40% 0 0 / 80% 60% 0 0; 
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2); 
  animation: pr-hills 12s ease-in-out infinite alternate; 
}
.scn-prothalamion-and-hymns .arch { 
  position:absolute; bottom:32%; left:50%; transform:translateX(-50%); 
  width:140px; height:90px; 
  background: linear-gradient(180deg, #c9a87c 0%, #a4845c 80%); 
  border-radius: 50% 50% 0 0 / 80% 80% 0 0; 
  box-shadow: 0 -10px 30px rgba(255,215,0,0.2); 
  animation: pr-arch 10s ease-in-out infinite alternate; 
}
.scn-prothalamion-and-hymns .couple { 
  position:absolute; bottom:28%; left:50%; transform:translateX(-50%); 
  width:40px; height:60px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); 
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%; 
  box-shadow: 0 4px 10px rgba(0,0,0,0.3); 
  animation: pr-couple 6s ease-in-out infinite; 
}
.scn-prothalamion-and-hymns .flower-field { 
  position:absolute; bottom:0; left:0; right:0; height:18%; 
  background: radial-gradient(circle at 20% 50%, #d4a017 0%, transparent 40%), 
              radial-gradient(circle at 60% 30%, #dda0dd 0%, transparent 40%), 
              radial-gradient(circle at 80% 70%, #f8c8a0 0%, transparent 40%), 
              linear-gradient(180deg, #5a7a3a 0%, #2a4a1a 100%); 
  border-radius: 30% 70% 0 0 / 60% 40% 0 0; 
  animation: pr-flowers 8s ease-in-out infinite alternate; 
}
.scn-prothalamion-and-hymns .veil { 
  position:absolute; bottom:30%; left:48%; 
  width:20px; height:60px; 
  background: linear-gradient(180deg, rgba(255,255,240,0.9) 0%, rgba(255,255,240,0.2) 100%); 
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; 
  transform-origin: top center; 
  animation: pr-veil 4s ease-in-out infinite; 
}
@keyframes pr-sky { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pr-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 30px rgba(255,215,0,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 80px 40px rgba(255,215,0,0.5); } 100% { transform: scale(1); box-shadow: 0 0 60px 30px rgba(255,215,0,0.3); } }
@keyframes pr-drift-a { 0% { transform: translateX(-150px); } 100% { transform: translateX(100vw); } }
@keyframes pr-drift-b { 0% { transform: translateX(30vw); } 100% { transform: translateX(-130vw); } }
@keyframes pr-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pr-arch { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(1deg) scaleY(1.01); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes pr-couple { 0%,100% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } }
@keyframes pr-flowers { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes pr-veil { 0% { transform: rotate(0); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0); } }

.scn-return-to-ireland-and-sheriff { 
  background: linear-gradient(180deg, #5a6068 0%, #3f444a 40%, #2c3035 100%), 
              radial-gradient(ellipse at 50% 0%, #6b737d 0%, transparent 70%); 
}
.scn-return-to-ireland-and-sheriff .overcast-sky { 
  position:absolute; inset:0 0 35% 0; 
  background: linear-gradient(180deg, #7a828a 0%, #5a6068 60%, transparent 100%); 
  animation: re-sky 10s ease-in-out infinite alternate; 
}
.scn-return-to-ireland-and-sheriff .dark-cloud-a, .scn-return-to-ireland-and-sheriff .dark-cloud-b { 
  position:absolute; top:15%; 
  width:180px; height:40px; 
  background: linear-gradient(180deg, #3a4048 0%, #2a2f35 100%); 
  border-radius:50%; 
  filter: blur(8px); 
}
.scn-return-to-ireland-and-sheriff .dark-cloud-a { left:-20%; animation: re-cloud-drift 30s linear infinite; }
.scn-return-to-ireland-and-sheriff .dark-cloud-b { left:40%; top:20%; width:140px; height:30px; animation: re-cloud-drift 35s linear infinite reverse; animation-delay: -10s; }
.scn-return-to-ireland-and-sheriff .ground { 
  position:absolute; bottom:0; left:0; right:0; height:25%; 
  background: linear-gradient(180deg, #4a4f45 0%, #2a2e25 100%); 
  border-radius: 20% 80% 0 0 / 40% 50% 0 0; 
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); 
  animation: re-ground 14s ease-in-out infinite alternate; 
}
.scn-return-to-ireland-and-sheriff .figure-main { 
  position:absolute; bottom:20%; left:45%; 
  width:28px; height:60px; 
  background: linear-gradient(180deg, #1a1c22 0%, #0a0c12 100%); 
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: re-figure-main 5s ease-in-out infinite; 
}
.scn-return-to-ireland-and-sheriff .figure-secondary { 
  position:absolute; bottom:20%; left:35%; 
  width:22px; height:50px; 
  background: linear-gradient(180deg, #2a2c32 0%, #14161c 100%); 
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: re-figure-sec 5s ease-in-out infinite reverse; 
}
.scn-return-to-ireland-and-sheriff .cottage { 
  position:absolute; bottom:22%; left:55%; 
  width:60px; height:40px; 
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); 
  border-radius: 10% 10% 5% 5%; 
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.4), 0 4px 8px rgba(0,0,0,0.2); 
  animation: re-cottage 8s ease-in-out infinite alternate; 
}
.scn-return-to-ireland-and-sheriff .shadow-wisp { 
  position:absolute; bottom:30%; left:30%; 
  width:120px; height:10px; 
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.3), transparent); 
  filter: blur(4px); 
  animation: re-wisp 6s ease-in-out infinite; 
}
@keyframes re-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.75; } }
@keyframes re-cloud-drift { 0% { transform: translateX(-200px); } 100% { transform: translateX(100vw); } }
@keyframes re-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes re-figure-main { 0%,100% { 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(-2deg); } }
@keyframes re-figure-sec { 0%,100% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes re-cottage { 0% { transform: scale(1); filter: brightness(1); } 50% { transform: scale(0.98); filter: brightness(0.9); } 100% { transform: scale(1); filter: brightness(1); } }
@keyframes re-wisp { 0% { transform: translateX(-20px) scaleX(1); opacity:0; } 50% { transform: translateX(0) scaleX(1.5); opacity:1; } 100% { transform: translateX(20px) scaleX(1); opacity:0; } }

.scn-irish-hostility-and-rebellion { 
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 40%, #3a2820 100%), 
              radial-gradient(ellipse at 40% 50%, #4a3020 0%, transparent 70%); 
}
.scn-irish-hostility-and-rebellion .night-sky { 
  position:absolute; inset:0 0 25% 0; 
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2a 50%, transparent 100%); 
  animation: ih-sky 12s ease-in-out infinite alternate; 
}
.scn-irish-hostility-and-rebellion .fire-a, .scn-irish-hostility-and-rebellion .fire-b { 
  position:absolute; bottom:30%; 
  width:50px; height:70px; 
  background: radial-gradient(ellipse, #ff7a30 0%, #d04020 40%, #8a2010 100%); 
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; 
  filter: blur(3px); 
  box-shadow: 0 0 30px 15px rgba(255,120,40,0.5); 
}
.scn-irish-hostility-and-rebellion .fire-a { left:25%; animation: ih-fire 2s ease-in-out infinite alternate; }
.scn-irish-hostility-and-rebellion .fire-b { left:55%; width:40px; height:60px; animation: ih-fire 2.5s ease-in-out infinite alternate-reverse; }
.scn-irish-hostility-and-rebellion .mob-far, .scn-irish-hostility-and-rebellion .mob-near { 
  position:absolute; bottom:22%; 
  height:50px; 
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); 
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; 
  filter: blur(2px); 
  transform-origin: bottom center; 
}
.scn-irish-hostility-and-rebellion .mob-far { left:10%; width:120px; animation: ih-mob-far 4s ease-in-out infinite; }
.scn-irish-hostility-and-rebellion .mob-near { left:60%; width:100px; bottom:20%; animation: ih-mob-near 3s ease-in-out infinite reverse; }
.scn-irish-hostility-and-rebellion .smoke { 
  position:absolute; top:5%; left:30%; 
  width:140px; height:80px; 
  background: radial-gradient(ellipse, rgba(80,70,60,0.6) 0%, transparent 80%); 
  filter: blur(12px); 
  animation: ih-smoke 8s ease-in-out infinite alternate; 
}
.scn-irish-hostility-and-rebellion .ground-ash { 
  position:absolute; bottom:0; left:0; right:0; height:15%; 
  background: linear-gradient(180deg, #2a2218 0%, #1a120a 100%); 
  border-radius: 40% 60% 0 0 / 50% 40% 0 0; 
  animation: ih-ground 10s ease-in-out infinite alternate; 
}
@keyframes ih-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes ih-fire { 0% { transform: scaleY(1) rotate(-5deg); opacity:.9; } 50% { transform: scaleY(1.2) rotate(3deg); opacity:1; } 100% { transform: scaleY(0.9) rotate(-2deg); opacity:.85; } }
@keyframes ih-mob-far { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(5px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ih-mob-near { 0% { transform: translateX(0) scale(1) rotate(0); } 50% { transform: translateX(-12px) scale(1.1) rotate(-3deg); } 100% { transform: translateX(0) scale(1) rotate(0); } }
@keyframes ih-smoke { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-20px) scale(1.3); opacity:.8; } 100% { transform: translateY(-10px) scale(1.1); opacity:.6; } }
@keyframes ih-ground { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }

.scn-flight-from-ireland { 
  background: linear-gradient(180deg, #1a1010 0%, #2a1810 40%, #3a2018 100%), 
              radial-gradient(ellipse at 50% 30%, #6a3020 0%, transparent 70%); 
}
.scn-flight-from-ireland .dark-sky { 
  position:absolute; inset:0 0 30% 0; 
  background: linear-gradient(180deg, #0a0808 0%, #1a1210 60%, transparent 100%); 
  animation: fi-sky 10s ease-in-out infinite alternate; 
}
.scn-flight-from-ireland .house-fire { 
  position:absolute; bottom:25%; left:65%; 
  width:100px; height:90px; 
  background: linear-gradient(180deg, #b04020 0%, #7a2818 60%, #2a0a08 100%); 
  border-radius: 10% 10% 5% 5% / 15% 15% 5% 5%; 
  box-shadow: 0 0 40px 20px rgba(180,64,32,0.6), inset 0 -20px 30px rgba(0,0,0,0.5); 
  animation: fi-house 4s ease-in-out infinite alternate; 
}
.scn-flight-from-ireland .smoke-flare { 
  position:absolute; top:10%; left:55%; 
  width:200px; height:120px; 
  background: radial-gradient(ellipse, rgba(80,40,20,0.5) 0%, transparent 80%); 
  filter: blur(15px); 
  animation: fi-smoke 7s ease-in-out infinite; 
}
.scn-flight-from-ireland .fugitive-a, .scn-flight-from-ireland .fugitive-b { 
  position:absolute; bottom:22%; 
  height:50px; 
  background: linear-gradient(180deg, #121212 0%, #050505 100%); 
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
}
.scn-flight-from-ireland .fugitive-a { left:20%; width:20px; animation: fi-fugitive-a 3s ease-in-out infinite; }
.scn-flight-from-ireland .fugitive-b { left:35%; width:18px; height:45px; animation: fi-fugitive-b 3.5s ease-in-out infinite reverse; }
.scn-flight-from-ireland .road { 
  position:absolute; bottom:0; left:0; right:0; height:18%; 
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); 
  border-radius: 30% 70% 0 0 / 50% 60% 0 0; 
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); 
  animation: fi-road 12s ease-in-out infinite alternate; 
}
.scn-flight-from-ireland .ember { 
  position:absolute; top:15%; left:40%; 
  width:8px; height:8px; 
  background: #ff7a30; 
  border-radius:50%; 
  box-shadow: 0 0 16px 6px rgba(255,120,40,0.8); 
  animation: fi-ember 2s ease-in-out infinite; 
}
@keyframes fi-sky { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes fi-house { 0% { transform: scaleY(1) scaleX(1); filter: brightness(1); } 50% { transform: scaleY(0.9) scaleX(1.05); filter: brightness(1.2); } 100% { transform: scaleY(1) scaleX(1); filter: brightness(1); } }
@keyframes fi-smoke { 0% { transform: translateY(0) scale(1) rotate(0); opacity:.5; } 50% { transform: translateY(-30px) scale(1.4) rotate(5deg); opacity:.8; } 100% { transform: translateY(-15px) scale(1.2) rotate(-3deg); opacity:.5; } }
@keyframes fi-fugitive-a { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 25% { transform: translateX(15px) translateY(-3px) rotate(3deg); } 50% { transform: translateX(30px) translateY(0) rotate(-2deg); } 75% { transform: translateX(45px) translateY(-2px) rotate(4deg); } 100% { transform: translateX(60px) translateY(0) rotate(-6deg); } }
@keyframes fi-fugitive-b { 0% { transform: translateX(0) translateY(0) rotate(4deg); } 25% { transform: translateX(-12px) translateY(-2px) rotate(-2deg); } 50% { transform: translateX(-24px) translateY(0) rotate(3deg); } 75% { transform: translateX(-36px) translateY(-1px) rotate(-4deg); } 100% { transform: translateX(-48px) translateY(0) rotate(2deg); } }
@keyframes fi-road { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes fi-ember { 0% { transform: scale(1) rotate(0deg); opacity:.8; } 50% { transform: scale(1.5) rotate(180deg); opacity:1; } 100% { transform: scale(0.8) rotate(360deg); opacity:.6; } }

/* gift-exchange */
.scn-gift-exchange { background: linear-gradient(180deg, #f9e3a0 0%, #f0c27a 40%, #dba665 100%), radial-gradient(ellipse at 30% 20%, #fff8cc 0%, transparent 70%); }
.scn-gift-exchange .sunbeams { position:absolute; inset:0 0 50% 0; background: linear-gradient(135deg, rgba(255,250,200,0.4) 0%, transparent 50%, rgba(255,250,200,0.2) 100%); animation: ge-sunbeams 8s ease-in-out infinite alternate; }
.scn-gift-exchange .table   { position:absolute; bottom:15%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #c8a56a 0%, #a8854d 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.2); animation: ge-table 12s ease-in-out infinite; }
.scn-gift-exchange .box     { position:absolute; bottom:28%; left:30%; width:40px; height:30px; background: linear-gradient(180deg, #e8c88a 0%, #c8a56a 100%); border-radius: 8%; box-shadow: 0 0 30px 6px rgba(255,215,120,0.6), 0 4px 8px rgba(0,0,0,0.3); animation: ge-box 4s ease-in-out infinite alternate; }
.scn-gift-exchange .book    { position:absolute; bottom:28%; right:30%; width:36px; height:28px; background: linear-gradient(180deg, #d4b68c 0%, #b8956a 100%); border-radius: 4%; box-shadow: 0 0 20px 4px rgba(200,170,120,0.4), 0 4px 8px rgba(0,0,0,0.3); animation: ge-book 5s ease-in-out infinite alternate; }
.scn-gift-exchange .hand-left  { position:absolute; bottom:20%; left:20%; width:30px; height:40px; background: linear-gradient(180deg, #d4a56a 0%, #b88855 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: ge-hand-l 3s ease-in-out infinite; }
.scn-gift-exchange .hand-right { position:absolute; bottom:20%; right:20%; width:30px; height:40px; background: linear-gradient(180deg, #d4a56a 0%, #b88855 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: ge-hand-r 3.5s ease-in-out infinite; }
.scn-gift-exchange .sparkle { position:absolute; bottom:32%; left:36%; width:8px; height:8px; background: radial-gradient(circle, #fff8e0 0%, rgba(255,248,224,0) 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,240,180,0.6); animation: ge-sparkle 2s ease-in-out infinite alternate; }
@keyframes ge-sunbeams { 0% { opacity:0.6; transform: scaleX(1) translateX(0); } 50% { opacity:1; transform: scaleX(1.05) translateX(-3%); } 100% { opacity:0.7; transform: scaleX(0.95) translateX(2%); } }
@keyframes ge-table   { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ge-box     { 0% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 20px 4px rgba(255,215,120,0.5); } 50% { transform: translateY(-4px) rotate(1deg); box-shadow: 0 0 40px 10px rgba(255,215,120,0.8); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ge-book    { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0.5deg); } }
@keyframes ge-hand-l  { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes ge-hand-r  { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(-2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes ge-sparkle { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0.5; transform: scale(1); } }

/* journey-despaire */
.scn-journey-despaire { background: linear-gradient(180deg, #f7e9c0 0%, #e0c890 30%, #c8a870 80%), radial-gradient(ellipse at 20% 80%, #ffeebb 0%, transparent 60%); }
.scn-journey-despaire .sky        { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fdf4dc 0%, #f0daa0 100%); animation: jd-sky 10s ease-in-out infinite alternate; }
.scn-journey-despaire .ground     { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b8945a 0%, #8a6e3a 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,0.4); animation: jd-ground 15s ease-in-out infinite; }
.scn-journey-despaire .horse-body { position:absolute; bottom:35%; left:20%; width:80px; height:45px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%; transform-origin: 50% 80%; animation: jd-horse 1.5s ease-in-out infinite; }
.scn-journey-despaire .knight     { position:absolute; bottom:48%; left:23%; width:30px; height:50px; background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: 50% 100%; animation: jd-knight 1.5s ease-in-out infinite; }
.scn-journey-despaire .legs-fore  { position:absolute; bottom:20%; left:22%; width:12px; height:40px; background: #5a3a1a; border-radius: 20% 20% 0 0; transform-origin: 50% 0%; animation: jd-legs-f 0.8s ease-in-out infinite alternate; }
.scn-journey-despaire .legs-aft   { position:absolute; bottom:20%; left:30%; width:12px; height:40px; background: #5a3a1a; border-radius: 20% 20% 0 0; transform-origin: 50% 0%; animation: jd-legs-a 0.8s ease-in-out infinite alternate reverse; }
.scn-journey-despaire .dust       { position:absolute; bottom:20%; left:12%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(200,170,100,0.4) 0%, transparent 80%); filter: blur(4px); animation: jd-dust 2s ease-in-out infinite; }
.scn-journey-despaire .sun-glare  { position:absolute; top:5%; right:10%; width:50px; height:50px; background: radial-gradient(circle, #fffce0 0%, rgba(255,252,224,0) 80%); border-radius:50%; animation: jd-glare 6s ease-in-out infinite alternate; }
@keyframes jd-sky    { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes jd-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes jd-horse  { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-2deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes jd-knight { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes jd-legs-f { 0% { transform: rotate(-20deg); } 100% { transform: rotate(20deg); } }
@keyframes jd-legs-a { 0% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }
@keyframes jd-dust   { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.5) translateX(10px); } 100% { opacity:0.2; transform: scaleX(0.8) translateX(20px); } }
@keyframes jd-glare  { 0% { opacity:0.4; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(1); } }

/* trevisan-tale */
.scn-trevisan-tale { background: linear-gradient(180deg, #e8d4a8 0%, #d0b890 40%, #b89870 100%), radial-gradient(ellipse at 60% 20%, #f5e8c0 0%, transparent 70%); }
.scn-trevisan-tale .sky              { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e0c0 0%, #d8c098 100%); animation: tt-sky 12s ease-in-out infinite alternate; }
.scn-trevisan-tale .horizon          { position:absolute; bottom:40%; left:0; right:0; height:8%; background: linear-gradient(180deg, #b09060 0%, #907040 100%); border-radius: 50% 50% 0 0; animation: tt-horizon 18s ease-in-out infinite; }
.scn-trevisan-tale .knight-silhouette { position:absolute; bottom:30%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: tt-knight 6s ease-in-out infinite; }
.scn-trevisan-tale .lady-figure      { position:absolute; bottom:30%; right:30%; width:24px; height:50px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tt-lady 8s ease-in-out infinite alternate; }
.scn-trevisan-tale .shadow-long      { position:absolute; bottom:22%; left:22%; width:60px; height:10px; background: rgba(30,15,5,0.3); border-radius: 50%; filter: blur(4px); animation: tt-shadow 10s ease-in-out infinite; }
.scn-trevisan-tale .sun-disc         { position:absolute; top:10%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #fff5d0 0%, #ffe080 60%, transparent 100%); border-radius:50%; animation: tt-sun 14s ease-in-out infinite alternate; }
.scn-trevisan-tale .cloud-wisp       { position:absolute; top:18%; left:10%; width:70px; height:14px; background: rgba(255,235,200,0.3); border-radius:50%; filter: blur(5px); animation: tt-cloud 40s linear infinite; }
@keyframes tt-sky    { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes tt-horizon { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes tt-knight { 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 tt-lady   { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes tt-shadow { 0% { opacity:0.2; transform: scaleX(1); } 50% { opacity:0.4; transform: scaleX(1.2); } 100% { opacity:0.2; transform: scaleX(0.9); } }
@keyframes tt-sun    { 0% { transform: scale(0.9); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }
@keyframes tt-cloud  { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

/* journey-despaire-cave */
.scn-journey-despaire-cave { background: linear-gradient(180deg, #e0c8a0 0%, #c8a870 50%, #2a1a0a 100%), radial-gradient(ellipse at 70% 30%, #f0d8a0 0%, transparent 60%); }
.scn-journey-despaire-cave .sky-outside       { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f5e0c0 0%, #dcc098 100%); animation: jdc-sky 10s ease-in-out infinite alternate; }
.scn-journey-despaire-cave .ground            { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8a6e3a 0%, #5a3a1a 100%); border-radius: 30% 40% 0 0 / 50% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); animation: jdc-ground 14s ease-in-out infinite; }
.scn-journey-despaire-cave .cave-opening      { position:absolute; bottom:15%; left:35%; right:35%; height:60%; background: radial-gradient(ellipse at 50% 100%, #1a0a00 0%, #2a1a0a 50%, transparent 100%); border-radius: 50% 50% 0 0; clip-path: inset(0 round 20% 20% 0 0 / 30% 30% 0 0); box-shadow: inset 0 -20px 40px rgba(0,0,0,0.8); animation: jdc-cave 12s ease-in-out infinite; }
.scn-journey-despaire-cave .cave-shadow       { position:absolute; bottom:15%; left:35%; right:35%; height:50%; background: rgba(0,0,0,0.6); border-radius: 40% 40% 0 0; animation: jdc-shadow 8s ease-in-out infinite alternate; }
.scn-journey-despaire-cave .figure-silhouette { position:absolute; bottom:20%; left:43%; width:20px; height:40px; background: #0a0a00; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: jdc-figure 4s ease-in-out infinite; }
.scn-journey-despaire-cave .sun-rays          { position:absolute; top:0; left:20%; right:20%; height:60%; background: linear-gradient(135deg, rgba(255,230,170,0.3) 0%, transparent 50%, rgba(255,230,170,0.1) 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); animation: jdc-rays 6s ease-in-out infinite alternate; }
.scn-journey-despaire-cave .dust-motes        { position:absolute; top:35%; left:40%; width:6px; height:6px; background: rgba(255,235,180,0.5); border-radius:50%; box-shadow: 0 0 10px 2px rgba(255,235,180,0.3); animation: jdc-motes 5s ease-in-out infinite; }
@keyframes jdc-sky    { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes jdc-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes jdc-cave   { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes jdc-shadow { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes jdc-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes jdc-rays   { 0% { opacity:0.2; transform: scaleX(1) translateX(0); } 50% { opacity:0.4; transform: scaleX(1.1) translateX(-3%); } 100% { opacity:0.3; transform: scaleX(0.95) translateX(2%); } }
@keyframes jdc-motes  { 0% { opacity:0.2; transform: translate(0,0) scale(1); } 33% { transform: translate(5px,-4px) scale(1.5); } 66% { transform: translate(-3px,-2px) scale(0.8); } 100% { transform: translate(2px,0) scale(1); } }

/* leaving-the-wood */
.scn-leaving-the-wood { background: linear-gradient(180deg, #7eb8d0 0%, #c4e0d0 40%, #a0c0a0 70%, #6a8a5a 100%), radial-gradient(ellipse at 40% 30%, #ffe080 0%, transparent 40%); }
.scn-leaving-the-wood .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #7eb8d0 0%, #b0d8e0 40%, transparent 100%); animation: lw-sky 8s ease-in-out infinite alternate; }
.scn-leaving-the-wood .sun { position:absolute; top:8%; left:30%; width:50px; height:50px; background: radial-gradient(circle, #ffe680 0%, #ffb040 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #ffd060; animation: lw-sun 12s ease-in-out infinite; }
.scn-leaving-the-wood .horizon-hills { position:absolute; bottom:45%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 4px 15px rgba(0,0,0,0.3); animation: lw-hills 18s ease-in-out infinite alternate; }
.scn-leaving-the-wood .path { position:absolute; bottom:20%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%); border-radius: 40% 40% 20% 20% / 80% 80% 10% 10%; transform: perspective(300px) rotateX(10deg); box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); animation: lw-path 20s ease-in-out infinite alternate; }
.scn-leaving-the-wood .tree-left { position:absolute; bottom:35%; left:8%; width:60px; height:120px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform: scaleY(1.2); animation: lw-tree 15s ease-in-out infinite alternate; }
.scn-leaving-the-wood .tree-right { position:absolute; bottom:38%; right:10%; width:50px; height:100px; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; animation: lw-tree 18s ease-in-out infinite alternate reverse; }
.scn-leaving-the-wood .horse { position:absolute; bottom:22%; left:45%; width:60px; height:40px; background: linear-gradient(180deg, #6a5030 0%, #3a2810 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(1.3); box-shadow: 0 3px 8px rgba(0,0,0,0.5); animation: lw-horse 4s ease-in-out infinite; }
.scn-leaving-the-wood .knight { position:absolute; bottom:26%; left:46%; width:20px; height:45px; background: linear-gradient(180deg, #808080 0%, #404040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.6); animation: lw-knight 4s ease-in-out infinite; }
.scn-leaving-the-wood .sunbeam-a { position:absolute; top:10%; left:28%; width:8px; height:80px; background: linear-gradient(180deg, rgba(255,215,0,0.6) 0%, transparent 100%); transform: rotate(10deg); animation: lw-beam-a 6s ease-in-out infinite alternate; }
.scn-leaving-the-wood .sunbeam-b { position:absolute; top:10%; left:34%; width:6px; height:60px; background: linear-gradient(180deg, rgba(255,215,0,0.4) 0%, transparent 100%); transform: rotate(-5deg); animation: lw-beam-b 7s ease-in-out infinite alternate; }
@keyframes lw-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes lw-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes lw-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lw-path { 0% { transform: perspective(300px) rotateX(10deg) translateY(0) } 50% { transform: perspective(300px) rotateX(12deg) translateY(-2px) } 100% { transform: perspective(300px) rotateX(10deg) translateY(0) } }
@keyframes lw-tree { 0% { transform: scaleY(1.2) rotate(0deg) } 50% { transform: scaleY(1.25) rotate(1deg) } 100% { transform: scaleY(1.2) rotate(0deg) } }
@keyframes lw-horse { 0% { transform: scaleX(1.3) translateY(0) } 25% { transform: scaleX(1.3) translateY(-1px) } 75% { transform: scaleX(1.3) translateY(1px) } 100% { transform: scaleX(1.3) translateY(0) } }
@keyframes lw-knight { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 75% { transform: translateY(2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lw-beam-a { 0% { opacity:0.5; transform: rotate(10deg) } 100% { opacity:1; transform: rotate(15deg) } }
@keyframes lw-beam-b { 0% { opacity:0.4; transform: rotate(-5deg) } 100% { opacity:0.9; transform: rotate(-10deg) } }

/* meeting-archimago */
.scn-meeting-archimago { background: linear-gradient(180deg, #2a2040 0%, #4a3060 30%, #6a4a70 60%, #8a6a6a 100%), radial-gradient(ellipse at 60% 20%, #806040 0%, transparent 50%); }
.scn-meeting-archimago .sky-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1028 0%, #3a2850 40%, #5a4070 70%, transparent 100%); animation: ma-sky 10s ease-in-out infinite alternate; }
.scn-meeting-archimago .distant-horizon { position:absolute; bottom:35%; left:0; right:0; height:15%; background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%); border-radius: 40% 60% 0 0 / 60% 80% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.5); animation: ma-horizon 20s ease-in-out infinite alternate; }
.scn-meeting-archimago .road { position:absolute; bottom:25%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #6a5a40 0%, #4a3a28 100%); border-radius: 30% 70% 10% 10% / 60% 60% 5% 5%; transform: perspective(400px) rotateX(5deg); box-shadow: inset 0 6px 12px rgba(0,0,0,0.5); animation: ma-road 15s ease-in-out infinite alternate; }
.scn-meeting-archimago .knight-figure { position:absolute; bottom:22%; left:30%; width:18px; height:45px; background: linear-gradient(180deg, #5a5a6a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.7); animation: ma-knight 4s ease-in-out infinite; }
.scn-meeting-archimago .horse-figure { position:absolute; bottom:18%; left:28%; width:55px; height:35px; background: linear-gradient(180deg, #5a4030 0%, #2a1810 100%); border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%; transform: scaleX(1.2); box-shadow: 0 3px 8px rgba(0,0,0,0.6); animation: ma-horse 4s ease-in-out infinite; }
.scn-meeting-archimago .archimago { position:absolute; bottom:22%; right:40%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.8); animation: ma-archi 6s ease-in-out infinite; }
.scn-meeting-archimago .book { position:absolute; bottom:28%; right:38%; width:10px; height:14px; background: linear-gradient(135deg, #6a4a2a 0%, #3a2818 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 1px 4px rgba(0,0,0,0.5); transform: rotate(-10deg); animation: ma-book 5s ease-in-out infinite; }
.scn-meeting-archimago .staff { position:absolute; bottom:20%; right:42%; width:4px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 2px; box-shadow: 0 1px 3px rgba(0,0,0,0.6); transform: rotate(5deg); animation: ma-staff 7s ease-in-out infinite; }
.scn-meeting-archimago .glow-book { position:absolute; bottom:28%; right:38%; width:14px; height:18px; background: radial-gradient(circle, rgba(200,180,120,0.3) 0%, transparent 70%); border-radius: 20%; animation: ma-glow 3s ease-in-out infinite alternate; }
@keyframes ma-sky { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ma-horizon { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ma-road { 0% { transform: perspective(400px) rotateX(5deg) translateY(0) } 50% { transform: perspective(400px) rotateX(6deg) translateY(-1px) } 100% { transform: perspective(400px) rotateX(5deg) translateY(0) } }
@keyframes ma-knight { 0% { transform: translateY(0) } 25% { transform: translateY(-1px) } 75% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes ma-horse { 0% { transform: scaleX(1.2) translateY(0) } 50% { transform: scaleX(1.2) translateY(-1px) } 100% { transform: scaleX(1.2) translateY(0) } }
@keyframes ma-archi { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ma-book { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-10deg) } }
@keyframes ma-staff { 0% { transform: rotate(5deg) } 50% { transform: rotate(7deg) } 100% { transform: rotate(5deg) } }
@keyframes ma-glow { 0% { opacity:0.3 } 100% { opacity:0.7 } }

/* archimago-greets-knight */
.scn-archimago-greets-knight { background: linear-gradient(180deg, #2a2040 0%, #4a3060 30%, #5a4a60 60%, #8a7a7a 100%), radial-gradient(ellipse at 40% 30%, #604030 0%, transparent 50%); }
.scn-archimago-greets-knight .sky-dusk { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1028 0%, #3a2850 40%, transparent 100%); animation: ag-sky 10s ease-in-out infinite alternate; }
.scn-archimago-greets-knight .distant-horizon { position:absolute; bottom:40%; left:0; right:0; height:12%; background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%); border-radius: 40% 60% 0 0 / 50% 70% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5); animation: ag-horizon 18s ease-in-out infinite alternate; }
.scn-archimago-greets-knight .road { position:absolute; bottom:30%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #6a5a40 0%, #4a3a28 100%); border-radius: 30% 70% 10% 10% / 50% 50% 5% 5%; transform: perspective(400px) rotateX(5deg); box-shadow: inset 0 6px 12px rgba(0,0,0,0.5); animation: ag-road 20s ease-in-out infinite alternate; }
.scn-archimago-greets-knight .knight-dismounted { position:absolute; bottom:25%; left:35%; width:18px; height:40px; background: linear-gradient(180deg, #5a5a6a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.7); animation: ag-knight 5s ease-in-out infinite; }
.scn-archimago-greets-knight .horse-dismounted { position:absolute; bottom:21%; left:33%; width:50px; height:30px; background: linear-gradient(180deg, #5a4030 0%, #2a1810 100%); border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%; transform: scaleX(1.1); box-shadow: 0 3px 8px rgba(0,0,0,0.6); animation: ag-horse 5s ease-in-out infinite; }
.scn-archimago-greets-knight .archimago-bowing { position:absolute; bottom:22%; right:35%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,0.8); animation: ag-archi 6s ease-in-out infinite; }
.scn-archimago-greets-knight .book-bowing { position:absolute; bottom:30%; right:36%; width:10px; height:12px; background: linear-gradient(135deg, #6a4a2a 0%, #3a2818 100%); border-radius: 10% 10% 5% 5%; transform: rotate(-15deg); box-shadow: 0 1px 4px rgba(0,0,0,0.5); animation: ag-book 5s ease-in-out infinite; }
.scn-archimago-greets-knight .staff-bowing { position:absolute; bottom:20%; right:38%; width:4px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 2px; transform: rotate(8deg); box-shadow: 0 1px 3px rgba(0,0,0,0.6); animation: ag-staff 7s ease-in-out infinite; }
.scn-archimago-greets-knight .shadow { position:absolute; bottom:25%; left:30%; width:120px; height:20px; background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 0%, transparent 70%); border-radius: 50%; animation: ag-shadow 10s ease-in-out infinite alternate; }
@keyframes ag-sky { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ag-horizon { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ag-road { 0% { transform: perspective(400px) rotateX(5deg) translateY(0) } 50% { transform: perspective(400px) rotateX(6deg) translateY(-1px) } 100% { transform: perspective(400px) rotateX(5deg) translateY(0) } }
@keyframes ag-knight { 0% { transform: translateY(0) } 25% { transform: translateY(-1px) } 75% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes ag-horse { 0% { transform: scaleX(1.1) translateY(0) } 50% { transform: scaleX(1.1) translateY(-1px) } 100% { transform: scaleX(1.1) translateY(0) } }
@keyframes ag-archi { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes ag-book { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-18deg) } 100% { transform: rotate(-15deg) } }
@keyframes ag-staff { 0% { transform: rotate(8deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(8deg) } }
@keyframes ag-shadow { 0% { opacity:0.5; transform: scaleX(1) } 100% { opacity:0.8; transform: scaleX(1.1) } }

/* archimago-tells-of-danger */
.scn-archimago-tells-of-danger { background: linear-gradient(180deg, #0a0818 0%, #1a1030 40%, #2a1840 70%, #3a2840 100%), radial-gradient(ellipse at 30% 20%, #4a3a50 0%, transparent 50%); }
.scn-archimago-tells-of-danger .dark-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a0818 0%, #1a1030 30%, #2a1840 60%, transparent 100%); animation: at-sky 8s ease-in-out infinite alternate; }
.scn-archimago-tells-of-danger .moon { position:absolute; top:8%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #c0c8d0 0%, #a0a8b8 60%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 15px #9098a8; animation: at-moon 15s ease-in-out infinite; }
.scn-archimago-tells-of-danger .tree-branches { position:absolute; top:0; left:5%; width:50px; height:60%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; transform: scaleY(1.5); box-shadow: inset 0 6px 12px rgba(0,0,0,0.7); animation: at-tree 20s ease-in-out infinite alternate; }
.scn-archimago-tells-of-danger .archimago-pointing { position:absolute; bottom:25%; right:40%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: right bottom; transform: rotate(10deg); box-shadow: 0 2px 6px rgba(0,0,0,0.8); animation: at-archi 4s ease-in-out infinite; }
.scn-archimago-tells-of-danger .knight-listening { position:absolute; bottom:22%; left:35%; width:18px; height:45px; background: linear-gradient(180deg, #5a5a6a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.7); animation: at-knight 5s ease-in-out infinite; }
.scn-archimago-tells-of-danger .horse-listening { position:absolute; bottom:18%; left:33%; width:55px; height:35px; background: linear-gradient(180deg, #5a4030 0%, #2a1810 100%); border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%; transform: scaleX(1.2); box-shadow: 0 3px 8px rgba(0,0,0,0.6); animation: at-horse 5s ease-in-out infinite; }
.scn-archimago-tells-of-danger .danger-glow { position:absolute; bottom:30%; right:35%; width:30px; height:30px; background: radial-gradient(circle, rgba(120,80,60,0.3) 0%, transparent 70%); border-radius: 50%; animation: at-glow 3s ease-in-out infinite alternate; }
.scn-archimago-tells-of-danger .shadow-figures { position:absolute; bottom:20%; left:20%; width:60%; height:30%; background: radial-gradient(ellipse at center, rgba(0,0,0,0.4) 0%, transparent 70%); border-radius: 50%; animation: at-shadow 10s ease-in-out infinite alternate; }
.scn-archimago-tells-of-danger .moonlight { position:absolute; top:5%; left:55%; width:80px; height:120px; background: linear-gradient(180deg, rgba(200,200,220,0.1) 0%, transparent 100%); transform: rotate(-20deg); animation: at-moonlight 12s ease-in-out infinite alternate; }
@keyframes at-sky { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes at-moon { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(0.97) } }
@keyframes at-tree { 0% { transform: scaleY(1.5) translateX(0) } 50% { transform: scaleY(1.55) translateX(2px) } 100% { transform: scaleY(1.5) translateX(0) } }
@keyframes at-archi { 0% { transform: rotate(10deg) } 25% { transform: rotate(12deg) } 75% { transform: rotate(8deg) } 100% { transform: rotate(10deg) } }
@keyframes at-knight { 0% { transform: translateY(0) } 25% { transform: translateY(-1px) } 75% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes at-horse { 0% { transform: scaleX(1.2) translateY(0) } 50% { transform: scaleX(1.2) translateY(-1px) } 100% { transform: scaleX(1.2) translateY(0) } }
@keyframes at-glow { 0% { opacity:0.2; transform: scale(0.8) } 100% { opacity:0.6; transform: scale(1.2) } }
@keyframes at-shadow { 0% { opacity:0.4; transform: scaleX(1) } 100% { opacity:0.7; transform: scaleX(1.15) } }
@keyframes at-moonlight { 0% { opacity:0.3; transform: rotate(-20deg) scaleY(1) } 100% { opacity:0.6; transform: rotate(-25deg) scaleY(1.1) } }

/* Scene: knight-consoles (calm, dark) */
.scn-knight-consoles {
  background: 
    radial-gradient(ellipse at 50% 30%, #2a1a3e 0%, #0c081a 80%),
    linear-gradient(180deg, #1a112a 0%, #0a0510 100%);
}
.scn-knight-consoles .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,8,20,0.9) 0%, transparent 50%); animation: kn1-fade 12s ease-in-out infinite alternate; }
.scn-knight-consoles .room-wall { position:absolute; inset:20% 10% 0 10%; background: linear-gradient(180deg, #2c1a30 0%, #1c0e1e 100%); border-radius: 8% 8% 0 0 / 12% 12% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); }
.scn-knight-consoles .window { position:absolute; top:8%; left:35%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 50%, #3a4a6a 0%, #1a2240 100%); border-radius: 4px; box-shadow: inset 0 0 20px #2a3a5a; }
.scn-knight-consoles .moon { position:absolute; top:12%; left:48%; width:28px; height:28px; background: radial-gradient(circle, #c0c8d0 0%, #7a8090 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(180,190,200,0.3); animation: kn1-moondrift 20s ease-in-out infinite alternate; }
.scn-knight-consoles .knight-figure { position:absolute; bottom:10%; left:20%; width:24px; height:48px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: kn1-breath 4s ease-in-out infinite; }
.scn-knight-consoles .lady-figure { position:absolute; bottom:10%; right:22%; width:22px; height:44px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kn1-breath 4s ease-in-out infinite 2s; }
.scn-knight-consoles .candle { position:absolute; bottom:28%; left:48%; width:7px; height:20px; background: linear-gradient(180deg, #c8a060 0%, #8a6030 100%); border-radius: 2px; transform-origin: bottom; animation: kn1-candle 3s ease-in-out infinite; }
.scn-knight-consoles .candle-glow { position:absolute; bottom:30%; left:46.5%; width:20px; height:20px; background: radial-gradient(circle, #f0c060 0%, #b08030 40%, transparent 70%); border-radius:50%; filter: blur(4px); animation: kn1-glow 3s ease-in-out infinite alternate; }
@keyframes kn1-fade { 0% { opacity:0.7 } 50% { opacity:0.85 } 100% { opacity:0.7 } }
@keyframes kn1-moondrift { 0% { transform: translateX(-10px) scale(0.95); opacity:0.8 } 50% { transform: translateX(5px) scale(1.05); opacity:1 } 100% { transform: translateX(-10px) scale(0.95); opacity:0.8 } }
@keyframes kn1-breath { 0%,100% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.01) translateY(-2px) } }
@keyframes kn1-candle { 0%,100% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.02) rotate(2deg) } }
@keyframes kn1-glow { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }

/* Scene: knight-muses-then-dreams (tense, dark) */
.scn-knight-muses-then-dreams {
  background: 
    radial-gradient(ellipse at 50% 70%, #1a0a20 0%, #060408 80%),
    linear-gradient(180deg, #1a1422 0%, #0a0610 100%);
}
.scn-knight-muses-then-dreams .bg-turbid { position:absolute; inset:0; background: linear-gradient(90deg, rgba(30,20,40,0.5) 0%, transparent 30%, rgba(30,20,40,0.4) 70%, transparent 100%); animation: km2-turb 8s ease-in-out infinite alternate; }
.scn-knight-muses-then-dreams .bed { position:absolute; bottom:8%; left:20%; right:20%; height:35%; background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 -10px 30px rgba(0,0,0,0.5); }
.scn-knight-muses-then-dreams .knight-lying { position:absolute; bottom:12%; left:28%; width:40px; height:18px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: km2-toss 6s ease-in-out infinite; }
.scn-knight-muses-then-dreams .dream-lady-1 { position:absolute; top:20%; left:10%; width:16px; height:32px; background: linear-gradient(180deg, #6a4a5a 0%, #3a2030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.4; animation: km2-swirl 12s ease-in-out infinite; }
.scn-knight-muses-then-dreams .dream-lady-2 { position:absolute; top:30%; right:12%; width:14px; height:28px; background: linear-gradient(180deg, #5a3a4a 0%, #2a1820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.3; animation: km2-swirl 16s ease-in-out infinite 4s; }
.scn-knight-muses-then-dreams .bower-canopy { position:absolute; top:4%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #2a2a3a 0%, transparent 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: top; animation: km2-sway 9s ease-in-out infinite; }
.scn-knight-muses-then-dreams .dream-mist { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, rgba(80,60,90,0.3) 0%, transparent 60%); animation: km2-mist 10s ease-in-out infinite alternate; }
@keyframes km2-turb { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.05) } 100% { opacity:0.3; transform: scaleX(0.95) } }
@keyframes km2-toss { 0%,100% { transform: rotate(-5deg) translateY(0) } 20% { transform: rotate(-8deg) translateY(-2px) } 40% { transform: rotate(0deg) translateY(1px) } 60% { transform: rotate(6deg) translateY(-1px) } 80% { transform: rotate(2deg) translateY(2px) } }
@keyframes km2-swirl { 0% { transform: rotate(0deg) translate(0,0) scale(0.9); opacity:0.3 } 25% { transform: rotate(30deg) translate(10px,-10px) scale(1); opacity:0.5 } 50% { transform: rotate(0deg) translate(-5px,5px) scale(0.8); opacity:0.2 } 75% { transform: rotate(-20deg) translate(15px,-5px) scale(1.1); opacity:0.4 } 100% { transform: rotate(0deg) translate(0,0) scale(0.9); opacity:0.3 } }
@keyframes km2-sway { 0% { transform: rotate(0deg) scaleX(1) } 25% { transform: rotate(2deg) scaleX(0.98) } 50% { transform: rotate(-1deg) scaleX(1.02) } 75% { transform: rotate(3deg) scaleX(0.97) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes km2-mist { 0% { opacity:0.3; transform: scaleY(1) } 50% { opacity:0.5; transform: scaleY(1.1) } 100% { opacity:0.3; transform: scaleY(0.95) } }

/* Scene: canto-2-argument (calm, dawn) */
.scn-canto-2-argument {
  background: 
    linear-gradient(180deg, #2a1a40 0%, #4a3060 30%, #806050 60%, #b09070 80%, #d0b090 100%);
}
.scn-canto-2-argument .sky-dawn { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a50 0%, #7a5a6a 40%, #c0a080 70%, #e0c098 100%); animation: ca3-sky 15s ease-in-out infinite alternate; }
.scn-canto-2-argument .hills { position:absolute; bottom:30%; left:-10%; right:-10%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0 / 70% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: ca3-hills 20s ease-in-out infinite alternate; }
.scn-canto-2-argument .sun { position:absolute; bottom:40%; left:50%; width:50px; height:50px; transform:translateX(-50%); background: radial-gradient(circle, #f0d080 0%, #d0a050 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(208,160,80,0.3); animation: ca3-sunrise 25s ease-out infinite; }
.scn-canto-2-argument .sunray { position:absolute; bottom:43%; left:46%; width:10%; height:80%; background: linear-gradient(180deg, rgba(240,200,120,0.3) 0%, transparent 100%); transform: rotate(45deg); transform-origin: bottom; animation: ca3-ray 12s ease-in-out infinite; }
.scn-canto-2-argument .rooster { position:absolute; bottom:35%; left:20%; width:20px; height:28px; background: linear-gradient(180deg, #4a3030 0%, #2a1818 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; clip-path: polygon(0% 0%, 100% 0%, 100% 70%, 0% 70%); /* simplified */ animation: ca3-rooster 3s ease-in-out infinite; }
.scn-canto-2-argument .stars-group { position:absolute; top:5%; left:10%; width:40px; height:40px; background: transparent; box-shadow: 8px 12px 0 2px rgba(220,220,230,0.6), 25px 5px 0 1px rgba(200,200,220,0.4), 15px 20px 0 3px rgba(210,210,230,0.5); border-radius:50%; animation: ca3-stars 20s linear infinite; }
.scn-canto-2-argument .cloud-soft { position:absolute; top:12%; right:10%; width:80px; height:14px; background: linear-gradient(180deg, rgba(200,180,160,0.4) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: ca3-cloud 40s linear infinite reverse; }
@keyframes ca3-sky { 0% { opacity:0.8; background-position: 0 0 } 50% { opacity:1; background-position: 0 -10px } 100% { opacity:0.9; background-position: 0 5px } }
@keyframes ca3-hills { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-5px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(0.98) } }
@keyframes ca3-sunrise { 0% { transform: translateX(-50%) scale(0.5) translateY(10px); opacity:0.3 } 30% { transform: translateX(-50%) scale(0.8) translateY(5px); opacity:0.7 } 60% { transform: translateX(-50%) scale(1) translateY(-2px); opacity:1 } 100% { transform: translateX(-50%) scale(1.05) translateY(-5px); opacity:0.9 } }
@keyframes ca3-ray { 0% { opacity:0 } 30% { opacity:0.2 } 60% { opacity:0.5; transform: rotate(45deg) scaleY(1.2) } 100% { opacity:0 } }
@keyframes ca3-rooster { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes ca3-stars { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:0.2; transform: scale(0.8) } 100% { opacity:0.6; transform: scale(1.05) } }
@keyframes ca3-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* Scene: archimago-in-rage (dark, dawn) */
.scn-archimago-in-rage {
  background: 
    radial-gradient(ellipse at 40% 30%, #3a1020 0%, #1a0810 70%),
    linear-gradient(180deg, #2a0a10 0%, #0a0408 100%);
}
.scn-archimago-in-rage .sky-rage { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a1820 0%, #7a2830 30%, #a04030 60%, #703020 100%); animation: ar4-sky 8s ease-in-out infinite alternate; }
.scn-archimago-in-rage .tower { position:absolute; bottom:10%; left:35%; right:35%; height:60%; background: linear-gradient(180deg, #2a1820 0%, #1a0a12 100%); border-radius: 8% 8% 4% 4% / 20% 20% 10% 10%; box-shadow: inset 0 10px 40px rgba(0,0,0,0.7); transform-origin: bottom; animation: ar4-tower 6s ease-in-out infinite; }
.scn-archimago-in-rage .archimago-figure { position:absolute; bottom:18%; left:45%; width:20px; height:44px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: ar4-rage 4s ease-in-out infinite; }
.scn-archimago-in-rage .rage-cloud-1 { position:absolute; top:8%; left:5%; width:70px; height:20px; background: linear-gradient(180deg, rgba(80,30,30,0.5) 0%, transparent 100%); border-radius:50%; filter: blur(10px); animation: ar4-cloud 25s linear infinite; }
.scn-archimago-in-rage .rage-cloud-2 { position:absolute; top:12%; right:10%; width:50px; height:15px; background: linear-gradient(180deg, rgba(100,40,40,0.4) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: ar4-cloud 30s linear infinite reverse; }
.scn-archimago-in-rage .magic-swirl { position:absolute; bottom:35%; left:42%; width:30px; height:30px; background: radial-gradient(circle, #d08030 0%, transparent 70%); border-radius:50%; filter: blur(5px); animation: ar4-swirl 5s ease-in-out infinite; }
.scn-archimago-in-rage .lightning-bolt { position:absolute; top:0; left:50%; width:4px; height:60%; background: linear-gradient(180deg, #d0a060 0%, #b07030 50%, transparent 100%); transform: rotate(-15deg); transform-origin: top; animation: ar4-bolt 3s ease-in-out infinite; }
@keyframes ar4-sky { 0% { opacity:0.7; background-position: 0 0 } 50% { opacity:1; background-position: 0 -15px } 100% { opacity:0.7; background-position: 0 5px } }
@keyframes ar4-tower { 0%,100% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(1deg) scaleY(1.02) } }
@keyframes ar4-rage { 0% { transform: rotate(10deg) translateY(0) } 25% { transform: rotate(12deg) translateY(-5px) } 50% { transform: rotate(5deg) translateY(2px) scale(1.05) } 75% { transform: rotate(15deg) translateY(-8px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes ar4-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes ar4-swirl { 0% { transform: rotate(0deg) scale(0.8); opacity:0.5 } 50% { transform: rotate(180deg) scale(1.2); opacity:1 } 100% { transform: rotate(360deg) scale(0.8); opacity:0.5 } }
@keyframes ar4-bolt { 0% { opacity:0; transform: rotate(-15deg) scaleY(0.5) } 10% { opacity:1; transform: rotate(-15deg) scaleY(1) } 20% { opacity:0; transform: rotate(-15deg) scaleY(0.8) } 30% { opacity:1; transform: rotate(-10deg) scaleY(1.1) } 100% { opacity:0 } }

/* archimago-imitates-knight */
.scn-archimago-imitates-knight {
  background: linear-gradient(180deg, #a57c5a 0%, #d4a373 30%, #f0d9b5 60%, #e8c398 100%),
              radial-gradient(ellipse at 30% 20%, #ffdb7a 0%, transparent 50%);
}
.scn-archimago-imitates-knight .sun {
  position: absolute; top: 8%; left: 25%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffecb3 0%, #f5c542 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 80px 20px rgba(245,197,66,.4);
  animation: aik-sun 14s ease-in-out infinite alternate;
}
.scn-archimago-imitates-knight .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #88aacc 0%, #c6dbac 100%);
  opacity: 0.6; mix-blend-mode: overlay;
  animation: aik-sky 20s linear infinite;
}
.scn-archimago-imitates-knight .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7a5d3a 0%, #4d3520 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,.6);
  animation: aik-ground 12s ease-in-out infinite;
}
.scn-archimago-imitates-knight .knight {
  position: absolute; bottom: 20%; left: 40%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aik-knight 3s ease-in-out infinite;
}
.scn-archimago-imitates-knight .shield {
  position: absolute; bottom: 22%; left: 52%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #b0a8a0 0%, #8a827a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(200,180,160,.5);
  animation: aik-shield 4s ease-in-out infinite alternate;
}
.scn-archimago-imitates-knight .banner {
  position: absolute; bottom: 38%; left: 48%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 60%, #702243 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: aik-banner 6s ease-in-out infinite;
}
.scn-archimago-imitates-knight .sparks {
  position: absolute; bottom: 35%; left: 55%; width: 4px; height: 4px;
  background: #ffdc8a; border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,220,138,.8);
  animation: aik-sparks 2s ease-in-out infinite;
}
@keyframes aik-sun {
  0% { transform: scale(1) translate(0, 0); opacity: .9; }
  50% { transform: scale(1.05) translate(8px, -4px); opacity: 1; }
  100% { transform: scale(.98) translate(-4px, 2px); opacity: .85; }
}
@keyframes aik-sky {
  0% { background-position: 0% 0%; }
  50% { background-position: 50% 10%; }
  100% { background-position: 100% 0%; }
}
@keyframes aik-ground {
  0% { transform: translateY(0); }
  33% { transform: translateY(-2px); }
  66% { transform: translateY(1px); }
  100% { transform: translateY(0); }
}
@keyframes aik-knight {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(3px) rotate(1deg); }
  70% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes aik-shield {
  0% { transform: translate(0, 0) rotate(-5deg); opacity: .8; }
  50% { transform: translate(2px, -3px) rotate(3deg); opacity: 1; }
  100% { transform: translate(-1px, 1px) rotate(-2deg); opacity: .9; }
}
@keyframes aik-banner {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes aik-sparks {
  0%, 100% { transform: scale(1); opacity: 0; }
  50% { transform: scale(1.8); opacity: 1; }
}

/* true-knight-meets-sansfoy */
.scn-true-knight-meets-sansfoy {
  background: linear-gradient(180deg, #d4a373 0%, #f0d9b5 40%, #e8c398 80%, #cba37a 100%),
              radial-gradient(ellipse at 50% 30%, #fff2c0 0%, transparent 60%);
}
.scn-true-knight-meets-sansfoy .sky-glow {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #aaccff 0%, #ddeeff 100%);
  opacity: 0.5; mix-blend-mode: screen;
  animation: tkm-sky 16s ease-in-out infinite alternate;
}
.scn-true-knight-meets-sansfoy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8a6d4f 0%, #5a4030 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 40px rgba(0,0,0,.7);
  animation: tkm-ground 8s ease-in-out infinite;
}
.scn-true-knight-meets-sansfoy .knight-l {
  position: absolute; bottom: 18%; left: 25%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tkm-knight-l 2.5s ease-in-out infinite;
}
.scn-true-knight-meets-sansfoy .knight-r {
  position: absolute; bottom: 18%; right: 30%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tkm-knight-r 2.5s ease-in-out infinite 1.25s;
}
.scn-true-knight-meets-sansfoy .shield-l {
  position: absolute; bottom: 20%; left: 30%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #b0a8a0 0%, #807870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 3px rgba(180,160,140,.4);
  animation: tkm-shield-l 3s ease-in-out infinite alternate;
}
.scn-true-knight-meets-sansfoy .shield-r {
  position: absolute; bottom: 20%; right: 35%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #8a827a 0%, #6a625a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 3px rgba(140,120,100,.4);
  animation: tkm-shield-r 3s ease-in-out infinite alternate 1.5s;
}
.scn-true-knight-meets-sansfoy .dust {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 8px;
  background: transparent; border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(180,150,100,.2);
  animation: tkm-dust 4s ease-in-out infinite;
}
@keyframes tkm-sky {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes tkm-ground {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-1px) scaleY(1.01); }
  75% { transform: translateY(1px) scaleY(0.99); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes tkm-knight-l {
  0% { transform: translateX(0) rotate(-3deg); }
  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 tkm-knight-r {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-3px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes tkm-shield-l {
  0% { transform: translate(0, 0) rotate(-10deg); }
  50% { transform: translate(1px, -2px) rotate(5deg); }
  100% { transform: translate(-1px, 1px) rotate(-8deg); }
}
@keyframes tkm-shield-r {
  0% { transform: translate(0, 0) rotate(8deg); }
  50% { transform: translate(-1px, 2px) rotate(-4deg); }
  100% { transform: translate(1px, -1px) rotate(6deg); }
}
@keyframes tkm-dust {
  0% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.5); opacity: 0.8; }
  100% { transform: scale(0.8); opacity: 0; }
}

/* duessa-introduced */
.scn-duessa-introduced {
  background: linear-gradient(180deg, #b2876a 0%, #d4a373 40%, #e8c398 70%, #cba37a 100%),
              radial-gradient(ellipse at 60% 20%, #ffd19a 0%, transparent 60%);
}
.scn-duessa-introduced .sun {
  position: absolute; top: 5%; right: 15%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffefc0 0%, #f5b342 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 70px 25px rgba(245,179,66,.3);
  animation: dui-sun 18s ease-in-out infinite alternate;
}
.scn-duessa-introduced .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #99bbcc 0%, #bbdddd 100%);
  opacity: 0.5; mix-blend-mode: overlay;
  animation: dui-sky 25s linear infinite;
}
.scn-duessa-introduced .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #7a5d3a 0%, #3d2e1a 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 8px 40px rgba(0,0,0,.5);
  animation: dui-ground 15s ease-in-out infinite;
}
.scn-duessa-introduced .figure {
  position: absolute; bottom: 16%; left: 40%; width: 26px; height: 64px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dui-figure 4s ease-in-out infinite;
}
.scn-duessa-introduced .mitre {
  position: absolute; bottom: 52%; left: 46%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #dfc27d 0%, #b89a5a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-5deg);
  box-shadow: 0 0 8px 2px rgba(200,180,100,.4);
  animation: dui-mitre 3s ease-in-out infinite alternate;
}
.scn-duessa-introduced .veil {
  position: absolute; bottom: 42%; left: 52%; width: 40px; height: 20px;
  background: linear-gradient(180deg, rgba(180,160,140,.8) 0%, rgba(180,160,140,.2) 100%);
  border-radius: 0 40% 60% 0 / 0 40% 60% 0;
  filter: blur(2px);
  animation: dui-veil 7s ease-in-out infinite;
}
.scn-duessa-introduced .ornaments {
  position: absolute; bottom: 30%; left: 42%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffdc8a 0%, #d4a373 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(212,163,115,.6);
  animation: dui-ornaments 2s ease-in-out infinite;
}
@keyframes dui-sun {
  0% { transform: scale(1) translate(0, 0); opacity: .85; }
  50% { transform: scale(1.03) translate(-6px, 3px); opacity: 1; }
  100% { transform: scale(.97) translate(4px, -2px); opacity: .9; }
}
@keyframes dui-sky {
  0% { background-position: 0% 0%; }
  50% { background-position: 30% 10%; }
  100% { background-position: 100% 0%; }
}
@keyframes dui-ground {
  0% { transform: translateY(0); }
  33% { transform: translateY(-1px); }
  66% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes dui-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes dui-mitre {
  0% { transform: rotate(-8deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.05); }
  100% { transform: rotate(-6deg) scaleY(0.98); }
}
@keyframes dui-veil {
  0% { transform: translateX(0) rotate(0); opacity: .7; }
  50% { transform: translateX(8px) rotate(5deg); opacity: .9; }
  100% { transform: translateX(-4px) rotate(-3deg); opacity: .6; }
}
@keyframes dui-ornaments {
  0%, 100% { transform: scale(1) translate(0, 0); opacity: .8; }
  50% { transform: scale(1.6) translate(2px, -3px); opacity: 1; }
}

/* duessa-and-sansfoy */
.scn-duessa-and-sansfoy {
  background: linear-gradient(180deg, #cba37a 0%, #e8c398 30%, #f0d9b5 60%, #d4a373 100%),
              radial-gradient(ellipse at 30% 50%, #ffdb7a 0%, transparent 50%);
}
.scn-duessa-and-sansfoy .sky {
  position: absolute; inset: 0 0 52% 0;
  background: linear-gradient(180deg, #88aacc 0%, #bbdddd 100%);
  opacity: 0.5; mix-blend-mode: overlay;
  animation: das-sky 20s ease-in-out infinite alternate;
}
.scn-duessa-and-sansfoy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 52%;
  background: linear-gradient(180deg, #7a5d3a 0%, #4d3520 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: das-ground 10s ease-in-out infinite;
}
.scn-duessa-and-sansfoy .duessa {
  position: absolute; bottom: 25%; left: 18%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: das-duessa 5s ease-in-out infinite;
}
.scn-duessa-and-sansfoy .knight1 {
  position: absolute; bottom: 18%; left: 45%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: das-knight1 2.8s ease-in-out infinite;
}
.scn-duessa-and-sansfoy .knight2 {
  position: absolute; bottom: 18%; right: 25%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: das-knight2 2.8s ease-in-out infinite 1.4s;
}
.scn-duessa-and-sansfoy .spark {
  position: absolute; bottom: 40%; left: 52%; width: 5px; height: 5px;
  background: #ffdc8a; border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,220,138,.7);
  animation: das-spark 2s ease-in-out infinite;
}
@keyframes das-sky {
  0% { opacity: 0.4; background-position: 0% 0%; }
  50% { opacity: 0.7; background-position: 30% 10%; }
  100% { opacity: 0.5; background-position: 100% 0%; }
}
@keyframes das-ground {
  0% { transform: translateY(0) scaleY(1); }
  33% { transform: translateY(-2px) scaleY(1.02); }
  66% { transform: translateY(1px) scaleY(0.98); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes das-duessa {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes das-knight1 {
  0% { transform: translateX(0) rotate(-3deg); }
  20% { transform: translateX(5px) rotate(2deg); }
  40% { transform: translateX(-2px) rotate(-1deg); }
  60% { transform: translateX(4px) rotate(0); }
  80% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes das-knight2 {
  0% { transform: translateX(0) rotate(2deg); }
  20% { transform: translateX(-4px) rotate(-1deg); }
  40% { transform: translateX(3px) rotate(0); }
  60% { transform: translateX(-5px) rotate(1deg); }
  80% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes das-spark {
  0%, 100% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(2); opacity: 1; }
}

/* poet-vs-historian */
.scn-poet-vs-historian {
  background: 
    linear-gradient(180deg, #c4a882 0%, #a88b6e 100%),
    radial-gradient(ellipse at 50% 60%, #d4b896 30%, transparent 70%);
}
.scn-poet-vs-historian .wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #b89a7a 0%, #d0b090 50%, #b89a7a 100%);
  animation: pvh-wall 20s ease-in-out infinite alternate;
}
.scn-poet-vs-historian .window {
  position: absolute; top: 10%; left: 15%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at center, #ffe8c0 0%, #b0a080 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 40px rgba(255,200,100,0.3), 0 8px 30px rgba(0,0,0,0.3);
  animation: pvh-window 8s ease-in-out infinite alternate;
}
.scn-poet-vs-historian .bookshelf {
  position: absolute; left: 5%; top: 20%; width: 15%; height: 60%;
  background: linear-gradient(90deg, #6b4e3a 0%, #8b6e5a 100%);
  border-radius: 4%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
  animation: pvh-shelf 12s ease-in-out infinite;
}
.scn-poet-vs-historian .desk {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 18%;
  background: linear-gradient(180deg, #b09070 0%, #7a5d40 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 15px rgba(0,0,0,0.3);
  animation: pvh-desk 10s ease-in-out infinite alternate;
}
.scn-poet-vs-historian .figure-poet {
  position: absolute; bottom: 15%; left: 35%; width: 10%; height: 40%;
  background: radial-gradient(ellipse 70% 60% at 50% 100%, #2a1f12 0%, #1a0f04 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pvh-poet 6s ease-in-out infinite;
}
.scn-poet-vs-historian .figure-historian {
  position: absolute; bottom: 15%; right: 15%; width: 12%; height: 42%;
  background: radial-gradient(ellipse 70% 60% at 50% 100%, #2a1f12 0%, #1a0f04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: pvh-historian 7s ease-in-out infinite alternate;
}
.scn-poet-vs-historian .candle {
  position: absolute; bottom: 22%; left: 50%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #ffd58a 0%, #c88a3a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px #ffb060, 0 0 60px 16px rgba(255,160,80,0.3);
  animation: pvh-candle 4s ease-in-out infinite alternate;
}
.scn-poet-vs-historian .papers {
  position: absolute; bottom: 14%; left: 43%; width: 15%; height: 8%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 5%;
  box-shadow: 0 3px 8px rgba(0,0,0,0.2);
  animation: pvh-papers 9s ease-in-out infinite;
}
@keyframes pvh-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pvh-window { 0% { box-shadow: inset 0 0 30px rgba(255,200,100,0.2), 0 8px 30px rgba(0,0,0,0.3); } 50% { box-shadow: inset 0 0 60px rgba(255,220,140,0.4), 0 8px 30px rgba(0,0,0,0.2); } 100% { box-shadow: inset 0 0 40px rgba(255,200,100,0.25), 0 8px 30px rgba(0,0,0,0.3); } }
@keyframes pvh-shelf { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } }
@keyframes pvh-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes pvh-poet { 0% { transform: rotate(-2deg) translateX(0); } 25% { transform: rotate(1deg) translateX(3px); } 50% { transform: rotate(-1deg) translateX(0); } 75% { transform: rotate(2deg) translateX(-2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes pvh-historian { 0% { transform: rotate(1deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(-2px); } 100% { transform: rotate(1deg) translateX(0); } }
@keyframes pvh-candle { 0% { box-shadow: 0 0 20px 6px #ffa050, 0 0 40px 12px rgba(255,160,80,0.2); transform: translateY(0) scaleY(1); } 50% { box-shadow: 0 0 40px 12px #ffc080, 0 0 80px 24px rgba(255,192,128,0.3); transform: translateY(-2px) scaleY(1.05); } 100% { box-shadow: 0 0 25px 8px #ffa050, 0 0 50px 16px rgba(255,160,80,0.2); transform: translateY(0) scaleY(1); } }
@keyframes pvh-papers { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } }

/* first-adventure-the-clownish-younge-man */
.scn-first-adventure-the-clownish-younge-man {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #daa520 100%),
    radial-gradient(ellipse at 50% 100%, #f0d080 0%, transparent 60%);
}
.scn-first-adventure-the-clownish-younge-man .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6ebce0 0%, #b0d8f0 100%);
  animation: fac-sky 15s ease-in-out infinite alternate;
}
.scn-first-adventure-the-clownish-younge-man .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #7cb342 0%, #558b2f 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: fac-ground 12s ease-in-out infinite;
}
.scn-first-adventure-the-clownish-younge-man .throne {
  position: absolute; bottom: 25%; left: 50%; width: 30%; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%);
  border-radius: 20% 20% 5% 5% / 50% 50% 10% 10%;
  box-shadow: 0 10px 25px rgba(0,0,0,0.4);
  animation: fac-throne 10s ease-in-out infinite alternate;
}
.scn-first-adventure-the-clownish-younge-man .queen {
  position: absolute; bottom: 32%; left: 50%; width: 14%; height: 38%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 70% 60% at 50% 100%, #3a2a1a 0%, #1a0f04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: fac-queen 8s ease-in-out infinite;
}
.scn-first-adventure-the-clownish-younge-man .clown {
  position: absolute; bottom: 18%; left: 28%; width: 12%; height: 34%;
  background: radial-gradient(ellipse 60% 50% at 50% 100%, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fac-clown 6s ease-in-out infinite alternate;
}
.scn-first-adventure-the-clownish-younge-man .banner {
  position: absolute; bottom: 35%; width: 4%; height: 50%;
  background: linear-gradient(180deg, #d4a017 0%, #b8860b 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: fac-banner 9s ease-in-out infinite;
}
.scn-first-adventure-the-clownish-younge-man .banner.left { left: 15%; animation-delay: 0s; }
.scn-first-adventure-the-clownish-younge-man .banner.right { right: 15%; animation-delay: 4.5s; }
.scn-first-adventure-the-clownish-younge-man .feast-table {
  position: absolute; bottom: 20%; left: 60%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 6px 15px rgba(0,0,0,0.3);
  animation: fac-table 7s ease-in-out infinite alternate;
}
@keyframes fac-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fac-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes fac-throne { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes fac-queen { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes fac-clown { 0% { transform: rotate(-3deg) translateX(0); } 25% { transform: rotate(1deg) translateX(5px); } 50% { transform: rotate(-2deg) translateX(10px); } 75% { transform: rotate(2deg) translateX(5px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes fac-banner { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes fac-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* the-faire-ladie-in-mourning */
.scn-the-faire-ladie-in-mourning {
  background: 
    linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 100%),
    radial-gradient(ellipse at 50% 100%, #5a6a7a 0%, transparent 60%);
}
.scn-the-faire-ladie-in-mourning .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #7a8a9a 100%);
  animation: flm-sky 20s ease-in-out infinite alternate;
}
.scn-the-faire-ladie-in-mourning .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: flm-ground 14s ease-in-out infinite;
}
.scn-the-faire-ladie-in-mourning .path {
  position: absolute; bottom: 35%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: flm-path 18s ease-in-out infinite alternate;
}
.scn-the-faire-ladie-in-mourning .lady {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 32%;
  background: radial-gradient(ellipse 60% 70% at 50% 100%, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: flm-lady 9s ease-in-out infinite;
}
.scn-the-faire-ladie-in-mourning .donkey {
  position: absolute; bottom: 28%; left: 38%; width: 18%; height: 20%;
  background: radial-gradient(ellipse 70% 60% at 50% 100%, #6a6a6a 0%, #3a3a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: flm-donkey 11s ease-in-out infinite alternate;
}
.scn-the-faire-ladie-in-mourning .dwarf {
  position: absolute; bottom: 25%; left: 28%; width: 8%; height: 22%;
  background: radial-gradient(ellipse 60% 60% at 50% 100%, #3a2a1a 0%, #1a0f04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: flm-dwarf 8s ease-in-out infinite;
}
.scn-the-faire-ladie-in-mourning .warhorse {
  position: absolute; bottom: 28%; right: 20%; width: 22%; height: 32%;
  background: radial-gradient(ellipse 70% 60% at 50% 100%, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: flm-horse 13s ease-in-out infinite alternate;
}
.scn-the-faire-ladie-in-mourning .arms {
  position: absolute; bottom: 32%; right: 18%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: flm-arms 5s ease-in-out infinite;
}
@keyframes flm-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes flm-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes flm-path { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes flm-lady { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes flm-donkey { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes flm-dwarf { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes flm-horse { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes flm-arms { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05) translateY(-1px); } }

/* the-clown-asks-for-adventure */
.scn-the-clown-asks-for-adventure {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #daa520 100%),
    radial-gradient(ellipse at 50% 100%, #f0d080 0%, transparent 60%);
}
.scn-the-clown-asks-for-adventure .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6ebce0 0%, #b0d8f0 100%);
  animation: cka-sky 16s ease-in-out infinite alternate;
}
.scn-the-clown-asks-for-adventure .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8bc34a 0%, #558b2f 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: cka-ground 13s ease-in-out infinite;
}
.scn-the-clown-asks-for-adventure .armor-stand {
  position: absolute; bottom: 20%; left: 20%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: cka-armorstand 10s ease-in-out infinite alternate;
}
.scn-the-clown-asks-for-adventure .lady {
  position: absolute; bottom: 22%; left: 40%; width: 12%; height: 38%;
  background: radial-gradient(ellipse 60% 70% at 50% 100%, #3a2a1a 0%, #1a0f04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: cka-lady 9s ease-in-out infinite;
}
.scn-the-clown-asks-for-adventure .clown {
  position: absolute; bottom: 18%; left: 55%; width: 13%; height: 36%;
  background: radial-gradient(ellipse 60% 50% at 50% 100%, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cka-clown 7s ease-in-out infinite alternate;
}
.scn-the-clown-asks-for-adventure .shining-armor {
  position: absolute; bottom: 30%; left: 20%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #f0e0c0 0%, #b0a080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 8px #ffe080, 0 0 60px 16px rgba(255,224,128,0.3);
  animation: cka-armor 4s ease-in-out infinite alternate;
}
.scn-the-clown-asks-for-adventure .field {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 8%;
  background: linear-gradient(90deg, #a0c080 0%, #c0e0a0 100%);
  border-radius: 20% 20% 0 0;
  opacity: 0.6;
  animation: cka-field 25s linear infinite;
}
@keyframes cka-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cka-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cka-armorstand { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cka-lady { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cka-clown { 0% { transform: rotate(-3deg) translateX(0); } 25% { transform: rotate(1deg) translateX(5px); } 50% { transform: rotate(-2deg) translateX(8px); } 75% { transform: rotate(2deg) translateX(5px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes cka-armor { 0% { box-shadow: 0 0 20px 6px #e0c060, 0 0 40px 12px rgba(224,192,96,0.2); opacity: 0.7; } 50% { box-shadow: 0 0 40px 12px #ffe080, 0 0 80px 24px rgba(255,224,128,0.3); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #e0c060, 0 0 50px 16px rgba(224,192,96,0.2); opacity: 0.75; } }
@keyframes cka-field { 0% { transform: translateX(-10%); } 100% { transform: translateX(10%); } }

.scn-hospital-burial { background: linear-gradient(180deg, #e8d5b0 0%, #c9b28b 40%, #a08a6c 80%, #7a6850 100%), radial-gradient(ellipse at 30% 100%, #d4bc94 0%, transparent 60%); }
.scn-hospital-burial .hills { position:absolute; inset:auto 0 40% 0; height:45%; background: linear-gradient(180deg, #8f9a6b 0%, #6f7a4b 50%, #5a6540 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 30px rgba(40,30,20,0.3); animation: shb-hill 14s ease-in-out infinite alternate; }
.scn-hospital-burial .mound { position:absolute; bottom:28%; left:38%; width:120px; height:40px; background: radial-gradient(ellipse at 50% 100%, #6a6e40 0%, #4a4e30 70%, #3a3e20 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: 0 -4px 12px rgba(0,0,0,0.15); animation: shb-mound 20s ease-in-out infinite alternate; }
.scn-hospital-burial .stone { position:absolute; bottom:42%; left:48%; width:28px; height:40px; background: linear-gradient(180deg, #b0a890 0%, #8a8070 50%, #6a6050 100%); border-radius: 8% 8% 12% 12% / 20% 20% 8% 8%; box-shadow: 2px 4px 10px rgba(0,0,0,0.3); transform: rotate(2deg); animation: shb-stone 9s ease-in-out infinite; }
.scn-hospital-burial .drape { position:absolute; bottom:34%; left:32%; width:140px; height:50px; background: linear-gradient(180deg, #b89a70 0%, #9a7a5a 40%, #7a5a3a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 60% 85%, 40% 100%, 15% 85%); animation: shb-drape 12s ease-in-out infinite; transform-origin: top center; }
.scn-hospital-burial .flowers-eft { position:absolute; bottom:36%; left:44%; width:40px; height:30px; background: radial-gradient(ellipse at 30% 40%, #d4b080 0%, #b08050 50%, #8a6040 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; box-shadow: 0 -2px 8px rgba(160,120,60,0.3); animation: shb-flower-a 6s ease-in-out infinite alternate; }
.scn-hospital-burial .flowers-wight { position:absolute; bottom:38%; left:60%; width:44px; height:34px; background: radial-gradient(ellipse at 60% 50%, #e0c080 0%, #b08050 50%, #8a6040 100%); border-radius: 0 50% 50% 0 / 0 70% 70% 0; animation: shb-flower-b 7s ease-in-out infinite alternate; }
.scn-hospital-burial .figure-bend { position:absolute; bottom:26%; left:28%; width:24px; height:52px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: shb-bend 5s ease-in-out infinite; box-shadow: -2px 0 6px rgba(0,0,0,0.2); }
.scn-hospital-burial .lily-stem { position:absolute; bottom:44%; left:52%; width:4px; height:40px; background: linear-gradient(180deg, #4a6a3a 0%, #3a5a2a 100%); border-radius: 2px; transform: rotate(-15deg); animation: shb-lily 8s ease-in-out infinite; transform-origin: bottom center; box-shadow: 0 0 4px rgba(200,180,120,0.3); }
@keyframes shb-hill { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes shb-mound { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.03) rotate(1deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes shb-stone { 0%,100% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(1px); } }
@keyframes shb-drape { 0% { transform: translateY(0) skewX(0); } 50% { transform: translateY(-3px) skewX(2deg); } 100% { transform: translateY(0) skewX(-2deg); } }
@keyframes shb-flower-a { 0% { transform: translate(0,0) rotate(-5deg); opacity:0.8; } 50% { transform: translate(2px,-2px) rotate(2deg); opacity:1; } 100% { transform: translate(-1px,1px) rotate(-3deg); opacity:0.9; } }
@keyframes shb-flower-b { 0% { transform: translate(0,0) rotate(4deg); opacity:0.9; } 50% { transform: translate(-2px,-1px) rotate(-2deg); opacity:0.8; } 100% { transform: translate(1px,1px) rotate(3deg); opacity:1; } }
@keyframes shb-bend { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(4deg); } 50% { transform: translateX(6px) rotate(0); } 75% { transform: translateX(3px) rotate(-4deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes shb-lily { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.05); } 100% { transform: rotate(-18deg) scaleY(0.95); } }

.scn-hospital-widow { background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 40%, #b8a888 70%, #8a7a5a 100%), radial-gradient(ellipse at 50% 0%, #f8ecc0 0%, transparent 60%); }
.scn-hospital-widow .arch-l { position:absolute; inset:0 auto 20% 0; width:45%; background: linear-gradient(180deg, #b8a080 0%, #8a7050 50%, #6a5030 100%); border-radius: 60% 0 0 0 / 80% 0 0 0; box-shadow: inset -4px 0 20px rgba(0,0,0,0.2); animation: shw-arch 20s ease-in-out infinite alternate; }
.scn-hospital-widow .arch-r { position:absolute; inset:0 0 20% auto; width:45%; background: linear-gradient(180deg, #b8a080 0%, #8a7050 50%, #6a5030 100%); border-radius: 0 60% 0 0 / 0 80% 0 0; box-shadow: inset 4px 0 20px rgba(0,0,0,0.2); animation: shw-arch 20s ease-in-out infinite alternate 0.5s; }
.scn-hospital-widow .floor-tile { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: repeating-linear-gradient(90deg, #c8b898 0px, #c8b898 60px, #b8a888 60px, #b8a888 120px); border-radius: 4% 4% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.1); }
.scn-hospital-widow .widow-robes { position:absolute; bottom:10%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 6px 20px rgba(0,0,0,0.4); animation: shw-robes 8s ease-in-out infinite; transform-origin: bottom center; }
.scn-hospital-widow .widow-veil { position:absolute; bottom:60%; left:33%; width:120px; height:80px; background: linear-gradient(180deg, rgba(200,180,160,0.4) 0%, rgba(160,140,120,0.2) 60%, transparent 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 60% 80%, 40% 100%, 10% 80%); filter: blur(1px); animation: shw-veil 6s ease-in-out infinite alternate; }
.scn-hospital-widow .pleading-hand { position:absolute; bottom:40%; left:45%; width:16px; height:30px; background: linear-gradient(180deg, #c8a888 0%, #a88868 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: shw-hand 4s ease-in-out infinite; }
.scn-hospital-widow .light-ray { position:absolute; inset:0 30% 20% 30%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0.05) 100%); clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%); filter: blur(4px); animation: shw-ray 5s ease-in-out infinite alternate; }
.scn-hospital-widow .scroll-drop { position:absolute; bottom:18%; left:38%; width:30px; height:40px; background: linear-gradient(180deg, #d8c098 0%, #b89870 50%, #987858 100%); border-radius: 10% 10% 40% 40% / 20% 20% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); transform: rotate(-5deg); animation: shw-scroll 7s ease-in-out infinite alternate; }
@keyframes shw-arch { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes shw-robes { 0% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-2deg) scaleY(0.98); } }
@keyframes shw-veil { 0% { transform: translateX(0) rotate(0); opacity:0.6; } 50% { transform: translateX(4px) rotate(2deg); opacity:0.8; } 100% { transform: translateX(-3px) rotate(-2deg); opacity:0.5; } }
@keyframes shw-hand { 0% { transform: translate(0,0) rotate(-10deg); } 25% { transform: translate(2px,-2px) rotate(0deg); } 50% { transform: translate(4px,-4px) rotate(10deg); } 75% { transform: translate(2px,-2px) rotate(0deg); } 100% { transform: translate(0,0) rotate(-10deg); } }
@keyframes shw-ray { 0% { opacity:0.3; transform: scaleY(0.95); } 50% { opacity:0.6; transform: scaleY(1.05); } 100% { opacity:0.4; transform: scaleY(1); } }
@keyframes shw-scroll { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-7deg) translateY(1px); } }

.scn-hospital-arrival { background: linear-gradient(180deg, #e8dcc0 0%, #d4c8a8 30%, #b8a888 60%, #8a7a5a 100%), radial-gradient(ellipse at 70% 0%, #f8f0d0 0%, transparent 50%); }
.scn-hospital-arrival .ground { position:absolute; inset:auto 0 10% 0; height:35%; background: linear-gradient(180deg, #8a9060 0%, #6a7040 50%, #5a6030 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 30px rgba(30,30,10,0.3); }
.scn-hospital-arrival .knight-steed { position:absolute; bottom:30%; left:12%; width:120px; height:60px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 50%, #2a1a00 100%); border-radius: 40% 20% 10% 10% / 50% 30% 30% 20%; box-shadow: 0 6px 20px rgba(0,0,0,0.3); animation: sha-steed 10s ease-in-out infinite; transform-origin: bottom center; }
.scn-hospital-arrival .knight-plume { position:absolute; bottom:58%; left:38%; width:14px; height:40px; background: linear-gradient(180deg, #c84828 0%, #a03820 40%, #702018 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform: rotate(15deg); transform-origin: bottom center; animation: sha-plume 3s ease-in-out infinite alternate; box-shadow: 0 0 8px rgba(200,60,30,0.3); }
.scn-hospital-arrival .mercie-robes { position:absolute; bottom:26%; right:24%; width:60px; height:90px; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 40%, #8a7050 100%); border-radius: 30% 30% 50% 50% / 40% 40% 30% 30%; box-shadow: -4px 0 16px rgba(0,0,0,0.2); animation: sha-mercie 7s ease-in-out infinite; transform-origin: bottom center; }
.scn-hospital-arrival .charissa-form { position:absolute; bottom:28%; right:10%; width:50px; height:80px; background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 40%, #6a5a3a 100%); border-radius: 40% 30% 50% 50% / 50% 40% 30% 30%; box-shadow: -2px 0 12px rgba(0,0,0,0.15); animation: sha-char 8s ease-in-out infinite 0.3s; transform-origin: bottom center; }
.scn-hospital-arrival .welcome-bough { position:absolute; top:14%; right:16%; width:80px; height:50px; background: radial-gradient(ellipse at 40% 60%, #6a8a3a 0%, #4a6a2a 60%, #2a4a1a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: 0 -4px 20px rgba(60,100,30,0.2); animation: sha-bough 15s ease-in-out infinite alternate; }
.scn-hospital-arrival .sunburst { position:absolute; inset:0 auto auto 50%; width:200px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, rgba(255,240,180,0.5) 0%, rgba(255,220,140,0.2) 40%, transparent 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; animation: sha-sun 6s ease-in-out infinite alternate; }
.scn-hospital-arrival .dust-mote { position:absolute; top:22%; left:40%; width:6px; height:6px; background:radial-gradient(circle, #fff8e0 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,240,200,0.2); animation:sha-mote 4s ease-in-out infinite alternate; }
@keyframes sha-steed { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(6px) rotate(-1deg); } 50% { transform: translateX(12px) rotate(0); } 75% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sha-plume { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(1.1); } 100% { transform: rotate(10deg) scaleY(0.9); } }
@keyframes sha-mercie { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(1px) rotate(-1deg); } }
@keyframes sha-char { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(-2px) rotate(1deg); } }
@keyframes sha-bough { 0% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(-3deg) scaleX(1.05); } 100% { transform: rotate(2deg) scaleX(0.95); } }
@keyframes sha-sun { 0% { opacity:0.4; transform: translateX(-50%) scaleY(0.9); } 50% { opacity:0.7; transform: translateX(-50%) scaleY(1.1); } 100% { opacity:0.5; transform: translateX(-50%) scaleY(0.95); } }
@keyframes sha-mote { 0% { transform: translate(0,0) scale(1); opacity:0.6; } 50% { transform: translate(4px,-6px) scale(1.3); opacity:1; } 100% { transform: translate(-2px,-3px) scale(0.8); opacity:0.4; } }

.scn-mount-contemplation { background: linear-gradient(180deg, #d4d8c0 0%, #b8c0a0 30%, #8a9070 60%, #6a7050 100%), radial-gradient(ellipse at 40% 0%, #e8ecc0 0%, transparent 60%); }
.scn-mount-contemplation .rock-base { position:absolute; inset:auto 0 0 0; height:50%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a1a 100%); border-radius: 30% 70% 0 0 / 40% 50% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.3); animation: smc-base 25s ease-in-out infinite alternate; }
.scn-mount-contemplation .steep-path { position:absolute; bottom:15%; left:28%; width:8px; height:60%; background: linear-gradient(180deg, #b0a880 0%, #908060 40%, #706040 100%); border-radius: 4px; transform: rotate(20deg); transform-origin: bottom center; box-shadow: 2px 0 8px rgba(0,0,0,0.15); animation: smc-path 9s ease-in-out infinite; }
.scn-mount-contemplation .chapel-top { position:absolute; bottom:70%; left:50%; width:50px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #c0b890 0%, #9a9080 50%, #7a7060 100%); border-radius: 10% 10% 8% 8% / 20% 20% 10% 10%; clip-path: polygon(50% 0%, 100% 30%, 100% 100%, 0% 100%, 0% 30%); box-shadow: 0 4px 16px rgba(0,0,0,0.2); animation: smc-chapel 12s ease-in-out infinite alternate; }
.scn-mount-contemplation .hermitage { position:absolute; bottom:68%; left:54%; width:30px; height:25px; background: linear-gradient(180deg, #b09870 0%, #8a7050 100%); border-radius: 6% 6% 10% 10% / 10% 10% 8% 8%; box-shadow: 0 2px 8px rgba(0,0,0,0.2); transform: rotate(2deg); animation: smc-hermit 15s ease-in-out infinite alternate; }
.scn-mount-contemplation .figure-climb { position:absolute; bottom:44%; left:35%; width:14px; height:32px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: smc-climb 6s ease-in-out infinite; box-shadow: 0 0 6px rgba(0,0,0,0.3); }
.scn-mount-contemplation .staff-stroke { position:absolute; bottom:40%; left:33%; width:3px; height:40px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 2px; transform: rotate(-8deg); transform-origin: bottom center; animation: smc-staff 6s ease-in-out infinite; }
.scn-mount-contemplation .sky-glow { position:absolute; inset:0 auto auto 40%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 100%, rgba(255,240,180,0.4) 0%, rgba(255,220,140,0.1) 60%, transparent 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; animation: smc-glow 5s ease-in-out infinite alternate; }
.scn-mount-contemplation .cloud-wisp { position:absolute; top:14%; left:20%; width:90px; height:20px; background: linear-gradient(90deg, rgba(220,220,210,0.3) 0%, rgba(240,240,230,0.5) 50%, rgba(220,220,210,0.3) 100%); border-radius:50%; filter: blur(6px); animation: smc-wisp 45s linear infinite; }
@keyframes smc-base { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(0.99); } }
@keyframes smc-path { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(22deg) scaleY(1.02); } 100% { transform: rotate(18deg) scaleY(0.98); } }
@keyframes smc-chapel { 0% { transform: translateX(-50%) rotate(0) scaleY(1); } 50% { transform: translateX(-50%) rotate(1deg) scaleY(1.03); } 100% { transform: translateX(-50%) rotate(-1deg) scaleY(0.97); } }
@keyframes smc-hermit { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0) translateY(-1px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes smc-climb { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(2px) rotate(3deg); } 40% { transform: translateX(4px) rotate(-2deg); } 60% { transform: translateX(2px) rotate(2deg); } 80% { transform: translateX(0) rotate(-3deg); } 100% { transform: translateX(-2px) rotate(0); } }
@keyframes smc-staff { 0% { transform: rotate(-8deg) scaleY(1); } 50% { transform: rotate(-4deg) scaleY(1.04); } 100% { transform: rotate(-10deg) scaleY(0.96); } }
@keyframes smc-glow { 0% { opacity:0.3; transform: scale(0.95); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes smc-wisp { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }

.scn-glossary-n {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4c5a9 100%), radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 60%);
}
.scn-glossary-n .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d9ccb0 0%, #e8ddc5 50%, #c6b89c 100%);
}
.scn-glossary-n .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #8b7355 0%, #a08b6d 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0; animation: gn-floor 12s ease-in-out infinite alternate;
}
.scn-glossary-n .window {
  position: absolute; top: 8%; left: 5%; width: 30%; height: 45%; background: linear-gradient(180deg, #e0eef7 0%, #b8d4e8 100%);
  border: 8px solid #7a684a; border-radius: 8px; box-shadow: inset 0 0 40px rgba(255,255,220,0.5), 0 4px 12px rgba(0,0,0,0.2);
  animation: gn-window 20s ease-in-out infinite alternate;
}
.scn-glossary-n .desk {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 18%; background: linear-gradient(180deg, #a0845c 0%, #8b7250 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,0.3); transform: perspective(600px) rotateX(8deg);
}
.scn-glossary-n .book {
  position: absolute; bottom: 24%; left: 25%; width: 20%; height: 14%; background: linear-gradient(90deg, #d4b47a 0%, #c4a46a 50%, #d4b47a 100%);
  border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.4); display: flex; justify-content: center; align-items: center;
}
.scn-glossary-n .book::after {
  content: ''; position: absolute; width: 80%; height: 2px; background: #9a7a5a; top: 50%; left: 10%;
  box-shadow: 0 6px 0 #9a7a5a, 0 12px 0 #9a7a5a, 0 18px 0 #9a7a5a;
  animation: gn-lines 4s ease-in-out infinite alternate;
}
.scn-glossary-n .inkpot {
  position: absolute; bottom: 27%; left: 50%; width: 6%; height: 8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 10% 10%; transform: translateX(-50%); box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-glossary-n .quill {
  position: absolute; bottom: 38%; left: 48%; width: 4%; height: 18%; background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a8 50%, #a09888 100%);
  border-radius: 80% 80% 20% 20% / 60% 60% 40% 40%; transform: rotate(-15deg); transform-origin: bottom;
  animation: gn-quill 6s ease-in-out infinite alternate;
}
.scn-glossary-n .candle {
  position: absolute; bottom: 22%; right: 22%; width: 3%; height: 12%; background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
}
.scn-glossary-n .glow {
  position: absolute; bottom: 28%; right: 20%; width: 12%; height: 12%; background: radial-gradient(circle, #ffdd88 0%, #ffcc66 30%, transparent 70%);
  border-radius: 50%; animation: gn-glow 3s ease-in-out infinite alternate;
}
@keyframes gn-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gn-window { 0% { opacity: 0.85; box-shadow: inset 0 0 40px rgba(255,255,220,0.5); } 50% { opacity: 1; box-shadow: inset 0 0 60px rgba(255,255,200,0.7); } 100% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(255,255,220,0.4); } }
@keyframes gn-lines { 0%, 100% { opacity: 0.6; } 50% { opacity: 1; } }
@keyframes gn-quill { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes gn-glow { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.8; } }

.scn-glossary-o {
  background: linear-gradient(180deg, #f0e6d8 0%, #dacfc0 100%), radial-gradient(ellipse at 30% 70%, #fff8e8 0%, transparent 60%);
}
.scn-glossary-o .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #ddd0b8 0%, #efe4d0 50%, #cdbfa8 100%);
}
.scn-glossary-o .chair {
  position: absolute; bottom: 12%; left: 10%; width: 30%; height: 50%; background: linear-gradient(180deg, #6b4e3a 0%, #4a3528 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: go-chair 8s ease-in-out infinite alternate;
}
.scn-glossary-o .lamp {
  position: absolute; bottom: 22%; right: 18%; width: 8%; height: 40%; background: linear-gradient(180deg, #8a7048 0%, #6a5030 100%);
  border-radius: 10% 10% 40% 40%; box-shadow: 2px 0 6px rgba(0,0,0,0.2);
}
.scn-glossary-o .lamplight {
  position: absolute; bottom: 30%; right: 12%; width: 20%; height: 30%; background: radial-gradient(ellipse at 50% 0%, #ffdd88 0%, #ffcc66 20%, transparent 70%);
  border-radius: 50%; animation: go-lamplight 4s ease-in-out infinite alternate;
}
.scn-glossary-o .table {
  position: absolute; bottom: 10%; right: 5%; left: 40%; height: 12%; background: linear-gradient(180deg, #b09870 0%, #9a8260 100%);
  border-radius: 4px; transform: perspective(400px) rotateX(6deg);
}
.scn-glossary-o .book {
  position: absolute; bottom: 15%; right: 12%; width: 16%; height: 10%; background: linear-gradient(90deg, #c4a464 0%, #b49454 50%, #c4a464 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: go-book 10s ease-in-out infinite;
}
.scn-glossary-o .teacup {
  position: absolute; bottom: 20%; left: 45%; width: 8%; height: 8%; background: linear-gradient(180deg, #f0e8d8 0%, #d8d0c0 100%);
  border-radius: 20% 20% 40% 40%; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.1);
}
.scn-glossary-o .steam {
  position: absolute; bottom: 26%; left: 46%; width: 4%; height: 10%; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(4px); animation: go-steam 6s ease-in-out infinite alternate;
}
.scn-glossary-o .rug {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 10%; background: linear-gradient(90deg, #7a3e2e 0%, #9a5e4e 20%, #7a3e2e 40%, #5a2e1e 60%, #7a3e2e 80%, #9a5e4e 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0; opacity: 0.7;
  animation: go-rug 20s linear infinite;
}
@keyframes go-chair { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes go-lamplight { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; } }
@keyframes go-book { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(1px) translateY(-1px); } }
@keyframes go-steam { 0% { transform: translate(0, 0) scale(1); opacity: 0.4; } 100% { transform: translate(-4px, -12px) scale(1.5); opacity: 0; } }
@keyframes go-rug { 0% { background-position: 0% 0; } 100% { background-position: 100% 0; } }

.scn-glossary-p {
  background: linear-gradient(180deg, #d8ccb8 0%, #b8ac98 100%), radial-gradient(ellipse at 70% 40%, #fff8e8 0%, transparent 60%);
}
.scn-glossary-p .bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #c8bca8 0%, #e0d4c0 50%, #b8ac98 100%);
}
.scn-glossary-p .bookshelf {
  position: absolute; top: 10%; left: 5%; right: 5%; bottom: 15%; background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  display: flex; flex-direction: column; justify-content: space-around; padding: 4% 0;
}
.scn-glossary-p .bookshelf::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 6%; background: #8a6848;
}
.scn-glossary-p .bookshelf::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 6%; background: #8a6848;
}
.scn-glossary-p .books {
  position: absolute; top: 15%; left: 10%; right: 10%; bottom: 20%; background: repeating-linear-gradient(90deg, 
    #a08060 0px, #a08060 15px, 
    #705030 15px, #705030 18px, 
    #805840 18px, #805840 33px,
    #b09070 33px, #b09070 36px,
    #906848 36px, #906848 51px);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: gp-books 30s linear infinite;
}
.scn-glossary-p .ladder {
  position: absolute; top: 18%; left: 60%; width: 8%; bottom: 18%; background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 4px; transform: skewX(-6deg); box-shadow: -2px 0 6px rgba(0,0,0,0.3);
}
.scn-glossary-p .ladder::before {
  content: ''; position: absolute; top: 0; bottom: 0; left: 0; right: 0; background: repeating-linear-gradient(180deg, 
    transparent 0px, transparent 12px, #5a3a1a 12px, #5a3a1a 14px, transparent 14px, transparent 28px, #5a3a1a 28px, #5a3a1a 30px);
}
.scn-glossary-p .figure {
  position: absolute; top: 30%; left: 62%; width: 10%; height: 30%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom;
  animation: gp-figure 5s ease-in-out infinite alternate;
}
.scn-glossary-p .window {
  position: absolute; top: 5%; right: 8%; width: 20%; height: 30%; background: linear-gradient(180deg, #c8dce8 0%, #a0b8c8 100%);
  border: 6px solid #6a4a3a; border-radius: 6px; box-shadow: inset 0 0 30px rgba(255,255,200,0.5);
  animation: gp-window 20s ease-in-out infinite alternate;
}
.scn-glossary-p .lightbeam {
  position: absolute; top: 8%; right: 10%; width: 25%; height: 40%; background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 80%);
  transform: rotate(-10deg); transform-origin: top right; filter: blur(6px);
  animation: gp-beam 15s ease-in-out infinite alternate;
}
.scn-glossary-p .shadow {
  position: absolute; bottom: 16%; left: 55%; width: 20%; height: 8%; background: rgba(0,0,0,0.15); border-radius: 50%;
  filter: blur(4px); animation: gp-shadow 5s ease-in-out infinite alternate;
}
.scn-glossary-p .dust {
  position: absolute; top: 20%; left: 40%; width: 4%; height: 4%; background: rgba(255,255,230,0.6); border-radius: 50%;
  filter: blur(2px); animation: gp-dust 12s ease-in-out infinite;
}
@keyframes gp-books { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes gp-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gp-window { 0% { opacity: 0.7; box-shadow: inset 0 0 30px rgba(255,255,200,0.5); } 50% { opacity: 1; box-shadow: inset 0 0 50px rgba(255,255,200,0.8); } 100% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(255,255,200,0.4); } }
@keyframes gp-beam { 0% { transform: rotate(-10deg) scaleX(1); opacity: 0.3; } 50% { transform: rotate(-5deg) scaleX(1.2); opacity: 0.5; } 100% { transform: rotate(-15deg) scaleX(0.8); opacity: 0.2; } }
@keyframes gp-shadow { 0% { transform: scaleX(1); opacity: 0.15; } 50% { transform: scaleX(1.2); opacity: 0.25; } 100% { transform: scaleX(0.9); opacity: 0.15; } }
@keyframes gp-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0.6; } 25% { transform: translate(10px, -8px) scale(1.3); opacity: 0.3; } 50% { transform: translate(20px, 2px) scale(0.8); opacity: 0.7; } 75% { transform: translate(30px, -5px) scale(1.1); opacity: 0.4; } 100% { transform: translate(40px, 0) scale(1); opacity: 0.6; } }

.scn-glossary-q {
  background: linear-gradient(180deg, #ece4d4 0%, #dcd0c0 100%), radial-gradient(ellipse at 40% 50%, #fff8e8 0%, transparent 70%);
}
.scn-glossary-q .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d0c4b0 0%, #e8dcc8 50%, #c8bca8 100%);
}
.scn-glossary-q .page-left {
  position: absolute; bottom: 18%; left: 5%; width: 42%; height: 55%; background: linear-gradient(180deg, #f8f0e0 0%, #e8dcc8 100%);
  border-radius: 2px; box-shadow: 2px 0 8px rgba(0,0,0,0.15);
  transform: perspective(600px) rotateY(-8deg); transform-origin: left;
  animation: gq-page-left 12s ease-in-out infinite alternate;
}
.scn-glossary-q .page-right {
  position: absolute; bottom: 18%; right: 5%; width: 42%; height: 55%; background: linear-gradient(180deg, #f0e8d8 0%, #e0d4c0 100%);
  border-radius: 2px; box-shadow: -2px 0 8px rgba(0,0,0,0.15);
  transform: perspective(600px) rotateY(8deg); transform-origin: right;
  animation: gq-page-right 12s ease-in-out infinite alternate;
}
.scn-glossary-q .hand {
  position: absolute; bottom: 30%; left: 55%; width: 12%; height: 20%; background: linear-gradient(180deg, #3a2818 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: gq-hand 4s ease-in-out infinite alternate;
}
.scn-glossary-q .paperweight {
  position: absolute; bottom: 25%; right: 12%; width: 8%; height: 6%; background: radial-gradient(circle at 30% 30%, #b0a080 0%, #907860 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: gq-weight 8s ease-in-out infinite;
}
.scn-glossary-q .glasses {
  position: absolute; bottom: 40%; left: 38%; width: 20%; height: 8%; background: transparent;
  border: 2px solid #7a6a5a; border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 0 0 2px rgba(200,180,150,0.3);
  filter: blur(1px); animation: gq-glasses 10s ease-in-out infinite alternate;
}
.scn-glossary-q .book-edge {
  position: absolute; bottom: 18%; left: 42%; width: 16%; height: 55%; background: linear-gradient(90deg, #c4a464 0%, #b49454 50%, #c4a464 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  z-index: -1;
}
.scn-glossary-q .shadow {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 10%; background: rgba(0,0,0,0.08);
  border-radius: 50%; filter: blur(6px); animation: gq-shadow 15s ease-in-out infinite alternate;
}
.scn-glossary-q .reflection {
  position: absolute; top: 30%; left: 50%; width: 10%; height: 20%; background: linear-gradient(180deg, rgba(255,255,240,0.4) 0%, transparent 80%);
  transform: rotate(-20deg); filter: blur(3px);
  animation: gq-reflection 6s ease-in-out infinite alternate;
}
@keyframes gq-page-left { 0% { transform: perspective(600px) rotateY(-8deg); } 50% { transform: perspective(600px) rotateY(-6deg); } 100% { transform: perspective(600px) rotateY(-10deg); } }
@keyframes gq-page-right { 0% { transform: perspective(600px) rotateY(8deg); } 50% { transform: perspective(600px) rotateY(6deg); } 100% { transform: perspective(600px) rotateY(10deg); } }
@keyframes gq-hand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gq-weight { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes gq-glasses { 0% { opacity: 0.6; filter: blur(1px); } 50% { opacity: 1; filter: blur(0px); } 100% { opacity: 0.7; filter: blur(2px); } }
@keyframes gq-shadow { 0% { transform: scaleX(1); opacity: 0.08; } 50% { transform: scaleX(1.1); opacity: 0.12; } 100% { transform: scaleX(0.9); opacity: 0.08; } }
@keyframes gq-reflection { 0% { transform: rotate(-20deg) scaleX(1); opacity: 0.3; } 50% { transform: rotate(-15deg) scaleX(1.2); opacity: 0.5; } 100% { transform: rotate(-25deg) scaleX(0.8); opacity: 0.2; } }

/* --- scene: glossary-r (wide interior) --- */
.scn-glossary-r {
  background:
    linear-gradient(135deg, #f5e6c8 0%, #d4b896 50%, #b59a7a 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-glossary-r .room-bg {
  position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(180deg, #e8dcc4 0%, #c4b096 100%);
  animation: r-wall 20s ease-in-out infinite alternate;
}
.scn-glossary-r .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 22%;
  background: linear-gradient(180deg, #6b4c2e 0%, #4a3320 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 6px 14px rgba(0,0,0,0.3);
  animation: r-desk 12s ease-in-out infinite alternate;
}
.scn-glossary-r .book {
  position: absolute; bottom: 22%; left: 38%; width: 12%; height: 10%;
  background: linear-gradient(180deg, #8b5a2b 0%, #6b4226 100%);
  border-radius: 1px 12px 12px 1px;
  box-shadow: 3px 3px 6px rgba(0,0,0,0.2);
  animation: r-book 10s ease-in-out infinite;
}
.scn-glossary-r .candle {
  position: absolute; bottom: 26%; left: 32%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #f5deb3 0%, #d4a574 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 -6px 20px 4px #ffd599;
  animation: r-candle 3s ease-in-out infinite alternate;
}
.scn-glossary-r .figure {
  position: absolute; bottom: 20%; left: 20%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #3c2e1c 0%, #1e140c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: r-figure 6s ease-in-out infinite;
}
.scn-glossary-r .window {
  position: absolute; top: 20%; left: 5%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #d4e8f0 0%, #b0d0e0 100%);
  border: 4px solid #6b4c2e;
  border-radius: 4px;
  animation: r-window 15s ease-in-out infinite alternate;
}
.scn-glossary-r .curtains {
  position: absolute; top: 18%; left: 3%; width: 24%; height: 44%;
  background: linear-gradient(90deg, #8b7355 0%, transparent 40%, transparent 60%, #8b7355 100%);
  filter: blur(1px);
  animation: r-curtains 18s ease-in-out infinite alternate;
}
@keyframes r-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes r-desk { 0% { transform: translateY(0px); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes r-book { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes r-candle { 0% { transform: scaleY(1); opacity: 0.9; box-shadow: 0 -4px 14px 3px #ffd599; } 50% { transform: scaleY(1.1); opacity: 1; box-shadow: 0 -6px 22px 5px #ffe0b3; } 100% { transform: scaleY(0.95); opacity: 0.85; box-shadow: 0 -4px 16px 4px #ffd599; } }
@keyframes r-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2%) translateY(-1%) rotate(0.5deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-2%) translateY(-1%) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes r-window { 0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes r-curtains { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }

/* --- scene: glossary-s (close-up desk) --- */
.scn-glossary-s {
  background:
    linear-gradient(180deg, #f0e6d8 0%, #d4c4ab 100%),
    radial-gradient(ellipse at 50% 20%, #fff5e6 0%, transparent 70%);
}
.scn-glossary-s .paper {
  position: absolute; bottom: 20%; left: 20%; right: 20%; top: 30%;
  background: linear-gradient(135deg, #fcf6e8 0%, #e8dcc3 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  animation: s-paper 20s ease-in-out infinite alternate;
}
.scn-glossary-s .hand {
  position: absolute; bottom: 30%; left: 35%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #d4a574 0%, #b08060 100%);
  border-radius: 40% 60% 50% 50% / 30% 40% 60% 70%;
  transform-origin: 80% 100%;
  animation: s-hand 5s ease-in-out infinite;
}
.scn-glossary-s .quill {
  position: absolute; bottom: 38%; left: 42%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #f5f0e0 0%, #b8a88a 100%);
  border-radius: 2px 2px 50% 50%;
  transform: rotate(-30deg);
  animation: s-quill 4s ease-in-out infinite alternate;
}
.scn-glossary-s .inkwell {
  position: absolute; bottom: 22%; left: 58%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: s-inkwell 8s ease-in-out infinite;
}
.scn-glossary-s .candle-s {
  position: absolute; bottom: 28%; left: 15%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #f5deb3 0%, #d4a574 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 -6px 16px 4px #ffd599;
  animation: s-candle 3s ease-in-out infinite alternate;
}
.scn-glossary-s .glow-s {
  position: absolute; bottom: 30%; left: 13%; width: 10%; height: 14%;
  background: radial-gradient(ellipse at 50% 100%, #ffe0b3 0%, transparent 70%);
  filter: blur(6px);
  animation: s-glow 3s ease-in-out infinite alternate;
}
@keyframes s-paper { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.005) rotate(0.5deg); } 100% { transform: scale(0.995) rotate(-0.5deg); } }
@keyframes s-hand { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-10deg) translateX(2%); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(10deg) translateX(-2%); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes s-quill { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-2%); } 100% { transform: rotate(-35deg) translateY(1%); } }
@keyframes s-inkwell { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes s-candle { 0% { transform: scaleY(1); opacity: 0.9; box-shadow: 0 -4px 14px 3px #ffd599; } 50% { transform: scaleY(1.1); opacity: 1; box-shadow: 0 -6px 22px 5px #ffe0b3; } 100% { transform: scaleY(0.95); opacity: 0.85; box-shadow: 0 -4px 16px 4px #ffd599; } }
@keyframes s-glow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }

/* --- scene: glossary-t (vertical shelf) --- */
.scn-glossary-t {
  background:
    linear-gradient(90deg, #d4c4b0 0%, #b8a88c 50%, #d4c4b0 100%),
    radial-gradient(ellipse at 30% 40%, #f0e6d8 0%, transparent 60%);
}
.scn-glossary-t .wall-t {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #dcccb8 0%, #c4b49e 100%);
  animation: t-wall 25s ease-in-out infinite alternate;
}
.scn-glossary-t .shelf-t {
  position: absolute; bottom: 40%; left: 5%; right: 5%; height: 6%;
  background: linear-gradient(180deg, #6b4c2e 0%, #4a3320 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: t-shelf 15s ease-in-out infinite alternate;
}
.scn-glossary-t .books-t {
  position: absolute; bottom: 42%; left: 12%; width: 70%; height: 14%;
  background: repeating-linear-gradient(90deg, 
    #8b5a2b 0%, #8b5a2b 4%,
    #6b4226 4%, #6b4226 8%,
    #a07040 8%, #a07040 12%,
    #5a3a1e 12%, #5a3a1e 16%
  );
  border-radius: 2px;
  animation: t-books 20s ease-in-out infinite;
}
.scn-glossary-t .portrait {
  position: absolute; bottom: 50%; left: 35%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%);
  border: 3px solid #4a3320;
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: t-portrait 12s ease-in-out infinite alternate;
}
.scn-glossary-t .globe {
  position: absolute; bottom: 10%; left: 55%; width: 12%; height: 18%;
  background: radial-gradient(ellipse at 50% 50%, #3a6a8a 0%, #1a3a5a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(0,0,0,0.2);
  animation: t-globe 8s linear infinite;
}
.scn-glossary-t .candle-t {
  position: absolute; bottom: 18%; left: 15%; width: 3%; height: 7%;
  background: linear-gradient(180deg, #f5deb3 0%, #d4a574 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 -6px 16px 4px #ffd599;
  animation: t-candle 3s ease-in-out infinite alternate;
}
@keyframes t-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes t-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes t-books { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(0.99); } }
@keyframes t-portrait { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(1deg) scale(1.01); } 100% { transform: rotate(-1deg) scale(0.99); } }
@keyframes t-globe { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.02); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes t-candle { 0% { transform: scaleY(1); opacity: 0.9; box-shadow: 0 -4px 14px 3px #ffd599; } 50% { transform: scaleY(1.1); opacity: 1; box-shadow: 0 -6px 22px 5px #ffe0b3; } 100% { transform: scaleY(0.95); opacity: 0.85; box-shadow: 0 -4px 16px 4px #ffd599; } }

/* --- scene: glossary-u (overhead manuscript) --- */
.scn-glossary-u {
  background:
    linear-gradient(180deg, #dcccb8 0%, #b8a88c 100%),
    radial-gradient(ellipse at 60% 30%, #f0e6d8 0%, transparent 70%);
}
.scn-glossary-u .floor-u {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b4c2e 0%, #4a3320 100%);
  animation: u-floor 18s ease-in-out infinite alternate;
}
.scn-glossary-u .wall-u {
  position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(180deg, #e8dcc4 0%, #d4c4b0 100%);
  animation: u-wall 22s ease-in-out infinite alternate;
}
.scn-glossary-u .manuscript {
  position: absolute; bottom: 30%; left: 25%; right: 25%; top: 25%;
  background: linear-gradient(135deg, #fcf6e8 0%, #e8dcc3 100%);
  border-radius: 2px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.15);
  animation: u-manuscript 16s ease-in-out infinite alternate;
}
.scn-glossary-u .stand-u {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 8%;
  background: linear-gradient(180deg, #6b4c2e 0%, #4a3320 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: u-stand 12s ease-in-out infinite alternate;
}
.scn-glossary-u .figure-u {
  position: absolute; bottom: 35%; left: 10%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #3c2e1c 0%, #1e140c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: u-figure 7s ease-in-out infinite;
}
.scn-glossary-u .window-u {
  position: absolute; top: 10%; left: 70%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #d4e8f0 0%, #b0d0e0 100%);
  border: 3px solid #6b4c2e;
  border-radius: 4px;
  animation: u-window 20s ease-in-out infinite alternate;
}
.scn-glossary-u .sunbeam {
  position: absolute; top: 15%; left: 72%; width: 18%; height: 50%;
  background: linear-gradient(180deg, rgba(255,248,224,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(4px);
  animation: u-sunbeam 15s ease-in-out infinite alternate;
}
@keyframes u-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes u-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes u-manuscript { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.005) rotate(0.3deg); } 100% { transform: scale(0.995) rotate(-0.3deg); } }
@keyframes u-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes u-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2%) translateY(-1%) rotate(0.5deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-2%) translateY(-1%) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes u-window { 0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes u-sunbeam { 0% { transform: translateX(0) skewX(0deg); opacity: 0.5; } 50% { transform: translateX(2%) skewX(-2deg); opacity: 1; } 100% { transform: translateX(-2%) skewX(2deg); opacity: 0.6; } }

.scn-invocation-to-cupid-and-venus {
  background: 
    linear-gradient(180deg, #ffb07c 0%, #ff8a5c 20%, #d96a4a 40%, #8a3a2a 70%, #3a1a1a 100%),
    radial-gradient(ellipse at 70% 30%, #ffd4a0 0%, transparent 60%);
}
.scn-invocation-to-cupid-and-venus .dawn-sky {
  position:absolute; inset:0; background: linear-gradient(180deg, #ffcc99 0%, transparent 60%);
  animation: cup1-sky 20s ease-in-out infinite alternate;
}
.scn-invocation-to-cupid-and-venus .sun-glow {
  position:absolute; top:15%; left:70%; width:80px; height:80px;
  background: radial-gradient(circle, #ffebc2 0%, #ff9f60 40%, transparent 70%);
  border-radius:50%; filter: blur(8px);
  animation: cup1-sun 8s ease-in-out infinite;
}
.scn-invocation-to-cupid-and-venus .cloud {
  position:absolute; background: rgba(255,220,200,0.4); border-radius:50%; filter: blur(6px);
}
.scn-invocation-to-cupid-and-venus .cloud.c1 {
  top:8%; left:10%; width:140px; height:30px;
  animation: cup1-drift 40s linear infinite;
}
.scn-invocation-to-cupid-and-venus .cloud.c2 {
  top:20%; left:50%; width:100px; height:25px;
  animation: cup1-drift 35s linear infinite reverse;
  animation-delay: -15s;
}
.scn-invocation-to-cupid-and-venus .hill {
  position:absolute; bottom:0; width:60%; height:20%;
  background: linear-gradient(180deg, #6b4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.3);
}
.scn-invocation-to-cupid-and-venus .hill.h1 { left:0; animation: cup1-hill 14s ease-in-out infinite; }
.scn-invocation-to-cupid-and-venus .hill.h2 { right:0; width:50%; bottom:2%; animation: cup1-hill 16s ease-in-out infinite reverse; }
.scn-invocation-to-cupid-and-venus .figure-cupid {
  position:absolute; bottom:22%; left:35%; width:24px; height:50px;
  background: linear-gradient(180deg, #e8b88a 0%, #c48a6a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cup1-cupid 6s ease-in-out infinite;
}
.scn-invocation-to-cupid-and-venus .figure-venus {
  position:absolute; bottom:20%; right:30%; width:30px; height:60px;
  background: linear-gradient(180deg, #d9a88a 0%, #b87060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cup1-venus 7s ease-in-out infinite;
}
.scn-invocation-to-cupid-and-venus .arrow-spark {
  position:absolute; bottom:40%; left:40%; width:6px; height:6px;
  background: #ffe066; border-radius:50%;
  box-shadow: 0 0 16px 6px rgba(255,224,102,0.8);
  animation: cup1-spark 3s ease-in-out infinite;
}
@keyframes cup1-sky {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes cup1-sun {
  0%,100% { transform: scale(1) translate(0,0); opacity:0.9; }
  50% { transform: scale(1.05) translate(2px,-2px); opacity:1; }
}
@keyframes cup1-drift {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}
@keyframes cup1-hill {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes cup1-cupid {
  0%,100% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(1deg); }
  50% { transform: translateX(16px) rotate(-1deg); }
  75% { transform: translateX(8px) rotate(2deg); }
}
@keyframes cup1-venus {
  0%,100% { transform: translateY(0) rotate(0); }
  33% { transform: translateY(-3px) rotate(1deg); }
  66% { transform: translateY(-1px) rotate(-0.5deg); }
}
@keyframes cup1-spark {
  0%,100% { opacity:0.7; transform: scale(1); }
  50% { opacity:1; transform: scale(1.5); }
}

.scn-invocation-to-queen-elizabeth {
  background:
    linear-gradient(180deg, #fce4c8 0%, #f0d8b0 30%, #d4a878 60%, #9e6a46 100%),
    radial-gradient(ellipse at 50% 10%, #ffeccc 0%, transparent 60%);
}
.scn-invocation-to-queen-elizabeth .rays {
  position:absolute; inset:0;
  background: conic-gradient(from 0deg, #fff5e6 0deg, transparent 10deg, transparent 350deg, #fff5e6 360deg);
  animation: eliz2-rotate 30s linear infinite;
  opacity:0.3;
}
.scn-invocation-to-queen-elizabeth .queen-figure {
  position:absolute; bottom:25%; left:50%; width:50px; height:100px;
  background: linear-gradient(180deg, #c8a070 0%, #9e7a54 40%, #6a4a2a 100%);
  transform: translateX(-50%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: eliz2-queen 8s ease-in-out infinite;
}
.scn-invocation-to-queen-elizabeth .crown {
  position:absolute; bottom:78%; left:50%; width:40px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d080 0%, #c8a040 100%);
  clip-path: polygon(10% 100%, 25% 0%, 40% 30%, 55% 0%, 70% 30%, 85% 0%, 100% 100%);
  animation: eliz2-crown-bob 3s ease-in-out infinite;
}
.scn-invocation-to-queen-elizabeth .mirror-disc {
  position:absolute; bottom:35%; left:40%; width:60px; height:60px;
  background: radial-gradient(circle, #fff8e8 0%, #e8d4b0 50%, #b09070 100%);
  border-radius:50%;
  box-shadow: 0 0 30px 10px rgba(255,220,180,0.5);
  animation: eliz2-mirror 12s ease-in-out infinite;
}
.scn-invocation-to-queen-elizabeth .clouds {
  position:absolute; background: rgba(255,230,210,0.5); border-radius:50%; filter: blur(8px);
}
.scn-invocation-to-queen-elizabeth .clouds.qc1 {
  top:5%; left:5%; width:180px; height:40px;
  animation: eliz2-drift 50s linear infinite;
}
.scn-invocation-to-queen-elizabeth .clouds.qc2 {
  top:15%; right:10%; width:120px; height:30px;
  animation: eliz2-drift 45s linear infinite reverse;
  animation-delay: -20s;
}
.scn-invocation-to-queen-elizabeth .pedestal {
  position:absolute; bottom:15%; left:50%; width:90px; height:30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%);
  border-radius: 10% 10% 5% 5% / 50% 50% 20% 20%;
  box-shadow: inset 0 -8px 10px rgba(0,0,0,0.3);
  animation: eliz2-pedestal 4s ease-in-out infinite;
}
@keyframes eliz2-rotate {
  0% { transform: rotate(0); }
  100% { transform: rotate(360deg); }
}
@keyframes eliz2-queen {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes eliz2-crown-bob {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.05) translateY(-1px); }
}
@keyframes eliz2-mirror {
  0%,100% { opacity:0.8; transform: scale(1); }
  50% { opacity:1; transform: scale(1.03); box-shadow: 0 0 40px 15px rgba(255,220,180,0.7); }
}
@keyframes eliz2-drift {
  0% { transform: translateX(-50px); }
  100% { transform: translateX(120vw); }
}
@keyframes eliz2-pedestal {
  0%,100% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(0.5deg); }
}

.scn-canto-argument {
  background:
    linear-gradient(90deg, #8a7a5a 0%, #b8a480 30%, #d4c0a0 50%, #b8a480 70%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 100%, #c8b090 0%, transparent 70%);
}
.scn-canto-argument .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #c8b4a0 0%, #a88c70 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
}
.scn-canto-argument .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4020 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
}
.scn-canto-argument .window-lit {
  position:absolute; top:10%; right:15%; width:60px; height:90px;
  background: radial-gradient(circle at 50% 50%, #fff8d0 0%, #e8c070 60%, #b88840 100%);
  border-radius: 5px;
  box-shadow: inset 0 0 20px 5px rgba(255,240,180,0.6), 0 0 40px 10px rgba(255,200,100,0.3);
  animation: canto3-window 12s ease-in-out infinite alternate;
}
.scn-canto-argument .knight-silhouette {
  position:absolute; bottom:22%; left:25%; width:40px; height:80px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 8px rgba(255,255,255,0.1);
  animation: canto3-knight 6s ease-in-out infinite;
}
.scn-canto-argument .sylvan-figure {
  position:absolute; bottom:20%; right:20%; width:30px; height:70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: canto3-sylvan 8s ease-in-out infinite;
}
.scn-canto-argument .table {
  position:absolute; bottom:30%; left:43%; width:70px; height:14px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: canto3-table 5s ease-in-out infinite;
}
.scn-canto-argument .candle-glow {
  position:absolute; bottom:38%; left:45%; width:8px; height:16px;
  background: linear-gradient(180deg, #ffd070 0%, #ffa040 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 8px #ff8030, 0 0 40px 15px rgba(255,128,48,0.3);
  animation: canto3-candle 2s ease-in-out infinite;
}
.scn-canto-argument .door-arch {
  position:absolute; bottom:30%; left:8%; width:50px; height:80px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 100% 100% 10% 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: canto3-door 15s ease-in-out infinite;
}
@keyframes canto3-window {
  0% { opacity:0.6; transform: scale(1); }
  50% { opacity:1; transform: scale(1.02) translateY(-2px); }
  100% { opacity:0.7; transform: scale(0.98); }
}
@keyframes canto3-knight {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-4px) rotate(1deg); }
}
@keyframes canto3-sylvan {
  0%,100% { transform: translateY(0) rotate(0); }
  33% { transform: translateY(-4px) rotate(2deg); }
  66% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes canto3-table {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}
@keyframes canto3-candle {
  0%,100% { opacity:0.8; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.1); }
}
@keyframes canto3-door {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5), 0 8px 16px rgba(0,0,0,0.2); }
}

.scn-redcrosse-knight-described {
  background:
    linear-gradient(180deg, #87ceeb 0%, #4ea8d4 30%, #2c7aa0 60%, #1a4a6a 100%),
    radial-gradient(ellipse at 20% 30%, #ffe68c 0%, transparent 50%);
}
.scn-redcrosse-knight-described .field-sky {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #a0d4e8 0%, #c0e0f0 40%, #e0f0f8 100%);
  animation: knight4-sky 18s ease-in-out infinite alternate;
}
.scn-redcrosse-knight-described .sun-burst {
  position:absolute; top:5%; left:20%; width:70px; height:70px;
  background: radial-gradient(circle, #fff8cc 0%, #ffd76c 30%, #f0a050 60%, transparent 80%);
  border-radius:50%;
  animation: knight4-sun 6s ease-in-out infinite;
}
.scn-redcrosse-knight-described .distant-hills {
  position:absolute; bottom:25%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #6c8a6c 0%, #3a5a3a 100%);
  border-radius: 30% 70% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.3);
  animation: knight4-hills 14s ease-in-out infinite alternate;
}
.scn-redcrosse-knight-described .knight-horse {
  position:absolute; bottom:30%; left:30%; width:80px; height:50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: knight4-horse 4s ease-in-out infinite;
}
.scn-redcrosse-knight-described .knight-armor {
  position:absolute; bottom:32%; left:30%; width:30px; height:70px;
  transform: translateX(20px);
  background: linear-gradient(180deg, #a0a0a0 0%, #707070 30%, #404040 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: knight4-armor 5s ease-in-out infinite;
}
.scn-redcrosse-knight-described .shield-cross {
  position:absolute; bottom:38%; left:32%; width:25px; height:30px;
  background: linear-gradient(135deg, #c8a040 0%, #a08020 100%);
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  animation: knight4-shield 7s ease-in-out infinite;
}
.scn-redcrosse-knight-described .lance-top {
  position:absolute; bottom:48%; left:28%; width:4px; height:40px;
  background: linear-gradient(180deg, #c0b090 0%, #8a7a5a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: knight4-lance 3s ease-in-out infinite;
}
.scn-redcrosse-knight-described .cloud-k1,
.scn-redcrosse-knight-described .cloud-k2 {
  position:absolute; background: rgba(255,255,255,0.5); border-radius:50%; filter: blur(4px);
}
.scn-redcrosse-knight-described .cloud-k1 {
  top:12%; left:10%; width:100px; height:20px;
  animation: knight4-drift 40s linear infinite;
}
.scn-redcrosse-knight-described .cloud-k2 {
  top:18%; right:20%; width:80px; height:16px;
  animation: knight4-drift 45s linear infinite reverse;
  animation-delay: -15s;
}
@keyframes knight4-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes knight4-sun {
  0%,100% { transform: scale(1) translate(0,0); box-shadow: 0 0 40px 10px rgba(255,215,100,0.5); }
  50% { transform: scale(1.06) translate(2px,-2px); box-shadow: 0 0 60px 20px rgba(255,215,100,0.7); }
}
@keyframes knight4-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes knight4-horse {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(10px) rotate(-0.5deg); }
  75% { transform: translateX(5px) rotate(0.5deg); }
}
@keyframes knight4-armor {
  0%,100% { transform: translateX(20px) rotate(0); }
  33% { transform: translateX(20px) rotate(2deg); }
  66% { transform: translateX(20px) rotate(-1deg); }
}
@keyframes knight4-shield {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.04); }
}
@keyframes knight4-lance {
  0%,100% { transform: rotate(0); }
  50% { transform: rotate(2deg); }
}
@keyframes knight4-drift {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}

/* ===== Scene: knight-armed-and-goes-forth ===== */
.scn-knight-armed-and-goes-forth {
  background: linear-gradient(180deg, #ffe8c0 0%, #f5c17a 20%, #d99a55 40%, #b37a3e 70%, #7a5a2e 100%),
              radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-knight-armed-and-goes-forth .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8fc8e8 0%, #c8e8f8 30%, transparent 100%);
  animation: ka-sky 12s ease-in-out infinite alternate;
}
.scn-knight-armed-and-goes-forth .sun {
  position: absolute; top: 12%; left: 55%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd070 40%, transparent 70%);
  border-radius: 50%;
  animation: ka-sun 6s ease-in-out infinite alternate;
}
.scn-knight-armed-and-goes-forth .hills-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: ka-hills 18s ease-in-out infinite;
}
.scn-knight-armed-and-goes-forth .hills-front {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  transform: scaleX(1.1);
  animation: ka-hills 24s ease-in-out infinite reverse;
}
.scn-knight-armed-and-goes-forth .road {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #c8a870 0%, #8a6a38 100%);
  border-radius: 0 0 40% 40%;
  transform: rotate(-2deg);
}
.scn-knight-armed-and-goes-forth .horse {
  position: absolute; bottom: 12%; left: 30%; width: 60px; height: 30px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 50% 30% 40% / 50% 40% 40% 30%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
  animation: ka-walk 4s ease-in-out infinite;
}
.scn-knight-armed-and-goes-forth .rider {
  position: absolute; bottom: 22%; left: 33%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ka-walk 4s ease-in-out infinite;
}
.scn-knight-armed-and-goes-forth .lance {
  position: absolute; bottom: 30%; left: 35%; width: 4px; height: 50px;
  background: #4a3a2a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ka-lance 4s ease-in-out infinite;
}
.scn-knight-armed-and-goes-forth .cloud-a {
  position: absolute; top: 8%; left: 10%; width: 70px; height: 16px;
  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: ka-drift-a 40s linear infinite;
}
.scn-knight-armed-and-goes-forth .cloud-b {
  position: absolute; top: 14%; left: 60%; width: 55px; height: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.08) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ka-drift-b 55s linear infinite reverse;
}
@keyframes ka-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ka-sun { 0% { transform: scale(1); opacity: 0.9 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(0.95); opacity: 0.85 } }
@keyframes ka-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ka-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes ka-lance { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes ka-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes ka-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* ===== Scene: third-day-adventure-busirane ===== */
.scn-third-day-adventure-busirane {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1028 30%, #2a1a38 60%, #3a2a4a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a4a 0%, transparent 70%);
}
.scn-third-day-adventure-busirane .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #1a1028 0%, #0e0e1a 100%);
  border-bottom: 4px solid #2a1a38;
}
.scn-third-day-adventure-busirane .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a38 0%, #1a1028 100%);
  border-top: 3px solid #4a2a5a;
}
.scn-third-day-adventure-busirane .lady {
  position: absolute; bottom: 30%; left: 40%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #d8c8c0 0%, #b8a8a0 40%, #887878 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tdb-lady 3s ease-in-out infinite;
}
.scn-third-day-adventure-busirane .lady::before {
  content: '';
  position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  width: 16px; height: 16px;
  background: radial-gradient(circle, #e8d8d0 0%, #b8a8a0 100%);
  border-radius: 50%;
}
.scn-third-day-adventure-busirane .enchanter {
  position: absolute; bottom: 28%; left: 55%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #1a1028 0%, #0a0814 100%);
  border-radius: 30% 30% 20% 20% / 70% 70% 30% 30%;
  animation: tdb-enchanter 6s ease-in-out infinite;
}
.scn-third-day-adventure-busirane .chains {
  position: absolute; bottom: 40%; left: 38%; width: 3px; height: 80px;
  background: #5a4a5a;
  border-radius: 2px;
  box-shadow: 26px 0 0 #5a4a5a;
  animation: tdb-chains 4s ease-in-out infinite;
}
.scn-third-day-adventure-busirane .brazier {
  position: absolute; bottom: 20%; left: 70%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ff8840 0%, #ff4400 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,68,0,0.4);
  animation: tdb-brazier 2s ease-in-out infinite alternate;
}
.scn-third-day-adventure-busirane .runes {
  position: absolute; bottom: 50%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, #4a3a5a 0%, transparent 100%);
  border: 2px solid #6a5a7a;
  border-radius: 50%;
  animation: tdb-runes 8s ease-in-out infinite;
}
@keyframes tdb-lady { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-4px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes tdb-enchanter { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes tdb-chains { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes tdb-brazier { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(0.95) } }
@keyframes tdb-runes { 0% { opacity: 0.3; transform: rotate(0deg) } 50% { opacity: 0.8; transform: rotate(30deg) } 100% { opacity: 0.4; transform: rotate(60deg) } }

/* ===== Scene: intermedled-adventures ===== */
.scn-intermedled-adventures {
  background: linear-gradient(180deg, #1a1a0e 0%, #2a2010 30%, #3a3020 60%, #4a3a28 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a28 0%, transparent 70%);
}
.scn-intermedled-adventures .bookshelf {
  position: absolute; top: 10%; left: 5%; right: 5%; bottom: 40%;
  background: repeating-linear-gradient(0deg, #4a3a28 0px, #4a3a28 8px, #3a2818 8px, #3a2818 16px);
  border: 3px solid #2a1a0e;
  border-radius: 4px;
}
.scn-intermedled-adventures .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #5a4a38 0%, #3a2a18 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-intermedled-adventures .book {
  position: absolute; bottom: 26%; left: 25%; width: 60px; height: 16px;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ima-book 10s ease-in-out infinite;
}
.scn-intermedled-adventures .candle {
  position: absolute; bottom: 30%; left: 10%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b898 100%);
  border-radius: 2px 2px 50% 50%;
}
.scn-intermedled-adventures .candle::after {
  content: '';
  position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
  width: 10px; height: 10px;
  background: radial-gradient(circle, #ffdd88 0%, #ffaa44 50%, transparent 70%);
  border-radius: 50%;
  animation: ima-flame 3s ease-in-out infinite alternate;
}
.scn-intermedled-adventures .figure {
  position: absolute; bottom: 24%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ima-figure 6s ease-in-out infinite;
}
.scn-intermedled-adventures .chair {
  position: absolute; bottom: 22%; left: 55%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2818 0%, #2a1a0e 100%);
  border-radius: 10% 10% 30% 30%;
}
.scn-intermedled-adventures .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ima-shadow 8s ease-in-out infinite;
}
@keyframes ima-book { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ima-flame { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.8 } 50% { transform: translateX(-50%) scaleY(1.1); opacity: 1 } 100% { transform: translateX(-50%) scaleY(0.9); opacity: 0.7 } }
@keyframes ima-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ima-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.6 } }

/* ===== Scene: letter-conclusion ===== */
.scn-letter-conclusion {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0c0 30%, #c8b8a0 60%, #b8a48a 100%),
              radial-gradient(ellipse at 30% 10%, #fff8f0 0%, transparent 50%);
}
.scn-letter-conclusion .window {
  position: absolute; top: 5%; right: 5%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 100%);
  border: 6px solid #6a5a4a;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: lco-window 12s ease-in-out infinite;
}
.scn-letter-conclusion .desk {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #b8a088 0%, #8a7860 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
}
.scn-letter-conclusion .letter {
  position: absolute; bottom: 22%; left: 25%; width: 40%; height: 20%;
  background: linear-gradient(135deg, #f8f0e0 0%, #e8d8c0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  transform: rotate(-3deg);
  animation: lco-letter 8s ease-in-out infinite;
}
.scn-letter-conclusion .inkwell {
  position: absolute; bottom: 18%; left: 70%; width: 16px; height: 18px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-letter-conclusion .quill {
  position: absolute; bottom: 25%; left: 72%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #f0e0d0 0%, #c8b8a8 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  transform: rotate(25deg);
  animation: lco-quill 6s ease-in-out infinite;
}
.scn-letter-conclusion .hand {
  position: absolute; bottom: 18%; left: 70%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #d8c8b8 0%, #b8a898 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lco-hand 6s ease-in-out infinite;
}
.scn-letter-conclusion .chair {
  position: absolute; bottom: 8%; left: 60%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #8a7860 0%, #6a5840 100%);
  border-radius: 10% 10% 30% 30%;
}
@keyframes lco-window { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes lco-letter { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes lco-quill { 0% { transform: rotate(25deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(20deg) } }
@keyframes lco-hand { 0% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-3px) rotate(10deg) } 100% { transform: translateY(0) rotate(5deg) } }

.scn-fradubio-meets-duessa {
  background: linear-gradient(180deg, #fde8c4 0%, #f5c482 40%, #c98a5a 70%, #8b5e3c 100%), radial-gradient(ellipse at 30% 20%, rgba(255,215,0,0.15) 0%, transparent 60%);
}
.scn-fradubio-meets-duessa .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fce8c0 0%, #f2b86d 100%);
  animation: fu1-sky 12s ease-in-out infinite alternate;
}
.scn-fradubio-meets-duessa .sun {
  position: absolute; top: 15%; left: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe07a 0%, #f5b342 60%, transparent 100%);
  box-shadow: 0 0 40px 20px rgba(255,200,50,0.4);
  border-radius: 50%;
  animation: fu1-sun 6s ease-in-out infinite alternate;
}
.scn-fradubio-meets-duessa .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: fu1-hills 15s ease-in-out infinite;
}
.scn-fradubio-meets-duessa .tree {
  position: absolute; bottom: 38%; left: 45%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 70% 50% 50% / 60% 40% 60% 40%;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.4), 0 4px 8px rgba(0,0,0,0.3);
  animation: fu1-tree 4s ease-in-out infinite alternate;
}
.scn-fradubio-meets-duessa .figure-knight {
  position: absolute; bottom: 35%; left: 38%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fu1-knight 4s ease-in-out infinite;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-fradubio-meets-duessa .figure-knight::before {
  content: ''; position: absolute; top: 12%; left: 20%; width: 60%; height: 30%;
  background: #4a4a5a; border-radius: 50%; /* helmet */
}
.scn-fradubio-meets-duessa .figure-lady {
  position: absolute; bottom: 35%; left: 52%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fu1-lady 5s ease-in-out infinite alternate;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-fradubio-meets-duessa .figure-lady::before {
  content: ''; position: absolute; top: 5%; left: 30%; width: 40%; height: 20%;
  background: #6a5a4a; border-radius: 50%; /* hood */
}
.scn-fradubio-meets-duessa .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(180deg, #8b6a3a 0%, #6a4a2a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.3);
  animation: fu1-ground 8s ease-in-out infinite;
}
@keyframes fu1-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fu1-sun {
  0% { transform: scale(1) translate(0, 0); opacity: 0.8; }
  50% { transform: scale(1.05) translate(5px, -3px); opacity: 1; }
  100% { transform: scale(0.95) translate(-3px, 2px); opacity: 0.85; }
}
@keyframes fu1-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes fu1-tree {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(3deg) scaleX(1.02); }
  100% { transform: rotate(-2deg) scaleX(0.98); }
}
@keyframes fu1-knight {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fu1-lady {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
  50% { transform: translateY(-3px) rotate(-2deg); opacity: 1; }
  100% { transform: translateY(0) rotate(2deg); opacity: 0.95; }
}
@keyframes fu1-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}

.scn-combat-and-lady-won {
  background: linear-gradient(180deg, #fde6b8 0%, #e8a952 40%, #b07030 70%, #704020 100%), radial-gradient(ellipse at 70% 30%, rgba(255,200,80,0.2) 0%, transparent 60%);
}
.scn-combat-and-lady-won .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fce4b0 0%, #f0b050 100%);
  animation: co2-sky 10s ease-in-out infinite alternate;
}
.scn-combat-and-lady-won .sun {
  position: absolute; top: 12%; right: 25%; width: 35px; height: 35px;
  background: radial-gradient(circle, #ffd070 0%, #e8a030 70%, transparent 100%);
  box-shadow: 0 0 30px 15px rgba(255,220,100,0.3);
  border-radius: 50%;
  animation: co2-sun 8s ease-in-out infinite alternate;
}
.scn-combat-and-lady-won .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 10% 20% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: co2-ground 12s ease-in-out infinite;
}
.scn-combat-and-lady-won .figure-victor {
  position: absolute; bottom: 38%; left: 30%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: co2-victor 5s ease-in-out infinite;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
}
.scn-combat-and-lady-won .figure-victor::before {
  content: ''; position: absolute; top: 8%; left: 15%; width: 70%; height: 35%;
  background: #5a5a6a; border-radius: 50%; /* helmet */
}
.scn-combat-and-lady-won .figure-fallen {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(70deg);
  transform-origin: bottom center;
  box-shadow: -2px 2px 4px rgba(0,0,0,0.5);
  animation: co2-fallen 7s ease-in-out infinite;
}
.scn-combat-and-lady-won .figure-prize {
  position: absolute; bottom: 38%; left: 55%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: co2-prize 6s ease-in-out infinite alternate;
}
.scn-combat-and-lady-won .figure-prize::before {
  content: ''; position: absolute; top: 10%; left: 25%; width: 50%; height: 25%;
  background: #7a6a5a; border-radius: 50%; /* hair/veil */
}
.scn-combat-and-lady-won .spear {
  position: absolute; bottom: 40%; left: 32%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #8a6a4a 100%);
  transform: rotate(15deg);
  transform-origin: bottom center;
  border-radius: 0 0 2px 2px;
  box-shadow: -1px 0 2px rgba(0,0,0,0.3);
  animation: co2-spear 4s ease-in-out infinite alternate;
}
@keyframes co2-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes co2-sun {
  0% { transform: scale(1) translate(0, 0); box-shadow: 0 0 30px 15px rgba(255,220,100,0.3); }
  50% { transform: scale(1.1) translate(10px, -5px); box-shadow: 0 0 50px 25px rgba(255,220,100,0.4); }
  100% { transform: scale(0.9) translate(-5px, 5px); box-shadow: 0 0 20px 10px rgba(255,220,100,0.2); }
}
@keyframes co2-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes co2-victor {
  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 co2-fallen {
  0% { transform: rotate(70deg) translate(0, 0); }
  50% { transform: rotate(75deg) translate(3px, -2px); }
  100% { transform: rotate(65deg) translate(-2px, 2px); }
}
@keyframes co2-prize {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
  50% { transform: translateY(-4px) rotate(-3deg); opacity: 1; }
  100% { transform: translateY(0) rotate(2deg); opacity: 0.95; }
}
@keyframes co2-spear {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(12deg) translateY(0); }
}

.scn-fradubio-tests-beauty {
  background: linear-gradient(180deg, #fce7b3 0%, #e8b058 40%, #b08038 70%, #805020 100%), radial-gradient(ellipse at 50% 20%, rgba(255,210,80,0.2) 0%, transparent 60%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-fradubio-tests-beauty .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fce8b0 0%, #f0b850 100%);
  animation: te3-sky 14s ease-in-out infinite alternate;
}
.scn-fradubio-tests-beauty .bower {
  position: absolute; bottom: 35%; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(135deg, #6a7a4a 0%, #4a5a2a 60%, #2a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
  animation: te3-bower 6s ease-in-out infinite alternate;
  filter: blur(1px);
}
.scn-fradubio-tests-beauty .figure-left {
  position: absolute; bottom: 32%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: te3-left 4s ease-in-out infinite;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-fradubio-tests-beauty .figure-left::before {
  content: ''; position: absolute; top: 5%; left: 30%; width: 40%; height: 20%;
  background: #6a5a4a; border-radius: 50%;
}
.scn-fradubio-tests-beauty .figure-right {
  position: absolute; bottom: 32%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: te3-right 4.5s ease-in-out infinite alternate;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-fradubio-tests-beauty .figure-right::before {
  content: ''; position: absolute; top: 5%; left: 30%; width: 40%; height: 20%;
  background: #7a6a5a; border-radius: 50%;
}
.scn-fradubio-tests-beauty .garland {
  position: absolute; bottom: 45%; left: 43%; width: 40px; height: 12px;
  background: linear-gradient(90deg, #d08040 0%, #e8a060 30%, #f0c080 60%, #d08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(200,120,60,0.4);
  animation: te3-garland 3s ease-in-out infinite alternate;
  transform-origin: center;
}
.scn-fradubio-tests-beauty .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 10% 20% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: te3-ground 10s ease-in-out infinite;
}
@keyframes te3-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes te3-bower {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.05) translateY(-3px); }
  100% { transform: scaleY(0.95) translateY(2px); }
}
@keyframes te3-left {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes te3-right {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes te3-garland {
  0% { transform: rotate(-5deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(5deg) scale(1.1); opacity: 1; }
  100% { transform: rotate(-3deg) scale(0.95); opacity: 0.9; }
}
@keyframes te3-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}

.scn-duessa-exposed {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 30%, #1a1a2a 60%, #0a0a12 100%), radial-gradient(ellipse at 50% 30%, rgba(100,100,120,0.2) 0%, transparent 70%);
}
.scn-duessa-exposed .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  animation: ex4-sky 20s ease-in-out infinite alternate;
}
.scn-duessa-exposed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.5);
  animation: ex4-ground 12s ease-in-out infinite;
}
.scn-duessa-exposed .figure-duessa {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: ex4-figure 3s ease-in-out infinite;
}
.scn-duessa-exposed .figure-duessa::before {
  content: ''; position: absolute; top: 5%; left: 25%; width: 50%; height: 25%;
  background: #4a4a5a; border-radius: 50%;
  filter: blur(1px);
}
.scn-duessa-exposed .mask {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 40% 40%;
  transform: translateX(-50%) rotate(10deg);
  box-shadow: 0 0 8px 2px rgba(0,0,0,0.4);
  animation: ex4-mask 2s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-duessa-exposed .mask::after {
  content: ''; position: absolute; bottom: 0; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse, #3a2a1a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-duessa-exposed .crow {
  position: absolute; top: 20%; right: 20%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 30% 40%, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(-15deg);
  animation: ex4-crow 12s ease-in-out infinite;
}
.scn-duessa-exposed .crow::before {
  content: ''; position: absolute; top: -10px; left: 0; width: 0; height: 0;
  border-left: 5px solid transparent; border-right: 5px solid transparent; border-bottom: 10px solid #1a1a2a;
  transform: rotate(20deg);
}
.scn-duessa-exposed .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: ex4-shadow 4s ease-in-out infinite alternate;
}
@keyframes ex4-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes ex4-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes ex4-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes ex4-mask {
  0% { transform: translateX(-50%) rotate(10deg) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) rotate(15deg) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) rotate(5deg) scale(0.9); opacity: 0.7; }
}
@keyframes ex4-crow {
  0% { transform: rotate(-15deg) translate(0, 0); }
  25% { transform: rotate(-10deg) translate(10px, -20px); }
  50% { transform: rotate(-5deg) translate(20px, -10px); }
  75% { transform: rotate(-20deg) translate(30px, -30px); }
  100% { transform: rotate(-15deg) translate(40px, -20px); }
}
@keyframes ex4-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
  100% { transform: scaleX(0.9); opacity: 0.3; }
}

.scn-knight-first-charge {
  background: linear-gradient(180deg, #5b8bc0 0%, #87ceeb 35%, #c8d8e0 60%, #b0a080 75%, #8a7a5a 100%),
              radial-gradient(ellipse at 60% 20%, rgba(255,230,180,0.5) 0%, transparent 60%),
              linear-gradient(0deg, #6a5a3a 0%, transparent 40%);
  overflow: hidden;
}
.scn-knight-first-charge .sky-bg {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a7aa0 0%, #8ec8e8 50%, #c0d8e0 100%);
  animation: kfc-sky 14s ease-in-out infinite alternate;
}
.scn-knight-first-charge .sun-haze {
  position: absolute; top: 12%; left: 55%; width: 120px; height: 80px;
  background: radial-gradient(circle, rgba(255,230,180,0.7) 0%, rgba(255,200,120,0.3) 40%, transparent 70%);
  border-radius: 50%;
  animation: kfc-sun 8s ease-in-out infinite alternate;
}
.scn-knight-first-charge .far-hills {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 14%;
  background: linear-gradient(180deg, #6a7a5a 0%, #5a6a4a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.3);
  animation: kfc-hills 20s ease-in-out infinite alternate;
}
.scn-knight-first-charge .dust-clouds {
  position: absolute; bottom: 40%; left: 10%; width: 200px; height: 30px;
  background: linear-gradient(90deg, transparent, rgba(200,180,140,0.5) 30%, rgba(200,180,140,0.7) 60%, transparent);
  border-radius: 50%;
  filter: blur(8px);
  animation: kfc-dust 12s ease-in-out infinite alternate;
}
.scn-knight-first-charge .ground-plain {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8a7a5a 0%, #7a6a4a 30%, #6a5a3a 70%, #5a4a2a 100%);
  transform: perspective(600px) rotateX(8deg);
  animation: kfc-ground 18s ease-in-out infinite;
}
.scn-knight-first-charge .knight-figure {
  position: absolute; bottom: 38%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 30%, #6a5a4a 70%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 2px 0 8px rgba(0,0,0,0.4);
  animation: kfc-knight 3s ease-in-out infinite;
}
.scn-knight-first-charge .spear-point {
  position: absolute; bottom: 44%; left: 46%; width: 60px; height: 3px;
  background: linear-gradient(90deg, #c0a060 0%, #a08040 50%, #806020 100%);
  border-radius: 2px;
  transform-origin: left center;
  box-shadow: 0 0 6px rgba(200,160,80,0.4);
  animation: kfc-spear 3s ease-in-out infinite;
}
.scn-knight-first-charge .beast-shadow {
  position: absolute; bottom: 35%; right: 15%; width: 60px; height: 35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  animation: kfc-beast 4s ease-in-out infinite alternate;
}
.scn-knight-first-charge .hoof-strike {
  position: absolute; bottom: 36%; left: 36%; width: 12px; height: 8px;
  background: radial-gradient(circle, #d0c0a0 0%, #a09070 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: kfc-hoof 0.6s ease-in-out infinite alternate;
}
@keyframes kfc-sky   { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes kfc-sun   { 0% { transform: scale(0.95); opacity: 0.7 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(0.98); opacity: 0.8 } }
@keyframes kfc-hills { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes kfc-dust  { 0% { transform: translateX(-10px) scaleX(1) } 50% { transform: translateX(10px) scaleX(1.1) } 100% { transform: translateX(-5px) scaleX(0.95) } }
@keyframes kfc-ground { 0% { transform: perspective(600px) rotateX(8deg) translateY(0) } 50% { transform: perspective(600px) rotateX(8deg) translateY(-2px) } 100% { transform: perspective(600px) rotateX(8deg) translateY(0) } }
@keyframes kfc-knight { 0% { transform: translateX(0) translateY(0) rotate(-2deg) scaleX(1) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) scaleX(1.02) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) scaleX(1) } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg) scaleX(1.02) } 100% { transform: translateX(32px) translateY(0) rotate(0deg) scaleX(1) } }
@keyframes kfc-spear { 0% { transform: rotate(-5deg) scaleX(1) } 25% { transform: rotate(-2deg) scaleX(1.05) } 50% { transform: rotate(3deg) scaleX(1) } 75% { transform: rotate(-1deg) scaleX(1.03) } 100% { transform: rotate(-4deg) scaleX(1) } }
@keyframes kfc-beast { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(-6px) translateY(-3px) rotate(-3deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes kfc-hoof { 0% { transform: scale(0.8); opacity: 0.4 } 100% { transform: scale(1.4); opacity: 0.9 } }

.scn-knight-second-charge {
  background: linear-gradient(180deg, #5a7aa0 0%, #80b8d8 30%, #b8d0d8 60%, #a89878 75%, #7a6a4a 100%),
              radial-gradient(ellipse at 50% 18%, rgba(255,220,170,0.4) 0%, transparent 55%),
              linear-gradient(0deg, #6a5a3a 0%, transparent 35%);
  overflow: hidden;
}
.scn-knight-second-charge .sky-wash {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a6a90 0%, #7ab8d8 40%, #b0c8d0 100%);
  animation: ksc-sky 16s ease-in-out infinite alternate;
}
.scn-knight-second-charge .sun-flare {
  position: absolute; top: 8%; left: 48%; width: 100px; height: 70px;
  background: radial-gradient(circle, rgba(255,230,190,0.6) 0%, rgba(255,200,140,0.2) 40%, transparent 70%);
  border-radius: 50%;
  animation: ksc-sun 10s ease-in-out infinite alternate;
}
.scn-knight-second-charge .mid-ground {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%);
  border-radius: 50% 30% 0 0 / 80% 50% 0 0;
  box-shadow: inset 0 4px 16px rgba(0,0,0,0.25);
  animation: ksc-mid 22s ease-in-out infinite alternate;
}
.scn-knight-second-charge .knight-charge {
  position: absolute; bottom: 36%; left: 15%; width: 26px; height: 44px;
  background: linear-gradient(180deg, #c8b8a8 0%, #8a7a6a 30%, #5a4a3a 70%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 3px 0 10px rgba(0,0,0,0.4);
  animation: ksc-knight 2.8s ease-in-out infinite;
}
.scn-knight-second-charge .lance-tip {
  position: absolute; bottom: 44%; left: 28%; width: 65px; height: 3px;
  background: linear-gradient(90deg, #d0b070 0%, #a08040 50%, #7a5a20 100%);
  border-radius: 2px;
  transform-origin: left center;
  box-shadow: 0 0 8px rgba(200,160,80,0.5);
  animation: ksc-lance 2.8s ease-in-out infinite;
}
.scn-knight-second-charge .beast-rear {
  position: absolute; bottom: 34%; right: 8%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 40% 30% 50% / 60% 50% 40% 50%;
  box-shadow: -6px 0 14px rgba(0,0,0,0.5);
  animation: ksc-beast 3.6s ease-in-out infinite alternate;
}
.scn-knight-second-charge .dust-spray {
  position: absolute; bottom: 36%; left: 35%; width: 40px; height: 20px;
  background: linear-gradient(90deg, transparent, rgba(200,180,140,0.6) 30%, rgba(200,180,140,0.4) 70%, transparent);
  border-radius: 50%;
  filter: blur(6px);
  animation: ksc-dust 1.2s ease-in-out infinite alternate;
}
.scn-knight-second-charge .shadow-streak {
  position: absolute; bottom: 32%; left: 10%; width: 90px; height: 4px;
  background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.1) 80%, transparent 100%);
  border-radius: 2px;
  filter: blur(2px);
  animation: ksc-shadow 2.8s ease-in-out infinite;
}
@keyframes ksc-sky   { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ksc-sun   { 0% { transform: scale(0.9) translateX(-5px); opacity: 0.6 } 50% { transform: scale(1.1) translateX(5px); opacity: 1 } 100% { transform: scale(0.95) translateX(-2px); opacity: 0.7 } }
@keyframes ksc-mid   { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ksc-knight { 0% { transform: translateX(0) translateY(0) rotate(-2deg) scaleX(1) } 25% { transform: translateX(10px) translateY(-3px) rotate(1deg) scaleX(1.03) } 50% { transform: translateX(20px) translateY(-1px) rotate(-1deg) scaleX(1) } 75% { transform: translateX(30px) translateY(-3px) rotate(2deg) scaleX(1.03) } 100% { transform: translateX(40px) translateY(0) rotate(0deg) scaleX(1) } }
@keyframes ksc-lance { 0% { transform: rotate(-6deg) scaleX(1) } 25% { transform: rotate(-2deg) scaleX(1.06) } 50% { transform: rotate(4deg) scaleX(1) } 75% { transform: rotate(-1deg) scaleX(1.04) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes ksc-beast { 0% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1) } 50% { transform: translateX(-8px) translateY(-4px) rotate(-4deg) scaleX(1.05) } 100% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1) } }
@keyframes ksc-dust { 0% { transform: scaleX(0.8) scaleY(1); opacity: 0.3 } 50% { transform: scaleX(1.3) scaleY(1.2); opacity: 0.8 } 100% { transform: scaleX(0.9) scaleY(1); opacity: 0.4 } }
@keyframes ksc-shadow { 0% { transform: translateX(0) scaleX(1); opacity: 0.6 } 50% { transform: translateX(15px) scaleX(1.1); opacity: 0.8 } 100% { transform: translateX(0) scaleX(1); opacity: 0.6 } }

.scn-dragon-takes-flight {
  background: linear-gradient(180deg, #3a6a9a 0%, #6a9ac0 30%, #90b8d8 55%, #b0c8d0 75%, #c0d0d0 100%),
              radial-gradient(ellipse at 50% 15%, rgba(255,220,170,0.5) 0%, transparent 60%);
  overflow: hidden;
}
.scn-dragon-takes-flight .sky-vast {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a5a8a 0%, #5a8ab8 40%, #80b0d0 100%);
  animation: dtf-sky 20s ease-in-out infinite alternate;
}
.scn-dragon-takes-flight .sun-burst {
  position: absolute; top: 5%; left: 50%; width: 140px; height: 100px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, rgba(255,210,150,0.2) 35%, transparent 65%);
  border-radius: 50%;
  animation: dtf-sun 12s ease-in-out infinite alternate;
}
.scn-dragon-takes-flight .cloud-wrack {
  position: absolute; top: 18%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.05) 50%, transparent 100%);
  filter: blur(12px);
  animation: dtf-cloud 40s linear infinite;
}
.scn-dragon-takes-flight .dragon-body {
  position: absolute; bottom: 40%; left: 35%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #4a6a3a 0%, #2a4a1a 40%, #1a3a0a 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  box-shadow: -4px 2px 12px rgba(0,0,0,0.4);
  animation: dtf-body 5s ease-in-out infinite;
}
.scn-dragon-takes-flight .dragon-wing-l {
  position: absolute; bottom: 48%; left: 18%; width: 70px; height: 40px;
  background: linear-gradient(135deg, #5a7a4a 0%, #3a5a2a 40%, #2a4a1a 100%);
  border-radius: 60% 10% 10% 40% / 80% 20% 20% 60%;
  transform-origin: right bottom;
  box-shadow: -2px 2px 8px rgba(0,0,0,0.3);
  animation: dtf-wing-l 1.8s ease-in-out infinite alternate;
}
.scn-dragon-takes-flight .dragon-wing-r {
  position: absolute; bottom: 48%; right: 18%; width: 70px; height: 40px;
  background: linear-gradient(225deg, #5a7a4a 0%, #3a5a2a 40%, #2a4a1a 100%);
  border-radius: 10% 60% 40% 10% / 20% 80% 60% 20%;
  transform-origin: left bottom;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: dtf-wing-r 1.8s ease-in-out infinite alternate;
}
.scn-dragon-takes-flight .dragon-tail {
  position: absolute; bottom: 30%; left: 48%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%;
  transform-origin: top center;
  animation: dtf-tail 2.2s ease-in-out infinite;
}
.scn-dragon-takes-flight .horse-caught {
  position: absolute; bottom: 35%; left: 40%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 40%, #4a3a2a 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: dtf-horse 5s ease-in-out infinite;
}
.scn-dragon-takes-flight .dust-devil {
  position: absolute; bottom: 25%; left: 30%; width: 50px; height: 60px;
  background: linear-gradient(180deg, rgba(200,180,140,0.4) 0%, rgba(200,180,140,0.1) 50%, transparent 100%);
  border-radius: 40% 60% 40% 60% / 50% 50% 50% 50%;
  filter: blur(6px);
  animation: dtf-dust 3s ease-in-out infinite;
}
@keyframes dtf-sky   { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes dtf-sun   { 0% { transform: scale(0.95) translateY(0); opacity: 0.7 } 50% { transform: scale(1.08) translateY(-4px); opacity: 1 } 100% { transform: scale(0.98) translateY(0); opacity: 0.8 } }
@keyframes dtf-cloud { 0% { transform: translateX(-5%) } 50% { transform: translateX(5%) } 100% { transform: translateX(-5%) } }
@keyframes dtf-body  { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-6px) rotate(1deg) } 50% { transform: translateY(-12px) rotate(-1deg) } 75% { transform: translateY(-6px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes dtf-wing-l { 0% { transform: rotate(-10deg) scaleY(0.9) } 50% { transform: rotate(20deg) scaleY(1.2) } 100% { transform: rotate(-10deg) scaleY(0.9) } }
@keyframes dtf-wing-r { 0% { transform: rotate(10deg) scaleY(0.9) } 50% { transform: rotate(-20deg) scaleY(1.2) } 100% { transform: rotate(10deg) scaleY(0.9) } }
@keyframes dtf-tail  { 0% { transform: rotate(-8deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-8deg) } }
@keyframes dtf-horse { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-8px) rotate(0deg) } 50% { transform: translateY(-14px) rotate(3deg) } 75% { transform: translateY(-8px) rotate(0deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes dtf-dust { 0% { transform: scaleY(0.8) rotate(0deg); opacity: 0.3 } 50% { transform: scaleY(1.3) rotate(180deg); opacity: 0.7 } 100% { transform: scaleY(0.8) rotate(360deg); opacity: 0.3 } }

.scn-dragon-flight-with-knight {
  background: linear-gradient(180deg, #4a7aaa 0%, #7aaaca 35%, #a0c8d8 60%, #c0d8e0 85%, #d0e0e0 100%),
              radial-gradient(ellipse at 50% 25%, rgba(255,230,190,0.3) 0%, transparent 55%);
  overflow: hidden;
}
.scn-dragon-flight-with-knight .sky-pale {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a6a9a 0%, #6a9ac0 40%, #90b8d8 100%);
  animation: dfk-sky 18s ease-in-out infinite alternate;
}
.scn-dragon-flight-with-knight .sun-disc {
  position: absolute; top: 8%; left: 52%; width: 100px; height: 80px;
  background: radial-gradient(circle, rgba(255,240,200,0.5) 0%, rgba(255,210,160,0.15) 40%, transparent 70%);
  border-radius: 50%;
  animation: dfk-sun 14s ease-in-out infinite alternate;
}
.scn-dragon-flight-with-knight .cloud-scud {
  position: absolute; top: 12%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.03) 50%, transparent 100%);
  filter: blur(10px);
  animation: dfk-cloud 35s linear infinite;
}
.scn-dragon-flight-with-knight .dragon-soar {
  position: absolute; bottom: 38%; left: 40%; width: 55px; height: 50px;
  background: linear-gradient(135deg, #4a6a3a 0%, #2a4a1a 40%, #1a3a0a 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  box-shadow: -3px 2px 10px rgba(0,0,0,0.35);
  animation: dfk-soar 6s ease-in-out infinite;
}
.scn-dragon-flight-with-knight .wing-beat-l {
  position: absolute; bottom: 46%; left: 22%; width: 65px; height: 35px;
  background: linear-gradient(135deg, #5a7a4a 0%, #3a5a2a 40%, #2a4a1a 100%);
  border-radius: 60% 10% 10% 40% / 80% 20% 20% 60%;
  transform-origin: right bottom;
  box-shadow: -2px 2px 6px rgba(0,0,0,0.25);
  animation: dfk-wing-l 2s ease-in-out infinite alternate;
}
.scn-dragon-flight-with-knight .wing-beat-r {
  position: absolute; bottom: 46%; right: 22%; width: 65px; height: 35px;
  background: linear-gradient(225deg, #5a7a4a 0%, #3a5a2a 40%, #2a4a1a 100%);
  border-radius: 10% 60% 40% 10% / 20% 80% 60% 20%;
  transform-origin: left bottom;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.25);
  animation: dfk-wing-r 2s ease-in-out infinite alternate;
}
.scn-dragon-flight-with-knight .knight-borne {
  position: absolute; bottom: 42%; left: 35%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 30%, #5a4a3a 70%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 1px 0 6px rgba(0,0,0,0.3);
  animation: dfk-knight 6s ease-in-out infinite;
}
.scn-dragon-flight-with-knight .horse-dangle {
  position: absolute; bottom: 34%; left: 38%; width: 28px; height: 22px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 40%, #3a2a1a 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.35);
  animation: dfk-horse 6s ease-in-out infinite;
}
.scn-dragon-flight-with-knight .shadow-on-plain {
  position: absolute; bottom: 12%; left: 30%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: dfk-shadow 6s ease-in-out infinite;
}
@keyframes dfk-sky   { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes dfk-sun   { 0% { transform: scale(0.95) translateX(-3px); opacity: 0.65 } 50% { transform: scale(1.06) translateX(3px); opacity: 1 } 100% { transform: scale(0.98) translateX(-1px); opacity: 0.75 } }
@keyframes dfk-cloud { 0% { transform: translateX(-8%) } 50% { transform: translateX(8%) } 100% { transform: translateX(-8%) } }
@keyframes dfk-soar  { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-8px) rotate(0deg) } 50% { transform: translateY(-16px) rotate(2deg) } 75% { transform: translateY(-8px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes dfk-wing-l { 0% { transform: rotate(-12deg) scaleY(0.85) } 50% { transform: rotate(18deg) scaleY(1.15) } 100% { transform: rotate(-12deg) scaleY(0.85) } }
@keyframes dfk-wing-r { 0% { transform: rotate(12deg) scaleY(0.85) } 50% { transform: rotate(-18deg) scaleY(1.15) } 100% { transform: rotate(12deg) scaleY(0.85) } }
@keyframes dfk-knight { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-6px) rotate(0deg) } 50% { transform: translateY(-12px) rotate(3deg) } 75% { transform: translateY(-6px) rotate(0deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes dfk-horse { 0% { transform: translateY(0) rotate(-4deg) } 25% { transform: translateY(-6px) rotate(-1deg) } 50% { transform: translateY(-10px) rotate(4deg) } 75% { transform: translateY(-6px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-4deg) } }
@keyframes dfk-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.4 } 50% { transform: scaleX(1.2) translateX(10px); opacity: 0.6 } 100% { transform: scaleX(1) translateX(0); opacity: 0.4 } }

/* view-of-present-state – tense, dim interior */
.scn-view-of-present-state {
  background: linear-gradient(180deg, #1e1e2f 0%, #2a2a3e 40%, #1a162a 100%), radial-gradient(ellipse at 40% 60%, #2a2a4a 0%, transparent 70%);
}
.scn-view-of-present-state .bg-deep { position:absolute; inset:0; background:radial-gradient(circle at 30% 70%, #151525 0%, #0d0d18 100%); animation:vps-breathe 6s ease-in-out infinite alternate; }
.scn-view-of-present-state .wall-left { position:absolute; left:0; top:0; width:25%; height:80%; background:linear-gradient(90deg, #1f1f33 0%, #252540 100%); border-radius:0 20% 0 0; }
.scn-view-of-present-state .wall-right { position:absolute; right:0; top:0; width:25%; height:80%; background:linear-gradient(270deg, #1f1f33 0%, #252540 100%); border-radius:20% 0 0 0; }
.scn-view-of-present-state .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background:linear-gradient(180deg, #1a1a2a 0%, #12121e 100%); border-radius:30% 30% 0 0; box-shadow:inset 0 4px 10px #00000055; }
.scn-view-of-present-state .window { position:absolute; left:38%; top:10%; width:24%; height:45%; background:linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border:4px solid #4a3a2a; border-radius:4px; box-shadow:inset 0 0 30px #00000088, 0 2px 8px #000; animation:vps-window 12s ease-in-out infinite alternate; }
.scn-view-of-present-state .storm-cloud { position:absolute; top:8%; width:80px; height:20px; background:linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius:50%; filter:blur(5px); opacity:0.7; animation:vps-storm-drift 8s linear infinite; }
.scn-view-of-present-state .storm-a { left:-10%; }
.scn-view-of-present-state .storm-b { left:30%; width:60px; height:16px; animation-delay:-3s; animation-duration:11s; }
.scn-view-of-present-state .desk { position:absolute; bottom:12%; left:30%; width:40%; height:8%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:4px; box-shadow:0 4px 12px #00000099; }
.scn-view-of-present-state .candle { position:absolute; bottom:18%; left:36%; width:6px; height:14px; background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:2px; }
.scn-view-of-present-state .candle::after { content:''; position:absolute; top:-6px; left:-2px; width:10px; height:10px; background:radial-gradient(circle, #ffd080 0%, #b08030 60%, transparent 80%); border-radius:50%; box-shadow:0 0 20px 6px #b08030; animation:vps-flicker 0.3s ease-in-out infinite alternate; }
.scn-view-of-present-state .figure-writer { position:absolute; bottom:15%; left:34%; width:28px; height:40px; background:linear-gradient(180deg, #0a0a14 0%, #16162a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform:rotate(5deg); animation:vps-write 4s ease-in-out infinite; }
@keyframes vps-breathe { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes vps-window { 0% { opacity:.7; filter:brightness(.8) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:.75; filter:brightness(.9) } }
@keyframes vps-storm-drift { 0% { transform:translateX(-80px) } 100% { transform:translateX(120vw) } }
@keyframes vps-flicker { 0% { box-shadow:0 0 18px 4px #b08030, 0 0 36px 8px #b0803066; opacity:.9 } 100% { box-shadow:0 0 28px 8px #ffd080, 0 0 50px 12px #ffd08044; opacity:1 } }
@keyframes vps-write { 0% { transform:rotate(4deg) translateY(0) } 25% { transform:rotate(-2deg) translateY(-2px) } 50% { transform:rotate(6deg) translateY(1px) } 75% { transform:rotate(0deg) translateY(-1px) } 100% { transform:rotate(4deg) translateY(0) } }

/* spensers-birth-and-family – calm, bright interior */
.scn-spensers-birth-and-family {
  background: linear-gradient(180deg, #f8f4e8 0%, #efe6d0 40%, #dccbb0 100%), radial-gradient(ellipse at 50% 20%, #fff8e8 0%, transparent 60%);
}
.scn-spensers-birth-and-family .bg-room { position:absolute; inset:0; background:linear-gradient(180deg, #faf5e8 0%, #e8ddc8 100%); }
.scn-spensers-birth-and-family .window-light { position:absolute; left:15%; top:5%; width:35%; height:50%; background:linear-gradient(180deg, #c8deff 0%, #a8c4e8 100%); border-radius:8px; box-shadow:inset 0 0 40px #ffffff88, 0 4px 12px #00000022; animation:sbf-glow 6s ease-in-out infinite alternate; }
.scn-spensers-birth-and-family .sunbeam { position:absolute; left:20%; top:5%; width:8%; height:60%; background:linear-gradient(180deg, #ffffff44 0%, #ffffff88 50%, #ffffff22 100%); transform:rotate(-8deg); filter:blur(3px); animation:sbf-beam 8s ease-in-out infinite alternate; }
.scn-spensers-birth-and-family .floor-wood { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #c8b090 0%, #a88a6a 100%); border-radius:10% 10% 0 0; box-shadow:inset 0 4px 12px #00000033; }
.scn-spensers-birth-and-family .cradle { position:absolute; bottom:22%; left:30%; width:120px; height:60px; background:linear-gradient(180deg, #b8996a 0%, #8a6a3a 100%); border-radius:50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow:0 8px 20px #00000044; animation:sbf-rock 8s ease-in-out infinite; }
.scn-spensers-birth-and-family .blanket { position:absolute; bottom:24%; left:33%; width:80px; height:25px; background:linear-gradient(180deg, #a8c4e8 0%, #7088b8 100%); border-radius:30%; box-shadow:0 2px 6px #00000033; animation:sbf-cover 8s ease-in-out infinite; }
.scn-spensers-birth-and-family .mobile { position:absolute; bottom:45%; left:38%; width:4px; height:30px; background:#8a7a5a; border-radius:2px; transform-origin:top center; animation:sbf-sway 12s ease-in-out infinite; }
.scn-spensers-birth-and-family .mobile::after { content:''; position:absolute; bottom:0; left:-8px; width:20px; height:20px; background:radial-gradient(circle, #ffd080 0%, #c8a060 100%); border-radius:50%; box-shadow:0 0 10px #c8a06088; }
.scn-spensers-birth-and-family .dust-mote { position:absolute; width:4px; height:4px; background:#ffffff44; border-radius:50%; filter:blur(1px); animation:sbf-drift 18s linear infinite; }
.scn-spensers-birth-and-family .dust-a { top:30%; left:20%; animation-duration:22s; }
.scn-spensers-birth-and-family .dust-b { top:50%; left:60%; animation-delay:-8s; animation-duration:26s; }
@keyframes sbf-glow { 0% { opacity:.9; filter:brightness(.95) } 50% { opacity:1; filter:brightness(1.05) } 100% { opacity:.92; filter:brightness(.98) } }
@keyframes sbf-beam { 0% { transform:rotate(-8deg) translateY(0); opacity:.7 } 50% { transform:rotate(-5deg) translateY(-5px); opacity:1 } 100% { transform:rotate(-10deg) translateY(3px); opacity:.8 } }
@keyframes sbf-rock { 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 sbf-cover { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes sbf-sway { 0% { transform:rotate(-8deg) } 50% { transform:rotate(8deg) } 100% { transform:rotate(-8deg) } }
@keyframes sbf-drift { 0% { transform:translateY(0) translateX(0) } 25% { transform:translateY(-20px) translateX(10px) } 50% { transform:translateY(-40px) translateX(-5px) } 75% { transform:translateY(-60px) translateX(15px) } 100% { transform:translateY(-80px) translateX(0) } }

/* early-years-unknown – calm, dim interior */
.scn-early-years-unknown {
  background: linear-gradient(180deg, #2a2218 0%, #1e1a12 40%, #141008 100%), radial-gradient(ellipse at 50% 30%, #3a3020 0%, transparent 70%);
}
.scn-early-years-unknown .bg-dim { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 40%, #2e261a 0%, #1a1410 100%); animation:eyu-pulse 10s ease-in-out infinite alternate; }
.scn-early-years-unknown .desk-wood { position:absolute; bottom:18%; left:20%; width:60%; height:8%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:4px; box-shadow:0 4px 12px #00000088; }
.scn-early-years-unknown .candle-wax { position:absolute; bottom:24%; left:35%; width:8px; height:20px; background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:3px; }
.scn-early-years-unknown .candle-wax::after { content:''; position:absolute; top:-8px; left:-3px; width:14px; height:14px; background:radial-gradient(circle, #ffd080 0%, #b08030 60%, transparent 80%); border-radius:50%; box-shadow:0 0 30px 8px #b08030; animation:eyu-flicker 0.4s ease-in-out infinite alternate; }
.scn-early-years-unknown .book-open { position:absolute; bottom:20%; left:36%; width:80px; height:12px; background:linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:2px; transform:rotate(-2deg); box-shadow:0 2px 4px #00000055; }
.scn-early-years-unknown .window-moon { position:absolute; left:10%; top:5%; width:25%; height:40%; background:linear-gradient(180deg, #1a2a3a 0%, #0e1e2e 100%); border:4px solid #3a2a1a; border-radius:6px; box-shadow:inset 0 0 40px #000000aa, 0 2px 8px #000; }
.scn-early-years-unknown .curtain-left { position:absolute; left:8%; top:5%; width:12%; height:50%; background:linear-gradient(270deg, #3a2a1a 0%, #2a1a0e 100%); border-radius:0 20% 20% 0; animation:eyu-curtain 12s ease-in-out infinite alternate; }
.scn-early-years-unknown .curtain-right { position:absolute; right:8%; top:5%; width:12%; height:50%; background:linear-gradient(90deg, #3a2a1a 0%, #2a1a0e 100%); border-radius:20% 0 0 20%; animation:eyu-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-early-years-unknown .figure-child { position:absolute; bottom:20%; left:48%; width:24px; height:38px; background:linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom; animation:eyu-read 6s ease-in-out infinite; }
.scn-early-years-unknown .shelf { position:absolute; top:15%; left:5%; width:90%; height:6px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow:0 2px 4px #00000066; }
@keyframes eyu-pulse { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes eyu-flicker { 0% { box-shadow:0 0 20px 5px #b08030, 0 0 40px 10px #b0803066; opacity:.8 } 100% { box-shadow:0 0 30px 8px #ffd080, 0 0 60px 15px #ffd08044; opacity:1 } }
@keyframes eyu-curtain { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.05) } 100% { transform:scaleX(1) } }
@keyframes eyu-read { 0% { transform:rotate(2deg) translateY(0) } 25% { transform:rotate(-3deg) translateY(-1px) } 50% { transform:rotate(1deg) translateY(1px) } 75% { transform:rotate(-2deg) translateY(-1px) } 100% { transform:rotate(2deg) translateY(0) } }

/* student-at-cambridge – calm, dim interior */
.scn-student-at-cambridge {
  background: linear-gradient(180deg, #1a1a26 0%, #12121c 40%, #0a0a12 100%), radial-gradient(ellipse at 50% 50%, #1e1e30 0%, transparent 70%);
}
.scn-student-at-cambridge .hall-bg { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 60%, #1a1a2a 0%, #0e0e18 100%); animation:stc-ambient 8s ease-in-out infinite alternate; }
.scn-student-at-cambridge .long-table { position:absolute; bottom:12%; left:10%; width:80%; height:6%; background:linear-gradient(180deg, #2a221a 0%, #1a1410 100%); border-radius:4px; box-shadow:0 4px 12px #00000088; }
.scn-student-at-cambridge .bench-left { position:absolute; bottom:15%; left:12%; width:35%; height:4%; background:linear-gradient(180deg, #2a221a 0%, #1a1410 100%); border-radius:2px; box-shadow:0 2px 6px #00000066; }
.scn-student-at-cambridge .bench-right { position:absolute; bottom:15%; right:12%; width:35%; height:4%; background:linear-gradient(180deg, #2a221a 0%, #1a1410 100%); border-radius:2px; box-shadow:0 2px 6px #00000066; }
.scn-student-at-cambridge .lamp-hanging { position:absolute; top:10%; left:46%; width:10px; height:20px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; transform-origin:top; }
.scn-student-at-cambridge .lamp-hanging::after { content:''; position:absolute; bottom:-8px; left:-8px; width:26px; height:18px; background:radial-gradient(ellipse at 50% 50%, #b08030 0%, #5a4020 80%, transparent 100%); border-radius:50%; box-shadow:0 0 60px 20px #b08030, 0 0 100px 30px #b0803044; animation:stc-glow 5s ease-in-out infinite alternate; }
.scn-student-at-cambridge .bowl-plate { position:absolute; bottom:14%; left:44%; width:20px; height:8px; background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40%; box-shadow:0 2px 4px #00000066; }
.scn-student-at-cambridge .figure-server { position:absolute; bottom:14%; left:52%; width:20px; height:44px; background:linear-gradient(180deg, #1a1410 0%, #0a0804 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom; animation:stc-serve 6s ease-in-out infinite; }
.scn-student-at-cambridge .window-arch { position:absolute; left:25%; top:4%; width:50%; height:40%; background:linear-gradient(180deg, #1a2a3a 0%, #0e1e2e 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; border:4px solid #3a2a1a; box-shadow:inset 0 0 30px #000000aa, 0 2px 8px #000; }
.scn-student-at-cambridge .dust-particle { position:absolute; width:3px; height:3px; background:#ffffff33; border-radius:50%; filter:blur(1px); animation:stc-drift 20s linear infinite; }
.scn-student-at-cambridge .dust-c { top:30%; left:30%; animation-duration:25s; }
.scn-student-at-cambridge .dust-d { top:50%; left:60%; animation-delay:-10s; animation-duration:30s; }
@keyframes stc-ambient { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes stc-glow { 0% { box-shadow:0 0 40px 15px #b08030, 0 0 80px 25px #b0803044; opacity:.8 } 50% { box-shadow:0 0 60px 20px #ffd080, 0 0 120px 35px #ffd08033; opacity:1 } 100% { box-shadow:0 0 45px 18px #b08030, 0 0 90px 28px #b0803044; opacity:.85 } }
@keyframes stc-serve { 0% { transform:rotate(3deg) translateY(0) } 25% { transform:rotate(-2deg) translateY(-1px) } 50% { transform:rotate(1deg) translateY(1px) } 75% { transform:rotate(-4deg) translateY(-1px) } 100% { transform:rotate(3deg) translateY(0) } }
@keyframes stc-drift { 0% { transform:translateY(0) translateX(0) } 33% { transform:translateY(-10px) translateX(8px) } 66% { transform:translateY(-25px) translateX(-6px) } 100% { transform:translateY(-40px) translateX(12px) } }

/* ========== una-confirms-treason (bright interior, resolute) ========== */
.scn-una-confirms-treason {
  background: 
    linear-gradient(180deg, #f2d9a8 0%, #e0b878 40%, #c8965c 100%),
    radial-gradient(ellipse at 30% 40%, #fff2d0 0%, transparent 70%);
}
.scn-una-confirms-treason .floor {
  position: absolute; left: 0; right: 0; bottom: 0; height: 25%;
  background: linear-gradient(180deg, #b8854a 0%, #8a6638 100%);
  border-radius: 0 0 4% 4%;
  animation: ut1-floor 15s ease-in-out infinite alternate;
}
.scn-una-confirms-treason .pillar-left {
  position: absolute; left: 8%; bottom: 25%; width: 6%; height: 60%;
  background: linear-gradient(180deg, #d4a86a 0%, #a87a3e 100%);
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.2);
  border-radius: 4px;
}
.scn-una-confirms-treason .pillar-right {
  position: absolute; right: 8%; bottom: 25%; width: 6%; height: 60%;
  background: linear-gradient(180deg, #d4a86a 0%, #a87a3e 100%);
  box-shadow: inset 4px 0 10px rgba(0,0,0,0.2);
  border-radius: 4px;
}
.scn-una-confirms-treason .throne {
  position: absolute; left: 35%; bottom: 25%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #c8965c 0%, #8a6638 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-una-confirms-treason .king {
  position: absolute; left: 38%; bottom: 30%; width: 24%; height: 28%;
  background: radial-gradient(ellipse at 50% 30%, #c88040 0%, #7a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ut1-king 6s ease-in-out infinite;
}
.scn-una-confirms-treason .una {
  position: absolute; left: 55%; bottom: 25%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #d4b080 0%, #a87a3e 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: ut1-una-gesture 8s ease-in-out infinite;
}
.scn-una-confirms-treason .banner {
  position: absolute; left: 30%; top: 8%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ut1-banner 12s ease-in-out infinite;
}
.scn-una-confirms-treason .light-beam {
  position: absolute; left: 20%; top: 0; width: 60%; height: 50%;
  background: linear-gradient(135deg, rgba(255,242,200,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: ut1-light 5s ease-in-out infinite alternate;
}
.scn-una-confirms-treason .scepter {
  position: absolute; left: 60%; bottom: 48%; width: 4%; height: 25%;
  background: linear-gradient(180deg, #e0b050 0%, #b08030 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ut1-scepter 8s ease-in-out infinite;
}
@keyframes ut1-floor {
  0% { opacity: 0.85; box-shadow: inset 0 4px 8px rgba(0,0,0,0.2); }
  50% { opacity: 1; box-shadow: inset 0 6px 12px rgba(0,0,0,0.15); }
  100% { opacity: 0.9; box-shadow: inset 0 2px 6px rgba(0,0,0,0.25); }
}
@keyframes ut1-king {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ut1-una-gesture {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(4px) rotate(2deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ut1-banner {
  0% { transform: rotate(-1deg) scale(1); }
  50% { transform: rotate(1.5deg) scale(0.98); }
  100% { transform: rotate(-1deg) scale(1); }
}
@keyframes ut1-light {
  0% { opacity: 0.4; transform: scale(0.95); }
  100% { opacity: 0.8; transform: scale(1.05); }
}
@keyframes ut1-scepter {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(-18deg); }
  100% { transform: rotate(-15deg); }
}

/* ========== una-accuses-messenger (bright interior, resolute) ========== */
.scn-una-accuses-messenger {
  background:
    linear-gradient(180deg, #f5e0b8 0%, #d9b880 40%, #b88850 100%),
    radial-gradient(ellipse at 40% 35%, #ffeecc 0%, transparent 70%);
}
.scn-una-accuses-messenger .floor {
  position: absolute; left: 0; right: 0; bottom: 0; height: 22%;
  background: linear-gradient(180deg, #bb8844 0%, #8a6638 100%);
  border-radius: 0 0 6% 6%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: ut2-floor 20s ease-in-out infinite alternate;
}
.scn-una-accuses-messenger .wall-back {
  position: absolute; left: 10%; right: 10%; top: 0; bottom: 22%;
  background: linear-gradient(180deg, #e6c494 0%, #c49560 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-una-accuses-messenger .pillar-left {
  position: absolute; left: 6%; bottom: 22%; width: 6%; height: 70%;
  background: linear-gradient(180deg, #d4a86a 0%, #a87a3e 100%);
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.2);
  border-radius: 4px;
}
.scn-una-accuses-messenger .pillar-right {
  position: absolute; right: 6%; bottom: 22%; width: 6%; height: 70%;
  background: linear-gradient(180deg, #d4a86a 0%, #a87a3e 100%);
  box-shadow: inset 4px 0 10px rgba(0,0,0,0.2);
  border-radius: 4px;
}
.scn-una-accuses-messenger .table {
  position: absolute; left: 25%; bottom: 22%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #a08050 0%, #7a5a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-una-accuses-messenger .candle {
  position: absolute; left: 42%; bottom: 30%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #e0b878 0%, #c8965c 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 16px 4px rgba(200,150,80,0.4);
  animation: ut2-candle 3s ease-in-out infinite alternate;
}
.scn-una-accuses-messenger .una {
  position: absolute; left: 42%; bottom: 22%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #d4b080 0%, #a87a3e 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: ut2-una 10s ease-in-out infinite;
}
.scn-una-accuses-messenger .messenger {
  position: absolute; left: 55%; bottom: 22%; width: 18%; height: 38%;
  background: linear-gradient(180deg, #b08050 0%, #7a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ut2-messenger 6s ease-in-out infinite;
}
.scn-una-accuses-messenger .letter {
  position: absolute; left: 48%; bottom: 10%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #f5e0b8 0%, #d9b880 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ut2-letter 12s ease-in-out infinite;
}
@keyframes ut2-floor {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ut2-candle {
  0% { transform: scaleY(1); opacity: 0.9; box-shadow: 0 0 12px 2px rgba(200,150,80,0.3); }
  50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 20px 6px rgba(200,150,80,0.5); }
  100% { transform: scaleY(0.98); opacity: 0.95; box-shadow: 0 0 14px 3px rgba(200,150,80,0.35); }
}
@keyframes ut2-una {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(6px) rotate(4deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  75% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ut2-messenger {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ut2-letter {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(-4px); }
  100% { transform: rotate(5deg) translateX(0); }
}

/* ========== king-orders-arrest (bright interior, tense) ========== */
.scn-king-orders-arrest {
  background:
    linear-gradient(180deg, #e6c8a0 0%, #d4a86a 40%, #b88850 100%),
    radial-gradient(ellipse at 50% 60%, #ffddc0 0%, transparent 70%);
}
.scn-king-orders-arrest .floor {
  position: absolute; left: 0; right: 0; bottom: 0; height: 20%;
  background: linear-gradient(180deg, #b8854a 0%, #8a6638 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: kt3-floor 2s ease-in-out infinite alternate;
}
.scn-king-orders-arrest .pillar-left {
  position: absolute; left: 5%; bottom: 20%; width: 7%; height: 72%;
  background: linear-gradient(180deg, #c8965c 0%, #9a6a3a 100%);
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.25);
}
.scn-king-orders-arrest .pillar-right {
  position: absolute; right: 5%; bottom: 20%; width: 7%; height: 72%;
  background: linear-gradient(180deg, #c8965c 0%, #9a6a3a 100%);
  box-shadow: inset 4px 0 10px rgba(0,0,0,0.25);
}
.scn-king-orders-arrest .throne {
  position: absolute; left: 30%; bottom: 20%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #a87a3e 0%, #7a5a2a 100%);
  border-radius: 12% 12% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-king-orders-arrest .king {
  position: absolute; left: 34%; bottom: 28%; width: 32%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #c88040 0%, #7a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: kt3-king 0.8s ease-in-out infinite;
}
.scn-king-orders-arrest .guard {
  position: absolute; left: 50%; bottom: 20%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #806040 0%, #604020 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: kt3-guard 1.2s ease-in-out infinite;
}
.scn-king-orders-arrest .messenger {
  position: absolute; left: 62%; bottom: 20%; width: 18%; height: 38%;
  background: linear-gradient(180deg, #b08050 0%, #7a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kt3-messenger 1s ease-in-out infinite;
}
.scn-king-orders-arrest .chains {
  position: absolute; left: 60%; bottom: 35%; width: 20%; height: 4%;
  background: repeating-linear-gradient(90deg, #888 0px, #888 4px, transparent 4px, transparent 6px);
  border-radius: 2px;
  opacity: 0.8;
  animation: kt3-chains 0.6s ease-in-out infinite alternate;
}
.scn-king-orders-arrest .stain-glass {
  position: absolute; left: 20%; top: 5%; width: 60%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, #d08040 0%, #a05020 50%, #602010 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 20px rgba(255,200,100,0.3);
  animation: kt3-glass 0.5s ease-in-out infinite alternate;
}
@keyframes kt3-floor {
  0% { transform: translateY(0); }
  100% { transform: translateY(-2px); }
}
@keyframes kt3-king {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes kt3-guard {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kt3-messenger {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-3deg); }
  50% { transform: translateY(2px) rotate(2deg); }
  75% { transform: translateY(-5px) rotate(-4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kt3-chains {
  0% { transform: translateX(0) scaleX(1); }
  100% { transform: translateX(2px) scaleX(1.05); }
}
@keyframes kt3-glass {
  0% { opacity: 0.7; transform: scale(0.98); }
  100% { opacity: 1; transform: scale(1.02); }
}

/* ========== messenger-imprisoned (dim interior, tense) ========== */
.scn-messenger-imprisoned {
  background:
    linear-gradient(180deg, #1a202a 0%, #2a2e3e 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 80%, #2a3a4a 0%, transparent 70%);
}
.scn-messenger-imprisoned .wall {
  position: absolute; left: 0; right: 0; top: 0; bottom: 15%;
  background: 
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%),
    repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(255,255,255,0.03) 20px, rgba(255,255,255,0.03) 22px);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  border-radius: 4px;
}
.scn-messenger-imprisoned .floor {
  position: absolute; left: 0; right: 0; bottom: 0; height: 15%;
  background: linear-gradient(180deg, #1a202a 0%, #0a0e1a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-messenger-imprisoned .grate {
  position: absolute; left: 30%; top: 10%; width: 40%; height: 20%;
  background: repeating-linear-gradient(0deg, #606060 0px, #606060 4px, transparent 4px, transparent 8px),
              linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  animation: mi4-grate 4s ease-in-out infinite alternate;
}
.scn-messenger-imprisoned .chains {
  position: absolute; left: 45%; top: 35%; width: 10%; height: 30%;
  background: repeating-linear-gradient(0deg, #888 0px, #888 3px, transparent 3px, transparent 5px);
  opacity: 0.7;
  transform: rotate(10deg);
  animation: mi4-chains 3s ease-in-out infinite;
}
.scn-messenger-imprisoned .messenger {
  position: absolute; left: 40%; bottom: 20%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #3a3528 0%, #1f1a0e 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: mi4-messenger 8s ease-in-out infinite;
}
.scn-messenger-imprisoned .rat {
  position: absolute; left: 20%; bottom: 12%; width: 8%; height: 4%;
  background: radial-gradient(ellipse at 50% 50%, #554433 0%, #332211 100%);
  border-radius: 50% 50% 30% 30%;
  animation: mi4-rat 10s linear infinite;
}
.scn-messenger-imprisoned .puddle {
  position: absolute; left: 30%; bottom: 8%; width: 25%; height: 6%;
  background: radial-gradient(ellipse at 50% 50%, rgba(100,130,160,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: mi4-puddle 6s ease-in-out infinite alternate;
}
.scn-messenger-imprisoned .light-trickle {
  position: absolute; left: 35%; top: 5%; width: 30%; height: 35%;
  background: linear-gradient(180deg, rgba(180,200,220,0.2) 0%, transparent 80%);
  pointer-events: none;
  animation: mi4-light 5s ease-in-out infinite alternate;
}
@keyframes mi4-grate {
  0% { opacity: 0.5; box-shadow: inset 0 0 6px rgba(0,0,0,0.4); }
  50% { opacity: 0.8; box-shadow: inset 0 0 12px rgba(100,120,140,0.2); }
  100% { opacity: 0.6; box-shadow: inset 0 0 8px rgba(0,0,0,0.5); }
}
@keyframes mi4-chains {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes mi4-messenger {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mi4-rat {
  0% { transform: translateX(0) scaleX(1); }
  20% { transform: translateX(50px) scaleX(0.9); }
  40% { transform: translateX(20px) scaleX(1); }
  60% { transform: translateX(70px) scaleX(0.95); }
  80% { transform: translateX(10px) scaleX(1.05); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes mi4-puddle {
  0% { opacity: 0.3; transform: scale(0.95); }
  100% { opacity: 0.6; transform: scale(1.05); }
}
@keyframes mi4-light {
  0% { opacity: 0.1; }
  50% { opacity: 0.3; }
  100% { opacity: 0.15; }
}

.scn-orgoglio-castle-interior {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #3b2f2b 70%, #1f1a17 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a30 0%, transparent 65%);
}
.scn-orgoglio-castle-interior .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2c241f 0%, #1c1410 100%);
  border-radius: 8% 8% 0 0 / 20% 20% 0 0;
}
.scn-orgoglio-castle-interior .wall-left,
.scn-orgoglio-castle-interior .wall-right {
  position: absolute; top: 0; bottom: 20%; width: 15%;
  background: linear-gradient(90deg, #2a2220 0%, #3a302b 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-orgoglio-castle-interior .wall-left { left: 0; }
.scn-orgoglio-castle-interior .wall-right { right: 0; }
.scn-orgoglio-castle-interior .arch {
  position: absolute; top: 5%; left: 15%; right: 15%; bottom: 20%;
  background: transparent;
  border: 8px solid #4a3a30;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
}
.scn-orgoglio-castle-interior .figure {
  position: absolute; bottom: 20%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1410 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: oci-figure 12s ease-in-out infinite;
}
.scn-orgoglio-castle-interior .staff {
  position: absolute; bottom: 20%; left: 39%; width: 3px; height: 50px;
  background: #5a4020; border-radius: 2px;
  transform-origin: bottom center;
  transform: rotate(15deg);
  animation: oci-staff 12s ease-in-out infinite;
}
.scn-orgoglio-castle-interior .keys {
  position: absolute; bottom: 32%; left: 40%; width: 12px; height: 8px;
  background: #a08040;
  border-radius: 3px;
  box-shadow: 0 0 4px rgba(160,128,64,.5);
  animation: oci-keys 4s ease-in-out infinite;
}
.scn-orgoglio-castle-interior .lantern {
  position: absolute; top: 12%; right: 28%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d4a843 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #b08030, 0 0 40px 12px rgba(176,128,48,.3);
  animation: oci-lantern 3s ease-in-out infinite alternate;
}
.scn-orgoglio-castle-interior .dust {
  position: absolute; top: 20%; left: 30%; width: 3px; height: 3px;
  background: rgba(200,180,140,.3);
  border-radius: 50%;
  box-shadow: 15px 25px 0 1px rgba(200,180,140,.2), 30px 50px 0 2px rgba(200,180,140,.15);
  animation: oci-dust 20s linear infinite;
}
@keyframes oci-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(15px) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(30px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(40px) translateY(-1px) rotate(0); }
}
@keyframes oci-staff {
  0%,100% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(2px); }
}
@keyframes oci-keys {
  0%,100% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2px) rotate(5deg); }
  50% { transform: translateY(0) rotate(-3deg); }
  75% { transform: translateY(-1px) rotate(8deg); }
}
@keyframes oci-lantern {
  0% { opacity: .7; box-shadow: 0 0 15px 4px #a07030, 0 0 30px 8px rgba(160,112,48,.3); }
  100% { opacity: 1; box-shadow: 0 0 25px 8px #d4a843, 0 0 50px 15px rgba(212,168,67,.5); }
}
@keyframes oci-dust {
  0% { transform: translate(0,0); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: .5; }
  100% { transform: translate(60px,-30px); opacity: 0; }
}

.scn-orgoglio-castle-ignaro {
  background:
    linear-gradient(180deg, #1e1a18 0%, #2a2420 40%, #1c1815 100%),
    radial-gradient(ellipse at 40% 50%, #3a3028 0%, transparent 70%);
}
.scn-orgoglio-castle-ignaro .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2c241e 0%, #1a1612 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-orgoglio-castle-ignaro .wall-back {
  position: absolute; top: 0; left: 0; right: 0; bottom: 25%;
  background: linear-gradient(135deg, #3a3028 0%, #2a221d 70%);
}
.scn-orgoglio-castle-ignaro .doorway {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: #1e1a16;
  border: 4px solid #4a3a30;
  border-radius: 20% 20% 5% 5% / 40% 40% 5% 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
}
.scn-orgoglio-castle-ignaro .body {
  position: absolute; bottom: 25%; left: 35%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ocig-body 8s ease-in-out infinite;
}
.scn-orgoglio-castle-ignaro .head {
  position: absolute; bottom: 51%; left: 33%; width: 16px; height: 18px;
  background: #2a221e;
  border-radius: 50% 50% 40% 40%;
  clip-path: polygon(0 0, 100% 0, 100% 80%, 60% 100%, 40% 100%, 0 80%);
  transform-origin: center bottom;
  animation: ocig-head 8s ease-in-out infinite;
}
.scn-orgoglio-castle-ignaro .staff {
  position: absolute; bottom: 25%; left: 30%; width: 3px; height: 48px;
  background: #5a4020; border-radius: 2px;
  transform: rotate(-10deg);
  animation: ocig-staff 8s ease-in-out infinite;
}
.scn-orgoglio-castle-ignaro .shadow {
  position: absolute; bottom: 25%; left: 30%; width: 60px; height: 10px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: ocig-shadow 8s ease-in-out infinite;
}
.scn-orgoglio-castle-ignaro .light {
  position: absolute; top: 15%; right: 20%; width: 6px; height: 6px;
  background: radial-gradient(circle, #b08050 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px #906030;
  animation: ocig-light 4s ease-in-out infinite alternate;
}
@keyframes ocig-body {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(12px) rotate(1deg); }
  100% { transform: translateX(24px) rotate(-1deg); }
}
@keyframes ocig-head {
  0% { transform: rotate(0) scaleY(1); }
  25% { transform: rotate(-180deg) scaleY(1); }
  50% { transform: rotate(-180deg) scaleY(-1); }
  75% { transform: rotate(0) scaleY(-1); }
  100% { transform: rotate(0) scaleY(1); }
}
@keyframes ocig-staff {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-2px); }
}
@keyframes ocig-shadow {
  0%,100% { transform: translateX(0) scaleX(1); opacity: .4; }
  50% { transform: translateX(12px) scaleX(0.9); opacity: .6; }
}
@keyframes ocig-light {
  0% { opacity: .3; }
  100% { opacity: .8; }
}

.scn-orgoglio-castle-altar {
  background:
    linear-gradient(0deg, #1a1412 0%, #2a201c 40%, #3a3028 80%, #2a241e 100%),
    repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(180,140,80,.05) 8px, rgba(180,140,80,.05) 16px);
}
.scn-orgoglio-castle-altar .wall-arras {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(135deg, #5a4030 0%, #4a3020 50%, #3a2018 100%);
  background-size: 20px 20px;
  background-image: linear-gradient(45deg, transparent 40%, #6a5040 40%, #6a5040 60%, transparent 60%);
  opacity: .6;
}
.scn-orgoglio-castle-altar .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%);
}
.scn-orgoglio-castle-altar .altar {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border: 3px solid #b08040;
  border-radius: 4px;
  box-shadow: 0 10px 20px rgba(0,0,0,.6), inset 0 2px 5px rgba(180,140,80,.3);
}
.scn-orgoglio-castle-altar .vessel {
  position: absolute; bottom: 48%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #d4a843 0%, #a08030 60%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 15px 2px #b09040;
  animation: oca-vessel 6s ease-in-out infinite alternate;
}
.scn-orgoglio-castle-altar .blood {
  position: absolute; bottom: 30%; left: 35%; width: 50px; height: 8px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #3a1012 70%);
  border-radius: 50%;
  filter: blur(4px);
  box-shadow: 20px -10px 0 2px #5e1a1d, -15px -5px 0 4px #4a1416;
  opacity: .8;
  animation: oca-blood 12s ease-in-out infinite alternate;
}
.scn-orgoglio-castle-altar .candle {
  position: absolute; bottom: 55%; left: 52%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: oca-candle 4s ease-in-out infinite;
}
.scn-orgoglio-castle-altar .glow {
  position: absolute; bottom: 55%; left: 52%; width: 20px; height: 20px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: oca-glow 4s ease-in-out infinite alternate;
}
@keyframes oca-vessel {
  0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 10px 1px #b09040; }
  100% { transform: translateX(-50%) scaleY(1.05); box-shadow: 0 0 25px 5px #d4a843; }
}
@keyframes oca-blood {
  0% { opacity: .6; filter: blur(3px); }
  50% { opacity: .9; filter: blur(5px); }
  100% { opacity: .7; filter: blur(4px); }
}
@keyframes oca-candle {
  0%,100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
}
@keyframes oca-glow {
  0% { opacity: .4; transform: scale(1); }
  100% { opacity: .8; transform: scale(1.2); }
}

.scn-orgoglio-castle-dungeon {
  background:
    linear-gradient(0deg, #0a0a0a 0%, #1a1616 40%, #161212 100%),
    radial-gradient(ellipse at 50% 60%, #1a1414 0%, transparent 80%);
}
.scn-orgoglio-castle-dungeon .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
}
.scn-orgoglio-castle-dungeon .door-frame {
  position: absolute; bottom: 30%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  border: 6px solid #2a221e;
  border-radius: 4px;
  background: #111;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
}
.scn-orgoglio-castle-dungeon .door {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: #1a1616;
  border: 2px solid #3a2a22;
  overflow: hidden;
}
.scn-orgoglio-castle-dungeon .bar {
  position: absolute; left: 50%; width: 2px; height: 70px;
  background: #5a4a3a;
  transform: translateX(-50%);
}
.scn-orgoglio-castle-dungeon .bar-1 { top: 10px; left: 20%; }
.scn-orgoglio-castle-dungeon .bar-2 { top: 10px; left: 40%; }
.scn-orgoglio-castle-dungeon .bar-3 { top: 10px; left: 60%; }
.scn-orgoglio-castle-dungeon .bar-4 { top: 10px; left: 80%; }
.scn-orgoglio-castle-dungeon .keyhole {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 8px;
  transform: translateX(-50%);
  background: #000;
  border-radius: 50% 50% 30% 30% / 50% 50% 20% 20%;
  border: 1px solid #4a3a30;
}
.scn-orgoglio-castle-dungeon .crack-light {
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 2px;
  transform: translateX(-50%);
  background: #a08030;
  box-shadow: 0 0 10px 2px rgba(160,128,48,.4);
  animation: ocd-crack 3s ease-in-out infinite alternate;
}
.scn-orgoglio-castle-dungeon .figure-outside {
  position: absolute; bottom: 30%; left: 30%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #2a2420 0%, #1a1614 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  filter: blur(2px);
  animation: ocd-figure 8s ease-in-out infinite;
}
.scn-orgoglio-castle-dungeon .hand {
  position: absolute; bottom: 40%; left: 32%; width: 10px; height: 12px;
  background: #2a2420;
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform: rotate(15deg);
  animation: ocd-hand 4s ease-in-out infinite alternate;
}
@keyframes ocd-crack {
  0% { opacity: .2; }
  100% { opacity: .6; }
}
@keyframes ocd-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes ocd-hand {
  0% { transform: rotate(10deg) translateX(0); }
  100% { transform: rotate(25deg) translateX(2px); }
}

/* vere-the-maine-shete */
.scn-verethe-maine-shete {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #3b7a9e 60%, #2c5f7c 100%),
              radial-gradient(ellipse at 50% 70%, #b0e0e6 0%, transparent 70%);
}
.scn-verethe-maine-shete .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a8d8ea 0%, transparent 100%);
  animation: vs-sky 14s ease-in-out infinite alternate;
}
.scn-verethe-maine-shete .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2c5f7c 0%, #1a3b4c 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: vs-sea 8s ease-in-out infinite alternate;
}
.scn-verethe-maine-shete .land {
  position: absolute; bottom: 48%; left: 15%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #5b7a4a 0%, #3a5a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: vs-land 20s ease-in-out infinite alternate;
}
.scn-verethe-maine-shete .ship-hull {
  position: absolute; bottom: 42%; left: 40%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: vs-rock 6s ease-in-out infinite;
}
.scn-verethe-maine-shete .mainsail {
  position: absolute; bottom: 68%; left: 45%; width: 70px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #f5f2e8 0%, #d9cfb8 70%, #a89a80 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px rgba(255,255,240,0.3);
  animation: vs-sail 10s ease-in-out infinite alternate;
}
.scn-verethe-maine-shete .foresail {
  position: absolute; bottom: 62%; left: 34%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 40%, #f5f2e8 0%, #d9cfb8 70%, #a89a80 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 15px rgba(255,255,240,0.2);
  animation: vs-sail 12s ease-in-out infinite alternate 2s;
}
.scn-verethe-maine-shete .helmsman {
  position: absolute; bottom: 40%; left: 48%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vs-figure 4s ease-in-out infinite;
}
.scn-verethe-maine-shete .wheel {
  position: absolute; bottom: 43%; left: 44%; width: 12px; height: 12px;
  background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: vs-wheel 12s linear infinite;
}
@keyframes vs-sky {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(0.98); }
}
@keyframes vs-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.05); }
  100% { transform: translateY(2px) scaleY(0.95); }
}
@keyframes vs-land {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes vs-rock {
  0% { transform: rotate(-1deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-1px); }
  50% { transform: rotate(-0.5deg) translateY(0); }
  75% { transform: rotate(1.5deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes vs-sail {
  0% { transform: scaleX(1) skewX(0deg); }
  50% { transform: scaleX(1.08) skewX(2deg); }
  100% { transform: scaleX(0.95) skewX(-1deg); }
}
@keyframes vs-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes vs-wheel {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* the-raskall-many */
.scn-the-raskall-many {
  background: linear-gradient(180deg, #c8b28a 0%, #d4c4a0 50%, #a89070 100%),
              radial-gradient(circle at 50% 0%, #e0d4b8 0%, transparent 70%);
}
.scn-the-raskall-many .bg-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8a080 0%, #9c8468 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: rk-wall 20s ease-in-out infinite alternate;
}
.scn-the-raskall-many .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-the-raskall-many .bear {
  position: absolute; bottom: 30%; left: 45%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, #3a2a1a 70%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: rk-bear 12s ease-in-out infinite;
}
.scn-the-raskall-many .dog-left {
  position: absolute; bottom: 28%; left: 30%; width: 28px; height: 22px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  animation: rk-dog 8s ease-in-out infinite alternate;
}
.scn-the-raskall-many .dog-right {
  position: absolute; bottom: 28%; right: 30%; width: 28px; height: 22px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  animation: rk-dog 8s ease-in-out infinite alternate-reverse;
}
.scn-the-raskall-many .spectator-left {
  position: absolute; bottom: 38%; left: 10%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rk-figure 10s ease-in-out infinite;
}
.scn-the-raskall-many .spectator-right {
  position: absolute; bottom: 38%; right: 10%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rk-figure 10s ease-in-out infinite 3s;
}
.scn-the-raskall-many .spectator-center {
  position: absolute; bottom: 42%; left: 50%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rk-figure 10s ease-in-out infinite 1.5s;
}
@keyframes rk-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes rk-bear {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(1px) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rk-dog {
  0% { transform: translateX(0) rotate(-10deg); }
  50% { transform: translateX(6px) rotate(-5deg); }
  100% { transform: translateX(-4px) rotate(-12deg); }
}
@keyframes rk-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}

/* housling-fire-trinal-triplicities */
.scn-housling-fire-trinal-triplicities {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 50%, #3a1a1e 100%),
              radial-gradient(ellipse at 50% 70%, #5a2a2a 0%, transparent 70%);
}
.scn-housling-fire-trinal-triplicities .bg-dark {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 80%, #1a1a2e 0%, #0e0e1a 100%);
  animation: hf-dark 20s ease-in-out infinite alternate;
}
.scn-housling-fire-trinal-triplicities .altar {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  transform: translateX(-50%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-housling-fire-trinal-triplicities .flame-left {
  position: absolute; bottom: 32%; left: 36%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #c06030 60%, #6a1a0a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px #c06030, 0 0 60px 20px rgba(192,96,48,0.4);
  animation: hf-flame 3s ease-in-out infinite alternate;
}
.scn-housling-fire-trinal-triplicities .flame-center {
  position: absolute; bottom: 34%; left: 50%; width: 24px; height: 48px;
  background: radial-gradient(ellipse at 50% 20%, #ffe080 0%, #d07030 60%, #7a1a0a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 15px #d07030, 0 0 80px 30px rgba(208,112,48,0.5);
  animation: hf-flame 3.5s ease-in-out infinite alternate 0.5s;
}
.scn-housling-fire-trinal-triplicities .flame-right {
  position: absolute; bottom: 32%; right: 36%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #c06030 60%, #6a1a0a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px #c06030, 0 0 60px 20px rgba(192,96,48,0.4);
  animation: hf-flame 3s ease-in-out infinite alternate 1s;
}
.scn-housling-fire-trinal-triplicities .bride {
  position: absolute; bottom: 20%; left: 32%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #e0d0c0 0%, #c0a890 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 4px rgba(255,200,150,0.3);
  animation: hf-figure 8s ease-in-out infinite;
}
.scn-housling-fire-trinal-triplicities .groom {
  position: absolute; bottom: 20%; right: 32%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.3);
  animation: hf-figure 8s ease-in-out infinite 2s;
}
@keyframes hf-dark {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes hf-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.15) translateY(-4px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(2px); opacity: 0.85; }
}
@keyframes hf-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}

/* canto-xii-questions-1 */
.scn-canto-xii-questions-1 {
  background: linear-gradient(180deg, #e8e0d0 0%, #d8c8b0 30%, #c8b8a0 70%, #b8a890 100%),
              radial-gradient(circle at 50% 40%, #f0e8d8 0%, transparent 70%);
}
.scn-canto-xii-questions-1 .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #b0a090 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.15);
  animation: cq-wall 15s ease-in-out infinite alternate;
}
.scn-canto-xii-questions-1 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89880 50%, #887868 100%);
  border-radius: 20% 20% 0 0 / 5% 5% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-canto-xii-questions-1 .throne {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #c8a868 0%, #a08040 100%);
  transform: translateX(-50%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: cq-throne 12s ease-in-out infinite;
}
.scn-canto-xii-questions-1 .king {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  transform: translateX(-50%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: cq-figure 6s ease-in-out infinite;
}
.scn-canto-xii-questions-1 .redcross {
  position: absolute; bottom: 20%; left: 38%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #a03030 0%, #701a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,0.4);
  animation: cq-figure 6s ease-in-out infinite 1s;
}
.scn-canto-xii-questions-1 .una {
  position: absolute; bottom: 20%; right: 38%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #e8e0d8 0%, #c8c0b0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(255,240,220,0.2);
  animation: cq-figure 6s ease-in-out infinite 2s;
}
.scn-canto-xii-questions-1 .courtier-left {
  position: absolute; bottom: 18%; left: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cq-figure 8s ease-in-out infinite 0.5s;
}
.scn-canto-xii-questions-1 .courtier-right {
  position: absolute; bottom: 18%; right: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cq-figure 8s ease-in-out infinite 2.5s;
}
@keyframes cq-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cq-throne {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes cq-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}

.scn-forest-satyrane-background {
  background:
    linear-gradient(180deg, #f7e9c3 0%, #d4c48a 30%, #9bb857 60%, #6a9e3a 100%),
    radial-gradient(ellipse at 60% 30%, #f7e9c3 20%, transparent 60%);
}
.scn-forest-satyrane-background .sky { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #b8d4e8 0%, transparent 100%); animation: fsb-sky 10s ease-in-out infinite alternate; }
.scn-forest-satyrane-background .sun { position:absolute; top:8%; left:65%; width:40px; height:40px; background:radial-gradient(circle, #ffd580 0%, #ffb040 60%, transparent 80%); border-radius:50%; box-shadow:0 0 80px 20px #ffb04060; animation: fsb-sun 6s ease-in-out infinite; }
.scn-forest-satyrane-background .trees-bg { position:absolute; bottom:35%; left:0; right:0; height:30%; background:linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%); border-radius:40% 60% 0 0 / 70% 50% 0 0; box-shadow:inset 0 10px 30px #2a3a1a; animation: fsb-treesbg 20s ease-in-out infinite alternate; }
.scn-forest-satyrane-background .trees-mid { position:absolute; bottom:35%; left:5%; right:5%; height:25%; background:linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius:30% 70% 0 0 / 60% 40% 0 0; box-shadow:inset 0 6px 20px #1a2a1a; animation: fsb-treesmid 15s ease-in-out infinite alternate; }
.scn-forest-satyrane-background .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #6a8a3a 0%, #4a6a2a 50%, #3a5a1a 100%); border-radius:0 0 0 0; animation: fsb-ground 8s ease-in-out infinite; }
.scn-forest-satyrane-background .figure { position:absolute; bottom:28%; left:40%; width:20px; height:40px; background:linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: fsb-figure 4s ease-in-out infinite; }
.scn-forest-satyrane-background .horns { position:absolute; bottom:58%; left:39%; width:4px; height:10px; background:#2a2a1a; border-radius:50% 50% 0 0; box-shadow:8px 0 #2a2a1a; animation: fsb-horns 4s ease-in-out infinite; }
.scn-forest-satyrane-background .light-ray { position:absolute; top:10%; left:55%; width:20px; height:100%; background:linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%); transform:rotate(15deg) scaleY(1.5); filter:blur(8px); animation: fsb-ray 12s ease-in-out infinite alternate; }
@keyframes fsb-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes fsb-sun { 0% { transform:scale(1); box-shadow:0 0 80px 20px #ffb04060; } 50% { transform:scale(1.05); box-shadow:0 0 100px 30px #ffb04080; } 100% { transform:scale(0.98); box-shadow:0 0 70px 15px #ffb04050; } }
@keyframes fsb-treesbg { 0% { transform:translateY(0); } 50% { transform:translateY(-4px); } 100% { transform:translateY(2px); } }
@keyframes fsb-treesmid { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(1px); } }
@keyframes fsb-ground { 0% { background-position:0 0; } 50% { background-position:0 5px; } 100% { background-position:0 0; } }
@keyframes fsb-figure { 0% { transform:translateX(0) translateY(0) rotate(-2deg); } 25% { transform:translateX(4px) translateY(-2px) rotate(2deg); } 50% { transform:translateX(8px) translateY(0) rotate(-1deg); } 75% { transform:translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform:translateX(16px) translateY(0) rotate(0); } }
@keyframes fsb-horns { 0% { opacity:1; } 50% { opacity:0.9; } 100% { opacity:1; } }
@keyframes fsb-ray { 0% { transform:rotate(10deg) scaleY(1.5); opacity:0.6; } 50% { transform:rotate(20deg) scaleY(1.3); opacity:0.8; } 100% { transform:rotate(15deg) scaleY(1.6); opacity:0.5; } }

.scn-forest-satyrane-mother {
  background:
    linear-gradient(180deg, #f2e0b0 0%, #c8b87a 30%, #9ab857 55%, #6a9e3a 100%),
    radial-gradient(ellipse at 50% 30%, #f2e0b0 20%, transparent 60%);
}
.scn-forest-satyrane-mother .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #b0cce0 0%, transparent 100%); animation: fsm-sky 12s ease-in-out infinite alternate; }
.scn-forest-satyrane-mother .sun { position:absolute; top:12%; right:20%; width:35px; height:35px; background:radial-gradient(circle, #ffd580 0%, #ffb040 60%, transparent 80%); border-radius:50%; box-shadow:0 0 70px 15px #ffb04060; animation: fsm-sun 8s ease-in-out infinite; }
.scn-forest-satyrane-mother .trees { position:absolute; bottom:30%; left:0; right:0; height:30%; background:linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%); border-radius:50% 50% 0 0 / 60% 60% 0 0; box-shadow:inset 0 8px 25px #2a3a1a; animation: fsm-trees 18s ease-in-out infinite alternate; }
.scn-forest-satyrane-mother .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #7a9a4a 0%, #5a7a2a 50%, #3a5a1a 100%); animation: fsm-ground 10s ease-in-out infinite; }
.scn-forest-satyrane-mother .mother { position:absolute; bottom:22%; left:40%; width:22px; height:50px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin:bottom center; animation: fsm-mother 6s ease-in-out infinite; }
.scn-forest-satyrane-mother .child { position:absolute; bottom:22%; left:50%; width:16px; height:30px; background:linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: fsm-child 4s ease-in-out infinite; }
.scn-forest-satyrane-mother .lioness { position:absolute; bottom:18%; left:60%; width:40px; height:20px; background:linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:center; animation: fsm-lioness 12s ease-in-out infinite; }
.scn-forest-satyrane-mother .cubs { position:absolute; bottom:16%; left:65%; width:15px; height:10px; background:#5a4a2a; border-radius:50%; box-shadow:20px 0 #5a4a2a; animation: fsm-cubs 8s ease-in-out infinite; }
@keyframes fsm-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes fsm-sun { 0% { transform:scale(1); box-shadow:0 0 70px 15px #ffb04060; } 50% { transform:scale(1.03); box-shadow:0 0 90px 25px #ffb04080; } 100% { transform:scale(0.97); box-shadow:0 0 60px 10px #ffb04050; } }
@keyframes fsm-trees { 0% { transform:translateY(0); } 50% { transform:translateY(-5px); } 100% { transform:translateY(3px); } }
@keyframes fsm-ground { 0% { background-position:0 0; } 50% { background-position:0 4px; } 100% { background-position:0 0; } }
@keyframes fsm-mother { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 50% { transform:translateX(3px) translateY(-3px) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(-1deg); } }
@keyframes fsm-child { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(2px) translateY(-1px) rotate(2deg); } 50% { transform:translateX(4px) translateY(0) rotate(-1deg); } 75% { transform:translateX(6px) translateY(-1px) rotate(1deg); } 100% { transform:translateX(8px) translateY(0) rotate(0); } }
@keyframes fsm-lioness { 0% { transform:translateX(0) scaleX(1); } 50% { transform:translateX(5px) scaleX(0.95); } 100% { transform:translateX(0) scaleX(1); } }
@keyframes fsm-cubs { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }

.scn-forest-satyrane-return {
  background:
    linear-gradient(180deg, #f5e8c0 0%, #c8b87a 30%, #9ab857 50%, #6a9e3a 70%, #5a8a2a 100%),
    radial-gradient(ellipse at 30% 40%, #f5e8c0 15%, transparent 60%);
}
.scn-forest-satyrane-return .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #b8d4e8 0%, transparent 100%); animation: fsr-sky 15s ease-in-out infinite alternate; }
.scn-forest-satyrane-return .sun { position:absolute; top:10%; left:25%; width:50px; height:50px; background:radial-gradient(circle, #ffe090 0%, #ffb040 50%, transparent 80%); border-radius:50%; box-shadow:0 0 100px 30px #ffb04060; animation: fsr-sun 7s ease-in-out infinite; }
.scn-forest-satyrane-return .forest-edge { position:absolute; bottom:30%; left:0; width:40%; height:40%; background:linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius:0 60% 0 0 / 0 80% 0 0; box-shadow:inset 0 10px 30px #1a2a1a; animation: fsr-edge 20s ease-in-out infinite; }
.scn-forest-satyrane-return .open-field { position:absolute; bottom:20%; left:40%; right:0; height:30%; background:linear-gradient(180deg, #8aac5a 0%, #6a8a3a 50%, #4a6a2a 100%); border-radius:20% 0 0 0; animation: fsr-field 12s ease-in-out infinite; }
.scn-forest-satyrane-return .figure { position:absolute; bottom:18%; left:50%; width:25px; height:50px; background:linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: fsr-figure 5s ease-in-out infinite; }
.scn-forest-satyrane-return .spear { position:absolute; bottom:32%; left:52%; width:4px; height:35px; background:#5a4a3a; border-radius:2px; transform-origin:bottom center; animation: fsr-spear 5s ease-in-out infinite; }
.scn-forest-satyrane-return .path { position:absolute; bottom:0; left:42%; right:0; height:20%; background:linear-gradient(180deg, #9a7a5a 0%, #6a5a3a 100%); border-radius:10% 0 0 0; animation: fsr-path 8s ease-in-out infinite; }
.scn-forest-satyrane-return .clouds { position:absolute; top:5%; right:10%; width:80px; height:20px; background:linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter:blur(6px); animation: fsr-clouds 40s linear infinite; }
@keyframes fsr-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes fsr-sun { 0% { transform:scale(1); box-shadow:0 0 100px 30px #ffb04060; } 50% { transform:scale(1.04); box-shadow:0 0 120px 40px #ffb04080; } 100% { transform:scale(0.96); box-shadow:0 0 80px 20px #ffb04050; } }
@keyframes fsr-edge { 0% { transform:translateY(0); } 50% { transform:translateY(-5px); } 100% { transform:translateY(3px); } }
@keyframes fsr-field { 0% { background-position:0 0; } 50% { background-position:0 5px; } 100% { background-position:0 0; } }
@keyframes fsr-figure { 0% { transform:translateX(0) translateY(0) rotate(-2deg); } 25% { transform:translateX(4px) translateY(-2px) rotate(2deg); } 50% { transform:translateX(8px) translateY(0) rotate(-1deg); } 75% { transform:translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform:translateX(16px) translateY(0) rotate(0); } }
@keyframes fsr-spear { 0% { transform:rotate(-5deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-5deg); } }
@keyframes fsr-path { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes fsr-clouds { 0% { transform:translateX(-30px); } 100% { transform:translateX(120px); } }

.scn-forest-escape {
  background:
    linear-gradient(180deg, #f0d8a0 0%, #c8a86a 25%, #9abb5a 50%, #6a8e3a 75%, #4a6e2a 100%),
    radial-gradient(ellipse at 70% 20%, #f0d8a0 15%, transparent 60%);
}
.scn-forest-escape .sky { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #b0cce0 0%, transparent 100%); animation: fe-sky 8s ease-in-out infinite alternate; }
.scn-forest-escape .sun { position:absolute; top:8%; left:75%; width:35px; height:35px; background:radial-gradient(circle, #ffe090 0%, #ffb040 50%, transparent 80%); border-radius:50%; box-shadow:0 0 80px 20px #ffb04060; animation: fe-sun 3s ease-in-out infinite; }
.scn-forest-escape .trees { position:absolute; bottom:30%; left:0; right:0; height:30%; background:linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius:50% 50% 0 0 / 50% 50% 0 0; box-shadow:inset 0 8px 25px #1a2a1a; animation: fe-trees 0.8s ease-in-out infinite alternate; }
.scn-forest-escape .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #7a9a4a 0%, #5a7a2a 50%, #3a5a1a 100%); animation: fe-ground 2s ease-in-out infinite; }
.scn-forest-escape .virgin { position:absolute; bottom:20%; left:30%; width:18px; 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: fe-virgin 1.5s ease-in-out infinite; }
.scn-forest-escape .abductor { position:absolute; bottom:20%; left:50%; width:24px; height:48px; background:linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: fe-abductor 1.5s ease-in-out infinite; }
.scn-forest-escape .dust { position:absolute; bottom:15%; left:35%; right:20%; height:10px; background:radial-gradient(circle, rgba(120,100,60,0.4) 0%, transparent 100%); filter:blur(4px); animation: fe-dust 0.5s ease-in-out infinite; }
.scn-forest-escape .wind-lines { position:absolute; top:20%; left:10%; width:40%; height:2px; background:linear-gradient(90deg, transparent, rgba(200,180,120,0.3), transparent); animation: fe-wind 1s linear infinite; }
.scn-forest-escape .wind-lines::before { content:''; position:absolute; top:10px; width:30%; height:2px; background:linear-gradient(90deg, transparent, rgba(200,180,120,0.3), transparent); animation: fe-wind 1.2s linear infinite; }
@keyframes fe-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes fe-sun { 0% { transform:scale(1); box-shadow:0 0 80px 20px #ffb04060; } 50% { transform:scale(1.1); box-shadow:0 0 100px 30px #ffb04080; } 100% { transform:scale(0.95); box-shadow:0 0 60px 15px #ffb04050; } }
@keyframes fe-trees { 0% { transform:translateX(-2px); } 100% { transform:translateX(2px); } }
@keyframes fe-ground { 0% { background-position:0 0; } 50% { background-position:0 8px; } 100% { background-position:0 0; } }
@keyframes fe-virgin { 0% { transform:translateX(0) translateY(0) rotate(-5deg); } 25% { transform:translateX(4px) translateY(-4px) rotate(3deg); } 50% { transform:translateX(8px) translateY(0) rotate(-2deg); } 75% { transform:translateX(12px) translateY(-3px) rotate(4deg); } 100% { transform:translateX(16px) translateY(0) rotate(0); } }
@keyframes fe-abductor { 0% { transform:translateX(0) translateY(0) rotate(3deg); } 25% { transform:translateX(-4px) translateY(-3px) rotate(-2deg); } 50% { transform:translateX(-8px) translateY(0) rotate(4deg); } 75% { transform:translateX(-12px) translateY(-2px) rotate(-3deg); } 100% { transform:translateX(-16px) translateY(0) rotate(0); } }
@keyframes fe-dust { 0% { opacity:0.3; transform:translateX(0); } 50% { opacity:0.7; transform:translateX(10px); } 100% { opacity:0.3; transform:translateX(20px); } }
@keyframes fe-wind { 0% { transform:translateX(-100%); } 100% { transform:translateX(200%); } }

/* ---- hospital-almner (ha) ---- */
.scn-hospital-almner {
  background:
    linear-gradient(180deg, #b7d1e0 0%, #e8d5b0 60%, #cbb48a 100%),
    radial-gradient(ellipse at 70% 20%, rgba(255,230,180,0.4) 0%, transparent 70%);
}
.scn-hospital-almner .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #d4e5f0 0%, transparent 100%);
  animation: ha-sky 15s ease-in-out infinite alternate;
}
.scn-hospital-almner .wall.left {
  position:absolute; inset:15% 50% 0 0; width:45%; height:70%;
  background: linear-gradient(90deg, #d4b28a 0%, #c19a6e 100%);
  border-radius: 0 4px 0 0;
  box-shadow: inset -2px 0 15px rgba(0,0,0,0.1);
}
.scn-hospital-almner .wall.right {
  position:absolute; inset:15% 0 0 55%; width:45%; height:70%;
  background: linear-gradient(90deg, #c19a6e 0%, #d4b28a 100%);
  border-radius: 4px 0 0 0;
  box-shadow: inset 2px 0 15px rgba(0,0,0,0.1);
}
.scn-hospital-almner .door-arch {
  position:absolute; bottom:20%; left:50%; width:100px; height:120px;
  transform:translateX(-50%);
  background:
    radial-gradient(ellipse at 50% 0%, #e8d5b0 0%, #cbb48a 60px, transparent 60px),
    linear-gradient(180deg, #c19a6e 0%, #a07a5a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.2);
}
.scn-hospital-almner .door-interior {
  position:absolute; bottom:20%; left:50%; width:70px; height:100px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #fce4b0 0%, #e8b860 80%); 
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 25px #b88840, 0 0 40px 10px rgba(240,200,100,0.5);
  animation: ha-door-glow 4s ease-in-out infinite alternate;
}
.scn-hospital-almner .figure {
  position:absolute; bottom:20%; left:44%; width:20px; height:50px;
  background: linear-gradient(180deg, #2c1e14 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ha-figure 5s ease-in-out infinite;
}
.scn-hospital-almner .step {
  position:absolute; bottom:15%; left:45%; width:100px; height:15px;
  background: linear-gradient(180deg, #b0906a 0%, #8a6e4e 100%);
  border-radius: 2px;
  box-shadow: 0 5px 10px rgba(0,0,0,0.2);
}
@keyframes ha-sky {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; }
}
@keyframes ha-door-glow {
  0% { box-shadow: inset 0 0 20px #b08030, 0 0 30px 5px rgba(240,200,100,0.4); opacity:0.85; }
  50% { box-shadow: inset 0 0 35px #d0a040, 0 0 60px 15px rgba(255,220,130,0.7); opacity:1; }
  100% { box-shadow: inset 0 0 25px #c09050, 0 0 40px 10px rgba(240,200,100,0.5); opacity:0.9; }
}
@keyframes ha-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

/* ---- hospital-wardrobe (hw) ---- */
.scn-hospital-wardrobe {
  background:
    linear-gradient(180deg, #c9d8df 0%, #e0cfb5 50%, #c5b39a 100%),
    radial-gradient(ellipse at 30% 10%, rgba(255,235,200,0.6) 0%, transparent 70%);
}
.scn-hospital-wardrobe .window {
  position:absolute; top:15%; left:20%; width:60px; height:70px;
  background: linear-gradient(180deg, #fce4c0 0%, #e8c888 100%);
  border: 6px solid #8a6e4e;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(255,200,100,0.5);
  animation: hw-window-glow 6s ease-in-out infinite alternate;
}
.scn-hospital-wardrobe .light-ray {
  position:absolute; top:20%; left:20%; width:60px; height:80%;
  background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(4px);
  animation: hw-light-ray 10s ease-in-out infinite alternate;
}
.scn-hospital-wardrobe .shelf {
  position:absolute; top:40%; left:10%; right:10%; height:8px;
  background: linear-gradient(90deg, #8a6e4e 0%, #b0906a 50%, #8a6e4e 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-hospital-wardrobe .cloth-1 {
  position:absolute; top:42%; left:20%; width:30px; height:40px;
  background: linear-gradient(180deg, #a06e46 0%, #6e4e2e 100%);
  border-radius: 2px 2px 8px 8px;
  transform-origin: top center;
  animation: hw-cloth-sway 4s ease-in-out infinite alternate;
}
.scn-hospital-wardrobe .cloth-2 {
  position:absolute; top:42%; left:55%; width:35px; height:45px;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a22 100%);
  border-radius: 2px 2px 8px 8px;
  transform-origin: top center;
  animation: hw-cloth-sway 4s ease-in-out infinite alternate-reverse;
  animation-delay: -2s;
}
.scn-hospital-wardrobe .figure {
  position:absolute; bottom:25%; left:45%; width:22px; height:55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: hw-figure-cut 6s ease-in-out infinite;
}
.scn-hospital-wardrobe .table {
  position:absolute; bottom:18%; left:30%; width:120px; height:20px;
  background: linear-gradient(180deg, #b0906a 0%, #8a6e4e 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
@keyframes hw-window-glow {
  0% { box-shadow: inset 0 0 8px rgba(255,200,100,0.3); opacity:0.8; }
  50% { box-shadow: inset 0 0 20px rgba(255,230,180,0.6); opacity:1; }
  100% { box-shadow: inset 0 0 12px rgba(255,200,100,0.4); opacity:0.85; }
}
@keyframes hw-light-ray {
  0% { opacity:0.3; transform: rotate(0deg); }
  50% { opacity:0.7; transform: rotate(-3deg); }
  100% { opacity:0.4; transform: rotate(2deg); }
}
@keyframes hw-cloth-sway {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(8deg) scaleY(1.02); }
  100% { transform: rotate(-5deg) scaleY(0.98); }
}
@keyframes hw-figure-cut {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(10px) rotate(5deg); }
  40% { transform: translateX(0) rotate(-2deg); }
  60% { transform: translateX(-5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* ---- hospital-prisoner (hp) ---- */
.scn-hospital-prisoner {
  background:
    linear-gradient(180deg, #4a5a6a 0%, #7a7a5a 40%, #b0a88a 100%),
    radial-gradient(ellipse at 40% 20%, rgba(255,210,140,0.3) 0%, transparent 60%);
}
.scn-hospital-prisoner .back-wall {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.6);
}
.scn-hospital-prisoner .window-bars {
  position:absolute; top:10%; left:30%; width:80px; height:50px;
  border: 4px solid #6a4e3a;
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(255,200,100,0.5);
  background: linear-gradient(180deg, #f0d0a0 0%, #d0a070 100%);
}
.scn-hospital-prisoner .window-bars::after {
  content: "";
  position:absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #2a1a0a 0px, #2a1a0a 4px, transparent 4px, transparent 12px),
              repeating-linear-gradient(0deg, #2a1a0a 0px, #2a1a0a 4px, transparent 4px, transparent 12px);
}
.scn-hospital-prisoner .light-shaft {
  position:absolute; top:10%; left:30%; width:80px; height:70%;
  background: linear-gradient(180deg, rgba(255,210,140,0.3) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(6px);
  animation: hp-light-shaft 12s ease-in-out infinite alternate;
}
.scn-hospital-prisoner .prisoner {
  position:absolute; bottom:30%; left:45%; width:24px; height:40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: hp-prisoner 8s ease-in-out infinite;
}
.scn-hospital-prisoner .chain {
  position:absolute; bottom:45%; left:43%; width:40px; height:4px;
  background: #5a4a3a;
  border-radius: 2px;
  transform-origin: left center;
  animation: hp-chain 5s ease-in-out infinite;
}
.scn-hospital-prisoner .redeemer {
  position:absolute; bottom:35%; left:20%; width:20px; height:50px;
  background: linear-gradient(180deg, #c8b098 0%, #a08870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: hp-redeemer 7s ease-in-out infinite;
}
.scn-hospital-prisoner .bowl {
  position:absolute; bottom:25%; left:30%; width:30px; height:12px;
  background: linear-gradient(180deg, #b08860 0%, #8a6040 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
@keyframes hp-light-shaft {
  0% { opacity:0.2; transform: rotate(-2deg); }
  50% { opacity:0.6; transform: rotate(0deg); }
  100% { opacity:0.3; transform: rotate(3deg); }
}
@keyframes hp-prisoner {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-2px) scaleY(1.02); }
  50% { transform: translateY(0) scaleY(0.98); }
  75% { transform: translateY(-1px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes hp-chain {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes hp-redeemer {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(15px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* ---- hospital-sick (hs) ---- */
.scn-hospital-sick {
  background:
    linear-gradient(180deg, #c8d0d0 0%, #d8c8b0 40%, #c0a890 100%),
    radial-gradient(ellipse at 60% 15%, rgba(255,220,160,0.5) 0%, transparent 60%);
}
.scn-hospital-sick .room-wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #b8a898 0%, #988878 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.3);
}
.scn-hospital-sick .window {
  position:absolute; top:12%; left:15%; width:50px; height:60px;
  background: linear-gradient(180deg, #fce0c0 0%, #e0b880 100%);
  border: 6px solid #7a6a5a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(255,200,100,0.4);
  animation: hs-window-glow 5s ease-in-out infinite alternate;
}
.scn-hospital-sick .light-shaft {
  position:absolute; top:15%; left:15%; width:50px; height:70%;
  background: linear-gradient(180deg, rgba(255,220,160,0.3) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(5px);
  animation: hs-light-shaft 9s ease-in-out infinite alternate;
}
.scn-hospital-sick .bed {
  position:absolute; bottom:20%; left:20%; width:130px; height:50px;
  background: linear-gradient(180deg, #b0a090 0%, #908070 100%);
  border-radius: 8px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
}
.scn-hospital-sick .sick-figure {
  position:absolute; bottom:22%; left:35%; width:30px; height:40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: hs-sick-breath 4s ease-in-out infinite;
}
.scn-hospital-sick .nurse {
  position:absolute; bottom:30%; left:55%; width:22px; height:55px;
  background: linear-gradient(180deg, #d0c0b0 0%, #b0a090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: hs-nurse 6s ease-in-out infinite;
}
.scn-hospital-sick .candle {
  position:absolute; bottom:35%; left:60%; width:12px; height:15px;
  background: linear-gradient(180deg, #d0a060 0%, #a07840 100%);
  border-radius: 2px;
}
.scn-hospital-sick .candle::after {
  content:"";
  position:absolute; top:-8px; left:50%; width:10px; height:14px;
  transform:translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #ff8844 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ff8844;
  animation: hs-flame 2s ease-in-out infinite alternate;
}
@keyframes hs-window-glow {
  0% { box-shadow: inset 0 0 6px rgba(255,200,100,0.2); opacity:0.8; }
  50% { box-shadow: inset 0 0 18px rgba(255,230,180,0.5); opacity:1; }
  100% { box-shadow: inset 0 0 10px rgba(255,200,100,0.3); opacity:0.85; }
}
@keyframes hs-light-shaft {
  0% { opacity:0.2; transform: rotate(-2deg); }
  50% { opacity:0.5; transform: rotate(0deg); }
  100% { opacity:0.3; transform: rotate(2deg); }
}
@keyframes hs-sick-breath {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.04) translateY(-2px); }
  100% { transform: scaleY(0.98) translateY(1px); }
}
@keyframes hs-nurse {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-5px) rotate(-2deg); }
  60% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hs-flame {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
  50% { transform: translateX(-50%) scaleY(1.1) rotate(5deg); }
  100% { transform: translateX(-50%) scaleY(0.9) rotate(-3deg); }
}

/* Scene: despaire-cave */
.scn-despaire-cave {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a1a1a 70%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 0%, #1a1a2e 0%, #000 60%);
}
.scn-despaire-cave .sc1-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, transparent 100%);
  animation: sc1-skydim 16s ease-in-out infinite alternate;
}
.scn-despaire-cave .sc1-cliff {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%);
  clip-path: polygon(0% 100%, 20% 20%, 35% 40%, 50% 0%, 65% 30%, 80% 15%, 100% 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: sc1-cliffshake 12s ease-in-out infinite;
}
.scn-despaire-cave .sc1-cave {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 20%;
  background: radial-gradient(ellipse at 50% 60%, #0a0a0a 0%, #1a0a0a 70%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  box-shadow: inset 0 0 40px #000;
}
.scn-despaire-cave .sc1-owl {
  position: absolute; bottom: 58%; left: 25%; width: 16px; height: 24px;
  background: radial-gradient(ellipse at 50% 30%, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: 50% 100%;
  animation: sc1-owlflap 4s ease-in-out infinite;
}
.scn-despaire-cave .sc1-figure {
  position: absolute; bottom: 22%; left: 55%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-walk 6s ease-in-out infinite;
}
.scn-despaire-cave .sc1-mist {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(40,30,30,.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: sc1-mistdrift 20s linear infinite;
}
.scn-despaire-cave .sc1-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
@keyframes sc1-skydim {
  0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; }
}
@keyframes sc1-cliffshake {
  0% { transform: rotate(0deg); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(0deg); }
}
@keyframes sc1-owlflap {
  0% { transform: scaleY(1); } 25% { transform: scaleY(1.1) scaleX(.9); } 50% { transform: scaleY(1); } 75% { transform: scaleY(1.15) scaleX(.85); } 100% { transform: scaleY(1); }
}
@keyframes sc1-walk {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(0deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(32px) translateY(0) rotate(1deg); }
}
@keyframes sc1-mistdrift {
  0% { transform: translateX(-20px); opacity: .4; } 50% { transform: translateX(0); opacity: .7; } 100% { transform: translateX(30px); opacity: .3; }
}

/* Scene: house-of-holiness-approach */
.scn-house-of-holiness-approach {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e57c 50%, #6b8e23 100%),
    radial-gradient(ellipse at 50% 100%, #b0e57c 0%, transparent 60%);
}
.scn-house-of-holiness-approach .sc2-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 50%, #b0e57c 100%);
  animation: sc2-skyshift 20s ease-in-out infinite alternate;
}
.scn-house-of-holiness-approach .sc2-sun {
  position: absolute; top: 15%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,.3);
  animation: sc2-sunpulse 12s ease-in-out infinite;
}
.scn-house-of-holiness-approach .sc2-hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #556b2f 0%, #4a5d23 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
  animation: sc2-hillsrise 18s ease-in-out infinite;
}
.scn-house-of-holiness-approach .sc2-path {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #d2b48c 0%, #b8860b 100%);
  border-radius: 20% 20% 40% 40% / 50% 50% 30% 30%;
  transform: skewY(-3deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: sc2-pathwarp 15s ease-in-out infinite alternate;
}
.scn-house-of-holiness-approach .sc2-house {
  position: absolute; bottom: 25%; left: 45%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: sc2-houseglow 8s ease-in-out infinite;
}
.scn-house-of-holiness-approach .sc2-house::after {
  content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-left: 30px solid transparent; border-right: 30px solid transparent; border-bottom: 25px solid #8b4513;
}
.scn-house-of-holiness-approach .sc2-knight {
  position: absolute; bottom: 18%; left: 25%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc2-walkknight 6s ease-in-out infinite;
}
.scn-house-of-holiness-approach .sc2-una {
  position: absolute; bottom: 18%; left: 22%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #8b4513 0%, #4a2e15 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc2-walkuna 6s ease-in-out infinite 0.5s;
}
.scn-house-of-holiness-approach .sc2-cloud {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sc2-clouddrift 40s linear infinite;
}
@keyframes sc2-skyshift {
  0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; }
}
@keyframes sc2-sunpulse {
  0% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(1); opacity: .9; }
}
@keyframes sc2-hillsrise {
  0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); }
}
@keyframes sc2-pathwarp {
  0% { transform: skewY(-3deg) translateX(0); } 50% { transform: skewY(-2deg) translateX(5px); } 100% { transform: skewY(-3deg) translateX(0); }
}
@keyframes sc2-houseglow {
  0% { box-shadow: 0 8px 16px rgba(0,0,0,.3); } 50% { box-shadow: 0 8px 30px rgba(255,215,0,.2), 0 0 40px rgba(255,215,0,.1); } 100% { box-shadow: 0 8px 16px rgba(0,0,0,.3); }
}
@keyframes sc2-walkknight {
  0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg) translateY(-2px); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0deg); }
}
@keyframes sc2-walkuna {
  0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(10px) rotate(-2deg) translateY(-1px); } 50% { transform: translateX(20px) rotate(0deg); } 75% { transform: translateX(30px) rotate(2deg); } 100% { transform: translateX(40px) rotate(-1deg); }
}
@keyframes sc2-clouddrift {
  0% { transform: translateX(-40px); } 50% { transform: translateX(calc(100vw + 40px)); } 100% { transform: translateX(-40px); }
}

/* Scene: house-of-holiness-coelia */
.scn-house-of-holiness-coelia {
  background:
    linear-gradient(135deg, #f5deb3 0%, #d2b48c 40%, #8b7355 100%),
    radial-gradient(ellipse at 70% 50%, #f5deb3 0%, transparent 60%);
}
.scn-house-of-holiness-coelia .sc3-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #deb887 0%, #c4a882 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.2);
  animation: sc3-walllight 20s ease-in-out infinite alternate;
}
.scn-house-of-holiness-coelia .sc3-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-house-of-holiness-coelia .sc3-window {
  position: absolute; top: 15%; left: 35%; right: 35%; height: 30%;
  background: linear-gradient(135deg, #87ceeb 0%, #add8e6 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 0 20px rgba(135,206,235,.5), 0 0 40px rgba(135,206,235,.2);
  animation: sc3-windowbright 12s ease-in-out infinite;
}
.scn-house-of-holiness-coelia .sc3-light {
  position: absolute; top: 20%; left: 40%; right: 40%; height: 10%;
  background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, transparent 100%);
  filter: blur(10px);
  transform: rotate(15deg);
  animation: sc3-lightray 18s ease-in-out infinite alternate;
}
.scn-house-of-holiness-coelia .sc3-coelia {
  position: absolute; bottom: 22%; left: 45%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-sway 8s ease-in-out infinite;
}
.scn-house-of-holiness-coelia .sc3-fidelia {
  position: absolute; bottom: 20%; left: 38%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #f0e68c 0%, #bdb76b 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-sway 8s ease-in-out infinite 0.5s;
}
.scn-house-of-holiness-coelia .sc3-speranza {
  position: absolute; bottom: 20%; left: 52%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #f0e68c 0%, #bdb76b 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-sway 8s ease-in-out infinite 1s;
}
.scn-house-of-holiness-coelia .sc3-dust {
  position: absolute; top: 25%; left: 30%; right: 30%; height: 50%;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,200,.08) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(255,255,200,.05) 0%, transparent 50%);
  filter: blur(12px);
  animation: sc3-dustdrift 30s linear infinite;
}
@keyframes sc3-walllight {
  0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; }
}
@keyframes sc3-windowbright {
  0% { box-shadow: inset 0 0 20px rgba(135,206,235,.4), 0 0 30px rgba(135,206,235,.15); } 50% { box-shadow: inset 0 0 30px rgba(135,206,235,.7), 0 0 60px rgba(135,206,235,.3); } 100% { box-shadow: inset 0 0 20px rgba(135,206,235,.4), 0 0 30px rgba(135,206,235,.15); }
}
@keyframes sc3-lightray {
  0% { transform: rotate(12deg) translateX(0); opacity: .6; } 50% { transform: rotate(18deg) translateX(5px); opacity: .9; } 100% { transform: rotate(12deg) translateX(0); opacity: .6; }
}
@keyframes sc3-sway {
  0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1.5deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-1.5deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes sc3-dustdrift {
  0% { background-position: 0% 0%; } 50% { background-position: 20% 30%; } 100% { background-position: 0% 0%; }
}

/* Scene: house-of-holiness-fidelia-speranza */
.scn-house-of-holiness-fidelia-speranza {
  background:
    linear-gradient(180deg, #fffaf0 0%, #fdf5e6 30%, #fff8dc 60%, #f0e68c 100%),
    radial-gradient(ellipse at 50% 80%, #fff8dc 0%, transparent 70%);
}
.scn-house-of-holiness-fidelia-speranza .sc4-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0f8ff 0%, #fff8dc 100%);
  animation: sc4-skyshift 20s ease-in-out infinite alternate;
}
.scn-house-of-holiness-fidelia-speranza .sc4-sun {
  position: absolute; top: 10%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fffacd 0%, #ffd700 30%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 80px 30px rgba(255,215,0,.2);
  animation: sc4-sunpulse 10s ease-in-out infinite;
}
.scn-house-of-holiness-fidelia-speranza .sc4-figure1 {
  position: absolute; bottom: 25%; left: 42%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #f0e68c 0%, #bdb76b 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-sway1 8s ease-in-out infinite;
}
.scn-house-of-holiness-fidelia-speranza .sc4-figure2 {
  position: absolute; bottom: 25%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #f0e68c 0%, #bdb76b 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-sway2 8s ease-in-out infinite 0.3s;
}
.scn-house-of-holiness-fidelia-speranza .sc4-arm {
  position: absolute; bottom: 40%; left: 44%; width: 14px; height: 8px;
  background: #bdb76b;
  border-radius: 40% 40% 0 0;
  transform-origin: right center;
  animation: sc4-armlink 8s ease-in-out infinite 0.15s;
}
.scn-house-of-holiness-fidelia-speranza .sc4-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #f5f5dc 0%, #ece5b6 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.1);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-house-of-holiness-fidelia-speranza .sc4-beams {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background:
    linear-gradient(110deg, rgba(255,255,200,.1) 0%, transparent 20%, rgba(255,255,200,.08) 40%, transparent 60%, rgba(255,255,200,.05) 80%, transparent 100%);
  animation: sc4-beamsweep 30s linear infinite;
}
@keyframes sc4-skyshift {
  0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; }
}
@keyframes sc4-sunpulse {
  0% { transform: translateX(-50%) scale(1); opacity: .85; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: .85; }
}
@keyframes sc4-sway1 {
  0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes sc4-sway2 {
  0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes sc4-armlink {
  0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); }
}
@keyframes sc4-beamsweep {
  0% { background-position: 0% 0%; } 50% { background-position: 100% 100%; } 100% { background-position: 0% 0%; }
}

/* glossary-v : close-up book spread */
.scn-glossary-v {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 30%, #8b7355 0%, transparent 50%);
}
.scn-glossary-v .page-left,
.scn-glossary-v .page-right {
  position: absolute;
  bottom: 20%;
  width: 35%;
  height: 50%;
  background: linear-gradient(180deg, #f5f0e0 0%, #e0d8c0 100%);
  border-radius: 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-glossary-v .page-left {
  left: 12%;
  transform: rotate(-2deg);
}
.scn-glossary-v .page-right {
  right: 12%;
  transform: rotate(2deg);
}
.scn-glossary-v .spine {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 6%;
  height: 50%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%);
  border-radius: 4%;
  transform: translateX(-50%);
}
.scn-glossary-v .lamp {
  position: absolute;
  top: 15%;
  left: 25%;
  width: 12%;
  height: 8%;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: gv-lamp 3s ease-in-out infinite;
}
.scn-glossary-v .glow {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 20%;
  height: 30%;
  background: radial-gradient(ellipse, rgba(255,215,0,0.4) 0%, transparent 70%);
  pointer-events: none;
  animation: gv-glow 3s ease-in-out infinite alternate;
}
.scn-glossary-v .bookmark {
  position: absolute;
  bottom: 22%;
  left: 48%;
  width: 1.5%;
  height: 25%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: gv-bookmark 6s ease-in-out infinite;
}
.scn-glossary-v .word-marker {
  position: absolute;
  bottom: 35%;
  left: 28%;
  width: 8%;
  height: 2%;
  background: rgba(200, 85, 61, 0.5);
  border-radius: 2px;
  animation: gv-word 8s linear infinite;
}
@keyframes gv-lamp {
  0%,100% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-8deg) scale(1.05); }
}
@keyframes gv-glow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes gv-bookmark {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-4px); }
}
@keyframes gv-word {
  0% { left: 28%; }
  25% { left: 35%; }
  50% { left: 42%; }
  75% { left: 35%; }
  100% { left: 28%; }
}

/* glossary-w : wide desk with papers */
.scn-glossary-w {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 20%, #7a6a5a 0%, transparent 50%);
}
.scn-glossary-w .desk {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%);
  border-radius: 10% 10% 0 0;
}
.scn-glossary-w .paper1,
.scn-glossary-w .paper2,
.scn-glossary-w .paper3 {
  position: absolute;
  width: 25%;
  height: 30%;
  background: linear-gradient(135deg, #f5f0e0 0%, #e0d8c0 100%);
  border-radius: 2%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-glossary-w .paper1 {
  left: 8%;
  bottom: 15%;
  transform: rotate(-5deg);
  animation: gw-paper1 12s ease-in-out infinite;
}
.scn-glossary-w .paper2 {
  left: 35%;
  bottom: 15%;
  transform: rotate(3deg);
  animation: gw-paper2 12s ease-in-out infinite 2s;
}
.scn-glossary-w .paper3 {
  right: 8%;
  bottom: 15%;
  transform: rotate(-2deg);
  animation: gw-paper3 12s ease-in-out infinite 4s;
}
.scn-glossary-w .inkwell {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 6%;
  height: 10%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20%;
}
.scn-glossary-w .quill {
  position: absolute;
  bottom: 25%;
  left: 58%;
  width: 2%;
  height: 30%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a880 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: gw-quill 4s ease-in-out infinite;
}
.scn-glossary-w .candle {
  position: absolute;
  bottom: 50%;
  right: 20%;
  width: 4%;
  height: 15%;
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a0 100%);
  border-radius: 30% 30% 10% 10%;
}
.scn-glossary-w .candle-glow {
  position: absolute;
  bottom: 60%;
  right: 18%;
  width: 8%;
  height: 20%;
  background: radial-gradient(ellipse, rgba(255,200,100,0.5) 0%, transparent 70%);
  animation: gw-candle-glow 2s ease-in-out infinite alternate;
}
@keyframes gw-paper1 {
  0%,100% { bottom: 15%; transform: rotate(-5deg); }
  50% { bottom: 12%; transform: rotate(-3deg); }
}
@keyframes gw-paper2 {
  0%,100% { bottom: 15%; transform: rotate(3deg); }
  50% { bottom: 12%; transform: rotate(5deg); }
}
@keyframes gw-paper3 {
  0%,100% { bottom: 15%; transform: rotate(-2deg); }
  50% { bottom: 12%; transform: rotate(0deg); }
}
@keyframes gw-quill {
  0%,100% { transform: rotate(15deg); }
  50% { transform: rotate(20deg); }
}
@keyframes gw-candle-glow {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

/* glossary-y : vertical bookshelf */
.scn-glossary-y {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 10%, #5a4a3a 0%, transparent 50%);
}
.scn-glossary-y .shelf-back {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 100%;
  background: linear-gradient(180deg, #6b5b45 0%, #4a3a2a 100%);
}
.scn-glossary-y .shelf-board {
  position: absolute;
  left: 5%;
  right: 5%;
  height: 3%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%);
  border-radius: 2px;
}
.scn-glossary-y .shelf-board.top { top: 25%; }
.scn-glossary-y .shelf-board.mid { top: 50%; }
.scn-glossary-y .shelf-board.bot { top: 75%; }
.scn-glossary-y .books-left,
.scn-glossary-y .books-mid,
.scn-glossary-y .books-right {
  position: absolute;
  width: 20%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
}
.scn-glossary-y .books-left {
  left: 8%;
  top: 26%;
  height: 20%;
  animation: gy-books 10s ease-in-out infinite;
}
.scn-glossary-y .books-mid {
  left: 30%;
  top: 51%;
  height: 20%;
  animation: gy-books 10s ease-in-out infinite 3s;
}
.scn-glossary-y .books-right {
  right: 8%;
  top: 76%;
  height: 18%;
  animation: gy-books 10s ease-in-out infinite 6s;
}
.scn-glossary-y .bookmark-spine {
  position: absolute;
  left: 28%;
  top: 30%;
  width: 0.8%;
  height: 15%;
  background: #c8553d;
  border-radius: 2px;
  animation: gy-spine 4s ease-in-out infinite alternate;
}
.scn-glossary-y .lamp-top {
  position: absolute;
  top: 5%;
  left: 40%;
  width: 10%;
  height: 15%;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255,215,0,0.5);
  animation: gy-lamp 3s ease-in-out infinite;
}
@keyframes gy-books {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(3px); }
}
@keyframes gy-spine {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.8; }
}
@keyframes gy-lamp {
  0%,100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(-2deg); }
}

.scn-redcrosse-consoles-duessa {
  background: linear-gradient(180deg, #f4a460 0%, #d2691e 30%, #8b4513 60%, #2f1a0e 100%), radial-gradient(ellipse at 50% 0%, #ffdab9 0%, transparent 70%);
}
.scn-redcrosse-consoles-duessa .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffa07a 0%, #cd853f 50%, #8b7355 100%);
  animation: rc1-sky 20s ease-in-out infinite alternate;
}
.scn-redcrosse-consoles-duessa .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #556b2f 0%, #2f4f2f 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: rc1-hills 18s ease-in-out infinite alternate;
}
.scn-redcrosse-consoles-duessa .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b4226 0%, #3e2723 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-redcrosse-consoles-duessa .tree-trunk {
  position: absolute; bottom: 25%; left: 30%; width: 12px; height: 60px;
  background: linear-gradient(90deg, #4e342e, #3e2723);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: rc1-tree-trunk 8s ease-in-out infinite;
}
.scn-redcrosse-consoles-duessa .tree-canopy {
  position: absolute; bottom: 55%; left: 26%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #2e7d32 0%, #1b5e20 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: rc1-tree-canopy 10s ease-in-out infinite alternate;
}
.scn-redcrosse-consoles-duessa .rider-left {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc1-rider-left 6s ease-in-out infinite;
}
.scn-redcrosse-consoles-duessa .rider-right {
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc1-rider-right 6s ease-in-out infinite 3s;
}
.scn-redcrosse-consoles-duessa .sun {
  position: absolute; bottom: 45%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,140,0,.5);
  animation: rc1-sun 15s ease-in-out infinite alternate;
}
.scn-redcrosse-consoles-duessa .cloud {
  position: absolute; top: 20%; left: 10%; width: 70px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: rc1-cloud 40s linear infinite;
}
@keyframes rc1-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes rc1-hills {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes rc1-tree-trunk {
  0%, 100% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.02) rotate(2deg); }
}
@keyframes rc1-tree-canopy {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.03) translateY(-3px); }
  100% { transform: scale(0.98) translateY(2px); }
}
@keyframes rc1-rider-left {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes rc1-rider-right {
  0% { transform: translateY(0) rotate(1deg); }
  25% { transform: translateY(-2px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes rc1-sun {
  0% { transform: scale(1) translateX(0); opacity: 0.8; }
  50% { transform: scale(1.1) translateX(-5px); opacity: 1; }
  100% { transform: scale(0.95) translateX(3px); opacity: 0.7; }
}
@keyframes rc1-cloud {
  0% { transform: translateX(-80px); }
  100% { transform: translateX(120vw); }
}

.scn-they-go-to-shade {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 60%, #d2b48c 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%);
}
.scn-they-go-to-shade .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #f0e68c 100%);
  animation: ts2-sky 12s ease-in-out infinite alternate;
}
.scn-they-go-to-shade .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8fbc8f 0%, #6b8e23 100%);
  border-radius: 40% 60% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
}
.scn-they-go-to-shade .tree1-trunk {
  position: absolute; bottom: 30%; left: 20%; width: 14px; height: 80px;
  background: linear-gradient(90deg, #5d4037, #3e2723);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: ts2-trunk1 10s ease-in-out infinite alternate;
}
.scn-they-go-to-shade .tree1-canopy {
  position: absolute; bottom: 60%; left: 10%; width: 100px; height: 70px;
  background: radial-gradient(ellipse at 50% 50%, #4caf50 0%, #2e7d32 50%, #1b5e20 100%);
  border-radius: 50% 60% 50% 40% / 60% 50% 50% 40%;
  filter: blur(1px);
  animation: ts2-canopy1 8s ease-in-out infinite alternate;
}
.scn-they-go-to-shade .tree2-trunk {
  position: absolute; bottom: 30%; left: 60%; width: 14px; height: 80px;
  background: linear-gradient(90deg, #5d4037, #3e2723);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: ts2-trunk2 10s ease-in-out infinite alternate 2s;
}
.scn-they-go-to-shade .tree2-canopy {
  position: absolute; bottom: 60%; left: 50%; width: 100px; height: 70px;
  background: radial-gradient(ellipse at 50% 50%, #4caf50 0%, #2e7d32 50%, #1b5e20 100%);
  border-radius: 60% 50% 40% 50% / 50% 60% 40% 50%;
  filter: blur(1px);
  animation: ts2-canopy2 8s ease-in-out infinite alternate 1s;
}
.scn-they-go-to-shade .shadow {
  position: absolute; bottom: 20%; left: 25%; width: 150px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.2) 0%, transparent 100%);
  border-radius: 50%;
  animation: ts2-shadow 6s ease-in-out infinite alternate;
}
.scn-they-go-to-shade .figure1 {
  position: absolute; bottom: 22%; left: 35%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ts2-fig1 5s ease-in-out infinite;
}
.scn-they-go-to-shade .figure2 {
  position: absolute; bottom: 22%; left: 45%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ts2-fig2 5s ease-in-out infinite 2s;
}
@keyframes ts2-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ts2-trunk1 {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) rotate(2deg); }
}
@keyframes ts2-trunk2 {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) rotate(-2deg); }
}
@keyframes ts2-canopy1 {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(2deg); }
  100% { transform: scale(0.98) rotate(-2deg); }
}
@keyframes ts2-canopy2 {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(-2deg); }
  100% { transform: scale(0.98) rotate(2deg); }
}
@keyframes ts2-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.1); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.5; }
}
@keyframes ts2-fig1 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ts2-fig2 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-fradubio-tree-revealed {
  background: linear-gradient(180deg, #fff8dc 0%, #ffd700 20%, #b8860b 50%, #2f1a0e 100%), radial-gradient(ellipse at 50% 0%, #ffffe0 0%, transparent 70%);
}
.scn-fradubio-tree-revealed .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fff8dc 0%, #ffebcd 50%, #ffd700 100%);
  animation: ft3-sky 8s ease-in-out infinite alternate;
}
.scn-fradubio-tree-revealed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3e2723 0%, #1a0a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.8);
}
.scn-fradubio-tree-revealed .tree-trunk {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 100px;
  background: linear-gradient(90deg, #2c1e16, #1a1008);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: ft3-trunk 6s ease-in-out infinite alternate;
}
.scn-fradubio-tree-revealed .branches-left {
  position: absolute; bottom: 70%; left: 35%; width: 60px; height: 8px;
  background: linear-gradient(180deg, #2c1e16, #1a1008);
  border-radius: 50% 20% 20% 50%;
  transform-origin: right center;
  animation: ft3-branch-left 8s ease-in-out infinite alternate;
}
.scn-fradubio-tree-revealed .branches-right {
  position: absolute; bottom: 65%; left: 55%; width: 60px; height: 8px;
  background: linear-gradient(180deg, #2c1e16, #1a1008);
  border-radius: 20% 50% 50% 20%;
  transform-origin: left center;
  animation: ft3-branch-right 8s ease-in-out infinite alternate 2s;
}
.scn-fradubio-tree-revealed .knight {
  position: absolute; bottom: 12%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ft3-knight 5s ease-in-out infinite;
}
.scn-fradubio-tree-revealed .sun-rays {
  position: absolute; top: 0; left: 50%; width: 120px; height: 200px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,215,0,.3) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: ft3-rays 12s ease-in-out infinite alternate;
}
.scn-fradubio-tree-revealed .shadow {
  position: absolute; bottom: 5%; left: 20%; width: 160px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: ft3-shadow 4s ease-in-out infinite alternate;
}
@keyframes ft3-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ft3-trunk {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.03) rotate(2deg); }
  100% { transform: translateX(-50%) scaleY(0.97) rotate(-2deg); }
}
@keyframes ft3-branch-left {
  0% { transform: rotate(20deg) scaleX(1); }
  50% { transform: rotate(25deg) scaleX(1.05); }
  100% { transform: rotate(15deg) scaleX(0.95); }
}
@keyframes ft3-branch-right {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(-25deg) scaleX(1.05); }
  100% { transform: rotate(-15deg) scaleX(0.95); }
}
@keyframes ft3-knight {
  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 ft3-rays {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: 0.6; }
  50% { transform: translateX(-50%) scale(1.1) rotate(5deg); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.9) rotate(-5deg); opacity: 0.4; }
}
@keyframes ft3-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.7; }
  100% { transform: scaleX(0.8); opacity: 0.3; }
}

.scn-redcrosse-plucks-bough {
  background: linear-gradient(180deg, #fff8dc 0%, #ffd700 20%, #b8860b 50%, #2f1a0e 100%), radial-gradient(ellipse at 50% 0%, #ffffe0 0%, transparent 70%);
}
.scn-redcrosse-plucks-bough .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fff8dc 0%, #ffebcd 50%, #ffd700 100%);
  animation: rb4-sky 10s ease-in-out infinite alternate;
}
.scn-redcrosse-plucks-bough .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3e2723 0%, #1a0a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-redcrosse-plucks-bough .tree-trunk {
  position: absolute; bottom: 20%; left: 50%; width: 18px; height: 120px;
  background: linear-gradient(90deg, #2c1e16, #1a1008);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: rb4-trunk 8s ease-in-out infinite alternate;
}
.scn-redcrosse-plucks-bough .branch {
  position: absolute; bottom: 75%; left: 48%; width: 50px; height: 6px;
  background: linear-gradient(180deg, #2c1e16, #1a1008);
  border-radius: 50% 20% 20% 50%;
  transform-origin: right center;
  transform: rotate(-30deg);
  animation: rb4-branch 6s ease-in-out infinite alternate;
}
.scn-redcrosse-plucks-bough .hand {
  position: absolute; bottom: 45%; left: 35%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom right;
  animation: rb4-hand 4s ease-in-out infinite;
}
.scn-redcrosse-plucks-bough .blood-drop1 {
  position: absolute; bottom: 40%; left: 50%; width: 6px; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, #a0461a 0%, transparent 100%);
  border-radius: 50%;
  animation: rb4-drop1 3s ease-in infinite;
}
.scn-redcrosse-plucks-bough .blood-drop2 {
  position: absolute; bottom: 35%; left: 52%; width: 4px; height: 8px;
  background: radial-gradient(ellipse at 50% 100%, #a0461a 0%, transparent 100%);
  border-radius: 50%;
  animation: rb4-drop2 3.5s ease-in infinite 1s;
}
.scn-redcrosse-plucks-bough .blood-splatter {
  position: absolute; bottom: 38%; left: 46%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #a0461a 0%, #7a3010 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(160,70,26,.4);
  animation: rb4-splatter 5s ease-in-out infinite alternate;
}
@keyframes rb4-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes rb4-trunk {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02) rotate(1deg); }
  100% { transform: translateX(-50%) scaleY(0.98) rotate(-1deg); }
}
@keyframes rb4-branch {
  0% { transform: rotate(-30deg) scaleX(1); }
  50% { transform: rotate(-25deg) scaleX(1.04); }
  100% { transform: rotate(-35deg) scaleX(0.96); }
}
@keyframes rb4-hand {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(5px,-5px) rotate(15deg); }
  50% { transform: translate(-2px,2px) rotate(-5deg); }
  75% { transform: translate(3px,-3px) rotate(10deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes rb4-drop1 {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(30px) scale(0.9); opacity: 0.7; }
  100% { transform: translateY(60px) scale(0.8); opacity: 0; }
}
@keyframes rb4-drop2 {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(25px) scale(0.9); opacity: 0.7; }
  100% { transform: translateY(50px) scale(0.8); opacity: 0; }
}
@keyframes rb4-splatter {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.8); opacity: 0.3; }
}

.scn-notes-allegory-canto-ii { background: linear-gradient(135deg, #2a1f1a 0%, #3d2b24 40%, #1c1310 100%), radial-gradient(ellipse at 50% 30%, #4a3428 0%, transparent 70%); }
.scn-notes-allegory-canto-ii .arch { position:absolute; top:5%; left:15%; right:15%; height:70%; background: linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); animation: al2-arch 20s ease-in-out infinite alternate; }
.scn-notes-allegory-canto-ii .halo { position:absolute; top:28%; left:30%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,230,180,.8) 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,200,100,.3), 0 0 60px 20px rgba(255,200,100,.1); animation: al2-halo 5s ease-in-out infinite alternate; }
.scn-notes-allegory-canto-ii .figure-holiness { position:absolute; bottom:28%; left:32%; width:28px; height:50px; background: linear-gradient(180deg, #6b4c3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: al2-figure-h 8s ease-in-out infinite; }
.scn-notes-allegory-canto-ii .figure-falsehood { position:absolute; bottom:25%; left:52%; width:26px; height:48px; background: linear-gradient(180deg, #4a3a32 0%, #1c1310 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: al2-figure-f 6s ease-in-out infinite reverse; }
.scn-notes-allegory-canto-ii .mask { position:absolute; bottom:55%; left:53%; width:16px; height:12px; background: #2a1e18; border-radius: 50% 50% 30% 30%; box-shadow: 0 -2px 4px rgba(0,0,0,.5); animation: al2-mask 8s ease-in-out infinite; }
.scn-notes-allegory-canto-ii .lamp { position:absolute; bottom:35%; left:45%; width:8px; height:16px; background: radial-gradient(ellipse at 50% 20%, #ffd070, #b08030); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 20px 6px rgba(255,200,80,.6), 0 0 40px 12px rgba(255,200,80,.2); animation: al2-lamp 3s ease-in-out infinite alternate; }
.scn-notes-allegory-canto-ii .book { position:absolute; bottom:22%; left:40%; width:20px; height:14px; background: linear-gradient(180deg, #5a3a2a, #3a1a0a); border-radius: 5% 5% 10% 10%; box-shadow: inset 2px 2px 4px rgba(255,255,255,.1), inset -2px -2px 4px rgba(0,0,0,.4); transform: rotate(-5deg); animation: al2-book 12s ease-in-out infinite; }
.scn-notes-allegory-canto-ii .shadow { position:absolute; bottom:20%; left:28%; right:50%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(4px); animation: al2-shadow 10s ease-in-out infinite alternate; }
@keyframes al2-arch { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes al2-halo { 0% { opacity:.7; transform: scale(.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.8; transform: scale(1); } }
@keyframes al2-figure-h { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes al2-figure-f { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(5px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes al2-mask { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes al2-lamp { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(1); opacity:.85; } }
@keyframes al2-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes al2-shadow { 0% { opacity:.4; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.05); } 100% { opacity:.4; transform: scaleX(1); } }

.scn-notes-historical-allegory-ii { background: linear-gradient(180deg, #1e1a16 0%, #2c241e 40%, #14100c 100%), radial-gradient(ellipse at 50% 20%, #3a2c24 0%, transparent 70%); }
.scn-notes-historical-allegory-ii .church-window { position:absolute; top:8%; left:35%; right:35%; height:60%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e18 100%); border-radius: 40% 40% 5% 5% / 60% 60% 5% 5%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); animation: hi2-window 25s ease-in-out infinite alternate; }
.scn-notes-historical-allegory-ii .figure-church { position:absolute; bottom:30%; left:45%; width:30px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #1c1410 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hi2-figure 10s ease-in-out infinite; }
.scn-notes-historical-allegory-ii .cross { position:absolute; top:20%; left:48%; width:10px; height:30px; background: #3a2a1a; border-radius: 20%; box-shadow: 0 0 8px 2px rgba(180,140,80,.2); transform: translateX(-50%); animation: hi2-cross 15s ease-in-out infinite alternate; }
.scn-notes-historical-allegory-ii .book { position:absolute; bottom:22%; left:42%; width:22px; height:16px; background: linear-gradient(180deg, #5a3a2a, #2a1a0a); border-radius: 5%; box-shadow: 1px 1px 4px rgba(0,0,0,.5); transform: rotate(-3deg); animation: hi2-book 12s ease-in-out infinite; }
.scn-notes-historical-allegory-ii .flame { position:absolute; bottom:28%; left:48%; width:6px; height:10px; background: radial-gradient(ellipse at 50% 20%, #ffd080, #b06030); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 15px 5px rgba(255,200,80,.5), 0 0 30px 10px rgba(255,200,80,.2); animation: hi2-flame 2.5s ease-in-out infinite alternate; }
.scn-notes-historical-allegory-ii .shadow { position:absolute; bottom:18%; left:40%; right:55%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(6px); animation: hi2-shadow 18s ease-in-out infinite alternate; }
.scn-notes-historical-allegory-ii .pulpit { position:absolute; bottom:22%; left:55%; width:24px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e18 100%); border-radius: 20% 20% 5% 5% / 40% 40% 5% 5%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.4); animation: hi2-pulpit 20s ease-in-out infinite; }
@keyframes hi2-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes hi2-figure { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(2px) rotate(1deg); } 60% { transform: translateX(-1px) rotate(0); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes hi2-cross { 0% { transform: translateX(-50%) scaleY(1); opacity:.7; } 50% { transform: translateX(-50%) scaleY(1.05); opacity:.9; } 100% { transform: translateX(-50%) scaleY(1); opacity:.75; } }
@keyframes hi2-book { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes hi2-flame { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 50% { transform: scaleY(1.3) translateY(-2px); opacity:1; } 100% { transform: scaleY(.95) translateY(0); opacity:.85; } }
@keyframes hi2-shadow { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(1.1); } 100% { opacity:.3; transform: scaleX(1); } }
@keyframes hi2-pulpit { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-notes-boötes { background: linear-gradient(180deg, #1a1820 0%, #28243a 40%, #0e0c14 100%), radial-gradient(ellipse at 50% 10%, #3a3250 0%, transparent 70%); }
.scn-notes-boötes .window { position:absolute; top:2%; left:25%; right:25%; height:45%; background: radial-gradient(circle at 50% 50%, #0a0a1a 0%, #1a1828 80%); border-radius: 50%; box-shadow: inset 0 0 60px rgba(0,0,0,.8), 0 0 20px 5px rgba(100,80,180,.1); animation: boo-window 30s ease-in-out infinite alternate; }
.scn-notes-boötes .figure { position:absolute; bottom:22%; left:45%; width:24px; height:40px; background: linear-gradient(180deg, #3a2e2a 0%, #14100c 100%); border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: boo-figure 12s ease-in-out infinite; }
.scn-notes-boötes .desk { position:absolute; bottom:18%; left:35%; right:35%; height:8%; background: linear-gradient(180deg, #3a2a22 0%, #1a1410 100%); border-radius: 5%; box-shadow: 0 3px 6px rgba(0,0,0,.5); animation: boo-desk 20s ease-in-out infinite; }
.scn-notes-boötes .telescope { position:absolute; bottom:30%; left:52%; width:6px; height:24px; background: linear-gradient(180deg, #4a3a32, #2a1e18); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform-origin: bottom center; transform: rotate(-15deg); animation: boo-telescope 15s ease-in-out infinite; }
.scn-notes-boötes .book { position:absolute; bottom:22%; left:38%; width:18px; height:12px; background: linear-gradient(180deg, #5a3a2a, #2a1a0a); border-radius: 5%; transform: rotate(3deg); box-shadow: 1px 1px 3px rgba(0,0,0,.4); animation: boo-book 18s ease-in-out infinite; }
.scn-notes-boötes .candle { position:absolute; bottom:24%; left:50%; width:6px; height:14px; background: linear-gradient(180deg, #d4a060 0%, #6b4020 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 12px 4px rgba(220,180,100,.5); animation: boo-candle 4s ease-in-out infinite alternate; }
.scn-notes-boötes .star-1 { position:absolute; top:12%; left:30%; width:4px; height:4px; background: radial-gradient(circle, #c0d0ff, #6070b0); border-radius:50%; box-shadow: 0 0 6px 2px rgba(150,180,255,.6); animation: boo-star1 3s ease-in-out infinite; }
.scn-notes-boötes .star-2 { position:absolute; top:10%; left:60%; width:4px; height:4px; background: radial-gradient(circle, #d0e0ff, #6880c0); border-radius:50%; box-shadow: 0 0 8px 3px rgba(160,190,255,.5); animation: boo-star2 5s ease-in-out infinite alternate; }
@keyframes boo-window { 0% { opacity:.6; box-shadow: inset 0 0 60px rgba(0,0,0,.8); } 50% { opacity:.8; box-shadow: inset 0 0 80px rgba(0,0,0,.6); } 100% { opacity:.6; box-shadow: inset 0 0 60px rgba(0,0,0,.8); } }
@keyframes boo-figure { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(2px) rotate(1deg); } 60% { transform: translateX(-1px) rotate(0); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes boo-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes boo-telescope { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-14deg) scaleY(1.02); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes boo-book { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes boo-candle { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.2); opacity:1; } 100% { transform: scaleY(.95); opacity:.85; } }
@keyframes boo-star1 { 0% { opacity:.3; transform: scale(.8); } 30% { opacity:1; transform: scale(1.2); } 60% { opacity:.6; transform: scale(1); } 100% { opacity:.3; transform: scale(.8); } }
@keyframes boo-star2 { 0% { opacity:.2; transform: scale(.7); } 40% { opacity:1; transform: scale(1.3); } 100% { opacity:.2; transform: scale(.7); } }

.scn-notes-hesperus { background: linear-gradient(180deg, #1c1a28 0%, #2c2840 30%, #0e0c18 100%), radial-gradient(ellipse at 50% 10%, #3c3850 0%, transparent 70%); }
.scn-notes-hesperus .window { position:absolute; top:5%; left:20%; right:20%; height:50%; background: radial-gradient(ellipse at 50% 20%, #2a2a4a 0%, #101020 80%); border-radius: 10% 10% 40% 40% / 30% 30% 60% 60%; box-shadow: inset 0 0 40px rgba(0,0,0,.7); animation: hes-window 25s ease-in-out infinite alternate; }
.scn-notes-hesperus .star-hesperus { position:absolute; top:15%; left:50%; width:8px; height:8px; background: radial-gradient(circle, #ffddaa 0%, #ddaa60 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(255,200,100,.6), 0 0 60px 20px rgba(255,200,100,.2); animation: hes-star 4s ease-in-out infinite alternate; }
.scn-notes-hesperus .figure { position:absolute; bottom:15%; left:45%; width:26px; height:42px; background: linear-gradient(180deg, #3a2e2a 0%, #14100c 100%); border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: hes-figure 14s ease-in-out infinite; }
.scn-notes-hesperus .chair { position:absolute; bottom:12%; left:40%; right:50%; height:16%; background: linear-gradient(180deg, #2a1e18 0%, #14100c 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: hes-chair 20s ease-in-out infinite; }
.scn-notes-hesperus .candle { position:absolute; bottom:25%; left:52%; width:6px; height:12px; background: linear-gradient(180deg, #d4a060 0%, #6b4020 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 12px 4px rgba(220,180,100,.4); animation: hes-candle 3.5s ease-in-out infinite alternate; }
.scn-notes-hesperus .table { position:absolute; bottom:18%; left:48%; right:52%; height:6%; background: linear-gradient(180deg, #3a2a22 0%, #1a1410 100%); border-radius: 5%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: hes-table 22s ease-in-out infinite; }
.scn-notes-hesperus .shadow { position:absolute; bottom:8%; left:38%; right:55%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(8px); animation: hes-shadow 16s ease-in-out infinite alternate; }
@keyframes hes-window { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes hes-star { 0% { transform: scale(.9); box-shadow: 0 0 20px 5px rgba(255,200,100,.5); } 50% { transform: scale(1.15); box-shadow: 0 0 40px 12px rgba(255,200,100,.7); } 100% { transform: scale(.9); box-shadow: 0 0 20px 5px rgba(255,200,100,.5); } }
@keyframes hes-figure { 0% { transform: translateX(0) rotate(-2deg) scaleY(1); } 30% { transform: translateX(1px) rotate(1deg) scaleY(1.02); } 60% { transform: translateX(-1px) rotate(0) scaleY(1); } 100% { transform: translateX(0) rotate(-2deg) scaleY(1); } }
@keyframes hes-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hes-candle { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.15); opacity:1; } 100% { transform: scaleY(.9); opacity:.85; } }
@keyframes hes-table { 0% { transform: translateY(0); } 50% { transform: translateY(-.5px); } 100% { transform: translateY(0); } }
@keyframes hes-shadow { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(1.05); } 100% { opacity:.3; transform: scaleX(1); } }

.scn-archimago-creates-false-squire { background: linear-gradient(180deg, #0a0a14 0%, #1a0a1a 50%, #0d0d1a 100%), radial-gradient(ellipse at 50% 60%, #2a1a2a 0%, transparent 60%); }
.scn-archimago-creates-false-squire .circle { position:absolute; inset:10% 20% 40% 20%; border:2px solid #2a4a3a; border-radius:50%; animation:ac-rotate 20s linear infinite; }
.scn-archimago-creates-false-squire .mist { position:absolute; inset:20%; background:radial-gradient(circle, #2a4a3a 0%, transparent 70%); filter:blur(10px); animation:ac-morph 8s ease-in-out infinite; }
.scn-archimago-creates-false-squire .figure { position:absolute; bottom:20%; left:45%; width:20px; height:50px; background:linear-gradient(180deg, #3a4a3a, #1a2a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ac-pulse 4s ease-in-out infinite; }
.scn-archimago-creates-false-squire .glow { position:absolute; bottom:25%; left:45%; width:30px; height:30px; background:radial-gradient(circle, #4a6a4a, transparent 70%); animation:ac-flicker 3s ease-in-out infinite alternate; }
.scn-archimago-creates-false-squire .shackle { position:absolute; bottom:20%; left:35%; width:30px; height:6px; background:#1a2a1a; border-radius:4px; animation:ac-swing 5s ease-in-out infinite; }
.scn-archimago-creates-false-squire .wisp { position:absolute; top:30%; left:60%; width:12px; height:12px; background:#4a6a4a; border-radius:50%; filter:blur(4px); animation:ac-drift 15s linear infinite; }
@keyframes ac-rotate { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(180deg) scale(1.05); } 100% { transform:rotate(360deg) scale(1); } }
@keyframes ac-morph { 0% { transform:scale(0.8); opacity:0.3; } 50% { transform:scale(1.2); opacity:0.7; } 100% { transform:scale(0.8); opacity:0.3; } }
@keyframes ac-pulse { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-4px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ac-flicker { 0% { opacity:0.5; box-shadow:0 0 15px #4a6a4a; } 100% { opacity:1; box-shadow:0 0 30px #6a9a6a; } }
@keyframes ac-swing { 0% { transform:rotate(-10deg); } 50% { transform:rotate(10deg); } 100% { transform:rotate(-10deg); } }
@keyframes ac-drift { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(20px) translateY(-10px); } 100% { transform:translateX(0) translateY(0); } }

.scn-archimago-betrays-knight { background: linear-gradient(90deg, #1a0a0a 0%, #2a1414 50%, #1a0a0a 100%), radial-gradient(ellipse at 80% 40%, #3a1a1a 0%, transparent 70%); }
.scn-archimago-betrays-knight .figure-run { position:absolute; bottom:30%; left:-10%; width:30px; height:50px; background:linear-gradient(180deg, #2a1a1a, #0a0a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ab-lunge 6s ease-in-out infinite alternate; }
.scn-archimago-betrays-knight .knight-start { position:absolute; bottom:20%; right:30%; width:40px; height:60px; background:linear-gradient(180deg, #3a2a2a, #1a1a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ab-start 4s ease-in-out infinite; }
.scn-archimago-betrays-knight .bed { position:absolute; bottom:15%; right:25%; width:80px; height:20px; background:linear-gradient(180deg, #4a3a3a, #2a1a1a); border-radius:8px; box-shadow:inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-archimago-betrays-knight .shadow { position:absolute; bottom:10%; left:0; width:100%; height:30%; background:linear-gradient(180deg, transparent, #0a0000); animation:ab-creep 8s ease-in-out infinite; }
.scn-archimago-betrays-knight .hand { position:absolute; bottom:30%; right:35%; width:15px; height:20px; background:#2a1a1a; border-radius:50% 50% 0 0; transform:rotate(30deg); animation:ab-reach 3s ease-in-out infinite alternate; }
.scn-archimago-betrays-knight .drape { position:absolute; top:0; right:0; width:40%; height:100%; background:linear-gradient(180deg, #1a0a0a, #0a0000); filter:blur(8px); animation:ab-billow 12s ease-in-out infinite; }
@keyframes ab-lunge { 0% { left:-10%; transform:translateY(0) rotate(0deg); } 50% { left:10%; transform:translateY(-5px) rotate(5deg); } 100% { left:40%; transform:translateY(0) rotate(0deg); } }
@keyframes ab-start { 0% { transform:translateY(0) scale(1); } 25% { transform:translateY(-20px) scale(1.1); } 50% { transform:translateY(0) scale(1); } 100% { transform:translateY(0) scale(1); } }
@keyframes ab-creep { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.2; } }
@keyframes ab-reach { 0% { transform:rotate(20deg) translateX(0); } 100% { transform:rotate(40deg) translateX(10px); } }
@keyframes ab-billow { 0% { transform:scaleX(1); opacity:0.8; } 50% { transform:scaleX(1.1); opacity:1; } 100% { transform:scaleX(1); opacity:0.8; } }

.scn-knight-sees-false-sight { background: linear-gradient(135deg, #2a1a0a 0%, #1a0a00 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 80%); }
.scn-knight-sees-false-sight .arch { position:absolute; inset:auto 20% 0 20%; height:85%; background:linear-gradient(90deg, #3a2a1a, #1a0a00, #3a2a1a); border-radius:40% 40% 0 0 / 20% 20% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-knight-sees-false-sight .knight { position:absolute; bottom:20%; left:25%; width:30px; height:70px; background:linear-gradient(180deg, #2a1a1a, #0a0a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ks-tremble 2s ease-in-out infinite; }
.scn-knight-sees-false-sight .embrace-l { position:absolute; bottom:25%; right:30%; width:25px; height:45px; background:linear-gradient(180deg, #4a3a2a, #2a1a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(10deg); animation:ks-embrace 4s ease-in-out infinite; }
.scn-knight-sees-false-sight .embrace-r { position:absolute; bottom:25%; right:22%; width:25px; height:45px; background:linear-gradient(180deg, #3a4a3a, #1a2a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-10deg); animation:ks-embrace 4s ease-in-out infinite reverse; }
.scn-knight-sees-false-sight .fire { position:absolute; bottom:15%; left:48%; width:20px; height:30px; background:radial-gradient(circle, #c8553d 0%, #a0461a 40%, transparent 70%); animation:ks-blaze 3s ease-in-out infinite alternate; }
.scn-knight-sees-false-sight .curtain { position:absolute; top:0; left:15%; width:20%; height:100%; background:linear-gradient(180deg, #5e1a1d, #2a0a0a); border-radius:0 0 50% 50%; animation:ks-drape 8s ease-in-out infinite; }
@keyframes ks-tremble { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-2px) rotate(-2deg); } 75% { transform:translateX(2px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ks-embrace { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(5deg) translateY(-3px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes ks-blaze { 0% { opacity:0.6; box-shadow:0 0 15px 5px #c8553d; } 100% { opacity:1; box-shadow:0 0 30px 10px #a0461a; } }
@keyframes ks-drape { 0% { transform:scaleX(1); } 50% { transform:scaleX(0.9); } 100% { transform:scaleX(1); } }

.scn-knight-leaves-una { background: linear-gradient(180deg, #3a4a5a 0%, #6a7a8e 30%, #c8b89a 60%, #8a7a5a 100%), radial-gradient(ellipse at 30% 20%, #e8d8b0 0%, transparent 50%); }
.scn-knight-leaves-una .sun { position:absolute; top:15%; left:25%; width:40px; height:40px; background:radial-gradient(circle, #f0e8c0, #c8b89a 60%, transparent 80%); animation:kl-dawn 15s ease-in-out infinite alternate; }
.scn-knight-leaves-una .horizon-line { position:absolute; bottom:40%; left:0; right:0; height:2px; background:linear-gradient(90deg, transparent, #8a7a5a, transparent); box-shadow:0 0 10px #c8b89a; }
.scn-knight-leaves-una .knight-ride { position:absolute; bottom:35%; left:5%; width:30px; height:40px; background:linear-gradient(180deg, #2a2a3a, #1a1a2a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:kl-ride 25s linear infinite; }
.scn-knight-leaves-una .una-stand { position:absolute; bottom:35%; right:30%; width:25px; height:45px; background:linear-gradient(180deg, #6a7a8e, #4a5a6a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:kl-sway 6s ease-in-out infinite; }
.scn-knight-leaves-una .tree-l { position:absolute; bottom:35%; left:15%; width:10px; height:80px; background:linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius:4px; transform:rotate(-5deg); animation:kl-sway 8s ease-in-out infinite reverse; }
.scn-knight-leaves-una .tree-r { position:absolute; bottom:35%; right:15%; width:12px; height:90px; background:linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius:4px; transform:rotate(5deg); animation:kl-sway 10s ease-in-out infinite; }
@keyframes kl-dawn { 0% { opacity:0.6; box-shadow:0 0 30px #c8b89a; } 100% { opacity:1; box-shadow:0 0 60px #f0e8c0; } }
@keyframes kl-ride { 0% { transform:translateX(0) scaleX(1); } 50% { transform:translateX(40vw) scaleX(0.95); } 100% { transform:translateX(80vw) scaleX(1); } }
@keyframes kl-sway { 0% { transform:rotate(-3deg) translateY(0); } 50% { transform:rotate(3deg) translateY(-2px); } 100% { transform:rotate(-3deg) translateY(0); } }

/* scene: sansloy-threatens-death */
.scn-sansloy-threatens-death {
  background: 
    linear-gradient(180deg, #6e9bc5 0%, #f3d778 45%, #c88a44 100%),
    radial-gradient(ellipse at 20% 90%, #ffd700 0%, transparent 50%);
}
.scn-sansloy-threatens-death .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #6e9bc5 0%, #a4c8e8 80%);
  animation: s1-sky 10s ease-in-out infinite alternate;
}
.scn-sansloy-threatens-death .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #c8a24e 0%, #8b6b2e 100%);
  border-radius: 30% 0 0 0;
  animation: s1-grass 8s ease-in-out infinite;
}
.scn-sansloy-threatens-death .horse {
  position:absolute; bottom:20%; left:20%; width:80px; height:60px;
  background: linear-gradient(135deg, #5a4030 0%, #36281a 100%);
  border-radius: 50% 20% 30% 50%;
  transform-origin: bottom center;
  animation: s1-horse 4s ease-in-out infinite;
}
.scn-sansloy-threatens-death .knight-attack {
  position:absolute; bottom:30%; left:45%; width:40px; height:70px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-attack 2.5s ease-in-out infinite;
}
.scn-sansloy-threatens-death .knight-fallen {
  position:absolute; bottom:18%; left:70%; width:50px; height:40px;
  background: linear-gradient(180deg, #7a6a5a 0%, #3a2a1a 100%);
  border-radius: 30% 60% 40% 70%;
  transform: rotate(-20deg);
  animation: s1-fallen 6s ease-in-out infinite;
}
.scn-sansloy-threatens-death .shadow {
  position:absolute; bottom:5%; left:40%; width:120px; height:8px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: s1-shadow 2.5s ease-in-out infinite alternate;
}
.scn-sansloy-threatens-death .sword-flash {
  position:absolute; bottom:55%; left:52%; width:6px; height:30px;
  background: radial-gradient(circle, #ffe066 0%, #ffbb33 60%);
  border-radius: 20%;
  box-shadow: 0 0 20px 8px #ffaa00;
  animation: s1-sword 0.8s ease-in-out infinite alternate;
}
@keyframes s1-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes s1-grass { 0% { transform:translateY(0) } 50% { transform:translateY(2px) } 100% { transform:translateY(0) } }
@keyframes s1-horse { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(-2deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes s1-attack { 0% { transform:translate(0,0) rotate(-5deg) } 40% { transform:translate(10px,-20px) rotate(15deg) } 70% { transform:translate(20px,-10px) rotate(-5deg) } 100% { transform:translate(0,0) rotate(0deg) } }
@keyframes s1-fallen { 0% { transform:rotate(-20deg) scale(1) } 50% { transform:rotate(-22deg) scale(1.02) } 100% { transform:rotate(-20deg) scale(1) } }
@keyframes s1-shadow { 0% { transform:scaleX(1) } 100% { transform:scaleX(1.3) } }
@keyframes s1-sword { 0% { opacity:0.6; transform:rotate(-10deg) } 50% { opacity:1; transform:rotate(10deg) } 100% { opacity:0.6; transform:rotate(-10deg) } }

/* scene: una-intercedes */
.scn-una-intercedes {
  background: 
    linear-gradient(180deg, #8bb4d4 0%, #f4d488 45%, #c08547 100%),
    radial-gradient(ellipse at 60% 80%, #ffe451 0%, transparent 60%);
}
.scn-una-intercedes .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #8bb4d4 0%, #b8d8f0 80%);
  animation: s2-sky 12s ease-in-out infinite alternate;
}
.scn-una-intercedes .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #cba14a 0%, #8b6e2b 100%);
  border-radius: 50% 10% 0 0;
  animation: s2-grass 6s ease-in-out infinite;
}
.scn-una-intercedes .horse {
  position:absolute; bottom:20%; left:10%; width:90px; height:65px;
  background: linear-gradient(135deg, #5d4432 0%, #3b2c1c 100%);
  border-radius: 50% 30% 20% 50%;
  transform-origin: bottom center;
  animation: s2-horse 5s ease-in-out infinite;
}
.scn-una-intercedes .knight-strike {
  position:absolute; bottom:30%; left:50%; width:45px; height:75px;
  background: linear-gradient(180deg, #8d7d6d 0%, #4d3d2d 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-strike 3s ease-in-out infinite;
}
.scn-una-intercedes .knight-sprawled {
  position:absolute; bottom:15%; left:75%; width:55px; height:45px;
  background: linear-gradient(180deg, #7e6e5e 0%, #3e2e1e 100%);
  border-radius: 40% 70% 30% 60%;
  transform: rotate(-30deg);
  animation: s2-sprawl 7s ease-in-out infinite;
}
.scn-una-intercedes .una {
  position:absolute; bottom:25%; left:35%; width:30px; height:80px;
  background: linear-gradient(180deg, #d4e0f0 0%, #8a9cc8 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: s2-una 4s ease-in-out infinite;
}
.scn-una-intercedes .una-hand {
  position:absolute; bottom:45%; left:42%; width:20px; height:14px;
  background: #c8daf0;
  border-radius: 50% 30% 50% 30%;
  transform-origin: bottom left;
  animation: s2-hand 2s ease-in-out infinite alternate;
}
@keyframes s2-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes s2-grass { 0% { transform:translateY(0) } 50% { transform:translateY(2px) } 100% { transform:translateY(0) } }
@keyframes s2-horse { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-2px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes s2-strike { 0% { transform:translate(0,0) rotate(-15deg) skewX(5deg) } 30% { transform:translate(10px,-10px) rotate(20deg) skewX(-5deg) } 60% { transform:translate(0,-5px) rotate(-10deg) skewX(2deg) } 100% { transform:translate(0,0) rotate(-15deg) } }
@keyframes s2-sprawl { 0% { transform:rotate(-30deg) scale(1) } 50% { transform:rotate(-32deg) scale(1.03) } 100% { transform:rotate(-30deg) scale(1) } }
@keyframes s2-una { 0% { transform:translate(0,0) rotate(-2deg) } 50% { transform:translate(-5px,-3px) rotate(2deg) } 100% { transform:translate(0,0) rotate(-2deg) } }
@keyframes s2-hand { 0% { transform:translate(0,0) rotate(0deg) } 100% { transform:translate(12px,-6px) rotate(30deg) } }

/* scene: sansloy-sees-archimago-old */
.scn-sansloy-sees-archimago-old {
  background: 
    linear-gradient(180deg, #7ba4c4 0%, #eacb7a 40%, #b8883e 100%),
    radial-gradient(ellipse at 40% 70%, #ffdb58 0%, transparent 60%);
}
.scn-sansloy-sees-archimago-old .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #7ba4c4 0%, #aac4dc 80%);
  animation: s3-sky 15s ease-in-out infinite alternate;
}
.scn-sansloy-sees-archimago-old .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #cfa24c 0%, #8e6e2c 100%);
  border-radius: 40% 0 0 0;
  animation: s3-grass 9s ease-in-out infinite;
}
.scn-sansloy-sees-archimago-old .sansloy-pause {
  position:absolute; bottom:25%; left:45%; width:45px; height:80px;
  background: linear-gradient(180deg, #8f7f6f 0%, #4f3f2f 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-pause 5s ease-in-out infinite;
}
.scn-sansloy-sees-archimago-old .archimago-old {
  position:absolute; bottom:20%; left:60%; width:35px; height:70px;
  background: linear-gradient(180deg, #a89888 0%, #584838 100%);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  transform: scaleX(-1);
  animation: s3-old 4s ease-in-out infinite;
}
.scn-sansloy-sees-archimago-old .staff {
  position:absolute; bottom:15%; left:68%; width:4px; height:60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: s3-staff 3s ease-in-out infinite alternate;
}
.scn-sansloy-sees-archimago-old .shadow-old {
  position:absolute; bottom:2%; left:50%; width:100px; height:6px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(3px);
  animation: s3-shadow 5s ease-in-out infinite alternate;
}
.scn-sansloy-sees-archimago-old .cloak-wind {
  position:absolute; bottom:30%; left:62%; width:30px; height:15px;
  background: rgba(80,60,40,0.6);
  border-radius: 50% 30% 40% 20%;
  filter: blur(2px);
  transform-origin: right center;
  animation: s3-cloak 2s ease-in-out infinite alternate;
}
@keyframes s3-sky { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.75 } }
@keyframes s3-grass { 0% { transform:translateY(0) } 50% { transform:translateY(1px) } 100% { transform:translateY(0) } }
@keyframes s3-pause { 0% { transform:translate(0,0) rotate(0deg) } 50% { transform:translate(2px,-1px) rotate(2deg) } 100% { transform:translate(0,0) rotate(0deg) } }
@keyframes s3-old { 0% { transform:scaleX(-1) translate(0,0) rotate(-3deg) } 50% { transform:scaleX(-1) translate(-2px,-2px) rotate(3deg) } 100% { transform:scaleX(-1) translate(0,0) rotate(-3deg) } }
@keyframes s3-staff { 0% { transform:rotate(-5deg) } 100% { transform:rotate(5deg) } }
@keyframes s3-shadow { 0% { transform:scaleX(1) } 100% { transform:scaleX(1.2) } }
@keyframes s3-cloak { 0% { transform:rotate(0deg) translate(0,0) } 100% { transform:rotate(-15deg) translate(-8px,2px) } }

/* scene: sansloy-releases-archimago */
.scn-sansloy-releases-archimago {
  background: 
    linear-gradient(180deg, #b0d0e8 0%, #f7df9e 40%, #dba05c 100%),
    radial-gradient(ellipse at 50% 85%, #ffde7a 0%, transparent 60%);
}
.scn-sansloy-releases-archimago .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #b0d0e8 0%, #d8eaf8 80%);
  animation: s4-sky 20s ease-in-out infinite alternate;
}
.scn-sansloy-releases-archimago .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #dbb258 0%, #a07a36 100%);
  border-radius: 20% 0 0 0;
  animation: s4-grass 12s ease-in-out infinite;
}
.scn-sansloy-releases-archimago .sansloy-bow {
  position:absolute; bottom:22%; left:40%; width:45px; height:75px;
  background: linear-gradient(180deg, #8c7c6c 0%, #4c3c2c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: s4-bow 6s ease-in-out infinite;
}
.scn-sansloy-releases-archimago .archimago-rise {
  position:absolute; bottom:15%; left:55%; width:40px; height:65px;
  background: linear-gradient(180deg, #a49484 0%, #544434 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: s4-rise 5s ease-in-out infinite;
}
.scn-sansloy-releases-archimago .hand-open {
  position:absolute; bottom:40%; left:48%; width:18px; height:12px;
  background: #c8bcaa;
  border-radius: 40% 20% 50% 30%;
  transform: rotate(-20deg);
  animation: s4-hand 3s ease-in-out infinite alternate;
}
.scn-sansloy-releases-archimago .bird {
  position:absolute; top:18%; right:15%; width:24px; height:10px;
  background: transparent;
  border-top: 3px solid #5c4c3c;
  border-right: 3px solid transparent;
  border-radius: 50%;
  filter: drop-shadow(0 2px 2px rgba(0,0,0,0.2));
  animation: s4-bird 15s linear infinite;
}
.scn-sansloy-releases-archimago .cloud-calm {
  position:absolute; top:12%; left:20%; width:70px; height:16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: s4-cloud 40s linear infinite alternate;
}
@keyframes s4-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes s4-grass { 0% { transform:translateY(0) } 50% { transform:translateY(1px) } 100% { transform:translateY(0) } }
@keyframes s4-bow { 0% { transform:rotate(10deg) scale(1) } 50% { transform:rotate(12deg) scale(1.02) } 100% { transform:rotate(10deg) scale(1) } }
@keyframes s4-rise { 0% { transform:scaleX(-1) translate(0,0) } 50% { transform:scaleX(-1) translate(-2px,-4px) } 100% { transform:scaleX(-1) translate(0,0) } }
@keyframes s4-hand { 0% { transform:rotate(-20deg) } 100% { transform:rotate(10deg) } }
@keyframes s4-bird { 0% { transform:translate(0,0) } 50% { transform:translate(-40px,-10px) } 100% { transform:translate(-80px,0) } }
@keyframes s4-cloud { 0% { transform:translateX(0) } 100% { transform:translateX(30px) } }

.scn-king-accepts-delay {
  background:
    linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 0%, #f0c068 0%, transparent 70%);
}
.scn-king-accepts-delay .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #3a2a2a 0%, transparent 25%, transparent 75%, #3a2a2a 100%);
}
.scn-king-accepts-delay .window {
  position: absolute; top: 8%; left: 50%; width: 50%; height: 35%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #f0e0c0 0%, #c0a060 60%, transparent 80%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 80px 20px rgba(240, 192, 104, 0.4), inset 0 0 40px 10px rgba(255, 240, 200, 0.6);
  animation: kad-glow 6s ease-in-out infinite alternate;
}
.scn-king-accepts-delay .throne {
  position: absolute; bottom: 5%; left: 50%; width: 45%; height: 55%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 15% 15%;
  box-shadow: inset 0 -30px 60px rgba(0,0,0,0.6);
}
.scn-king-accepts-delay .king {
  position: absolute; bottom: 15%; left: 50%; width: 16%; height: 32%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: kad-breathe 4s ease-in-out infinite;
}
.scn-king-accepts-delay .light-ray {
  position: absolute; top: 0; left: 25%; width: 50%; height: 100%;
  background: linear-gradient(180deg, rgba(240, 224, 200, 0.25) 0%, transparent 100%);
  transform: skewX(-4deg);
  animation: kad-ray 8s ease-in-out infinite alternate;
}
.scn-king-accepts-delay .mote {
  position: absolute; width: 4px; height: 4px;
  background: #f0e0c0; border-radius: 50%;
  box-shadow: 0 0 12px 2px #f0e0c0;
  opacity: 0;
  animation: kad-mote 18s linear infinite;
}
.scn-king-accepts-delay .mote-1 { left: 30%; top: 20%; animation-delay: 0s; }
.scn-king-accepts-delay .mote-2 { left: 60%; top: 30%; animation-delay: -9s; width: 3px; height: 3px; }

@keyframes kad-glow {
  0% { opacity: 0.75; box-shadow: 0 0 60px 15px rgba(240, 192, 104, 0.3); }
  50% { opacity: 1; box-shadow: 0 0 100px 30px rgba(240, 192, 104, 0.6); }
  100% { opacity: 0.85; box-shadow: 0 0 70px 20px rgba(240, 192, 104, 0.4); }
}
@keyframes kad-breathe {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.015) translateY(-2px); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes kad-ray {
  0% { opacity: 0.4; transform: skewX(-4deg) scaleX(1); }
  50% { opacity: 0.8; transform: skewX(-4deg) scaleX(1.05); }
  100% { opacity: 0.5; transform: skewX(-6deg) scaleX(0.95); }
}
@keyframes kad-mote {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0; }
  10% { opacity: 0.8; }
  90% { opacity: 0.8; }
  100% { transform: translate(60px, -90vh) rotate(360deg); opacity: 0; }
}

/* --- */
.scn-king-promises-daughter {
  background:
    linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 100%),
    radial-gradient(ellipse at 50% 0%, #e0c080 0%, transparent 70%);
}
.scn-king-promises-daughter .curtain {
  position: absolute; top: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
}
.scn-king-promises-daughter .curtain-left { left: 0; }
.scn-king-promises-daughter .curtain-right { right: 0; }
.scn-king-promises-daughter .column {
  position: absolute; bottom: 0; width: 6%; height: 80%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.3);
}
.scn-king-promises-daughter .column-l { left: 22%; }
.scn-king-promises-daughter .column-r { right: 22%; }
.scn-king-promises-daughter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-king-promises-daughter .king {
  position: absolute; bottom: 15%; left: 38%; width: 14%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: kpd-bow 6s ease-in-out infinite;
}
.scn-king-promises-daughter .princess {
  position: absolute; bottom: 15%; left: 58%; width: 12%; height: 32%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  animation: kpd-bow 6s ease-in-out infinite alternate;
}
.scn-king-promises-daughter .light-beam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(224, 192, 128, 0.3) 0%, transparent 70%);
  transform: skewX(3deg);
  animation: kpd-light 10s ease-in-out infinite alternate;
}
.scn-king-promises-daughter .crown {
  position: absolute; top: 8%; left: 50%; width: 40px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e0c080 0%, #b08040 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 30px 8px rgba(224, 192, 128, 0.4);
  animation: kpd-float 4s ease-in-out infinite;
}

@keyframes kpd-bow {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes kpd-light {
  0% { opacity: 0.4; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes kpd-float {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-8px); }
  100% { transform: translateX(-50%) translateY(0); }
}

/* --- */
.scn-una-enters-faire {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #c0a060 100%),
    radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 80%);
}
.scn-una-enters-faire .bg-archway {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 50% 0%, transparent 40%, #4a3a2a 70%);
  box-shadow: inset 0 0 100px 30px rgba(0,0,0,0.3);
  animation: uef-arch 7s ease-in-out infinite alternate;
}
.scn-una-enters-faire .bg-light {
  position: absolute; top: 5%; left: 50%; width: 60%; height: 60%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #fff8f0 0%, #f0d8b0 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 120px 40px rgba(240, 216, 176, 0.4);
  animation: uef-glow 5s ease-in-out infinite alternate;
}
.scn-una-enters-faire .una-figure {
  position: absolute; bottom: 12%; left: 50%; width: 14%; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: uef-walk 8s ease-in-out infinite;
}
.scn-una-enters-faire .aura {
  position: absolute; top: 5%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe8a0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255, 232, 160, 0.5);
  animation: uef-aura 4s ease-in-out infinite alternate;
}
.scn-una-enters-faire .shadow-floor {
  position: absolute; bottom: 8%; left: 35%; width: 30%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: uef-shadow 8s ease-in-out infinite;
}
.scn-una-enters-faire .sparkle {
  position: absolute; width: 6px; height: 6px;
  background: #fff8f0; border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(255, 248, 240, 0.6);
  animation: uef-sparkle 4s ease-in-out infinite alternate;
}
.scn-una-enters-faire .sparkle-1 { top: 20%; left: 30%; animation-delay: 0s; }
.scn-una-enters-faire .sparkle-2 { top: 30%; left: 65%; animation-delay: -2s; width: 4px; height: 4px; }

@keyframes uef-arch {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes uef-glow {
  0% { opacity: 0.8; transform: translateX(-50%) scale(0.95); }
  100% { opacity: 1; transform: translateX(-50%) scale(1.05); }
}
@keyframes uef-walk {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-45%) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  75% { transform: translateX(-55%) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes uef-aura {
  0% { opacity: 0.7; transform: translateX(-50%) scale(0.9); }
  100% { opacity: 1; transform: translateX(-50%) scale(1.2); }
}
@keyframes uef-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.1); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}
@keyframes uef-sparkle {
  0% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0; transform: scale(0.5); }
}

/* --- */
.scn-una-wedding-attire {
  background:
    linear-gradient(180deg, #fff8f0 0%, #f0e8e0 100%),
    radial-gradient(ellipse at 50% 50%, #ffffff 0%, #e0d8d0 100%);
}
.scn-una-wedding-attire .bg-radiance {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(255, 255, 255, 0.8) 0%, transparent 70%);
  animation: uwd-radiance 6s ease-in-out infinite alternate;
}
.scn-una-wedding-attire .dress-train {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #fff8f0 0%, #d8d0c0 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.05);
  animation: uwd-float 8s ease-in-out infinite;
}
.scn-una-wedding-attire .veil {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.6) 0%, rgba(240, 240, 240, 0.1) 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(2px);
  animation: uwd-float 12s ease-in-out infinite alternate;
}
.scn-una-wedding-attire .figure {
  position: absolute; bottom: 15%; left: 50%; width: 16%; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a8 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.1);
  animation: uwd-figure 9s ease-in-out infinite;
}
.scn-una-wedding-attire .wreath {
  position: absolute; top: 8%; left: 50%; width: 30px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #d0b080 0%, #f0d0a0 50%, #d0b080 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(240, 208, 160, 0.4);
  animation: uwd-wreath 5s ease-in-out infinite alternate;
}
.scn-una-wedding-attire .mote {
  position: absolute; top: 20%; left: 40%; width: 4px; height: 4px;
  background: #ffffff; border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255, 255, 255, 0.6);
  animation: uwd-motes 15s linear infinite;
}

@keyframes uwd-radiance {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes uwd-float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
  100% { transform: translateY(0); }
}
@keyframes uwd-figure {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes uwd-wreath {
  0% { transform: translateX(-50%) rotate(-3deg); }
  100% { transform: translateX(-50%) rotate(3deg); }
}
@keyframes uwd-motes {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0; }
  10% { opacity: 0.6; }
  90% { opacity: 0.6; }
  100% { transform: translate(40px, -80vh) rotate(360deg); opacity: 0; }
}

.scn-morpheus-description { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a3a 50%, #2a2a4a 100%), radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 70%); }
.scn-morpheus-description .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a3a 0%, #0d0d1a 100%); }
.scn-morpheus-description .rocks { position:absolute; bottom:40%; left:0; width:100%; height:30%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 10% 20% 0 0; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 0% 100%); }
.scn-morpheus-description .waterfall { position:absolute; top:20%; left:30%; width:8px; height:40%; background: linear-gradient(180deg, rgba(100,150,200,0.3) 0%, rgba(100,150,200,0.1) 100%); border-radius: 4px; animation: md-waterfall 3s ease-in-out infinite alternate; }
.scn-morpheus-description .rain { position:absolute; inset:0; background: repeating-linear-gradient(0deg, rgba(180,200,255,0.05) 0px, rgba(180,200,255,0.05) 1px, transparent 1px, transparent 10px); background-size: 100% 10px; animation: md-rain 1s linear infinite; }
.scn-morpheus-description .wind { position:absolute; top:30%; left:0; width:100%; height:10px; background: linear-gradient(90deg, transparent 0%, rgba(200,220,255,0.1) 50%, transparent 100%); filter: blur(2px); animation: md-wind 6s ease-in-out infinite; }
.scn-morpheus-description .figure { position:absolute; bottom:20%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: md-figure 4s ease-in-out infinite; }
.scn-morpheus-description .pool { position:absolute; bottom:10%; left:20%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(60,100,140,0.3) 0%, transparent 70%); border-radius: 50%; animation: md-pool 5s ease-in-out infinite; }

@keyframes md-waterfall { 0% { transform: translateY(0); opacity:0.7; } 50% { transform: translateY(10px); opacity:1; } 100% { transform: translateY(0); opacity:0.8; } }
@keyframes md-rain { 0% { background-position: 0 0; } 100% { background-position: 0 -10px; } }
@keyframes md-wind { 0% { transform: translateX(-20px); opacity:0.3; } 50% { transform: translateX(20px); opacity:0.6; } 100% { transform: translateX(-20px); opacity:0.3; } }
@keyframes md-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes md-pool { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.05); opacity:0.8; } 100% { transform: scale(1); opacity:0.5; } }

.scn-spirit-tries-to-wake-morpheus { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a3a 50%, #2a2a4a 100%); }
.scn-spirit-tries-to-wake-morpheus .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 80%, #1a1a3a 0%, transparent 70%); }
.scn-spirit-tries-to-wake-morpheus .spirit { position:absolute; bottom:30%; left:20%; width:20px; height:60px; background: linear-gradient(180deg, #1a1a3a 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sw-spirit 2s ease-in-out infinite; }
.scn-spirit-tries-to-wake-morpheus .morpheus { position:absolute; bottom:20%; right:30%; width:40px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; animation: sw-morpheus 3s ease-in-out infinite; }
.scn-spirit-tries-to-wake-morpheus .push-lines { position:absolute; bottom:45%; left:25%; width:40px; height:2px; background: rgba(200,200,255,0.2); filter: blur(1px); animation: sw-push 0.5s ease-in-out infinite; }
.scn-spirit-tries-to-wake-morpheus .dust { position:absolute; bottom:20%; left:10%; width:100%; height:100%; background: radial-gradient(circle, rgba(180,200,255,0.05) 0%, transparent 50%); animation: sw-dust 10s linear infinite; }
.scn-spirit-tries-to-wake-morpheus .ground { position:absolute; bottom:0; left:0; width:100%; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%); border-radius: 0 0 30% 30%; }

@keyframes sw-spirit { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(15px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sw-morpheus { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.1) rotate(3deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes sw-push { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.5); opacity:1; } 100% { transform: scaleX(1); opacity:0.5; } }
@keyframes sw-dust { 0% { transform: translateY(0) translateX(0); opacity:0; } 50% { opacity:0.3; } 100% { transform: translateY(-50px) translateX(30px); opacity:0; } }

.scn-spirit-calls-hecate { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a3a 40%, #3a2a4a 100%), radial-gradient(ellipse at 50% 0%, #4a3a5a 0%, transparent 60%); }
.scn-spirit-calls-hecate .bg { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #1a1a3a 0px, #1a1a3a 2px, #0d0d1a 2px, #0d0d1a 4px); background-size: 100% 4px; }
.scn-spirit-calls-hecate .spirit { position:absolute; bottom:20%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a4a 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-spirit 1.5s ease-in-out infinite; }
.scn-spirit-calls-hecate .hecate { position:absolute; bottom:30%; right:20%; width:30px; height:80px; background: linear-gradient(180deg, #4a3a5a 0%, #1a1a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sc-hecate 4s ease-in-out infinite; }
.scn-spirit-calls-hecate .light-flicker { position:absolute; top:30%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #c8a060 0%, #a07030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #a07030; animation: sc-light 0.8s ease-in-out infinite; }
.scn-spirit-calls-hecate .shadow-arch { position:absolute; bottom:0; left:0; width:100%; height:60%; background: linear-gradient(180deg, transparent 0%, #0d0d1a 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: sc-arch 6s ease-in-out infinite; }

@keyframes sc-spirit { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sc-hecate { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-10px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sc-light { 0% { opacity:0.6; box-shadow: 0 0 20px 5px #a07030; } 50% { opacity:1; box-shadow: 0 0 40px 15px #c8a060; } 100% { opacity:0.6; box-shadow: 0 0 20px 5px #a07030; } }
@keyframes sc-arch { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }

.scn-morpheus-sends-dreame { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2a 40%, #2a2a3a 100%); }
.scn-morpheus-sends-dreame .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 50%, #2a2a3a 0%, transparent 60%); }
.scn-morpheus-sends-dreame .prison-bars { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 3px, transparent 3px, transparent 20px); animation: ms-bars 10s ease-in-out infinite; }
.scn-morpheus-sends-dreame .ivory-door { position:absolute; bottom:20%; left:50%; transform: translateX(-50%); width:30px; height:50px; background: linear-gradient(180deg, #d0c8a0 0%, #a09870 100%); border-radius: 5px; box-shadow: 0 0 20px 5px rgba(200,180,150,0.5); animation: ms-door 3s ease-in-out infinite; }
.scn-morpheus-sends-dreame .dream { position:absolute; top:10%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, rgba(200,220,255,0.3) 0%, rgba(150,180,220,0.1) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); transform-origin: center; animation: ms-dream 8s ease-in-out infinite; }
.scn-morpheus-sends-dreame .morpheus { position:absolute; bottom:20%; left:20%; width:25px; height:35px; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-morpheus 5s ease-in-out infinite; }
.scn-morpheus-sends-dreame .glow { position:absolute; bottom:20%; left:45%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,180,150,0.2) 0%, transparent 100%); animation: ms-glow 3s ease-in-out infinite; }

@keyframes ms-bars { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes ms-door { 0% { box-shadow: 0 0 15px 3px rgba(200,180,150,0.3); } 50% { box-shadow: 0 0 30px 10px rgba(200,180,150,0.6); } 100% { box-shadow: 0 0 15px 3px rgba(200,180,150,0.3); } }
@keyframes ms-dream { 0% { transform: translateY(0) rotate(0deg) scale(1); opacity:0.7; } 50% { transform: translateY(-30px) rotate(10deg) scale(1.1); opacity:1; } 100% { transform: translateY(0) rotate(0deg) scale(1); opacity:0.7; } }
@keyframes ms-morpheus { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ms-glow { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(1); } }

/* Scene: house-of-pride-pageant-wrath */
.scn-house-of-pride-pageant-wrath {
  background: linear-gradient(180deg, #2a0a0a 0%, #4a1a0a 40%, #1a0505 100%), radial-gradient(ellipse at 50% 70%, #8a3a1a 0%, transparent 70%);
}
.scn-house-of-pride-pageant-wrath .wrath-figure {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0505 0%, #0a0202 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(200,60,20,0.3);
  animation: hpw-figure-tremble 1.5s ease-in-out infinite;
}
.scn-house-of-pride-pageant-wrath .wrath-brand {
  position: absolute; bottom: 50%; left: 38%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #5a2a10, #3a1a0a);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: hpw-brand-wave 0.8s ease-in-out infinite alternate;
}
.scn-house-of-pride-pageant-wrath .wrath-brand-glow {
  position: absolute; bottom: 60%; left: 36%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ff6a30 0%, #ff4000 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ff6a30, 0 0 80px 30px rgba(255,106,48,0.4);
  animation: hpw-glow-pulse 0.6s ease-in-out infinite alternate;
}
.scn-house-of-pride-pageant-wrath .wrath-eye-left,
.scn-house-of-pride-pageant-wrath .wrath-eye-right {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #ff2020 0%, #cc0000 60%, #800000 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ff2020;
  animation: hpw-eye-spark 0.4s ease-in-out infinite;
}
.scn-house-of-pride-pageant-wrath .wrath-eye-left { bottom: 62%; left: 44%; }
.scn-house-of-pride-pageant-wrath .wrath-eye-right { bottom: 62%; left: 52%; animation-delay: 0.1s; }
.scn-house-of-pride-pageant-wrath .wrath-spark1,
.scn-house-of-pride-pageant-wrath .wrath-spark2,
.scn-house-of-pride-pageant-wrath .wrath-spark3 {
  position: absolute; width: 4px; height: 4px;
  background: #ff8c00;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ff8c00;
  opacity: 0.8;
}
.scn-house-of-pride-pageant-wrath .wrath-spark1 { top: 40%; left: 30%; animation: hpw-spark 1.2s linear infinite; }
.scn-house-of-pride-pageant-wrath .wrath-spark2 { top: 35%; left: 55%; animation: hpw-spark 1.5s linear infinite 0.4s; }
.scn-house-of-pride-pageant-wrath .wrath-spark3 { top: 45%; left: 48%; animation: hpw-spark 0.9s linear infinite 0.8s; }
@keyframes hpw-figure-tremble {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes hpw-brand-wave {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes hpw-glow-pulse {
  0% { opacity: 0.7; box-shadow: 0 0 30px 10px #ff6a30, 0 0 60px 20px rgba(255,106,48,0.3); }
  50% { opacity: 1; box-shadow: 0 0 50px 20px #ff6a30, 0 0 100px 40px rgba(255,106,48,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 35px 12px #ff6a30, 0 0 70px 25px rgba(255,106,48,0.35); }
}
@keyframes hpw-eye-spark {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.5); opacity: 1; }
  100% { transform: scale(0.8); opacity: 0.8; }
}
@keyframes hpw-spark {
  0% { transform: translate(0,0) scale(1); opacity: 0; }
  20% { opacity: 1; }
  50% { transform: translate(20px, -30px) scale(1.5); opacity: 0.8; }
  100% { transform: translate(50px, -60px) scale(0.2); opacity: 0; }
}

/* Scene: pageant-sins-outside */
.scn-pageant-sins-outside {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 40%, #228B22 80%, #004d00 100%), radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 60%);
}
.scn-pageant-sins-outside .pso-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 100%);
  animation: pso-sky-shimmer 12s ease-in-out infinite alternate;
}
.scn-pageant-sins-outside .pso-field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #228B22 0%, #006400 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-pageant-sins-outside .pso-road {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%;
  background: #8B7355;
  border-radius: 0 0 50% 50% solid;
  clip-path: polygon(15% 0%, 85% 0%, 70% 100%, 30% 100%);
}
.scn-pageant-sins-outside .pso-duessa-figure {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #5C4033 0%, #3E2723 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pso-duessa-move 6s ease-in-out infinite;
}
.scn-pageant-sins-outside .pso-duessa-mount {
  position: absolute; bottom: 26%; left: 38%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #6B4226 0%, #4A2F1A 100%);
  border-radius: 30% 30% 40% 40%;
  clip-path: ellipse(40% 100% at 50% 100%);
  animation: pso-duessa-bob 6s ease-in-out infinite;
}
.scn-pageant-sins-outside .pso-knight-figure {
  position: absolute; bottom: 30%; left: 60%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2F4F4F 0%, #1a3333 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pso-knight-away 8s ease-in-out infinite;
}
.scn-pageant-sins-outside .pso-tree {
  position: absolute; bottom: 20%; left: 15%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2E7D32 0%, #1B5E20 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: pso-tree-sway 15s ease-in-out infinite;
}
.scn-pageant-sins-outside .pso-cloud {
  position: absolute; top: 15%; left: 20%; width: 80px; height: 20px;
  background: rgba(255,255,255,0.7);
  border-radius: 50%;
  filter: blur(8px);
  animation: pso-cloud-drift 40s linear infinite;
}
@keyframes pso-sky-shimmer {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pso-duessa-move {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes pso-duessa-bob {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes pso-knight-away {
  0% { transform: translateX(0); opacity: 1; }
  50% { transform: translateX(20px); opacity: 0.7; }
  100% { transform: translateX(0); opacity: 1; }
}
@keyframes pso-tree-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes pso-cloud-drift {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}

/* Scene: palace-hall-challenge */
.scn-palace-hall-challenge {
  background: linear-gradient(180deg, #FFF8DC 0%, #F5DEB3 40%, #D2B48C 100%), radial-gradient(ellipse at 50% 50%, #ffffff 0%, transparent 70%);
}
.scn-palace-hall-challenge .phc-wall-left,
.scn-palace-hall-challenge .phc-wall-right {
  position: absolute; bottom: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%);
  border-radius: 0 5% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.2);
}
.scn-palace-hall-challenge .phc-wall-left { left: 0; }
.scn-palace-hall-challenge .phc-wall-right { right: 0; border-radius: 5% 0 0 0; box-shadow: inset 10px 0 20px rgba(0,0,0,0.2); }
.scn-palace-hall-challenge .phc-floor {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 30%;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -5px 20px rgba(0,0,0,0.1);
}
.scn-palace-hall-challenge .phc-fighter-left,
.scn-palace-hall-challenge .phc-fighter-right {
  position: absolute; bottom: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #303030 0%, #151515 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 30% 30%;
}
.scn-palace-hall-challenge .phc-fighter-left { left: 35%; animation: phc-fight-left 0.5s ease-in-out infinite alternate; }
.scn-palace-hall-challenge .phc-fighter-right { right: 35%; animation: phc-fight-right 0.5s ease-in-out infinite alternate 0.25s; }
.scn-palace-hall-challenge .phc-queen {
  position: absolute; bottom: 40%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #FFD700 0%, #CC7722 100%);
  border-radius: 30% 30% 60% 60% / 40% 40% 30% 30%;
  clip-path: polygon(10% 20%, 90% 20%, 100% 100%, 0% 100%);
  box-shadow: 0 0 40px 10px rgba(255,215,0,0.3);
  animation: phc-queen-sit 3s ease-in-out infinite;
}
.scn-palace-hall-challenge .phc-crown {
  position: absolute; bottom: 72%; left: 50%; width: 20px; height: 15px;
  transform: translateX(-50%);
  background: #FFD700;
  clip-path: polygon(10% 100%, 20% 0%, 40% 40%, 50% 0%, 60% 40%, 80% 0%, 90% 100%);
  box-shadow: 0 0 12px 2px #FFD700;
  animation: phc-crown-glow 1.2s ease-in-out infinite alternate;
}
.scn-palace-hall-challenge .phc-chandelier {
  position: absolute; top: 5%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #FFF8DC 0%, #DAA520 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(218,165,32,0.5);
  animation: phc-chandelier-sway 8s ease-in-out infinite;
}
@keyframes phc-fight-left {
  0% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(-5px) rotate(5deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes phc-fight-right {
  0% { transform: translateX(0) rotate(5deg); }
  50% { transform: translateX(5px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes phc-queen-sit {
  0% { transform: translateX(-50%) scale(1); opacity: 0.95; }
  50% { transform: translateX(-50%) scale(1.02); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.95; }
}
@keyframes phc-crown-glow {
  0% { opacity: 0.8; box-shadow: 0 0 8px 1px #FFD700; }
  50% { opacity: 1; box-shadow: 0 0 16px 4px #FFD700; }
  100% { opacity: 0.9; box-shadow: 0 0 10px 2px #FFD700; }
}
@keyframes phc-chandelier-sway {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}

/* Scene: night-before-combat */
.scn-night-before-combat {
  background: linear-gradient(180deg, #0B0B2B 0%, #1C1C4E 40%, #0B0B2B 100%), radial-gradient(circle at 70% 20%, #C0C0C0 0%, transparent 30%);
}
.scn-night-before-combat .nbc-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0B0B2B 0%, #1C1C4E 60%, #0B0B2B 100%);
  animation: nbc-sky-pulse 20s ease-in-out infinite alternate;
}
.scn-night-before-combat .nbc-moon {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #E0E0E0 0%, #C0C0C0 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #C0C0C0, 0 0 80px 30px rgba(192,192,192,0.3);
  animation: nbc-moon-glow 5s ease-in-out infinite alternate;
}
.scn-night-before-combat .nbc-stars {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: radial-gradient(1px 1px at 20% 30%, #fff, transparent),
              radial-gradient(1px 1px at 40% 50%, #fff, transparent),
              radial-gradient(1px 1px at 60% 20%, #fff, transparent),
              radial-gradient(1px 1px at 80% 40%, #fff, transparent),
              radial-gradient(1px 1px at 10% 60%, #fff, transparent),
              radial-gradient(1px 1px at 90% 10%, #fff, transparent);
  animation: nbc-stars-twinkle 3s ease-in-out infinite alternate;
}
.scn-night-before-combat .nbc-tent {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #2F2F3F 0%, #1A1A2A 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  box-shadow: 0 0 30px 10px rgba(0,0,0,0.5);
  animation: nbc-tent-sway 12s ease-in-out infinite;
}
.scn-night-before-combat .nbc-awake-figure {
  position: absolute; bottom: 10%; left: 50%; width: 25px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1A1A2A 0%, #0A0A1A 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  animation: nbc-awake-turn 8s ease-in-out infinite;
}
.scn-night-before-combat .nbc-sleeping-figure1,
.scn-night-before-combat .nbc-sleeping-figure2 {
  position: absolute; bottom: 15%; width: 30px; height: 20px;
  background: #2A2A3A;
  border-radius: 30% 30% 50% 50% / 40% 40% 30% 30%;
  box-shadow: 0 2px 5px rgba(0,0,0,0.3);
  animation: nbc-sleep-breathe 4s ease-in-out infinite;
}
.scn-night-before-combat .nbc-sleeping-figure1 { left: 20%; bottom: 18%; animation-delay: 0s; }
.scn-night-before-combat .nbc-sleeping-figure2 { left: 65%; bottom: 16%; animation-delay: 1.2s; }
.scn-night-before-combat .nbc-bush {
  position: absolute; bottom: 5%; left: 15%; width: 60px; height: 30px;
  background: #1A3A1A;
  border-radius: 50%;
  filter: blur(4px);
  box-shadow: 0 -5px 10px rgba(0,0,0,0.5);
}
@keyframes nbc-sky-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes nbc-moon-glow {
  0% { opacity: 0.85; box-shadow: 0 0 30px 10px #C0C0C0, 0 0 60px 20px rgba(192,192,192,0.2); }
  50% { opacity: 1; box-shadow: 0 0 50px 20px #C0C0C0, 0 0 100px 40px rgba(192,192,192,0.4); }
  100% { opacity: 0.9; box-shadow: 0 0 35px 12px #C0C0C0, 0 0 70px 25px rgba(192,192,192,0.3); }
}
@keyframes nbc-stars-twinkle {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes nbc-tent-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes nbc-awake-turn {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(15deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes nbc-sleep-breathe {
  0% { transform: scaleY(1); opacity: 0.6; }
  50% { transform: scaleY(1.05); opacity: 0.8; }
  100% { transform: scaleY(1); opacity: 0.6; }
}

.scn-dragon-approach-body {
  background:
    linear-gradient(180deg, #1c1819 0%, #2d1b1e 30%, #6b3f2a 60%, #d9a04a 85%, #fce4b8 100%),
    radial-gradient(ellipse at 70% 30%, #fce4b8 0%, transparent 60%);
}
.scn-dragon-approach-body .sky-horizon { position:absolute; inset:0 0 70% 0; background:linear-gradient(0deg, #d9a04a 0%, #6b3f2a 30%, transparent 80%); }
.scn-dragon-approach-body .distant-mount { position:absolute; bottom:20%; left:0; right:0; height:35%; background:#1c1819; border-radius:40% 0 0 0 / 100% 0 0 0; }
.scn-dragon-approach-body .beast-body { position:absolute; bottom:10%; right:-5%; width:65%; height:85%; background:linear-gradient(90deg, transparent 10%, #0d0809 25%, #1a0f12 80%); border-radius:60% 0 0 30% / 80% 0 0 60%; transform:translateX(20%); animation:dba-heave 8s ease-in-out infinite; }
.scn-dragon-approach-body .beast-shadow { position:absolute; bottom:5%; left:0; width:85%; height:15%; background:#0d0809; border-radius:50%; filter:blur(25px); }
.scn-dragon-approach-body .eye-glint { position:absolute; bottom:65%; right:22%; width:5px; height:5px; background:#fffae6; border-radius:50%; box-shadow:0 0 18px 6px #f0b84d, 0 0 40px 20px rgba(240,184,77,0.4); animation:dba-glint 4s ease-in-out infinite; }
.scn-dragon-approach-body .ground-mist { position:absolute; bottom:0; height:30%; left:0; right:0; background:linear-gradient(0deg, #1a0f12 0%, transparent 100%); animation:dba-mist 12s ease-in-out infinite alternate; }
@keyframes dba-heave { 0%{ transform:translateX(20%) scale(1); } 50%{ transform:translateX(19%) scale(1.015); } 100%{ transform:translateX(20%) scale(1); } }
@keyframes dba-glint { 0%,100%{ opacity:0.2; box-shadow:0 0 8px 3px #f0b84d; } 40%{ opacity:1; box-shadow:0 0 24px 10px #f0b84d, 0 0 60px 30px rgba(240,184,77,0.6); } 60%{ opacity:1; box-shadow:0 0 24px 10px #f0b84d, 0 0 60px 30px rgba(240,184,77,0.6); } }
@keyframes dba-mist { 0%{ opacity:0.4; } 100%{ opacity:0.9; } }

.scn-dragon-scales-armor {
  background:
    linear-gradient(135deg, #1f1310 0%, #3a2318 30%, #7a5430 60%, #3a2318 100%),
    radial-gradient(circle at 50% 50%, #c8934a 0%, transparent 70%);
}
.scn-dragon-scales-armor .scale-back { position:absolute; inset:0; background:repeating-linear-gradient(45deg, transparent, transparent 12px, rgba(0,0,0,0.15) 12px, rgba(0,0,0,0.15) 13px), repeating-linear-gradient(-45deg, transparent, transparent 12px, rgba(0,0,0,0.15) 12px, rgba(0,0,0,0.15) 13px); }
.scn-dragon-scales-armor .scale-mid { position:absolute; inset:8%; border-radius:50%; background:linear-gradient(135deg, #543118, #8c6535, #543118); box-shadow:inset 0 0 60px #0d0809; }
.scn-dragon-scales-armor .scale-fore { position:absolute; inset:18%; border-radius:30% 70% 50% 50% / 30% 30% 70% 70%; background:linear-gradient(180deg, #d9b04d, #8c6535); box-shadow:0 0 40px rgba(0,0,0,0.9); animation:dsa-shimmer 3s ease-in-out infinite; }
.scn-dragon-scales-armor .light-arc { position:absolute; inset:25%; border-radius:50%; background:radial-gradient(circle at 30% 30%, #fff9e6 0%, transparent 50%); mix-blend-mode:overlay; animation:dsa-arc 5s ease-in-out infinite alternate; }
.scn-dragon-scales-armor .shadow-crack { position:absolute; inset:35%; background:#1a0f0a; clip-path:polygon(0% 0%, 100% 100%, 75% 100%, 0% 25%); transform:rotate(10deg); animation:dsa-crack 4s ease-in-out infinite; }
.scn-dragon-scales-armor .shimmer { position:absolute; inset:0; background:linear-gradient(60deg, transparent 30%, rgba(255,255,255,0.15) 50%, transparent 70%); background-size:200% 200%; mix-blend-mode:screen; animation:dsa-shine 6s linear infinite; }
@keyframes dsa-shimmer { 0%,100%{ transform:scale(1) rotate(0deg); } 50%{ transform:scale(1.03) rotate(2deg); } }
@keyframes dsa-arc { 0%{ opacity:0.3; } 100%{ opacity:0.9; } }
@keyframes dsa-crack { 0%,100%{ transform:rotate(10deg) scale(1); opacity:0.5; } 50%{ transform:rotate(15deg) scale(1.05); opacity:1; } }
@keyframes dsa-shine { 0%{ background-position:0% 0%; } 100%{ background-position:200% 200%; } }

.scn-dragon-wings-display {
  background:
    linear-gradient(0deg, #1a2a4a 0%, #2a4070 40%, #7a90b0 80%, #e0d5b0 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
}
.scn-dragon-wings-display .sky-burst { position:absolute; inset:0; background:radial-gradient(circle at 50% 20%, #ffffcc 0%, transparent 50%); mix-blend-mode:screen; animation:dwd-pulse 6s ease-in-out infinite; }
.scn-dragon-wings-display .cloud-l { position:absolute; top:12%; left:0; width:45%; height:18%; background:rgba(255,255,255,0.3); filter:blur(40px); animation:dwd-cloud 25s linear infinite; }
.scn-dragon-wings-display .cloud-r { position:absolute; top:8%; right:0; width:45%; height:18%; background:rgba(255,255,255,0.25); filter:blur(40px); animation:dwd-cloud 30s linear infinite reverse; }
.scn-dragon-wings-display .wing-l-membrane { position:absolute; inset:25% 50% 15% 0%; background:linear-gradient(135deg, #1f1310 0%, #4a3120 40%, transparent 80%); border-radius:0 0 80% 0 / 0 0 100% 0; transform-origin:right center; animation:dwd-flap-l 4.5s ease-in-out infinite; }
.scn-dragon-wings-display .wing-r-membrane { position:absolute; inset:25% 0% 15% 50%; background:linear-gradient(225deg, #1f1310 0%, #4a3120 40%, transparent 80%); border-radius:0 0 0 80% / 0 0 0 100%; transform-origin:left center; animation:dwd-flap-r 4.5s ease-in-out infinite; }
.scn-dragon-wings-display .wing-l-bones { position:absolute; inset:25% 60% 15% 0%; background:repeating-linear-gradient(135deg, transparent, transparent 8px, #0d0809 8px, #0d0809 10px); -webkit-mask-image:radial-gradient(circle at 100% 100%, black 30%, transparent 70%); mask-image:radial-gradient(circle at 100% 100%, black 30%, transparent 70%); }
.scn-dragon-wings-display .wing-r-bones { position:absolute; inset:25% 0% 15% 60%; background:repeating-linear-gradient(225deg, transparent, transparent 8px, #0d0809 8px, #0d0809 10px); -webkit-mask-image:radial-gradient(circle at 0% 100%, black 30%, transparent 70%); mask-image:radial-gradient(circle at 0% 100%, black 30%, transparent 70%); }
@keyframes dwd-pulse { 0%,100%{ opacity:0.6; } 50%{ opacity:1; } }
@keyframes dwd-cloud { 0%{ transform:translateX(0); } 100%{ transform:translateX(100%); } }
@keyframes dwd-flap-l { 0%,100%{ transform:rotate(0deg) scaleX(1); } 50%{ transform:rotate(-8deg) scaleX(1.05); } }
@keyframes dwd-flap-r { 0%,100%{ transform:rotate(0deg) scaleX(1); } 50%{ transform:rotate(8deg) scaleX(1.05); } }

.scn-dragon-tail-description {
  background:
    linear-gradient(0deg, #1a0a08 0%, #3a1a15 40%, #7a3a25 70%, #b06830 100%),
    radial-gradient(ellipse at 50% 100%, #b06830 0%, transparent 70%);
}
.scn-dragon-tail-description .sky-storm { position:absolute; inset:0 0 60% 0; background:linear-gradient(0deg, #3a1a15 0%, transparent 100%); animation:dtd-storm 8s ease-in-out infinite alternate; }
.scn-dragon-tail-description .land-swept { position:absolute; bottom:0; height:25%; left:0; right:0; background:#2a1a10; border-radius:30% 0 0 0 / 100% 0 0 0; }
.scn-dragon-tail-description .tail-bulk { position:absolute; bottom:15%; right:5%; width:45%; height:55%; background:linear-gradient(180deg, #1a0f0a 0%, #4a2a1a 50%, #1a0f0a 100%); border-radius:50% 50% 0 0 / 80% 80% 0 0; transform:skewX(-5deg); animation:dtd-slither 6s ease-in-out infinite; }
.scn-dragon-tail-description .tail-loop { position:absolute; bottom:25%; left:10%; width:55%; height:45%; border:24px solid #2a1a10; border-radius:50%; border-color:transparent transparent #2a1a10 #2a1a10; transform:rotate(45deg); box-shadow:inset 0 0 30px rgba(0,0,0,0.5); animation:dtd-coil 8s linear infinite; }
.scn-dragon-tail-description .tail-tip { position:absolute; bottom:8%; left:2%; width:18%; height:12%; background:#1a0f0a; border-radius:0 50% 0 0; transform:skewX(-20deg); animation:dtd-whip 4s ease-in-out infinite alternate; }
.scn-dragon-tail-description .debris-cloud { position:absolute; inset:45% 10% 0 10%; background:radial-gradient(ellipse at 50% 100%, rgba(90,50,30,0.7) 0%, transparent 70%); filter:blur(15px); animation:dtd-debris 10s ease-in-out infinite; }
@keyframes dtd-storm { 0%{ opacity:0.3; } 100%{ opacity:0.9; } }
@keyframes dtd-slither { 0%{ transform:skewX(-5deg) translateY(0); } 50%{ transform:skewX(0deg) translateY(-3px); } 100%{ transform:skewX(-5deg) translateY(0); } }
@keyframes dtd-coil { 0%{ transform:rotate(45deg); } 50%{ transform:rotate(55deg); } 100%{ transform:rotate(45deg); } }
@keyframes dtd-whip { 0%{ transform:skewX(-20deg) scale(1); } 100%{ transform:skewX(-10deg) scale(1.1); } }
@keyframes dtd-debris { 0%,100%{ opacity:0.4; transform:scale(1); } 50%{ opacity:0.8; transform:scale(1.1); } }

.scn-introduction-to-leicester {
  background: linear-gradient(180deg, #87ceeb 0%, #e0f6ff 30%, #fdf5e6 60%, #90ee90 100%), radial-gradient(circle at 20% 50%, #ffd700 0%, transparent 50%);
}
.scn-introduction-to-leicester .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #b0e0ff 0%, #87ceeb 60%, transparent 100%); animation: il-sky 12s ease-in-out infinite alternate; }
.scn-introduction-to-leicester .sun { position: absolute; top: 8%; left: 18%; width: 40px; height: 40px; background: radial-gradient(circle, #ffec80 0%, #ffd700 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,215,0,.4); animation: il-sun 20s linear infinite; }
.scn-introduction-to-leicester .cloud { position: absolute; width: 100px; height: 30px; background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, rgba(255,255,255,.1) 100%); border-radius: 50%; filter: blur(6px); }
.scn-introduction-to-leicester .cloud-a { top: 12%; left: 5%; animation: il-drift 35s linear infinite; }
.scn-introduction-to-leicester .cloud-b { top: 22%; right: 8%; width: 80px; height: 20px; animation: il-drift 45s linear infinite reverse; animation-delay: -10s; }
.scn-introduction-to-leicester .estate { position: absolute; bottom: 30%; left: 50%; width: 120px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #d4b48c 0%, #a0826a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: il-estate 18s ease-in-out infinite alternate; }
.scn-introduction-to-leicester .grove { position: absolute; bottom: 25%; width: 60px; height: 90px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; }
.scn-introduction-to-leicester .grove-left { left: 15%; animation: il-sway 6s ease-in-out infinite; }
.scn-introduction-to-leicester .grove-right { right: 15%; width: 80px; height: 110px; animation: il-sway 8s ease-in-out infinite reverse; }
.scn-introduction-to-leicester .path { position: absolute; bottom: 20%; left: 35%; width: 120px; height: 40px; background: linear-gradient(180deg, #c8b090 0%, #a08870 100%); border-radius: 60% 60% 40% 40% / 80% 80% 20% 20%; transform: perspective(200px) rotateX(10deg); animation: il-path-glow 6s ease-in-out infinite alternate; }
.scn-introduction-to-leicester .figures { position: absolute; bottom: 28%; left: 40%; width: 24px; height: 50px; background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: il-meet 4s ease-in-out infinite alternate; }

@keyframes il-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes il-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(20px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes il-drift { 0% { transform: translateX(-20px); } 50% { transform: translateX(50px); } 100% { transform: translateX(120vw); } }
@keyframes il-estate { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes il-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes il-path-glow { 0% { opacity: .8; } 50% { opacity: 1; box-shadow: 0 0 10px rgba(200,176,144,.4); } 100% { opacity: .85; } }
@keyframes il-meet { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(10px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

.scn-refinement-at-court {
  background: linear-gradient(180deg, #1a110a 0%, #4a3020 50%, #6a4a3a 100%), radial-gradient(ellipse at 50% 100%, #c8553d 0%, transparent 40%);
}
.scn-refinement-at-court .wall-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a10 0%, #4a3020 50%, #2a1a10 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.5); animation: rc-depth 20s ease-in-out infinite alternate; }
.scn-refinement-at-court .window-arch { position: absolute; top: 5%; width: 80px; height: 160px; background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 60%, transparent 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 30px rgba(135,206,235,.3); }
.scn-refinement-at-court .window-arch.left { left: 10%; }
.scn-refinement-at-court .window-arch.right { right: 10%; }
.scn-refinement-at-court .banner-left { position: absolute; top: 15%; left: 28%; width: 20px; height: 120px; background: linear-gradient(180deg, #c8553d 0%, #5e1a1d 50%, #c8553d 100%); border-radius: 2%; transform-origin: top center; animation: rc-banner-wave 4s ease-in-out infinite alternate; }
.scn-refinement-at-court .banner-right { position: absolute; top: 15%; right: 28%; width: 20px; height: 120px; background: linear-gradient(180deg, #702243 0%, #c8553d 50%, #702243 100%); border-radius: 2%; transform-origin: top center; animation: rc-banner-wave 6s ease-in-out infinite alternate-reverse; }
.scn-refinement-at-court .courtiers { position: absolute; bottom: 20%; left: 30%; width: 120px; height: 100px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: rc-bow 10s ease-in-out infinite; box-shadow: 0 0 20px rgba(0,0,0,.6); }
.scn-refinement-at-court .candle-glow { position: absolute; bottom: 40%; left: 50%; width: 10px; height: 10px; background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 30px 10px rgba(255,160,64,.5); animation: rc-flicker 2s ease-in-out infinite alternate; }
.scn-refinement-at-court .chandelier { position: absolute; top: 0; left: 50%; width: 160px; height: 80px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 80%, #ffd080 0%, transparent 60%), linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 10px 40px rgba(255,208,128,.3); animation: rc-flicker 3s ease-in-out infinite alternate-reverse; }

@keyframes rc-depth { 0% { opacity: .8; } 50% { opacity: 1; background-size: 100% 100%; } 100% { opacity: .85; } }
@keyframes rc-banner-wave { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.05); } 100% { transform: rotate(5deg) scaleY(1); } }
@keyframes rc-bow { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(-5px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rc-flicker { 0% { opacity: .7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-48%) scale(1.05); } 100% { opacity: .8; transform: translateX(-52%) scale(.95); } }

.scn-spensers-appearance {
  background: linear-gradient(135deg, #1a1110 0%, #3a251a 50%, #5a4030 100%), radial-gradient(circle at 60% 40%, #f0d080 0%, transparent 50%);
}
.scn-spensers-appearance .bg-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a10 0%, #4a3020 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.4); animation: sa-ambient 15s ease-in-out infinite alternate; }
.scn-spensers-appearance .light-source { position: absolute; top: 15%; right: 20%; width: 80px; height: 120px; background: radial-gradient(ellipse at 50% 50%, rgba(240,208,128,.4) 0%, transparent 70%); border-radius: 40%; animation: sa-glow 6s ease-in-out infinite alternate; }
.scn-spensers-appearance .silhouette-head { position: absolute; bottom: 35%; left: 35%; width: 70px; height: 85px; background: linear-gradient(180deg, #2a2018 0%, #1a1010 100%); border-radius: 45% 40% 40% 45% / 60% 50% 50% 55%; transform-origin: bottom center; box-shadow: inset -10px 0 20px rgba(0,0,0,.6); animation: sa-breathe 8s ease-in-out infinite; }
.scn-spensers-appearance .hat { position: absolute; bottom: 76%; left: 33%; width: 90px; height: 25px; background: #1a1010; border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sa-breathe 8s ease-in-out infinite; }
.scn-spensers-appearance .collar { position: absolute; bottom: 24%; left: 32%; width: 80px; height: 30px; background: linear-gradient(180deg, #f0e8d8 0%, #d0c8b8 100%); border-radius: 20% 20% 40% 40% / 40% 40% 60% 60%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: sa-colla 10s ease-in-out infinite alternate; }
.scn-spensers-appearance .shoulder { position: absolute; bottom: 10%; left: 25%; width: 120px; height: 60px; background: linear-gradient(180deg, #3a2a20 0%, #1a1010 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; }
.scn-spensers-appearance .hair-curls { position: absolute; bottom: 64%; left: 38%; width: 40px; height: 30px; background: #1a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 6px 4px 0 #1a0a0a, -4px 6px 0 #1a0a0a; animation: sa-breathe 8s ease-in-out infinite; }

@keyframes sa-ambient { 0% { opacity: .8; background-size: 100% 100%; } 50% { opacity: 1; } 100% { opacity: .85; background-size: 105% 105%; } }
@keyframes sa-glow { 0% { opacity: .5; transform: scale(.9); } 50% { opacity: .8; transform: scale(1.1); } 100% { opacity: .6; transform: scale(1); } }
@keyframes sa-breathe { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes sa-colla { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-shepheards-calender-published {
  background: linear-gradient(180deg, #a0b0c0 0%, #f5f0e0 50%, #d2b48c 100%), radial-gradient(circle at 50% 0%, #fff 0%, transparent 60%);
}
.scn-shepheards-calender-published .bg-pastoral { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #d0d8e0 0%, #e8f0e0 100%); opacity: .3; border-radius: 0 0 50% 50% / 0 0 20% 20%; animation: scp-dawn 25s ease-in-out infinite alternate; }
.scn-shepheards-calender-published .table { position: absolute; bottom: 0; left: 5%; width: 90%; height: 35%; background: linear-gradient(180deg, #5c4033 0%, #3b2818 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); transform: perspective(400px) rotateX(5deg); }
.scn-shepheards-calender-published .book-cover { position: absolute; bottom: 18%; left: 50%; width: 110px; height: 150px; transform: translateX(-50%); background: linear-gradient(135deg, #4a2a1a 0%, #6a4030 50%, #3a1a0a 100%); border-radius: 4% 4% 2% 2% / 6% 6% 3% 3%; box-shadow: 0 8px 20px rgba(0,0,0,.6), inset 0 0 20px rgba(0,0,0,.3); border: 3px solid #a08060; animation: scp-read 12s ease-in-out infinite alternate; }
.scn-shepheards-calender-published .hand { position: absolute; bottom: 22%; left: 58%; width: 30px; height: 45px; background: linear-gradient(180deg, #e8d0b8 0%, #c0a088 100%); border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%; transform-origin: 80% 100%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: scp-turn 10s ease-in-out infinite; }
.scn-shepheards-calender-published .quill { position: absolute; bottom: 35%; left: 62%; width: 6px; height: 80px; background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a0 40%, #a08060 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform: rotate(15deg); transform-origin: 50% 100%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: scp-write 6s ease-in-out infinite; }
.scn-shepheards-calender-published .inkpot { position: absolute; bottom: 12%; left: 58%; width: 25px; height: 30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-shepheards-calender-published .sheep { position: absolute; bottom: 38%; width: 30px; height: 20px; background: radial-gradient(circle at 30% 50%, #f0e8d8 0%, #d0c8b8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.1); }
.scn-shepheards-calender-published .sheep-a { left: 20%; animation: scp-graze 15s ease-in-out infinite; }
.scn-shepheards-calender-published .sheep-b { left: 65%; bottom: 42%; width: 25px; height: 18px; animation: scp-graze 20s ease-in-out infinite reverse; animation-delay: -5s; }

@keyframes scp-dawn { 0% { opacity: .2; } 50% { opacity: .4; } 100% { opacity: .25; } }
@keyframes scp-read { 0% { transform: translateX(-50%) rotateY(-2deg); } 50% { transform: translateX(-50%) rotateY(2deg) translateY(-2px); } 100% { transform: translateX(-50%) rotateY(0deg); } }
@keyframes scp-turn { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(20deg) translateY(-5px); } 50% { transform: rotate(15deg) translateY(-3px); } 70% { transform: rotate(25deg) translateY(-6px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes scp-write { 0% { transform: rotate(15deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-5px); } 50% { transform: rotate(20deg) translateY(-10px); } 75% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes scp-graze { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(10px) translateY(-2px); } 50% { transform: translateX(20px) translateY(0); } 75% { transform: translateX(10px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }

.scn-generall-end-of-the-booke { background: linear-gradient(180deg, #f4e8c1 0%, #dac292 50%, #c9b18c 100%), radial-gradient(ellipse at 50% 0%, #fff4e6 0%, transparent 70%); }
.scn-generall-end-of-the-booke .geb-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(201,177,140,.4) 100%); }
.scn-generall-end-of-the-booke .geb-window { position:absolute; right:8%; top:8%; width:28%; height:45%; background: linear-gradient(180deg, #e6f0fa 0%, #b0c8db 100%); border-radius: 4px 4px 2px 2px; box-shadow: inset 0 0 20px rgba(255,255,255,.6), 0 0 30px rgba(176,200,219,.4); animation: geb-window-glow 8s ease-in-out infinite alternate; }
.scn-generall-end-of-the-booke .geb-desk { position:absolute; bottom:12%; left:5%; right:5%; height:28%; background: linear-gradient(180deg, #6b4c3a 0%, #3e2723 100%); border-radius: 6px; box-shadow: 0 8px 24px rgba(0,0,0,.5); }
.scn-generall-end-of-the-booke .geb-bookshelf-left { position:absolute; left:3%; top:12%; width:12%; height:65%; background: linear-gradient(90deg, #4e342e 0%, #3e2723 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-generall-end-of-the-booke .geb-bookshelf-right { position:absolute; left:85%; top:12%; width:12%; height:65%; background: linear-gradient(90deg, #3e2723 0%, #4e342e 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-generall-end-of-the-booke .geb-figure { position:absolute; bottom:12%; left:38%; width:12%; height:38%; background: linear-gradient(180deg, #4a3b32 0%, #261a15 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: geb-write 12s ease-in-out infinite; }
.scn-generall-end-of-the-booke .geb-paper { position:absolute; bottom:22%; left:48%; width:22%; height:14%; background: #fdf5e6; border-radius: 2px; transform: rotate(-4deg); box-shadow: 0 6px 12px rgba(0,0,0,.25); animation: geb-paper-float 15s ease-in-out infinite alternate; }
.scn-generall-end-of-the-booke .geb-quill { position:absolute; bottom:32%; left:52%; width:10%; height:2px; background: linear-gradient(90deg, #8c7a6b 0%, #d4c4b0 100%); border-radius: 50%; transform: rotate(-25deg); transform-origin: right center; animation: geb-write 12s ease-in-out infinite; }
.scn-generall-end-of-the-booke .geb-light-beam { position:absolute; right:8%; top:8%; width:28%; height:75%; background: linear-gradient(180deg, rgba(255,255,255,.35) 0%, rgba(255,255,255,.05) 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: geb-light-fade 8s ease-in-out infinite alternate; }
@keyframes geb-window-glow { 0% { opacity:.8; box-shadow: inset 0 0 20px rgba(255,255,255,.4), 0 0 20px rgba(176,200,219,.3); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,255,255,.8), 0 0 40px rgba(176,200,219,.6); } 100% { opacity:.9; box-shadow: inset 0 0 25px rgba(255,255,255,.5), 0 0 30px rgba(176,200,219,.4); } }
@keyframes geb-write { 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 geb-paper-float { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes geb-light-fade { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }

.scn-following-antique-poets { background: linear-gradient(135deg, #e8dccc 0%, #c6b39a 50%, #a48e78 100%), radial-gradient(circle at 50% 30%, #fdf5e6 0%, transparent 70%); }
.scn-following-antique-poets .fap-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(164,142,120,.3) 100%); }
.scn-following-antique-poets .fap-pedestal-left { position:absolute; bottom:18%; left:18%; width:14%; height:52%; background: linear-gradient(90deg, #8c7a6b 0%, #e8dccc 30%, #c6b39a 70%, #8c7a6b 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,.3); }
.scn-following-antique-poets .fap-bust-left { position:absolute; bottom:60%; left:18%; width:14%; height:22%; background: linear-gradient(180deg, #e8dccc 0%, #c6b39a 50%, #a48e78 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 -4px 12px rgba(0,0,0,.2); animation: fap-gaze 10s ease-in-out infinite; }
.scn-following-antique-poets .fap-pedestal-right { position:absolute; bottom:18%; right:18%; width:14%; height:52%; background: linear-gradient(90deg, #8c7a6b 0%, #e8dccc 30%, #c6b39a 70%, #8c7a6b 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,.3); }
.scn-following-antique-poets .fap-bust-right { position:absolute; bottom:60%; right:18%; width:14%; height:22%; background: linear-gradient(180deg, #e8dccc 0%, #a48e78 50%, #8c7a6b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 -4px 12px rgba(0,0,0,.2); animation: fap-gaze 10s ease-in-out infinite reverse; }
.scn-following-antique-poets .fap-scroll { position:absolute; bottom:12%; left:38%; width:24%; height:14%; background: linear-gradient(180deg, #fdf5e6 0%, #e8dccc 100%); border-radius: 50% / 100% 100% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: fap-unfurl 6s ease-in-out infinite alternate; }
.scn-following-antique-poets .fap-lamp { position:absolute; bottom:28%; left:45%; width:10%; height:28%; background: linear-gradient(180deg, #c4a35a 0%, #8c7a6b 100%); border-radius: 6px 6px 4px 4px; }
.scn-following-antique-poets .fap-glow { position:absolute; top:35%; left:38%; width:24%; height:35%; background: radial-gradient(circle, rgba(196,163,90,.5) 0%, rgba(196,163,90,.1) 50%, transparent 70%); animation: fap-lamp-glow 4s ease-in-out infinite alternate; }
.scn-following-antique-poets .fap-shadow-left { position:absolute; bottom:18%; left:18%; width:14%; height:52%; background: linear-gradient(90deg, rgba(0,0,0,.25) 0%, transparent 100%); }
@keyframes fap-gaze { 0% { transform: rotate(0deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes fap-unfurl { 0% { height:12%; } 50% { height:16%; } 100% { height:12%; } }
@keyframes fap-lamp-glow { 0% { opacity:.4; transform: scale(.95); } 50% { opacity:.9; transform: scale(1.05); } 100% { opacity:.5; transform: scale(.95); } }

.scn-pourtraict-of-arthure { background: linear-gradient(180deg, #e8dccc 0%, #dac292 60%, #c9b18c 100%), radial-gradient(ellipse at 50% 30%, #fff4e6 0%, transparent 80%); }
.scn-pourtraict-of-arthure .poa-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 50%, rgba(201,177,140,.4) 100%); }
.scn-pourtraict-of-arthure .poa-canvas { position:absolute; left:25%; top:8%; width:50%; height:65%; background: linear-gradient(180deg, #fdf5e6 0%, #f4e8c1 100%); border-radius: 6px; box-shadow: 0 16px 40px rgba(0,0,0,.3); }
.scn-pourtraict-of-arthure .poa-knight-silhouette { position:absolute; left:30%; top:12%; width:40%; height:55%; background: linear-gradient(180deg, #4a3b32 0%, #261a15 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; animation: poa-breathe 8s ease-in-out infinite; }
.scn-pourtraict-of-arthure .poa-easel { position:absolute; left:18%; top:4%; width:64%; height:78%; background: linear-gradient(90deg, #6b4c3a 0%, #4e342e 50%, #6b4c3a 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); box-shadow: 0 8px 24px rgba(0,0,0,.4); }
.scn-pourtraict-of-arthure .poa-armor { position:absolute; right:8%; bottom:18%; width:18%; height:42%; background: linear-gradient(180deg, #c6b39a 0%, #8c7a6b 50%, #6b4c3a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 6px 16px rgba(0,0,0,.5); animation: poa-glint 12s ease-in-out infinite; }
.scn-pourtraict-of-arthure .poa-wreath { position:absolute; top:6%; left:44%; width:12%; height:10%; background: radial-gradient(circle, #6b8e23 0%, #556b2f 100%); border-radius: 50%; clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); animation: poa-hover 6s ease-in-out infinite alternate; }
.scn-pourtraict-of-arthure .poa-palette { position:absolute; bottom:12%; left:12%; width:14%; height:9%; background: #c9b18c; border-radius: 50% 40% 50% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-pourtraict-of-arthure .poa-brush { position:absolute; bottom:16%; left:18%; width:10%; height:2px; background: linear-gradient(90deg, #4a3b32 0%, #d4c4b0 100%); border-radius: 50%; transform: rotate(25deg); transform-origin: left center; animation: poa-paint 10s ease-in-out infinite; }
.scn-pourtraict-of-arthure .poa-glint-spot { position:absolute; right:14%; bottom:35%; width:4%; height:6%; background: radial-gradient(circle, #fff4e6 0%, transparent 70%); border-radius: 50%; animation: poa-glint 12s ease-in-out infinite; }
@keyframes poa-breathe { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes poa-glint { 0% { opacity:.4; } 50% { opacity:.9; } 100% { opacity:.5; } }
@keyframes poa-hover { 0% { transform: translateY(0) rotate(-6deg); } 50% { transform: translateY(-5px) rotate(0deg); } 100% { transform: translateY(0) rotate(6deg); } }
@keyframes poa-paint { 0% { transform: rotate(25deg) translateX(0); } 50% { transform: rotate(15deg) translateX(12px); } 100% { transform: rotate(25deg) translateX(0); } }

.scn-defence-of-allegorical-method { background: linear-gradient(135deg, #dac292 0%, #c6b39a 50%, #b09a85 100%), radial-gradient(circle at 50% 40%, #fdf5e6 0%, transparent 80%); }
.scn-defence-of-allegorical-method .dam-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, rgba(176,154,133,.4) 100%); }
.scn-defence-of-allegorical-method .dam-column-left { position:absolute; bottom:0; left:4%; width:8%; height:92%; background: linear-gradient(90deg, #8c7a6b 0%, #c6b39a 20%, #e8dccc 50%, #c6b39a 80%, #8c7a6b 100%); border-radius: 6px 6px 0 0; box-shadow: 0 0 20px rgba(0,0,0,.2); }
.scn-defence-of-allegorical-method .dam-column-right { position:absolute; bottom:0; right:4%; width:8%; height:92%; background: linear-gradient(90deg, #8c7a6b 0%, #c6b39a 20%, #e8dccc 50%, #c6b39a 80%, #8c7a6b 100%); border-radius: 6px 6px 0 0; box-shadow: 0 0 20px rgba(0,0,0,.2); }
.scn-defence-of-allegorical-method .dam-arch { position:absolute; top:6%; left:4%; width:92%; height:18%; background: linear-gradient(180deg, #e8dccc 0%, #c6b39a 100%); border-radius: 50% / 100% 100% 0 0; box-shadow: 0 8px 24px rgba(0,0,0,.15); animation: dam-arch-breath 12s ease-in-out infinite alternate; }
.scn-defence-of-allegorical-method .dam-path { position:absolute; bottom:0; left:16%; width:68%; height:45%; background: linear-gradient(180deg, #dac292 0%, #b09a85 100%); clip-path: polygon(5% 0, 95% 0, 85% 100%, 15% 100%); }
.scn-defence-of-allegorical-method .dam-figure { position:absolute; bottom:22%; left:30%; width:10%; height:32%; background: linear-gradient(180deg, #4a3b32 0%, #261a15 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dam-walk 15s ease-in-out infinite; }
.scn-defence-of-allegorical-method .dam-shadow-figure { position:absolute; bottom:22%; left:48%; width:10%; height:32%; background: linear-gradient(180deg, rgba(38,26,21,.7) 0%, rgba(38,26,21,.9) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dam-walk 15s ease-in-out infinite reverse; }
.scn-defence-of-allegorical-method .dam-dapple { position:absolute; top:25%; left:15%; width:70%; height:60%; background: radial-gradient(circle at 30% 40%, rgba(255,255,255,.3) 0%, transparent 35%), radial-gradient(circle at 70% 60%, rgba(255,255,255,.2) 0%, transparent 30%), radial-gradient(circle at 50% 80%, rgba(255,255,255,.1) 0%, transparent 25%); animation: dam-dapple-shift 20s ease-in-out infinite alternate; }
.scn-defence-of-allegorical-method .dam-canopy { position:absolute; top:6%; left:4%; width:92%; height:25%; background: linear-gradient(180deg, rgba(164,142,120,.2) 0%, transparent 100%); border-radius: 50% / 100% 100% 0 0; }
@keyframes dam-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(20px) rotate(-2deg); } 50% { transform: translateX(40px) rotate(0deg); } 75% { transform: translateX(60px) rotate(2deg); } 100% { transform: translateX(80px) rotate(0deg); } }
@keyframes dam-dapple-shift { 0% { opacity:.2; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes dam-arch-breath { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.015); } 100% { transform: scaleY(1); } }

.scn-charissa-bounty {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #ffd700 100%),
              radial-gradient(ellipse at 70% 20%, rgba(255,215,0,0.3) 0%, transparent 60%);
}
.scn-charissa-bounty .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, transparent 100%); animation: chb-sky 12s ease-in-out infinite alternate; }
.scn-charissa-bounty .sun { position:absolute; top:12%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,215,0,0.5); animation: chb-sun 4s ease-in-out infinite; }
.scn-charissa-bounty .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: chb-hills 18s ease-in-out infinite alternate; }
.scn-charissa-bounty .mother { position:absolute; bottom:25%; left:45%; width:28px; height:55px; background: linear-gradient(180deg, #e8b88a 0%, #d49a6a 30%, #8b5e3c 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: chb-mother 5s ease-in-out infinite; }
.scn-charissa-bounty .child { position:absolute; bottom:28%; left:52%; width:18px; height:35px; background: linear-gradient(180deg, #f5deb3 0%, #b5651d 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: chb-child 3s ease-in-out infinite; }
.scn-charissa-bounty .flower-a { position:absolute; bottom:30%; left:38%; width:8px; height:8px; background: radial-gradient(circle, #ff69b4, #c71585); border-radius:50%; animation: chb-flower 2s ease-in-out infinite; }
.scn-charissa-bounty .flower-b { position:absolute; bottom:32%; left:60%; width:6px; height:6px; background: radial-gradient(circle, #ffb6c1, #db7093); border-radius:50%; animation: chb-flower 2s ease-in-out infinite 1s; }
@keyframes chb-sky { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes chb-sun { 0%,100% { transform:scale(1); opacity:0.9 } 50% { transform:scale(1.15); opacity:1 } }
@keyframes chb-hills { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes chb-mother { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-2deg) } }
@keyframes chb-child { 0% { transform:translateY(0) } 50% { transform:translateY(-5px) } 100% { transform:translateY(0) } }
@keyframes chb-flower { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(15deg) } 100% { transform:translateY(0) rotate(0deg) } }

.scn-charissa-instruction {
  background: linear-gradient(180deg, #fff8dc 0%, #deb887 70%),
              radial-gradient(ellipse at 30% 20%, rgba(255,215,0,0.2) 0%, transparent 60%);
}
.scn-charissa-instruction .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); }
.scn-charissa-instruction .window { position:absolute; top:8%; left:20%; width:40px; height:50px; background: #87ceeb; border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 10px rgba(255,215,0,0.3); animation: chi-window 6s ease-in-out infinite alternate; }
.scn-charissa-instruction .desk { position:absolute; bottom:20%; left:25%; right:25%; height:12px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1e 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
.scn-charissa-instruction .teacher { position:absolute; bottom:22%; left:35%; width:24px; height:48px; background: linear-gradient(180deg, #e8b88a 0%, #b5651d 50%, #7a3b0d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: chi-teacher 4s ease-in-out infinite; }
.scn-charissa-instruction .arm { position:absolute; bottom:30%; left:42%; width:6px; height:18px; background: #e8b88a; border-radius: 4px; transform-origin: bottom center; animation: chi-arm 4s ease-in-out infinite; }
.scn-charissa-instruction .book { position:absolute; bottom:22%; left:48%; width:14px; height:10px; background: #f5deb3; border-radius: 2px; box-shadow: 0 1px 3px rgba(0,0,0,0.2); animation: chi-book 2s ease-in-out infinite; }
.scn-charissa-instruction .light { position:absolute; top:12%; left:18%; width:80px; height:60px; background: linear-gradient(135deg, rgba(255,255,224,0.5) 0%, transparent 100%); transform: rotate(-15deg); animation: chi-light 8s ease-in-out infinite alternate; }
@keyframes chi-window { 0%,100% { box-shadow: inset 0 0 10px rgba(255,215,0,0.3) } 50% { box-shadow: inset 0 0 20px rgba(255,215,0,0.6) } }
@keyframes chi-teacher { 0% { transform:rotate(0deg) } 50% { transform:rotate(3deg) } 100% { transform:rotate(0deg) } }
@keyframes chi-arm { 0% { transform:rotate(-10deg) } 50% { transform:rotate(10deg) } 100% { transform:rotate(-10deg) } }
@keyframes chi-book { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes chi-light { 0% { opacity:0.4; transform: rotate(-15deg) translateX(0) } 50% { opacity:0.8; transform: rotate(-10deg) translateX(5px) } 100% { opacity:0.4; transform: rotate(-15deg) translateX(0) } }

.scn-mercy-guide {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #ffd700 100%),
              radial-gradient(ellipse at 80% 10%, rgba(255,215,0,0.3) 0%, transparent 50%);
}
.scn-mercy-guide .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0e0e6 0%, transparent 100%); animation: mgu-sky 15s ease-in-out infinite alternate; }
.scn-mercy-guide .sun { position:absolute; top:8%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,215,0,0.4); animation: mgu-sun 6s ease-in-out infinite; }
.scn-mercy-guide .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8f9779 0%, #6b8e23 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; animation: mgu-ground 20s ease-in-out infinite alternate; }
.scn-mercy-guide .bush-l { position:absolute; bottom:15%; left:5%; width:60px; height:40px; background: radial-gradient(ellipse at 30% 40%, #3a5f0b 0%, #2e4a0a 70%); border-radius: 60% 40% 50% 50%; animation: mgu-bush 3s ease-in-out infinite; }
.scn-mercy-guide .bush-r { position:absolute; bottom:20%; right:10%; width:50px; height:30px; background: radial-gradient(ellipse at 70% 30%, #3a5f0b 0%, #2e4a0a 70%); border-radius: 40% 60% 50% 50%; animation: mgu-bush 3s ease-in-out infinite 1.5s; }
.scn-mercy-guide .guide { position:absolute; bottom:30%; left:40%; width:22px; height:45px; background: linear-gradient(180deg, #c8553d 0%, #8b5e3c 60%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mgu-guide 4s ease-in-out infinite; }
.scn-mercy-guide .traveler { position:absolute; bottom:30%; left:50%; width:18px; height:38px; background: linear-gradient(180deg, #d49a6a 0%, #8b5e3c 60%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mgu-traveler 4s ease-in-out infinite 0.5s; }
@keyframes mgu-sky { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes mgu-sun { 0% { transform:scale(1) translate(0,0); opacity:0.9 } 50% { transform:scale(1.1) translate(3px,-3px); opacity:1 } 100% { transform:scale(1) translate(0,0); opacity:0.9 } }
@keyframes mgu-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes mgu-bush { 0% { transform:rotate(-3deg) } 50% { transform:rotate(3deg) } 100% { transform:rotate(-3deg) } }
@keyframes mgu-guide { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(5px) rotate(2deg) } 100% { transform:translateX(0) rotate(-2deg) } }
@keyframes mgu-traveler { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(4px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0deg) } }

.scn-hospital-seven-beadmen {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #d2b48c 100%);
}
.scn-hospital-seven-beadmen .building { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:160px; height:120px; background: linear-gradient(180deg, #c2a382 0%, #8b7355 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.2); }
.scn-hospital-seven-beadmen .beadman { position:absolute; bottom:20%; width:12px; height:20px; background: linear-gradient(180deg, #6b4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: hsp-beadman 2s ease-in-out infinite; }
.scn-hospital-seven-beadmen .beadman:nth-child(2) { left:calc(50% - 50px); animation-delay:0.3s; }
.scn-hospital-seven-beadmen .beadman:nth-child(3) { left:calc(50% - 35px); animation-delay:0.6s; }
.scn-hospital-seven-beadmen .beadman:nth-child(4) { left:calc(50% - 20px); animation-delay:0.9s; }
.scn-hospital-seven-beadmen .beadman:nth-child(5) { left:calc(50% - 5px); animation-delay:1.2s; }
.scn-hospital-seven-beadmen .beadman:nth-child(6) { left:calc(50% + 10px); animation-delay:1.5s; }
.scn-hospital-seven-beadmen .beadman:nth-child(7) { left:calc(50% + 25px); animation-delay:1.8s; }
.scn-hospital-seven-beadmen .beadman:nth-child(8) { left:calc(50% + 40px); animation-delay:2.1s; }
@keyframes hsp-beadman { 0% { transform:rotate(0deg) } 50% { transform:rotate(4deg) } 100% { transform:rotate(0deg) } }

/* dragon-approach-knight-reply */
.scn-dragon-approach-knight-reply { background: linear-gradient(180deg,#ffd080 0%,#e8a040 40%,#8c4a20 100%), radial-gradient(ellipse at 70% 30%,#ffe080 0%,transparent 50%); }
.scn-dragon-approach-knight-reply .a { position:absolute;inset:0 0 60% 0;background:linear-gradient(180deg,rgba(255,215,130,.3),transparent);animation:dk-a 12s ease-in-out infinite alternate; }
.scn-dragon-approach-knight-reply .b { position:absolute;top:15%;right:25%;width:80px;height:80px;background:radial-gradient(circle,#fff0c0 0%,#ffc860 40%,transparent 70%);border-radius:50%;box-shadow:0 0 60px 20px rgba(255,200,100,.6);animation:dk-b 8s ease-in-out infinite; }
.scn-dragon-approach-knight-reply .c { position:absolute;bottom:25%;left:0;right:0;height:50%;background:linear-gradient(180deg,#6b4a2a 0%,#3c2a18 100%);border-radius:60% 40% 0 0 / 80% 70% 0 0;box-shadow:inset 0 10px 20px rgba(0,0,0,.5);animation:dk-c 15s ease-in-out infinite alternate; }
.scn-dragon-approach-knight-reply .c::before { content:'';position:absolute;bottom:0;left:-30px;width:200px;height:100%;background:inherit;border-radius:50% 60% 0 0 / 70% 80% 0 0;transform:scaleX(-1); }
.scn-dragon-approach-knight-reply .d { position:absolute;bottom:30%;left:25%;width:180px;height:90px;background:#2a1a10;border-radius:50% 50% 20% 20% / 60% 50% 40% 30%;box-shadow:0 0 30px rgba(0,0,0,.7);animation:dk-d 6s ease-in-out infinite; }
.scn-dragon-approach-knight-reply .d::before { content:'';position:absolute;top:-15px;left:20px;width:50px;height:35px;background:#1a1008;border-radius:50% 50% 0 0;transform:rotate(-10deg); }
.scn-dragon-approach-knight-reply .d::after { content:'';position:absolute;top:10px;right:70px;width:90px;height:50px;background:#1a1008;border-radius:50% 0 50% 0;transform:rotate(20deg);opacity:.8; }
.scn-dragon-approach-knight-reply .e { position:absolute;bottom:10%;left:50%;width:35px;height:60px;background:#3a2a1a;border-radius:30% 30% 20% 20% / 40% 40% 30% 30%;transform:translateX(-50%);animation:dk-e 4s ease-in-out infinite; }
.scn-dragon-approach-knight-reply .e::before { content:'';position:absolute;top:-15px;left:8px;width:18px;height:25px;background:#2a1a10;border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;transform:rotate(10deg); }
.scn-dragon-approach-knight-reply .f { position:absolute;top:20%;left:10%;width:100px;height:25px;background:rgba(255,255,255,.3);border-radius:50%;filter:blur(8px);animation:dk-f 35s linear infinite; }
@keyframes dk-a { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes dk-b { 0%{transform:scale(.9);opacity:.8} 50%{transform:scale(1.1);opacity:1} 100%{transform:scale(.95);opacity:.85} }
@keyframes dk-c { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes dk-d { 0%{transform:scale(1) rotate(0deg)} 50%{transform:scale(1.02) rotate(-2deg)} 100%{transform:scale(.98) rotate(1deg)} }
@keyframes dk-e { 0%{transform:translateX(-50%) translateY(0) rotate(-2deg)} 25%{transform:translateX(-50%) translateY(-2px) rotate(2deg)} 50%{transform:translateX(-50%) translateY(0) rotate(-1deg)} 75%{transform:translateX(-50%) translateY(-3px) rotate(1deg)} 100%{transform:translateX(-50%) translateY(0) rotate(0)} }
@keyframes dk-f { 0%{transform:translateX(-80px)} 50%{transform:translateX(40vw)} 100%{transform:translateX(150vw)} }

/* dragon-approach-una-sighting */
.scn-dragon-approach-una-sighting { background: linear-gradient(180deg,#ffe8b0 0%,#d4a050 40%,#7a3a1a 100%), radial-gradient(ellipse at 60% 20%,#ffe080 0%,transparent 60%); }
.scn-dragon-approach-una-sighting .a { position:absolute;inset:0 0 50% 0;background:linear-gradient(180deg,rgba(255,230,180,.3),transparent);animation:du-a 14s ease-in-out infinite alternate; }
.scn-dragon-approach-una-sighting .b { position:absolute;top:10%;right:30%;width:90px;height:90px;background:radial-gradient(circle,#fff5d0 0%,#ffcc70 40%,transparent 70%);border-radius:50%;box-shadow:0 0 70px 25px rgba(255,204,112,.5);animation:du-b 9s ease-in-out infinite; }
.scn-dragon-approach-una-sighting .c { position:absolute;bottom:20%;left:0;right:0;height:60%;background:linear-gradient(180deg,#8a6a4a 0%,#4a2a1a 100%);border-radius:20% 30% 0 0 / 40% 50% 0 0;box-shadow:inset 0 8px 16px rgba(0,0,0,.6);animation:du-c 20s ease-in-out infinite alternate; }
.scn-dragon-approach-una-sighting .c::before { content:'';position:absolute;top:-20px;left:10%;width:80%;height:20px;background:#5a3a2a;border-radius:10px 10px 0 0;box-shadow:0 -4px 0 #3a2010; }
.scn-dragon-approach-una-sighting .d { position:absolute;bottom:55%;left:60%;width:120px;height:70px;background:#1a1008;border-radius:40% 40% 30% 30% / 50% 50% 20% 20%;box-shadow:0 0 20px rgba(0,0,0,.8);animation:du-d 5s ease-in-out infinite; }
.scn-dragon-approach-una-sighting .d::before { content:'';position:absolute;top:-25px;left:30px;width:40px;height:30px;background:#1a1008;border-radius:50%;transform:rotate(15deg); }
.scn-dragon-approach-una-sighting .e { position:absolute;bottom:12%;left:35%;width:25px;height:50px;background:#2a1a10;border-radius:30% 30% 20% 20% / 40% 40% 30% 30%;transform:translateX(-50%);animation:du-e 4s ease-in-out infinite; }
.scn-dragon-approach-una-sighting .e::before { content:'';position:absolute;top:-10px;left:5px;width:15px;height:20px;background:#2a1a10;border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;transform:rotate(5deg); }
.scn-dragon-approach-una-sighting .e::after { content:'';position:absolute;top:-5px;right:-15px;width:20px;height:3px;background:#8c4a20;transform:rotate(40deg);border-radius:2px; }
.scn-dragon-approach-una-sighting .f { position:absolute;bottom:5%;left:20%;right:20%;height:5%;background:#3a2010;border-radius:50% 50% 0 0;box-shadow:0 -2px 4px rgba(0,0,0,.5); }
.scn-dragon-approach-una-sighting .g { position:absolute;top:15%;right:10%;width:80px;height:20px;background:rgba(255,255,255,.25);border-radius:50%;filter:blur(6px);animation:du-g 40s linear infinite; }
@keyframes du-a { 0%{opacity:.75} 50%{opacity:1} 100%{opacity:.8} }
@keyframes du-b { 0%{transform:scale(.85);opacity:.8} 50%{transform:scale(1.15);opacity:1} 100%{transform:scale(.9);opacity:.85} }
@keyframes du-c { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes du-d { 0%{transform:scale(1) rotate(0deg)} 50%{transform:scale(1.03) rotate(-3deg)} 100%{transform:scale(.97) rotate(2deg)} }
@keyframes du-e { 0%{transform:translateX(-50%) translateY(0) rotate(-2deg)} 25%{transform:translateX(-50%) translateY(-2px) rotate(2deg)} 50%{transform:translateX(-50%) translateY(0) rotate(-1deg)} 75%{transform:translateX(-50%) translateY(-3px) rotate(1deg)} 100%{transform:translateX(-50%) translateY(0) rotate(0)} }
@keyframes du-g { 0%{transform:translateX(0)} 50%{transform:translateX(-30vw)} 100%{transform:translateX(-100vw)} }

/* dragon-first-sight */
.scn-dragon-first-sight { background: linear-gradient(180deg,#c08040 0%,#a06020 40%,#603010 100%), radial-gradient(ellipse at 50% 40%,#e0b060 0%,transparent 60%); }
.scn-dragon-first-sight .a { position:absolute;inset:0 0 45% 0;background:linear-gradient(180deg,rgba(255,200,120,.25),transparent);animation:df-a 12s ease-in-out infinite alternate; }
.scn-dragon-first-sight .b { position:absolute;top:12%;left:45%;width:100px;height:100px;background:radial-gradient(circle,#ffe8c0 0%,#e0a050 40%,transparent 70%);border-radius:50%;box-shadow:0 0 80px 30px rgba(224,160,80,.5);animation:df-b 10s ease-in-out infinite; }
.scn-dragon-first-sight .c { position:absolute;bottom:10%;left:0;right:0;height:70%;background:linear-gradient(180deg,#7a5a3a 0%,#3a2a18 100%);border-radius:70% 30% 0 0 / 60% 40% 0 0;box-shadow:inset 0 12px 24px rgba(0,0,0,.7);animation:df-c 18s ease-in-out infinite alternate; }
.scn-dragon-first-sight .c::before { content:'';position:absolute;bottom:0;right:-20px;width:150px;height:80%;background:inherit;border-radius:40% 60% 0 0 / 50% 70% 0 0;transform:scaleX(-1); }
.scn-dragon-first-sight .d { position:absolute;bottom:40%;left:30%;width:240px;height:80px;background:#1a0e08;border-radius:80% 20% 50% 50% / 60% 30% 70% 40%;box-shadow:0 0 40px rgba(0,0,0,.8);animation:df-d 7s ease-in-out infinite; }
.scn-dragon-first-sight .d::before { content:'';position:absolute;top:-20px;left:30px;width:60px;height:40px;background:#1a0e08;border-radius:50% 50% 0 0;transform:rotate(-15deg); }
.scn-dragon-first-sight .d::after { content:'';position:absolute;top:5px;right:30px;width:100px;height:40px;background:#1a0e08;border-radius:0 50% 0 50%;transform:rotate(25deg);opacity:.9; }
.scn-dragon-first-sight .e { position:absolute;bottom:8%;left:20%;width:20px;height:15px;background:#4a2a1a;border-radius:50%;box-shadow:10px -5px 0 #3a2010, 20px 0 0 #4a2a1a; }
.scn-dragon-first-sight .f { position:absolute;top:18%;right:15%;width:70px;height:18px;background:rgba(255,255,255,.2);border-radius:50%;filter:blur(5px);animation:df-f 45s linear infinite; }
@keyframes df-a { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.75} }
@keyframes df-b { 0%{transform:scale(.9);opacity:.8} 50%{transform:scale(1.2);opacity:1} 100%{transform:scale(.95);opacity:.85} }
@keyframes df-c { 0%{transform:translateY(0)} 50%{transform:translateY(-5px)} 100%{transform:translateY(0)} }
@keyframes df-d { 0%{transform:scale(1) rotate(0deg)} 50%{transform:scale(1.02) rotate(-2deg)} 100%{transform:scale(.98) rotate(1deg)} }
@keyframes df-f { 0%{transform:translateX(0)} 50%{transform:translateX(30vw)} 100%{transform:translateX(120vw)} }

/* dragon-poet-invocation */
.scn-dragon-poet-invocation { background: linear-gradient(180deg,#f0c880 0%,#d0a050 40%,#806020 100%), radial-gradient(ellipse at 80% 30%,#ffe080 0%,transparent 50%); }
.scn-dragon-poet-invocation .a { position:absolute;inset:0 0 55% 0;background:linear-gradient(180deg,rgba(255,220,150,.2),transparent);animation:dp-a 14s ease-in-out infinite alternate; }
.scn-dragon-poet-invocation .b { position:absolute;top:10%;right:20%;width:120px;height:120px;background:radial-gradient(circle,#fff5d0 0%,#ffcc60 40%,transparent 70%);border-radius:50%;box-shadow:0 0 90px 35px rgba(255,204,96,.5);animation:dp-b 9s ease-in-out infinite; }
.scn-dragon-poet-invocation .c { position:absolute;bottom:10%;left:50%;width:40px;height:70px;background:#2a1a10;border-radius:30% 30% 20% 20% / 40% 40% 30% 30%;transform:translateX(-50%);animation:dp-c 5s ease-in-out infinite; }
.scn-dragon-poet-invocation .c::before { content:'';position:absolute;top:-15px;left:5px;width:30px;height:30px;background:#1a0e08;border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;transform:rotate(5deg); }
.scn-dragon-poet-invocation .c::after { content:'';position:absolute;bottom:10px;right:-25px;width:20px;height:40px;background:linear-gradient(180deg,#6a4a2a 0%,#3a2010 100%);border-radius:30% 30% 20% 20%;transform:rotate(-20deg); }
.scn-dragon-poet-invocation .d { position:absolute;bottom:12%;left:20%;width:100px;height:80px;background:linear-gradient(90deg,transparent 0%,#5a3a1a 30%,#5a3a1a 70%,transparent 100%);border-radius:40% 20% 20% 40% / 60% 30% 30% 60%;box-shadow:0 0 10px rgba(0,0,0,.4);animation:dp-d 8s ease-in-out infinite alternate; }
.scn-dragon-poet-invocation .e { position:absolute;bottom:5%;left:0;right:0;height:8%;background:linear-gradient(180deg,#4a3018 0%,#2a1808 100%);border-radius:20% 20% 0 0;box-shadow:inset 0 4px 8px rgba(0,0,0,.6); }
.scn-dragon-poet-invocation .f { position:absolute;top:20%;left:10%;width:90px;height:22px;background:rgba(255,255,255,.2);border-radius:50%;filter:blur(7px);animation:dp-f 50s linear infinite; }
@keyframes dp-a { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.75} }
@keyframes dp-b { 0%{transform:scale(.88);opacity:.8} 50%{transform:scale(1.12);opacity:1} 100%{transform:scale(.92);opacity:.85} }
@keyframes dp-c { 0%{transform:translateX(-50%) translateY(0) rotate(-3deg)} 25%{transform:translateX(-50%) translateY(-2px) rotate(3deg)} 50%{transform:translateX(-50%) translateY(0) rotate(-2deg)} 75%{transform:translateX(-50%) translateY(-3px) rotate(2deg)} 100%{transform:translateX(-50%) translateY(0) rotate(0)} }
@keyframes dp-d { 0%{transform:scale(1) rotate(0deg)} 50%{transform:scale(1.03) rotate(2deg)} 100%{transform:scale(1) rotate(-2deg)} }
@keyframes dp-f { 0%{transform:translateX(-60px)} 50%{transform:translateX(30vw)} 100%{transform:translateX(120vw)} }

.scn-vere-the-maine-shete {
  background: 
    linear-gradient(135deg, #a67c52 0%, #6b4e2e 50%, #4a3520 100%),
    radial-gradient(ellipse at 80% 20%, rgba(255,200,150,0.3) 0%, transparent 50%);
}
.scn-vere-the-maine-shete .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,255,200,0.05) 0%, transparent 100%);
  animation: vs-wall 20s ease-in-out infinite alternate;
}
.scn-vere-the-maine-shete .window-frame {
  position: absolute; top: 15%; right: 10%; width: 30%; height: 40%;
  border: 6px solid #5a3e2a; border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(255,200,150,0.2);
}
.scn-vere-the-maine-shete .window-content {
  position: absolute;
  top: calc(15% + 6px); right: calc(10% + 6px);
  width: calc(30% - 12px); height: calc(40% - 12px);
  background: linear-gradient(180deg, #87CEEB 0%, #2E8B57 50%, #1E90FF 100%);
  border-radius: 2px;
  animation: vs-window 10s ease-in-out infinite alternate;
}
.scn-vere-the-maine-shete .sunlight {
  position: absolute; top: 20%; left: 60%; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(255,220,150,0.4) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  filter: blur(5px);
  animation: vs-sun 8s ease-in-out infinite alternate;
}
.scn-vere-the-maine-shete .desk {
  position: absolute; bottom: 5%; left: 15%; width: 70%; height: 35%;
  background: linear-gradient(180deg, #8B5A2B 0%, #5C3A1E 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform: perspective(500px) rotateX(5deg);
}
.scn-vere-the-maine-shete .map {
  position: absolute; bottom: 20%; left: 30%; width: 25%; height: 30%;
  background: linear-gradient(135deg, #f5deb3 0%, #d2b48c 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: vs-map 12s ease-in-out infinite alternate;
}
.scn-vere-the-maine-shete .compass {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d4a373 0%, #8b5a2b 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
  animation: vs-compass 6s linear infinite;
}
.scn-vere-the-maine-shete .chair {
  position: absolute; bottom: 10%; left: 10%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2515 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  animation: vs-chair 15s ease-in-out infinite alternate;
}
.scn-vere-the-maine-shete .figure {
  position: absolute; bottom: 14%; left: 12%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: vs-figure 18s ease-in-out infinite alternate;
}
@keyframes vs-wall {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes vs-window {
  0% { background-position: 0% 0%; }
  50% { background-position: 0% 10%; }
  100% { background-position: 0% 0%; }
}
@keyframes vs-sun {
  0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.6; }
  50% { transform: translateX(10px) translateY(-5px) rotate(2deg); opacity: 1; }
  100% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.6; }
}
@keyframes vs-map {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes vs-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes vs-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes vs-figure {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.bubble { position: absolute; pointer-events: none; }
.bush { position: absolute; pointer-events: none; }
.cloud-plot { position: absolute; pointer-events: none; }
.courtier { position: absolute; pointer-events: none; }
.dark-cloud { position: absolute; pointer-events: none; }
.drip { position: absolute; pointer-events: none; }
.fugitive { position: absolute; pointer-events: none; }
.green { position: absolute; pointer-events: none; }
.gull { position: absolute; pointer-events: none; }
.kneeling { position: absolute; pointer-events: none; }
.mob { position: absolute; pointer-events: none; }
.motes { position: absolute; pointer-events: none; }
.overcast { position: absolute; pointer-events: none; }
.ray { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.star { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-canto-v-duessa { background: linear-gradient(180deg, #b8d4e8 0%, #f0e8c0 60%, #d4b880 100%), radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 60%); }
.scn-canto-v-duessa .sky   { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c8e0f0 0%, #f0e8c8 100%); animation: cvd-sky 12s ease-in-out infinite alternate; }
.scn-canto-v-duessa .sun   { position:absolute; top:10%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #fff5e0 0%, #ffd080 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,220,150,.4); animation: cvd-sun 8s ease-in-out infinite alternate; }
.scn-canto-v-duessa .field { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8aaa6a 0%, #5e7a3e 100%); border-radius: 40% 0 0 0 / 20% 0 0 0; animation: cvd-field 15s ease-in-out infinite alternate; }
.scn-canto-v-duessa .knight { position:absolute; bottom:28%; left:30%; width:30px; height:55px; background: linear-gradient(180deg, #708090 0%, #3a4a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cvd-knight 5s ease-in-out infinite; }
.scn-canto-v-duessa .duessa { position:absolute; bottom:26%; left:50%; width:28px; height:50px; background: linear-gradient(180deg, #b08060 0%, #805040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cvd-duessa 4s ease-in-out infinite; }
.scn-canto-v-duessa .flowers { position:absolute; bottom:20%; left:10%; right:10%; height:15%; background: radial-gradient(circle at 20% 50%, #d4c080 4px, transparent 5px), radial-gradient(circle at 60% 70%, #c0a060 3px, transparent 4px), radial-gradient(circle at 80% 30%, #e0c080 4px, transparent 5px); background-size: 30px 30px; animation: cvd-flowers 20s linear infinite; }
@keyframes cvd-sky   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cvd-sun   { 0% { transform: translate(0,0) scale(1); opacity:0.9 } 50% { transform: translate(8px,-5px) scale(1.05); opacity:1 } 100% { transform: translate(-4px,2px) scale(0.95); opacity:0.85 } }
@keyframes cvd-field { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes cvd-knight { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(6px) rotate(2deg) } 70% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cvd-duessa { 0% { transform: translateX(0) rotate(2deg) } 40% { transform: translateX(-8px) rotate(-1deg) } 80% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cvd-flowers { 0% { background-position: 0 0 } 100% { background-position: 40px 40px } }

.scn-canto-v-return { background: linear-gradient(180deg, #f0e8d0 0%, #d4c8a0 50%, #b8a880 100%), radial-gradient(ellipse at 50% 50%, #fff8e0 0%, transparent 70%); }
.scn-canto-v-return .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #c8b898 0%, #dcc8a0 50%, #c8b898 100%); animation: cvr-wall 20s ease-in-out infinite alternate; }
.scn-canto-v-return .floor   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: cvr-floor 15s ease-in-out infinite alternate; }
.scn-canto-v-return .throne  { position:absolute; bottom:30%; left:40%; width:50px; height:70px; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: cvr-throne 10s ease-in-out infinite; }
.scn-canto-v-return .queen   { position:absolute; bottom:27%; left:42%; width:22px; height:40px; background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cvr-queen 6s ease-in-out infinite; }
.scn-canto-v-return .knight  { position:absolute; bottom:22%; left:58%; width:24px; height:45px; background: linear-gradient(180deg, #708090 0%, #3a4a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cvr-knight 4s ease-in-out infinite; }
.scn-canto-v-return .banner  { position:absolute; bottom:32%; left:20%; width:8px; height:40px; background: #d4a060; transform: skewX(-10deg); animation: cvr-banner 8s ease-in-out infinite alternate; }
.scn-canto-v-return .people  { position:absolute; bottom:18%; left:5%; right:5%; height:30%; display: flex; gap: 12px; justify-content: center; } .scn-canto-v-return .people::before, .scn-canto-v-return .people::after { content: ''; width:14px; height:35px; background: #9a8a7a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; display: block; animation: cvr-people 3s ease-in-out infinite; }
@keyframes cvr-wall   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cvr-floor  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes cvr-throne { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cvr-queen  { 0% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes cvr-knight { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-5px) rotate(-2deg) } 70% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cvr-banner { 0% { transform: skewX(-10deg) } 50% { transform: skewX(10deg) } 100% { transform: skewX(-5deg) } }
@keyframes cvr-people { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }

.scn-canto-v-night { background: linear-gradient(180deg, #0e1628 0%, #1a2a3e 40%, #2a3a5a 100%), radial-gradient(ellipse at 50% 100%, #2a3a5a 0%, transparent 70%); }
.scn-canto-v-night .nightsky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a1220 0%, #162340 100%); animation: cvn-sky 15s ease-in-out infinite alternate; }
.scn-canto-v-night .moon     { position:absolute; top:8%; left:15%; width:40px; height:40px; background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 80%, transparent 100%); box-shadow: 0 0 40px 10px rgba(180,200,220,.3); border-radius:50%; animation: cvn-moon 20s ease-in-out infinite alternate; }
.scn-canto-v-night .nile     { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(90deg, #1a2a4a 0%, #2a4a6a 50%, #1a2a4a 100%); border-radius: 40% 60% 0 0 / 80% 80% 0 0; animation: cvn-nile 12s ease-in-out infinite alternate; }
.scn-canto-v-night .shore    { position:absolute; bottom:20%; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: cvn-shore 18s ease-in-out infinite alternate; }
.scn-canto-v-night .traveler { position:absolute; bottom:28%; left:35%; width:18px; height:40px; background: #14202a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cvn-traveler 5s ease-in-out infinite; }
.scn-canto-v-night .crocodile { position:absolute; bottom:22%; left:55%; width:50px; height:16px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 40% 40% / 40% 60% 40% 40%; transform-origin: center; animation: cvn-croc 6s ease-in-out infinite; }
.scn-canto-v-night .ripples   { position:absolute; bottom:32%; left:10%; right:10%; height:8px; background: radial-gradient(ellipse at 30% 50%, rgba(100,140,180,.3) 0%, transparent 60%), radial-gradient(ellipse at 70% 50%, rgba(100,140,180,.2) 0%, transparent 50%); animation: cvn-ripple 4s ease-in-out infinite; }
@keyframes cvn-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cvn-moon   { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(5px,-3px) scale(1.02) } 100% { transform: translate(-3px,2px) scale(0.98) } }
@keyframes cvn-nile   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes cvn-shore  { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(2px) } }
@keyframes cvn-traveler { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(4px) rotate(2deg) } 70% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cvn-croc   { 0% { transform: translateX(0) rotate(-2deg) } 40% { transform: translateX(6px) rotate(3deg) } 80% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cvn-ripple { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.2 } }

.scn-canto-v-descent { background: linear-gradient(180deg, #0c0e1a 0%, #1a1a2a 40%, #2a2030 100%), radial-gradient(ellipse at 50% 100%, #3a2a3a 0%, transparent 60%); }
.scn-canto-v-descent .deepbg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #080a14 0%, #141a22 100%); animation: cvdes-bg 20s ease-in-out infinite alternate; }
.scn-canto-v-descent .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a1a22 0%, #2a1a2a 50%, #1a0e1a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; animation: cvdes-ground 18s ease-in-out infinite alternate; }
.scn-canto-v-descent .woman  { position:absolute; bottom:35%; left:25%; width:20px; height:45px; background: linear-gradient(180deg, #2a1a2a 0%, #0e0a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cvdes-woman 5s ease-in-out infinite; }
.scn-canto-v-descent .dogs   { position:absolute; bottom:28%; left:45%; width:30px; height:20px; background: #1a1a22; border-radius: 30% 70% 50% 50% / 40% 60% 50% 50%; animation: cvdes-dogs 3s ease-in-out infinite; }
.scn-canto-v-descent .owl    { position:absolute; top:15%; right:20%; width:24px; height:30px; background: #2a2a3a; border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; transform-origin: center; animation: cvdes-owl 8s ease-in-out infinite; }
.scn-canto-v-descent .wheels { position:absolute; bottom:25%; left:55%; width:40px; height:40px; border: 3px solid #3a3a4a; border-radius:50%; background: transparent; box-shadow: inset 0 0 15px rgba(60,60,80,.3); animation: cvdes-wheels 4s linear infinite; } .scn-canto-v-descent .wheels::before { content:''; position:absolute; top:50%; left:50%; width:10px; height:10px; background: #3a3a4a; border-radius:50%; transform:translate(-50%,-50%); }
@keyframes cvdes-bg    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes cvdes-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes cvdes-woman { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(3px) rotate(2deg) } 70% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cvdes-dogs  { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(4px) translateY(-2px) } 100% { transform: translateX(-2px) translateY(1px) } }
@keyframes cvdes-owl   { 0% { transform: rotate(-5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-3deg) } }
@keyframes cvdes-wheels { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

/* Scene: canto-v-dungeon */
.scn-canto-v-dungeon { background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #2a1a1a 100%), radial-gradient(ellipse at 30% 70%, #3a2a2a 0%, transparent 60%); }
.scn-canto-v-dungeon .bg-wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 2px, #1a1a2e 2px, #1a1a2e 4px); opacity:.6; }
.scn-canto-v-dungeon .bars-left { position:absolute; top:5%; left:10%; width:4%; height:90%; background: linear-gradient(180deg, #3a3a4a 0%, #5a5a6a 50%, #3a3a4a 100%); border-radius:2px; box-shadow: 8px 0 0 #4a4a5a, 16px 0 0 #3a3a4a; animation: c1-bars 6s ease-in-out infinite alternate; }
.scn-canto-v-dungeon .bars-right { position:absolute; top:5%; right:10%; width:4%; height:90%; background: linear-gradient(180deg, #3a3a4a 0%, #5a5a6a 50%, #3a3a4a 100%); border-radius:2px; box-shadow: -8px 0 0 #4a4a5a, -16px 0 0 #3a3a4a; animation: c1-bars 6s ease-in-out infinite alternate-reverse; }
.scn-canto-v-dungeon .ox-shadow { position:absolute; bottom:15%; left:25%; width:50%; height:35%; background: #1a1a2e; border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%; filter: blur(4px); opacity:.7; animation: c1-ox 8s ease-in-out infinite; }
.scn-canto-v-dungeon .king-throned { position:absolute; bottom:10%; left:35%; width:20%; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: c1-king 10s ease-in-out infinite; }
.scn-canto-v-dungeon .king-chained { position:absolute; bottom:5%; right:25%; width:15%; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom; animation: c1-chain 12s ease-in-out infinite; }
.scn-canto-v-dungeon .torch-glow { position:absolute; top:15%; left:15%; width:3%; height:8%; background: radial-gradient(circle at bottom, #ff8c40 0%, #ff6000 40%, transparent 60%); border-radius:50%; box-shadow: 0 0 40px 20px #ff6000, 0 0 80px 40px rgba(255,96,0,.3); animation: c1-torch 3s ease-in-out infinite alternate; }
@keyframes c1-bars { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:.7; transform: scaleY(.98); } }
@keyframes c1-ox { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes c1-king { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(1deg); } 70% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-2px) rotate(0deg); } }
@keyframes c1-chain { 0% { transform: translateY(0) rotate(3deg); } 50% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes c1-torch { 0% { opacity:.6; box-shadow: 0 0 30px 15px #ff6000; } 50% { opacity:1; box-shadow: 0 0 50px 25px #ff8c40; } 100% { opacity:.7; box-shadow: 0 0 35px 18px #ff6000; } }

/* Scene: canto-vi-begin */
.scn-canto-vi-begin { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #8fbc8f 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 50%); }
.scn-canto-vi-begin .bg-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #87ceeb 0%, #fff8dc 100%); animation: c2-sky 12s ease-in-out infinite alternate; }
.scn-canto-vi-begin .bg-forest { position:absolute; bottom:10%; left:0; right:0; height:55%; background: linear-gradient(180deg, #228b22 0%, #006400 100%); border-radius: 60% 60% 0 0 / 70% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,50,0,.4); animation: c2-forest 18s ease-in-out infinite alternate; }
.scn-canto-vi-begin .ship { position:absolute; bottom:35%; left:20%; width:25%; height:12%; background: linear-gradient(90deg, #8b4513 0%, #a0522d 50%, #8b4513 100%); border-radius: 0 0 50% 50%; transform-origin: bottom; animation: c2-ship 20s ease-in-out infinite; }
.scn-canto-vi-begin .una-figure { position:absolute; bottom:15%; left:45%; width:10%; height:25%; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: c2-una 8s ease-in-out infinite; }
.scn-canto-vi-begin .savage-1 { position:absolute; bottom:10%; left:30%; width:8%; height:20%; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: c2-savage 9s ease-in-out infinite; }
.scn-canto-vi-begin .savage-2 { position:absolute; bottom:12%; right:25%; width:8%; height:18%; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: c2-savage 9s ease-in-out infinite 2s; }
.scn-canto-vi-begin .sun-rays { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(135deg, transparent 30%, rgba(255,255,200,.4) 50%, transparent 70%); animation: c2-rays 10s ease-in-out infinite alternate; }
@keyframes c2-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes c2-forest { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes c2-ship { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes c2-una { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-1px) rotate(0deg); } }
@keyframes c2-savage { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes c2-rays { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.1); } 100% { opacity:.4; transform: scaleX(1); } }

/* Scene: canto-vi-una */
.scn-canto-vi-una { background: linear-gradient(180deg, #4a6741 0%, #2a4a2a 100%), radial-gradient(ellipse at 70% 40%, #7a8a4a 0%, transparent 50%); }
.scn-canto-vi-una .bg-forest-dark { position:absolute; inset:0; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); }
.scn-canto-vi-una .tree-left { position:absolute; left:5%; top:5%; width:15%; height:90%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 4px 0 8px rgba(0,0,0,.5); animation: c3-tree 14s ease-in-out infinite alternate; }
.scn-canto-vi-una .tree-right { position:absolute; right:8%; top:5%; width:12%; height:85%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: -4px 0 8px rgba(0,0,0,.5); animation: c3-tree 14s ease-in-out infinite alternate-reverse; }
.scn-canto-vi-una .una-steadfast { position:absolute; bottom:20%; left:30%; width:12%; height:30%; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: c3-una 5s ease-in-out infinite; }
.scn-canto-vi-una .sansloy-reach { position:absolute; bottom:15%; right:20%; width:15%; height:35%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: 50% 100%; animation: c3-sansloy 4s ease-in-out infinite; }
.scn-canto-vi-una .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 40% 40% 0 0; }
.scn-canto-vi-una .shadows { position:absolute; bottom:20%; left:25%; width:50%; height:15%; background: linear-gradient(135deg, transparent 30%, rgba(0,0,0,.3) 50%, transparent 70%); filter: blur(6px); animation: c3-shadow 6s ease-in-out infinite alternate; }
@keyframes c3-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes c3-una { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes c3-sansloy { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(5deg) translateY(-4px); } 60% { transform: rotate(-2deg) translateY(0); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes c3-shadow { 0% { opacity:.4; transform: translateX(0); } 50% { opacity:.7; transform: translateX(5px); } 100% { opacity:.3; transform: translateX(-5px); } }

/* Scene: canto-vi-satyrane */
.scn-canto-vi-satyrane { background: linear-gradient(180deg, #7cb342 0%, #33691e 100%), radial-gradient(ellipse at 30% 80%, #aed581 0%, transparent 60%); }
.scn-canto-vi-satyrane .bg-glade { position:absolute; inset:0; background: linear-gradient(135deg, #8bc34a 0%, #4caf50 40%, #2e7d32 100%); animation: c4-glade 20s ease-in-out infinite alternate; }
.scn-canto-vi-satyrane .satyrane-knight { position:absolute; bottom:15%; left:35%; width:18%; height:40%; background: linear-gradient(180deg, #795548 0%, #4e342e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: c4-satyrane 8s ease-in-out infinite; }
.scn-canto-vi-satyrane .spear { position:absolute; bottom:30%; left:48%; width:2%; height:50%; background: linear-gradient(180deg, #8d6e63 0%, #4e342e 100%); border-radius:2px; transform: rotate(15deg); transform-origin: bottom; animation: c4-spear 10s ease-in-out infinite; }
.scn-canto-vi-satyrane .leaves { position:absolute; top:0; right:10%; width:30%; height:70%; background: repeating-linear-gradient(135deg, #4caf50 0px, #4caf50 4px, #388e3c 4px, #388e3c 8px); border-radius: 60% 40% 40% 60%; filter: blur(2px); opacity:.6; animation: c4-leaves 15s ease-in-out infinite alternate; }
.scn-canto-vi-satyrane .ground-sat { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #33691e 0%, #1b3a0e 100%); border-radius: 20% 20% 0 0; }
.scn-canto-vi-satyrane .sunlight-dapples { position:absolute; inset:0; background: radial-gradient(circle at 20% 40%, rgba(255,255,255,.3) 0%, transparent 20%), radial-gradient(circle at 60% 70%, rgba(255,255,255,.2) 0%, transparent 15%); animation: c4-dapple 12s ease-in-out infinite alternate; }
@keyframes c4-glade { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes c4-satyrane { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes c4-spear { 0% { transform: rotate(15deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(12deg); } }
@keyframes c4-leaves { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes c4-dapple { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }

/* spenser-diction */
.scn-spenser-diction {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e8d5b0 40%, #d4c0a0 100%),
    radial-gradient(ellipse at 70% 30%, #ffe8c8 0%, transparent 60%);
}
.scn-spenser-diction .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #f0e2cc 0%, #d9c8b0 100%);
  animation: sd-wall 12s ease-in-out infinite alternate;
}
.scn-spenser-diction .bookshelf {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #8b6f4a 0%, #6a4f2e 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-spenser-diction .book {
  position: absolute; top: 8%; width: 8%; height: 30%;
  border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: sd-book 6s ease-in-out infinite;
}
.scn-spenser-diction .book-left {
  left: 15%; background: linear-gradient(90deg, #a05030 0%, #c07040 100%);
}
.scn-spenser-diction .book-right {
  left: 60%; background: linear-gradient(90deg, #3a6a4a 0%, #4a8a5a 100%);
  animation-delay: -3s;
}
.scn-spenser-diction .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #bfa580 0%, #a08060 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
}
.scn-spenser-diction .quill {
  position: absolute; bottom: 20%; left: 45%; width: 4%; height: 40%;
  background: linear-gradient(180deg, #f0e8dc 0%, #d0c0b0 50%, #a09080 100%);
  border-radius: 40% 40% 20% 20%; transform-origin: bottom center;
  animation: sd-quill 4s ease-in-out infinite alternate;
}
.scn-spenser-diction .inkwell {
  position: absolute; bottom: 22%; left: 40%; width: 5%; height: 6%;
  background: radial-gradient(circle, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-spenser-diction .lamp-glow {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,220,150,0.3) 0%, transparent 70%);
  animation: sd-glow 8s ease-in-out infinite alternate;
}
.scn-spenser-diction .window {
  position: absolute; top: 10%; right: 8%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #b0d8f0 0%, #d0eaff 100%);
  border: 4px solid #6a4f2e; border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(200,230,255,0.6);
  animation: sd-window 10s ease-in-out infinite alternate;
}
@keyframes sd-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sd-book { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes sd-quill { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes sd-glow { 0% { opacity:0.6; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.7; transform: scale(0.98) } }
@keyframes sd-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }

/* poetic-charm */
.scn-poetic-charm {
  background:
    linear-gradient(180deg, #f5dcc0 0%, #e0c4a0 50%, #c8a880 100%),
    radial-gradient(ellipse at 50% 40%, #fff0d0 0%, transparent 60%);
}
.scn-poetic-charm .wall-back {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d0b8 0%, #d4b898 100%);
  animation: pc-wall 15s ease-in-out infinite alternate;
}
.scn-poetic-charm .frame {
  position: absolute; top: 12%; width: 16%; height: 35%;
  border: 6px solid #8b6f4a; border-radius: 4px;
  background: linear-gradient(180deg, #c8a060 0%, #b09050 100%);
  box-shadow: 4px 4px 12px rgba(0,0,0,0.3);
  animation: pc-frame 8s ease-in-out infinite alternate;
}
.scn-poetic-charm .frame-left { left: 8%; }
.scn-poetic-charm .frame-right { left: 68%; animation-delay: -4s; }
.scn-poetic-charm .frame-center { left: 38%; width: 20%; height: 40%; top: 10%; background: linear-gradient(180deg, #a07040 0%, #805020 100%); z-index: 2; }
.scn-poetic-charm .reader {
  position: absolute; bottom: 18%; left: 22%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: pc-reader 6s ease-in-out infinite;
}
.scn-poetic-charm .listener {
  position: absolute; bottom: 20%; right: 18%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pc-listener 5s ease-in-out infinite alternate;
}
.scn-poetic-charm .hearth {
  position: absolute; bottom: 5%; left: 40%; width: 18%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #cc6633 0%, #8a4422 50%, #3a1a0a 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 40px 10px rgba(200,100,40,0.4);
  animation: pc-hearth 4s ease-in-out infinite;
}
.scn-poetic-charm .warm-glow {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 60%, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: pc-glow 7s ease-in-out infinite alternate;
}
@keyframes pc-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pc-frame { 0% { transform: scale(0.98) } 50% { transform: scale(1.02) } 100% { transform: scale(0.99) } }
@keyframes pc-reader { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(0deg) } 50% { transform: translateY(-2px) rotate(3deg) } 75% { transform: translateY(-5px) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(1deg) } }
@keyframes pc-listener { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes pc-hearth { 0% { transform: scaleY(0.9); opacity:0.7 } 50% { transform: scaleY(1); opacity:1 } 100% { transform: scaleY(0.95); opacity:0.8 } }
@keyframes pc-glow { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

/* chronological-table */
.scn-chronological-table {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 60%, #3a3a5e 0%, transparent 70%);
}
.scn-chronological-table .table-surface {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
}
.scn-chronological-table .timeline-bar {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 4px;
  background: linear-gradient(90deg, #6a4a2a 0%, #b08050 50%, #6a4a2a 100%);
  border-radius: 2px;
  animation: ct-bar 20s linear infinite;
}
.scn-chronological-table .marker {
  position: absolute; bottom: 22%; width: 3px; height: 20px;
  background: #d4b080; border-radius: 1px;
  transform-origin: bottom center;
  animation: ct-marker 10s ease-in-out infinite;
}
.scn-chronological-table .marker-early { left: 20%; animation-delay: 0s; }
.scn-chronological-table .marker-mid { left: 45%; animation-delay: -3.3s; }
.scn-chronological-table .marker-late { left: 70%; animation-delay: -6.6s; }
.scn-chronological-table .candle {
  position: absolute; bottom: 18%; left: 60%; width: 4%; height: 25%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b898 80%, #8a6a4a 100%);
  border-radius: 6px 6px 2px 2px; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
}
.scn-chronological-table .candle-flame {
  position: absolute; bottom: 43%; left: 60%; width: 3%; height: 8%;
  background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #ff8820 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 12px 6px rgba(255,136,32,0.5);
  animation: ct-flame 2s ease-in-out infinite alternate;
}
.scn-chronological-table .shadow-cast {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 70% 80%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ct-shadow 8s ease-in-out infinite alternate;
}
@keyframes ct-bar { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }
@keyframes ct-marker { 0% { transform: scaleY(0.8); opacity:0.6 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(0.9); opacity:0.7 } }
@keyframes ct-flame { 0% { transform: scaleY(0.9) rotate(-5deg); opacity:0.8 } 50% { transform: scaleY(1.2) rotate(3deg); opacity:1 } 100% { transform: scaleY(1) rotate(-2deg); opacity:0.9 } }
@keyframes ct-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

/* letter-raleigh */
.scn-letter-raleigh {
  background:
    linear-gradient(180deg, #f5e8d0 0%, #e0d0b8 50%, #c8b8a0 100%),
    radial-gradient(ellipse at 40% 50%, #fff4e0 0%, transparent 60%);
}
.scn-letter-raleigh .paper {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 55%;
  background: linear-gradient(135deg, #faf0e0 0%, #f0e0c8 100%);
  border-radius: 4px; box-shadow: 0 4px 16px rgba(0,0,0,0.2);
  transform: rotate(-2deg);
  animation: lr-paper 12s ease-in-out infinite alternate;
}
.scn-letter-raleigh .hand {
  position: absolute; bottom: 35%; left: 30%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #c8a880 0%, #b09070 60%, #806050 100%);
  border-radius: 50% 30% 20% 20% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lr-hand 3s ease-in-out infinite;
}
.scn-letter-raleigh .quill-write {
  position: absolute; bottom: 45%; left: 28%; width: 3%; height: 35%;
  background: linear-gradient(180deg, #f0e8dc 0%, #d0c0b0 50%, #a09080 100%);
  border-radius: 40% 40% 10% 10%; transform-origin: bottom center;
  animation: lr-quill 2s ease-in-out infinite alternate;
}
.scn-letter-raleigh .inkpot {
  position: absolute; bottom: 15%; left: 20%; width: 5%; height: 6%;
  background: radial-gradient(circle, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50%;
}
.scn-letter-raleigh .seal {
  position: absolute; bottom: 18%; right: 30%; width: 6%; height: 6%;
  background: radial-gradient(circle, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: lr-seal 10s ease-in-out infinite;
}
.scn-letter-raleigh .vignette-top {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(200,180,160,0.3) 0%, transparent 100%);
}
.scn-letter-raleigh .vignette-bottom {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, rgba(200,180,160,0.3) 0%, transparent 100%);
}
.scn-letter-raleigh .candle-warm {
  position: absolute; bottom: 25%; left: 18%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b898 80%, #8a6a4a 100%);
  border-radius: 4px; box-shadow: 0 0 20px 8px rgba(255,200,100,0.3);
  animation: lr-candle 5s ease-in-out infinite alternate;
}
@keyframes lr-paper { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(-1deg) scale(1.01) } 100% { transform: rotate(-3deg) scale(0.99) } }
@keyframes lr-hand { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(5deg) } 100% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes lr-quill { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-4px) } 100% { transform: rotate(5deg) translateY(-2px) } }
@keyframes lr-seal { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes lr-candle { 0% { opacity:0.7; box-shadow: 0 0 12px 4px rgba(255,200,100,0.2) } 50% { opacity:1; box-shadow: 0 0 30px 12px rgba(255,200,100,0.4) } 100% { opacity:0.8; box-shadow: 0 0 16px 6px rgba(255,200,100,0.25) } }

/* canto-viii-duessa-exposed */
.scn-canto-viii-duessa-exposed { background: linear-gradient(180deg, #fadfad 0%, #e8c483 50%, #c29562 100%), radial-gradient(circle at 50% 20%, #fff8e0 0%, transparent 60%); }
.scn-canto-viii-duessa-exposed .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f9e8c0 0%, #e6cb9a 100%); }
.scn-canto-viii-duessa-exposed .sun { position:absolute; top:10%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #fffacd 0%, #f5d68a 40%, transparent 60%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(245,214,138,0.6); animation: de-sun 8s ease-in-out infinite alternate; }
.scn-canto-viii-duessa-exposed .duessa-figure { position:absolute; bottom:20%; left:50%; width:50px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: de-figure 4s ease-in-out infinite alternate; }
.scn-canto-viii-duessa-exposed .cloth-a { position:absolute; bottom:35%; left:42%; width:30px; height:18px; background: linear-gradient(180deg, #c4a882 0%, #8c725b 100%); border-radius: 0 50% 50% 50%; transform-origin: top left; animation: de-cloth-a 6s ease-in-out infinite; }
.scn-canto-viii-duessa-exposed .cloth-b { position:absolute; bottom:33%; left:55%; width:25px; height:15px; background: linear-gradient(180deg, #a88d6a 0%, #6b543f 100%); border-radius: 50% 0 50% 50%; transform-origin: top right; animation: de-cloth-b 7s ease-in-out infinite reverse; }
.scn-canto-viii-duessa-exposed .ground { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, #b38655 0%, #7d5d38 100%); }
@keyframes de-sun { 0% { box-shadow: 0 0 60px 30px rgba(245,214,138,0.5); transform:translateX(-50%) scale(0.95); } 50% { box-shadow: 0 0 100px 50px rgba(245,214,138,0.7); transform:translateX(-50%) scale(1.05); } 100% { box-shadow: 0 0 80px 40px rgba(245,214,138,0.6); transform:translateX(-50%) scale(1); } }
@keyframes de-figure { 0% { transform:translateX(-50%) rotate(-2deg) translateY(0); } 50% { transform:translateX(-50%) rotate(2deg) translateY(-3px); } 100% { transform:translateX(-50%) rotate(0) translateY(0); } }
@keyframes de-cloth-a { 0% { transform: rotate(0deg) translateX(0) translateY(0); } 50% { transform: rotate(15deg) translateX(2px) translateY(-5px); } 100% { transform: rotate(0deg) translateX(0) translateY(0); } }
@keyframes de-cloth-b { 0% { transform: rotate(0deg) translateX(0) translateY(0); } 50% { transform: rotate(-12deg) translateX(-2px) translateY(-4px); } 100% { transform: rotate(0deg) translateX(0) translateY(0); } }

/* canto-ix-begin */
.scn-canto-ix-begin { background: linear-gradient(0deg, #d4b48c 0%, #ecd9b0 50%, #faf0e0 100%), radial-gradient(circle at 70% 20%, #fff8e0 0%, transparent 50%); }
.scn-canto-ix-begin .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0c9a8 0%, #c4af8f 100%); border-bottom: 2px solid #a08767; }
.scn-canto-ix-begin .window { position:absolute; top:15%; left:70%; width:60px; height:80px; background: linear-gradient(180deg, #fffae6 0%, #ffeec2 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px #b5936e, 0 0 30px rgba(255,250,230,0.4); animation: ixb-window 5s ease-in-out infinite alternate; }
.scn-canto-ix-begin .table { position:absolute; bottom:25%; left:30%; width:120px; height:20px; background: linear-gradient(180deg, #7d664d 0%, #5a4532 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-canto-ix-begin .food { position:absolute; bottom:28%; left:35%; width:30px; height:25px; background: radial-gradient(circle at 40% 30%, #f5d6a0 0%, #c9a360 50%, #9e7c45 100%); border-radius: 50% 50% 40% 40%; animation: ixb-food 3s ease-in-out infinite; }
.scn-canto-ix-begin .arthur-figure { position:absolute; bottom:22%; left:18%; width:35px; height:70px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ixb-figures 6s ease-in-out infinite alternate; }
.scn-canto-ix-begin .redcrosse-figure { position:absolute; bottom:22%; left:40%; width:35px; height:68px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ixb-figures 6s ease-in-out infinite alternate-reverse; }
.scn-canto-ix-begin .una-figure { position:absolute; bottom:22%; left:55%; width:30px; height:65px; background: linear-gradient(180deg, #b8a088 0%, #7d6040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ixb-figures 6s ease-in-out infinite alternate; }
@keyframes ixb-window { 0% { opacity:0.8; box-shadow: inset 0 0 20px #b5936e, 0 0 20px rgba(255,250,230,0.3); } 50% { opacity:1; box-shadow: inset 0 0 30px #deb887, 0 0 40px rgba(255,250,230,0.5); } 100% { opacity:0.85; box-shadow: inset 0 0 25px #c09774, 0 0 25px rgba(255,250,230,0.35); } }
@keyframes ixb-food { 0% { transform: scale(1) rotate(-2deg); } 50% { transform: scale(1.03) rotate(2deg); } 100% { transform: scale(1) rotate(-2deg); } }
@keyframes ixb-figures { 0% { transform: translateY(0) rotate(-1deg) scale(0.98); } 50% { transform: translateY(-2px) rotate(0deg) scale(1); } 100% { transform: translateY(0) rotate(1deg) scale(0.98); } }

/* canto-ix-trevisan */
.scn-canto-ix-trevisan { background: linear-gradient(180deg, #b8d4e0 0%, #97b8ca 30%, #c4a265 70%, #7a5d3a 100%), radial-gradient(ellipse at 30% 80%, #cba35f 0%, transparent 60%); }
.scn-canto-ix-trevisan .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c8e0f0 0%, #a3c0d0 100%); }
.scn-canto-ix-trevisan .ground { position:absolute; bottom:0; left:0; width:100%; height:35%; background: linear-gradient(0deg, #6b4a2a 0%, #8c6a3a 50%, #b08a50 100%); }
.scn-canto-ix-trevisan .horse { position:absolute; bottom:20%; left:20%; width:120px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%; transform-origin: bottom center; animation: tx-horse 3s ease-in-out infinite; }
.scn-canto-ix-trevisan .rider { position:absolute; bottom:38%; left:25%; width:30px; height:45px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tx-rider 3s ease-in-out infinite; }
.scn-canto-ix-trevisan .dust { position:absolute; bottom:15%; left:5%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(180,160,120,0.6) 0%, transparent 70%); filter: blur(4px); animation: tx-dust 4s ease-in-out infinite; }
.scn-canto-ix-trevisan .shadow { position:absolute; bottom:22%; left:60%; width:80px; height:40px; background: linear-gradient(180deg, rgba(30,20,10,0.5) 0%, transparent 100%); border-radius: 50%; transform: rotate(-10deg); filter: blur(6px); animation: tx-shadow 6s ease-in-out infinite alternate; }
@keyframes tx-horse { 0% { transform: translateY(0) rotate(-2deg) scaleX(0.98); } 50% { transform: translateY(-6px) rotate(2deg) scaleX(1.02); } 100% { transform: translateY(0) rotate(-2deg) scaleX(0.98); } }
@keyframes tx-rider { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes tx-dust { 0% { opacity:0.3; transform: translateX(0) scale(0.8); } 50% { opacity:0.7; transform: translateX(-20px) scale(1.2); } 100% { opacity:0.3; transform: translateX(0) scale(0.8); } }
@keyframes tx-shadow { 0% { transform: rotate(-10deg) translateX(0) scale(1); } 50% { transform: rotate(-15deg) translateX(5px) scale(1.1); } 100% { transform: rotate(-10deg) translateX(0) scale(1); } }

/* canto-ix-despair */
.scn-canto-ix-despair { background: linear-gradient(180deg, #1a1020 0%, #2a1a2a 30%, #3a2a3a 60%, #1f141f 100%), radial-gradient(circle at 40% 50%, #2a1a2a 0%, transparent 70%); }
.scn-canto-ix-despair .cave-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; }
.scn-canto-ix-despair .ground { position:absolute; bottom:0; left:0; width:100%; height:20%; background: linear-gradient(0deg, #1a101a 0%, #2a1a2a 100%); }
.scn-canto-ix-despair .despair-figure { position:absolute; bottom:10%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dx-figure 8s ease-in-out infinite; }
.scn-canto-ix-despair .chains { position:absolute; bottom:25%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10%; filter: blur(1px); animation: dx-chains 10s ease-in-out infinite alternate; }
.scn-canto-ix-despair .light-source { position:absolute; top:15%; left:30%; width:30px; height:30px; background: radial-gradient(circle, #8b6b4a 0%, #4a3a2a 40%, transparent 60%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(139,107,74,0.3); animation: dx-light 4s ease-in-out infinite alternate; }
@keyframes dx-figure { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform:translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform:translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes dx-chains { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(5px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dx-light { 0% { opacity:0.4; box-shadow: 0 0 40px 10px rgba(139,107,74,0.2); } 50% { opacity:0.8; box-shadow: 0 0 80px 30px rgba(139,107,74,0.5); } 100% { opacity:0.5; box-shadow: 0 0 50px 15px rgba(139,107,74,0.3); } }

.scn-introduction-age { background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 40%, #2a3a3a 100%), radial-gradient(ellipse at 50% 0%, #8a9a9a 0%, transparent 60%); }
.scn-introduction-age .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%); animation: ia-bg 20s ease-in-out infinite alternate; }
.scn-introduction-age .bg-mid { position:absolute; inset:20% 10% 30% 10%; background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.3); }
.scn-introduction-age .window { position:absolute; top:15%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #8a9a9a 0%, #6a7a7a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.2); animation: ia-window 10s ease-in-out infinite; }
.scn-introduction-age .desk { position:absolute; bottom:15%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.4); }
.scn-introduction-age .book { position:absolute; bottom:22%; left:35%; width:30%; height:15%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 4% 4% 8% 8% / 10% 10% 20% 20%; transform: perspective(400px) rotateX(10deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ia-book 6s ease-in-out infinite alternate; }
.scn-introduction-age .quill { position:absolute; bottom:30%; left:52%; width:4%; height:20%; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%; transform-origin: bottom center; animation: ia-quill 4s ease-in-out infinite; }
.scn-introduction-age .inkwell { position:absolute; bottom:18%; left:55%; width:6%; height:8%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 30% 30% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-introduction-age .curtain-left, .scn-introduction-age .curtain-right { position:absolute; top:10%; width:15%; height:50%; background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%); border-radius: 0 0 30% 0; animation: ia-curtain 15s ease-in-out infinite alternate; }
.scn-introduction-age .curtain-left { left:15%; }
.scn-introduction-age .curtain-right { right:15%; animation-delay: -7s; border-radius: 0 0 0 30%; }
@keyframes ia-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ia-window { 0%,100% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } }
@keyframes ia-book { 0% { transform: perspective(400px) rotateX(10deg) translateY(0) } 50% { transform: perspective(400px) rotateX(12deg) translateY(-2px) } 100% { transform: perspective(400px) rotateX(8deg) translateY(0) } }
@keyframes ia-quill { 0% { transform: rotate(-5deg) } 30% { transform: rotate(5deg) } 60% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes ia-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }

.scn-spenser-role { background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 40%, #0a0a00 100%), radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 70%); }
.scn-spenser-role .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); animation: sr-wall 12s ease-in-out infinite alternate; }
.scn-spenser-role .bg-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-spenser-role .lectern { position:absolute; bottom:10%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); transform: perspective(300px) rotateX(5deg); }
.scn-spenser-role .figure { position:absolute; bottom:10%; left:35%; width:15%; height:50%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sr-figure 8s ease-in-out infinite; }
.scn-spenser-role .book-open { position:absolute; bottom:22%; left:42%; width:16%; height:8%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 5% 5% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: sr-book 5s ease-in-out infinite alternate; }
.scn-spenser-role .candle { position:absolute; bottom:20%; left:60%; width:3%; height:15%; background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 -2px 6px rgba(192,160,128,.3); }
.scn-spenser-role .glow { position:absolute; bottom:22%; left:58%; width:8%; height:12%; background: radial-gradient(circle, #d0b090 0%, rgba(208,176,144,0) 70%); border-radius: 50%; animation: sr-glow 4s ease-in-out infinite alternate; }
.scn-spenser-role .shadow { position:absolute; bottom:5%; left:30%; width:30%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: sr-shadow 8s ease-in-out infinite; }
@keyframes sr-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sr-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sr-book { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes sr-glow { 0% { opacity:.3; transform: scale(.8) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.9) } }
@keyframes sr-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

.scn-spenser-biography { background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #0a0a0a 100%), radial-gradient(ellipse at 50% 20%, #3a3a3a 0%, transparent 60%); }
.scn-spenser-biography .bg-room { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); }
.scn-spenser-biography .desk { position:absolute; bottom:12%; left:15%; right:15%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,.5); }
.scn-spenser-biography .chair { position:absolute; bottom:12%; left:60%; width:12%; height:16%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sb-chair 10s ease-in-out infinite; }
.scn-spenser-biography .figure-seated { position:absolute; bottom:12%; left:58%; width:14%; height:35%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sb-figure 6s ease-in-out infinite; }
.scn-spenser-biography .book-stack { position:absolute; bottom:22%; left:30%; width:18%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sb-stack 8s ease-in-out infinite alternate; }
.scn-spenser-biography .candle { position:absolute; bottom:25%; left:75%; width:3%; height:14%; background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%); border-radius: 20% 20% 10% 10%; }
.scn-spenser-biography .glow-small { position:absolute; bottom:27%; left:73%; width:8%; height:10%; background: radial-gradient(circle, #d0b090 0%, rgba(208,176,144,0) 70%); border-radius: 50%; animation: sb-glow 5s ease-in-out infinite alternate; }
@keyframes sb-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sb-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sb-stack { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes sb-glow { 0% { opacity:.3; transform: scale(.7) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.9) } }

.scn-spenser-ireland { background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 60%); }
.scn-spenser-ireland .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); animation: si-sky 8s ease-in-out infinite alternate; }
.scn-spenser-ireland .hills { position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: si-hills 12s ease-in-out infinite; }
.scn-spenser-ireland .castle { position:absolute; bottom:30%; left:30%; width:20%; height:30%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,.5); animation: si-castle 15s ease-in-out infinite alternate; }
.scn-spenser-ireland .figure-silhouette { position:absolute; bottom:25%; left:55%; width:10%; height:30%; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: si-figure 6s ease-in-out infinite; }
.scn-spenser-ireland .cloud-a { position:absolute; top:10%; left:10%; width:30%; height:10%; background: linear-gradient(180deg, rgba(80,80,90,.5) 0%, rgba(80,80,90,.1) 100%); border-radius: 50%; filter: blur(6px); animation: si-drift-a 30s linear infinite; }
.scn-spenser-ireland .cloud-b { position:absolute; top:15%; right:5%; width:25%; height:8%; background: linear-gradient(180deg, rgba(80,80,90,.4) 0%, rgba(80,80,90,.05) 100%); border-radius: 50%; filter: blur(5px); animation: si-drift-b 40s linear infinite reverse; }
.scn-spenser-ireland .rain { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 4px, rgba(100,100,120,.1) 4px, rgba(100,100,120,.1) 6px); animation: si-rain 2s linear infinite; }
@keyframes si-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes si-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes si-castle { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes si-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5px) rotate(2deg) } 60% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes si-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes si-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes si-rain { 0% { background-position: 0 0 } 100% { background-position: 0 20px } }

/* ---------- canto-iii-begin ---------- */
.scn-canto-iii-begin {
  background: linear-gradient(180deg, #fbd9a0 0%, #f5c678 40%, #dca03a 100%),
              radial-gradient(ellipse at 50% 80%, #f5e0b0 0%, transparent 60%);
}
.scn-canto-iii-begin .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b8d4f0 0%, #e8f2ff 100%); animation: cb-sky 14s ease-in-out infinite alternate; }
.scn-canto-iii-begin .treetop { position:absolute; bottom:55%; left:10%; width:40%; height:25%; background: radial-gradient(ellipse at 30% 50%, #4a7a3a 0%, #2a5a1a 70%, transparent 100%); border-radius: 60% 40% 0 0; filter: blur(3px); animation: cb-trees 20s ease-in-out infinite alternate; }
.scn-canto-iii-begin .treebase { position:absolute; bottom:35%; left:15%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 100%, #3a5a2a 0%, transparent 70%); border-radius: 50% 50% 0 0; filter: blur(2px); }
.scn-canto-iii-begin .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a9a5a 0%, #6a7a3a 50%, #4a5a2a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-canto-iii-begin .una-figure { position:absolute; bottom:30%; left:40%; width:28px; height:48px; background: linear-gradient(180deg, #e8d0a8 0%, #c8b090 50%, #a08070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 0 2px #dcc0a0; animation: cb-una 6s ease-in-out infinite; }
.scn-canto-iii-begin .halo { position:absolute; bottom:50%; left:40%; width:40px; height:40px; margin-left:-6px; background: radial-gradient(circle, #fff6d0 0%, #f5d080 40%, transparent 70%); border-radius:50%; opacity:0.5; filter: blur(8px); animation: cb-halo 4s ease-in-out infinite alternate; }
.scn-canto-iii-begin .shadow { position:absolute; bottom:30%; left:38%; width:40px; height:12px; background: radial-gradient(ellipse, #2a3a1a 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: cb-shadow 6s ease-in-out infinite; }
.scn-canto-iii-begin .flower { position:absolute; bottom:32%; left:55%; width:8px; height:12px; background: radial-gradient(circle, #e0a080 0%, #c08060 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 6px 2px rgba(200,120,80,0.3); animation: cb-flower 8s ease-in-out infinite alternate; }
@keyframes cb-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cb-trees { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-8px) scale(1.02); } 100% { transform: translateX(4px) scale(0.98); } }
@keyframes cb-una { 0%,100% { transform: translateX(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(0deg) } }
@keyframes cb-halo { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(0.95); } }
@keyframes cb-shadow { 0%,100% { transform: scaleX(1.1); opacity:0.6; } 50% { transform: scaleX(0.9); opacity:0.3; } }
@keyframes cb-flower { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }

/* ---------- canto-iii-corceca ---------- */
.scn-canto-iii-corceca {
  background: linear-gradient(180deg, #2a2020 0%, #1a1210 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a22 0%, transparent 60%);
}
.scn-canto-iii-corceca .wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a1e14 0%, #3a2a1e 40%, #2a1e14 100%); }
.scn-canto-iii-corceca .door { position:absolute; bottom:15%; left:40%; width:20%; height:55%; background: linear-gradient(180deg, #4a3020 0%, #3a2018 100%); border-radius: 6% 6% 0 0; box-shadow: -5px 0 10px rgba(0,0,0,0.5), inset 0 0 20px #1a0a08; }
.scn-canto-iii-corceca .candle { position:absolute; bottom:45%; left:48%; width:6px; height:20px; background: linear-gradient(180deg, #f5d880 0%, #c8a050 50%, #8a6020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 24px 8px #f0c060, 0 0 48px 16px rgba(240,192,96,0.3); animation: cc-candle 2s ease-in-out infinite alternate; }
.scn-canto-iii-corceca .old-woman { position:absolute; bottom:20%; left:32%; width:30px; height:55px; background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 55% 40% 45%; filter: blur(1px); box-shadow: 0 0 8px 2px rgba(0,0,0,0.4); animation: cc-oldwoman 5s ease-in-out infinite; }
.scn-canto-iii-corceca .una-kneeling { position:absolute; bottom:18%; left:45%; width:24px; height:40px; background: linear-gradient(180deg, #d8b098 0%, #b89070 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cc-una 4s ease-in-out infinite; }
.scn-canto-iii-corceca .door-seal { position:absolute; bottom:55%; left:40%; width:20%; height:2px; background: #6a4a2a; box-shadow: 0 0 4px 0 #4a2a1a; animation: cc-seal 3s ease-in-out infinite alternate; }
@keyframes cc-candle { 0% { box-shadow: 0 0 20px 6px #c8a050; opacity:0.9; } 50% { box-shadow: 0 0 32px 10px #f0d070; opacity:1; } 100% { box-shadow: 0 0 16px 4px #a07030; opacity:0.8; } }
@keyframes cc-oldwoman { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(2deg); } 50% { transform: translateX(2px) rotate(-1deg); } 75% { transform: translateX(-1px) rotate(1deg); } }
@keyframes cc-una { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes cc-seal { 0% { transform: scaleX(1); opacity:0.7; } 50% { transform: scaleX(0.8); opacity:1; } 100% { transform: scaleX(1); opacity:0.6; } }

/* ---------- canto-iii-kirkrapine ---------- */
.scn-canto-iii-kirkrapine {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 20%, #1a2a3a 0%, transparent 70%);
}
.scn-canto-iii-kirkrapine .night-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a1220 0%, #1a2a3a 100%); animation: kr-sky 30s ease-in-out infinite alternate; }
.scn-canto-iii-kirkrapine .moon { position:absolute; top:10%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #d0d8e8 0%, #b0c0d0 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(176,192,208,0.4), 0 0 60px 20px rgba(176,192,208,0.1); animation: kr-moon 50s linear infinite; }
.scn-canto-iii-kirkrapine .church { position:absolute; bottom:20%; left:30%; width:30%; height:50%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); box-shadow: 0 0 20px rgba(0,0,0,0.6); }
.scn-canto-iii-kirkrapine .doorclosed { position:absolute; bottom:20%; left:42%; width:10%; height:25%; background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 8px #0a0a0a; }
.scn-canto-iii-kirkrapine .thief { position:absolute; bottom:22%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kr-thief 4s ease-in-out infinite; }
.scn-canto-iii-kirkrapine .sack { position:absolute; bottom:20%; left:58%; width:20px; height:24px; background: #3a2a1a; border-radius: 40% 40% 30% 30%; box-shadow: inset 0 0 8px #1a0a0a; animation: kr-sack 3.5s ease-in-out infinite alternate; }
.scn-canto-iii-kirkrapine .star-field { position:absolute; inset:0 0 60% 0; background-image: radial-gradient(2px 2px at 20% 30%, #e0e8f0, transparent), radial-gradient(3px 3px at 40% 10%, #d0d8e0, transparent), radial-gradient(1px 1px at 60% 50%, #f0f8ff, transparent), radial-gradient(2px 2px at 80% 20%, #d0e0f0, transparent); background-size: 100% 100%; animation: kr-stars 60s linear infinite; }
@keyframes kr-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes kr-moon { 0% { transform: translateX(0); } 50% { transform: translateX(-15px); } 100% { transform: translateX(0); } }
@keyframes kr-thief { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 75% { transform: translateX(2px) rotate(1deg); } }
@keyframes kr-sack { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(0.95); } }
@keyframes kr-stars { 0% { background-position: 0 0; } 100% { background-position: 100px 50px; } }

/* ---------- canto-iii-archimago ---------- */
.scn-canto-iii-archimago {
  background: linear-gradient(180deg, #f0d6a0 0%, #e8c080 50%, #d0a050 100%),
              radial-gradient(ellipse at 60% 100%, #f5e0b0 0%, transparent 60%);
}
.scn-canto-iii-archimago .sky-bright { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b8d4f0 0%, #e8f0ff 100%); animation: am-sky 12s ease-in-out infinite alternate; }
.scn-canto-iii-archimago .road { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #c8b080 0%, #a08860 100%); border-radius: 40% 0 0 0 / 30% 0 0 0; }
.scn-canto-iii-archimago .una-walking { position:absolute; bottom:30%; left:30%; width:26px; height:46px; background: linear-gradient(180deg, #d4b898 0%, #b09878 100%); border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: am-una 6s ease-in-out infinite; }
.scn-canto-iii-archimago .archimago-horse { position:absolute; bottom:28%; left:55%; width:50px; height:40px; background: linear-gradient(180deg, #3a3030 0%, #1a1010 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; filter: blur(1px); animation: am-horse 8s ease-in-out infinite; }
.scn-canto-iii-archimago .dust { position:absolute; bottom:30%; left:45%; width:20px; height:8px; background: radial-gradient(ellipse, #c0a880 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: am-dust 6s linear infinite; }
.scn-canto-iii-archimago .wayside-tree { position:absolute; bottom:30%; left:10%; width:30px; height:60px; background: radial-gradient(ellipse at 50% 30%, #4a7a3a 0%, #2a5a1a 100%); border-radius: 60% 60% 0 0; filter: blur(2px); animation: am-tree 20s ease-in-out infinite alternate; }
@keyframes am-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes am-una { 0%,100% { transform: translateX(0); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(0); } }
@keyframes am-horse { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(3px) scale(1.02); } 50% { transform: translateX(0) scale(0.98); } 75% { transform: translateX(-3px) scale(1); } 100% { transform: translateX(0) scale(1); } }
@keyframes am-dust { 0% { transform: translateX(0) scale(1); opacity:0.5; } 50% { transform: translateX(-8px) scale(1.5); opacity:0.2; } 100% { transform: translateX(-20px) scale(2); opacity:0; } }
@keyframes am-tree { 0% { transform: rotate(-5deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-5deg); } }

.scn-questions-canto7 {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 40%, #0d0703 100%),
              radial-gradient(ellipse at 30% 70%, #5a3a2a 0%, transparent 70%);
}
.scn-questions-canto7 .cell-wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e05 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: q7-wall 14s ease-in-out infinite alternate;
}
.scn-questions-canto7 .cell-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #1a100a 0%, #2a1a10 60%, transparent 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-questions-canto7 .bars {
  position:absolute; top:20%; left:20%; right:20%; height:15%;
  background: repeating-linear-gradient(90deg, #2a1a0a 0px, #2a1a0a 6px, transparent 6px, transparent 16px);
  box-shadow: 0 0 12px rgba(0,0,0,.5);
  animation: q7-bars 8s ease-in-out infinite;
}
.scn-questions-canto7 .figure-knight {
  position:absolute; bottom:30%; left:40%; width:28px; height:50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: q7-knight 6s ease-in-out infinite;
}
.scn-questions-canto7 .lantern-glow {
  position:absolute; bottom:40%; left:55%; width:10px; height:14px;
  background: radial-gradient(circle, #c08040 0%, #8a6030 60%, transparent 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 30px 8px #c08040, 0 0 50px 15px rgba(192,128,64,.3);
  animation: q7-lantern 3s ease-in-out infinite alternate;
}
.scn-questions-canto7 .window-light {
  position:absolute; top:12%; right:15%; width:20px; height:30px;
  background: radial-gradient(ellipse, #f0d080 0%, #c09050 70%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 40px 12px rgba(240,208,128,.4);
  animation: q7-window 9s ease-in-out infinite alternate;
}
@keyframes q7-wall { 0% { opacity:.85; transform: scaleY(1) } 50% { opacity:.95; transform: scaleY(1.02) } 100% { opacity:.8; transform: scaleY(.98) } }
@keyframes q7-bars { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes q7-knight { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes q7-lantern { 0% { box-shadow: 0 0 20px 4px #c08040, 0 0 40px 8px rgba(192,128,64,.2); opacity:.8 } 50% { box-shadow: 0 0 35px 10px #e0a050, 0 0 60px 15px rgba(224,160,80,.4); opacity:1 } 100% { box-shadow: 0 0 25px 6px #c08040, 0 0 45px 10px rgba(192,128,64,.25); opacity:.85 } }
@keyframes q7-window { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.1) } 100% { opacity:.4; transform: scaleY(.9) } }

.scn-questions-canto8 {
  background: linear-gradient(180deg, #1a100a 0%, #2a1a10 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 70% 30%, #5a3a2a 0%, transparent 60%);
}
.scn-questions-canto8 .hall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #2a1a10 0%, #3a2a1a 50%, #1a0e05 100%);
  border-radius: 0 0 20% 20% / 0 0 5% 5%;
  animation: q8-hall 16s ease-in-out infinite alternate;
}
.scn-questions-canto8 .hall-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #0d0703 0%, #2a1a10 60%, transparent 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-questions-canto8 .door-giant {
  position:absolute; top:15%; left:10%; width:80px; height:100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 2% 2%;
  box-shadow: 0 0 20px rgba(0,0,0,.5);
  animation: q8-door 8s ease-in-out infinite;
}
.scn-questions-canto8 .figure-arthur {
  position:absolute; bottom:25%; left:45%; width:24px; height:48px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 80%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: q8-arthur 7s ease-in-out infinite;
}
.scn-questions-canto8 .figure-una {
  position:absolute; bottom:28%; left:55%; width:20px; height:42px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 80%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: q8-una 9s ease-in-out infinite alternate;
}
.scn-questions-canto8 .beast-shadow {
  position:absolute; top:40%; right:5%; width:60px; height:70px;
  background: radial-gradient(ellipse at 60% 40%, #0a0502 0%, transparent 70%);
  filter: blur(8px);
  animation: q8-beast 12s ease-in-out infinite;
}
.scn-questions-canto8 .horn-glow {
  position:absolute; top:35%; left:30%; width:8px; height:12px;
  background: radial-gradient(circle, #f0d080 0%, #c08040 60%, transparent 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 30px 6px #f0d080, 0 0 50px 12px rgba(240,208,128,.3);
  animation: q8-horn 2.5s ease-in-out infinite alternate;
}
@keyframes q8-hall { 0% { opacity:.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.01) } 100% { opacity:.85; transform: scaleY(.98) } }
@keyframes q8-door { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes q8-arthur { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(5px) rotate(3deg) } 60% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes q8-una { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes q8-beast { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.1) } 100% { opacity:.3; transform: scaleX(.9) } }
@keyframes q8-horn { 0% { box-shadow: 0 0 20px 3px #f0d080, 0 0 40px 8px rgba(240,208,128,.2); opacity:.8 } 50% { box-shadow: 0 0 40px 10px #ffe080, 0 0 60px 15px rgba(255,224,128,.4); opacity:1 } 100% { box-shadow: 0 0 25px 5px #f0d080, 0 0 45px 10px rgba(240,208,128,.25); opacity:.85 } }

.scn-questions-canto9 {
  background: linear-gradient(180deg, #0d0703 0%, #1a0e05 30%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 70%);
}
.scn-questions-canto9 .chamber-bg {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(135deg, #1a0e05 0%, #2a1a0a 50%, #0d0703 100%);
  border-radius: 0 0 15% 15% / 0 0 5% 5%;
  animation: q9-bg 18s ease-in-out infinite alternate;
}
.scn-questions-canto9 .bed-frame {
  position:absolute; bottom:20%; left:30%; width:60px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: q9-bed 10s ease-in-out infinite;
}
.scn-questions-canto9 .figure-arthur-sleeping {
  position:absolute; bottom:25%; left:35%; width:22px; height:35px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 80%);
  border-radius: 40% 40% 60% 60% / 50% 50% 60% 60%;
  transform-origin: bottom center;
  animation: q9-sleep 8s ease-in-out infinite;
}
.scn-questions-canto9 .vision-queen {
  position:absolute; top:15%; left:45%; width:18px; height:50px;
  background: radial-gradient(ellipse 40% 60%, #f0d080 0%, #c08040 40%, transparent 80%);
  filter: blur(4px);
  opacity:.5;
  animation: q9-vision 6s ease-in-out infinite alternate;
}
.scn-questions-canto9 .floating-pages {
  position:absolute; top:35%; right:20%; width:15px; height:18px;
  background: #4a3a2a;
  border-radius: 5%;
  opacity:.3;
  animation: q9-pages 12s linear infinite;
}
.scn-questions-canto9 .candle-glow {
  position:absolute; bottom:30%; left:55%; width:6px; height:10px;
  background: radial-gradient(circle, #f0d080 0%, #c08040 50%, transparent 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 0 24px 6px #e0a050, 0 0 40px 10px rgba(224,160,80,.3);
  animation: q9-candle 3.5s ease-in-out infinite alternate;
}
@keyframes q9-bg { 0% { opacity:.85; transform: scaleY(1) } 50% { opacity:.95; transform: scaleY(1.01) } 100% { opacity:.8; transform: scaleY(.98) } }
@keyframes q9-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes q9-sleep { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes q9-vision { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.6; transform: translateY(-5px) } 100% { opacity:.4; transform: translateY(2px) } }
@keyframes q9-pages { 0% { transform: translateY(0) rotate(0deg); opacity:.2 } 50% { transform: translateY(-20px) rotate(10deg); opacity:.4 } 100% { transform: translateY(0) rotate(0deg); opacity:.2 } }
@keyframes q9-candle { 0% { box-shadow: 0 0 18px 4px #e0a050, 0 0 30px 6px rgba(224,160,80,.2); opacity:.85; transform: scaleY(1) } 50% { box-shadow: 0 0 30px 8px #f0c070, 0 0 50px 12px rgba(240,192,112,.4); opacity:1; transform: scaleY(1.05) } 100% { box-shadow: 0 0 22px 5px #e0a050, 0 0 35px 8px rgba(224,160,80,.25); opacity:.9; transform: scaleY(.95) } }

.scn-questions-canto10 {
  background: linear-gradient(180deg, #1a0e05 0%, #2a1a10 30%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-questions-canto10 .holiness-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(135deg, #2a1a10 0%, #3a2a1a 50%, #1a0e05 100%);
  border-radius: 0 0 10% 10% / 0 0 3% 3%;
  animation: q10-wall 15s ease-in-out infinite alternate;
}
.scn-questions-canto10 .holiness-steps {
  position:absolute; bottom:0; left:20%; right:20%; height:20%;
  background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 8px, transparent 8px, transparent 18px);
  box-shadow: inset 0 5px 15px rgba(0,0,0,.4);
  animation: q10-steps 9s ease-in-out infinite;
}
.scn-questions-canto10 .figure-knight-ascending {
  position:absolute; bottom:22%; left:40%; width:22px; height:44px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 80%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: q10-knight 7s ease-in-out infinite;
}
.scn-questions-canto10 .figure-mercy {
  position:absolute; bottom:30%; left:55%; width:20px; height:40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 80%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: q10-mercy 9s ease-in-out infinite alternate;
}
.scn-questions-canto10 .cross-glow {
  position:absolute; top:30%; left:50%; width:12px; height:20px;
  background: radial-gradient(ellipse at 50% 60%, #f0d080 0%, #c08040 50%, transparent 100%);
  filter: blur(3px);
  opacity:.5;
  animation: q10-cross 5s ease-in-out infinite alternate;
}
.scn-questions-canto10 .window-light {
  position:absolute; top:10%; right:10%; width:18px; height:28px;
  background: radial-gradient(ellipse, #f0d080 0%, #c09050 70%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 35px 10px rgba(240,208,128,.3);
  animation: q10-window 10s ease-in-out infinite alternate;
}
@keyframes q10-wall { 0% { opacity:.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.01) } 100% { opacity:.85; transform: scaleY(.98) } }
@keyframes q10-steps { 0% { opacity:.7; transform: translateY(0) } 50% { opacity:.85; transform: translateY(2px) } 100% { opacity:.7; transform: translateY(0) } }
@keyframes q10-knight { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes q10-mercy { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes q10-cross { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.1) } 100% { opacity:.5; transform: scaleY(.9) } }
@keyframes q10-window { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.08) } 100% { opacity:.4; transform: scaleY(.95) } }

.scn-canto-ii-sansfoy { background: linear-gradient(180deg, #f9d99e 0%, #daa975 40%, #b87d4f 100%), radial-gradient(ellipse at 60% 20%, #ffe8b0 0%, transparent 60%); }
.scn-canto-ii-sansfoy .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f7e4c4 0%, #e4c090 100%); animation: si2s-sky 12s ease-in-out infinite alternate; }
.scn-canto-ii-sansfoy .sun    { position:absolute; top:12%; left:65%; width:60px; height:60px; background: radial-gradient(circle, #ffe680 0%, #ffc04d 50%, transparent 70%); border-radius:50%; filter: blur(6px); animation: si2s-sun 8s ease-in-out infinite alternate; }
.scn-canto-ii-sansfoy .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #9a7b4a 0%, #6b5628 100%); border-radius: 50% 30% 0 0 / 40% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.3); animation: si2s-ground 5s ease-in-out infinite; }
.scn-canto-ii-sansfoy .horse  { position:absolute; bottom:42%; left:15%; width:120px; height:70px; background: radial-gradient(ellipse at 40% 60%, #4a3a22 0%, #2a1a0a 100%); border-radius: 40% 50% 30% 40% / 50% 40% 40% 50%; box-shadow: inset -10px -10px 20px rgba(0,0,0,.5); animation: si2s-horse 3s ease-in-out infinite; }
.scn-canto-ii-sansfoy .lady   { position:absolute; bottom:58%; left:21%; width:35px; height:80px; background: linear-gradient(180deg, #c8553d 0%, #8a2e1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: si2s-lady 4s ease-in-out infinite; }
.scn-canto-ii-sansfoy .mitre  { position:absolute; bottom:88%; left:22%; width:28px; height:24px; background: radial-gradient(ellipse at 50% 30%, #e6c87a 0%, #b38a3a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; clip-path: polygon(15% 0%,85% 0%,100% 100%,0% 100%); animation: si2s-mitre 3s ease-in-out infinite alternate; }
.scn-canto-ii-sansfoy .trappings { position:absolute; bottom:55%; left:12%; width:60px; height:30px; background: repeating-linear-gradient(45deg, transparent, transparent 4px, #e6d0a8 4px, #e6d0a8 8px); border-radius:20%; animation: si2s-trap 2s ease-in-out infinite; }
.scn-canto-ii-sansfoy .shadow { position:absolute; bottom:38%; left:10%; width:130px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); animation: si2s-shadow 3s ease-in-out infinite; }
@keyframes si2s-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes si2s-sun    { 0% { transform: scale(1) translate(0,0) } 50% { transform: scale(1.1) translate(2px,-3px) } 100% { transform: scale(1) translate(0,0) } }
@keyframes si2s-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes si2s-horse  { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes si2s-lady   { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes si2s-mitre  { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes si2s-trap   { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes si2s-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }

.scn-canto-ii-duessa { background: linear-gradient(180deg, #ffeac2 0%, #f2d5a0 50%, #dbb47a 100%), radial-gradient(ellipse at 50% 30%, #fffbf0 0%, transparent 60%); }
.scn-canto-ii-duessa .backdrop { position:absolute; inset:0; background: linear-gradient(135deg, #ffeac2 0%, #f5d8a0 50%, #d9b070 100%); animation: si2d-back 15s ease-in-out infinite alternate; }
.scn-canto-ii-duessa .ground   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a78b5a 0%, #7a5c2a 100%); border-radius: 30% 70% 0 0 / 20% 50% 0 0; animation: si2d-ground 6s ease-in-out infinite; }
.scn-canto-ii-duessa .figure   { position:absolute; bottom:38%; left:45%; width:40px; height:100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%) rotate(-5deg); animation: si2d-figure 5s ease-in-out infinite; }
.scn-canto-ii-duessa .dress    { position:absolute; bottom:32%; left:42%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 30%, #c8553d 0%, #7a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; filter: blur(2px); animation: si2d-dress 4s ease-in-out infinite; }
.scn-canto-ii-duessa .sash     { position:absolute; bottom:45%; left:44%; width:50px; height:8px; background: linear-gradient(90deg, #e6c87a 0%, #d4a64a 100%); border-radius:4px; transform: rotate(-20deg); animation: si2d-sash 3s ease-in-out infinite alternate; }
.scn-canto-ii-duessa .aureole  { position:absolute; bottom:70%; left:45%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,236,180,.6) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: si2d-aureole 8s ease-in-out infinite alternate; }
.scn-canto-ii-duessa .petal    { position:absolute; bottom:80%; left:35%; width:12px; height:12px; background: radial-gradient(circle, #f2c87a 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: si2d-petal 10s linear infinite; }
@keyframes si2d-back    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes si2d-ground  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes si2d-figure  { 0% { transform: translateX(-50%) rotate(-5deg) translateY(0) } 50% { transform: translateX(-50%) rotate(-2deg) translateY(-3px) } 100% { transform: translateX(-50%) rotate(-5deg) translateY(0) } }
@keyframes si2d-dress   { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes si2d-sash    { 0% { transform: rotate(-20deg) } 100% { transform: rotate(-15deg) } }
@keyframes si2d-aureole { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.2) } 100% { opacity:.5; transform: scale(1) } }
@keyframes si2d-petal   { 0% { transform: translate(0,0) rotate(0) } 100% { transform: translate(30px,-40px) rotate(45deg) } }

.scn-canto-ii-fradubio { background: linear-gradient(180deg, #d4e0c0 0%, #b8c8a0 50%, #8aa06a 100%), radial-gradient(ellipse at 50% 100%, #6a8050 0%, transparent 70%); }
.scn-canto-ii-fradubio .sky        { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #dae8c8 0%, #c2d4a8 100%); animation: si2f-sky 14s ease-in-out infinite alternate; }
.scn-canto-ii-fradubio .ground     { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #7a905a 0%, #5a6a3a 100%); border-radius: 20% 80% 0 0 / 30% 60% 0 0; animation: si2f-ground 7s ease-in-out infinite; }
.scn-canto-ii-fradubio .tree-left  { position:absolute; bottom:45%; left:5%; width:80px; height:120px; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius: 30% 70% 20% 80% / 80% 20% 70% 30%; box-shadow: inset -10px 0 20px rgba(0,0,0,.3); animation: si2f-tree 10s ease-in-out infinite alternate; }
.scn-canto-ii-fradubio .tree-right { position:absolute; bottom:45%; right:5%; width:80px; height:120px; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius: 70% 30% 80% 20% / 20% 80% 30% 70%; box-shadow: inset 10px 0 20px rgba(0,0,0,.3); animation: si2f-tree 12s ease-in-out infinite alternate; transform: scaleX(-1); }
.scn-canto-ii-fradubio .moss       { position:absolute; bottom:52%; left:10%; width:60px; height:30px; background: radial-gradient(ellipse, #8a9a6a 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: si2f-moss 8s ease-in-out infinite alternate; }
.scn-canto-ii-fradubio .knight     { position:absolute; bottom:32%; left:35%; width:25px; height:55px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(5deg); animation: si2f-knight 5s ease-in-out infinite; }
.scn-canto-ii-fradubio .una        { position:absolute; bottom:30%; left:45%; width:22px; height:50px; background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: si2f-una 5s ease-in-out infinite 1s; }
.scn-canto-ii-fradubio .shadow     { position:absolute; bottom:28%; left:32%; width:80px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: si2f-shadow 5s ease-in-out infinite; }
@keyframes si2f-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes si2f-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes si2f-tree   { 0% { transform: rotate(0) } 100% { transform: rotate(2deg) } }
@keyframes si2f-moss   { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes si2f-knight { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes si2f-una    { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes si2f-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(.8) } }

.scn-canto-ii-ending { background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 30%, #12121a 100%), radial-gradient(ellipse at 50% 40%, #2a2a3e 0%, transparent 80%); }
.scn-canto-ii-ending .wall   { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); animation: si2e-wall 15s ease-in-out infinite alternate; }
.scn-canto-ii-ending .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a32 0%, #1a1a22 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: si2e-floor 6s ease-in-out infinite; }
.scn-canto-ii-ending .window{ position:absolute; bottom:40%; left:35%; width:80px; height:100px; background: linear-gradient(135deg, #4a4a5a 0%, #2a2a3a 100%); border:4px solid #4a3a2a; border-radius:8% 8% 4% 4%; box-shadow: inset 0 0 30px rgba(192,168,128,.15); animation: si2e-window 8s ease-in-out infinite alternate; }
.scn-canto-ii-ending .figure{ position:absolute; bottom:22%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: translateX(-50%); animation: si2e-figure 9s ease-in-out infinite; }
.scn-canto-ii-ending .tear  { position:absolute; bottom:28%; left:42%; width:6px; height:12px; background: radial-gradient(ellipse, #b8c8d8 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: si2e-tear 4s ease-in-out infinite; }
.scn-canto-ii-ending .hint-ivy { position:absolute; bottom:50%; left:26%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 0%, #6a7a4a 0%, transparent 100%); border-radius:0 50% 50% 0; filter: blur(3px); animation: si2e-ivy 12s ease-in-out infinite alternate; }
@keyframes si2e-wall   { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes si2e-floor  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes si2e-window { 0% { box-shadow: inset 0 0 20px rgba(192,168,128,.1); } 50% { box-shadow: inset 0 0 40px rgba(192,168,128,.25); } 100% { box-shadow: inset 0 0 20px rgba(192,168,128,.1); } }
@keyframes si2e-figure { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes si2e-tear   { 0% { transform: translateY(0) opacity:.8 } 50% { transform: translateY(-6px) opacity:0 } 100% { transform: translateY(0) opacity:.8 } }
@keyframes si2e-ivy    { 0% { transform: rotate(0) } 100% { transform: rotate(5deg) } }

.scn-canto-iv-procession {
  background: linear-gradient(180deg, #e8dcc8 0%, #c4a56a 40%, #8b6b3a 100%), radial-gradient(ellipse at 50% 30%, #f5e6c8 0%, transparent 70%);
}
.scn-canto-iv-procession .hall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, transparent 0%, #d4b88a 20%, #d4b88a 80%, transparent 100%);
  animation: pr-hall-pulse 8s ease-in-out infinite alternate;
}
.scn-canto-iv-procession .dais {
  position: absolute; bottom: 15%; left: 40%; right: 40%; height: 10%;
  background: linear-gradient(180deg, #b88a4a 0%, #7a5a2a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
}
.scn-canto-iv-procession .coach {
  position: absolute; bottom: 22%; left: 30%; width: 30%; height: 28%;
  background: linear-gradient(180deg, #8b5a2a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 8% 8%;
  box-shadow: 0 6px 18px rgba(0,0,0,0.5);
  animation: pr-coach-rock 12s ease-in-out infinite;
}
.scn-canto-iv-procession .horse-left {
  position: absolute; bottom: 11%; left: 28%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 30% 20% 20% / 60% 50% 20% 20%;
  animation: pr-horse-step 2.5s ease-in-out infinite;
}
.scn-canto-iv-procession .horse-right {
  position: absolute; bottom: 11%; left: 58%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #7a5434 0%, #4a3424 100%);
  border-radius: 30% 40% 20% 20% / 50% 60% 20% 20%;
  animation: pr-horse-step 2.5s ease-in-out infinite 1.25s;
}
.scn-canto-iv-procession .dame-veil {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 24%;
  background: radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, #c0a080 50%, #8a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  filter: blur(1px);
  animation: pr-dame-glide 16s ease-in-out infinite alternate;
}
.scn-canto-iv-procession .attendant-sil {
  position: absolute; bottom: 15%; left: 22%; width: 6%; height: 22%;
  background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  filter: blur(1px);
  animation: pr-attendant 6s ease-in-out infinite;
}
.scn-canto-iv-procession .lantern-glow {
  position: absolute; bottom: 46%; left: 44%; width: 2%; height: 2%;
  background: #fad06a;
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(250,208,106,0.6), 0 0 40px 16px rgba(250,208,106,0.3);
  animation: pr-lantern-pulse 3s ease-in-out infinite alternate;
}
@keyframes pr-hall-pulse { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes pr-coach-rock { 0%,100% { transform: translateY(0) rotate(-0.5deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } }
@keyframes pr-horse-step { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-3px) } 60% { transform: translateY(-1px) } }
@keyframes pr-dame-glide { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-2px) translateY(-1px) } }
@keyframes pr-attendant { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes pr-lantern-pulse { 0% { box-shadow: 0 0 20px 8px rgba(250,208,106,0.4); opacity:0.8 } 50% { box-shadow: 0 0 30px 14px rgba(250,208,106,0.7); opacity:1 } 100% { box-shadow: 0 0 20px 8px rgba(250,208,106,0.5); opacity:0.85 } }

.scn-canto-iv-sansjoy {
  background: linear-gradient(180deg, #fef6d8 0%, #ead6a0 30%, #c8a86a 60%, #a08040 100%), radial-gradient(ellipse at 60% 20%, #fff4d0 0%, transparent 60%);
}
.scn-canto-iv-sansjoy .sky-warm {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d6c898 0%, transparent 100%);
  animation: sj-sky-shimmer 10s ease-in-out infinite alternate;
}
.scn-canto-iv-sansjoy .sun-glare {
  position: absolute; top: 5%; right: 20%; width: 8%; height: 8%;
  background: radial-gradient(circle, #fff8e0 0%, #fad06a 40%, transparent 70%);
  border-radius: 50%;
  animation: sj-glare-pulse 4s ease-in-out infinite alternate;
}
.scn-canto-iv-sansjoy .ground-dust {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b8985a 0%, #8a7040 50%, #5a4020 100%);
  border-radius: 30% 40% 0 0 / 20% 30% 0 0;
}
.scn-canto-iv-sansjoy .knight-red {
  position: absolute; bottom: 15%; left: 25%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #a06040 0%, #6a3820 50%, #3a1a0a 100%);
  border-radius: 30% 20% 10% 10% / 40% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: sj-knight-lunge 3s ease-in-out infinite;
}
.scn-canto-iv-sansjoy .knight-sansjoy {
  position: absolute; bottom: 15%; right: 25%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #4a6a80 0%, #2a3a50 50%, #1a2230 100%);
  border-radius: 20% 30% 10% 10% / 30% 40% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: sj-knight-lunge 3s ease-in-out infinite 1.5s;
}
.scn-canto-iv-sansjoy .sword-crash {
  position: absolute; bottom: 38%; left: 38%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #e8e0d0 0%, #a09880 100%);
  clip-path: polygon(40% 0, 60% 0, 55% 100%, 45% 100%);
  transform: rotate(20deg);
  animation: sj-sword-clash 0.6s ease-in-out infinite;
}
.scn-canto-iv-sansjoy .shield-glint {
  position: absolute; bottom: 30%; left: 47%; width: 6%; height: 10%;
  background: radial-gradient(circle, #fff0c0 0%, #b09050 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sj-glint-flash 1.2s ease-in-out infinite;
}
.scn-canto-iv-sansjoy .shadow-pool {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
}
@keyframes sj-sky-shimmer { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes sj-glare-pulse { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sj-knight-lunge { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(-4px) translateY(1px) rotate(-2deg) } 75% { transform: translateX(8px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes sj-sword-clash { 0%,100% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(25deg) scale(1.1) } }
@keyframes sj-glint-flash { 0%,100% { opacity:0.5 } 50% { opacity:1 } }

.scn-canto-v-daybreak {
  background: linear-gradient(180deg, #1a3040 0%, #2a4a60 20%, #6a8a9a 40%, #b0c8d0 60%, #f0e8d0 80%, #ffe8c0 100%);
}
.scn-canto-v-daybreak .sky-dawn {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a3040 0%, #4a6a7a 30%, #8aa0b0 60%, transparent 100%);
  animation: db-sky-brighten 20s ease-in-out infinite alternate;
}
.scn-canto-v-daybreak .sun-orient {
  position: absolute; top: 8%; left: 40%; width: 12%; height: 12%;
  background: radial-gradient(circle, #ffe8b0 0%, #ffd080 30%, #f0a050 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,208,128,0.3);
  animation: db-sunrise 30s ease-in-out infinite alternate;
}
.scn-canto-v-daybreak .mountain-range {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  clip-path: polygon(0% 30%, 10% 0%, 20% 20%, 35% 0%, 50% 25%, 65% 0%, 80% 15%, 90% 0%, 100% 30%, 100% 100%, 0% 100%);
  filter: blur(1px);
  opacity: 0.8;
}
.scn-canto-v-daybreak .knight-wake {
  position: absolute; bottom: 13%; left: 38%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #505060 0%, #303040 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: db-stir 12s ease-in-out infinite;
}
.scn-canto-v-daybreak .steed-dark {
  position: absolute; bottom: 6%; left: 50%; width: 16%; height: 18%;
  background: linear-gradient(180deg, #404040 0%, #202020 100%);
  border-radius: 40% 30% 20% 20% / 40% 30% 15% 15%;
  animation: db-steed-sway 15s ease-in-out infinite;
}
.scn-canto-v-daybreak .dew-sparkle {
  position: absolute; top: 70%; left: 20%; width: 1%; height: 1%;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.6);
  animation: db-sparkle 8s ease-in-out infinite;
}
.scn-canto-v-daybreak .breeze-drift {
  position: absolute; top: 30%; left: 10%; width: 8%; height: 2%;
  background: rgba(255,255,255,0.1);
  filter: blur(4px);
  border-radius: 50%;
  animation: db-breeze 40s linear infinite;
}
@keyframes db-sky-brighten { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes db-sunrise { 0% { transform: scale(0.8) translateY(20px); opacity:0.6 } 50% { transform: scale(1.1) translateY(0); opacity:1 } 100% { transform: scale(0.9) translateY(5px); opacity:0.9 } }
@keyframes db-stir { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(2px) translateY(-2px) rotate(4deg) } 60% { transform: translateX(-1px) translateY(-1px) rotate(-3deg) } }
@keyframes db-steed-sway { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }
@keyframes db-sparkle { 0%,100% { opacity:0 } 50% { opacity:1 } }
@keyframes db-breeze { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

.scn-canto-v-combat {
  background: linear-gradient(180deg, #f0e6c0 0%, #d4b880 25%, #a8884a 50%, #7a5a2a 75%, #4a2a10 100%);
}
.scn-canto-v-combat .arena-sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8905a 0%, #8a6a30 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.scn-canto-v-combat .sky-battle {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0e6c0 0%, #d4b880 60%, transparent 100%);
  animation: co-sky-flash 10s ease-in-out infinite alternate;
}
.scn-canto-v-combat .knight-elf {
  position: absolute; bottom: 18%; left: 22%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 50%, #1a2a3a 100%);
  border-radius: 30% 20% 10% 10% / 40% 30% 10% 10%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.5);
  animation: co-elf-strike 2s ease-in-out infinite;
}
.scn-canto-v-combat .knight-sarazin {
  position: absolute; bottom: 18%; right: 22%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #a04030 0%, #702820 50%, #3a0a0a 100%);
  border-radius: 20% 30% 10% 10% / 30% 40% 10% 10%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.5);
  animation: co-sarazin-recoil 2.2s ease-in-out infinite 0.3s;
}
.scn-canto-v-combat .blow-flash {
  position: absolute; bottom: 40%; left: 38%; width: 6%; height: 6%;
  background: radial-gradient(circle, #fff0c0 0%, #f0a050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,160,80,0.5);
  animation: co-burst 0.4s ease-in-out infinite alternate;
}
.scn-canto-v-combat .wine-goblet {
  position: absolute; bottom: 8%; left: 48%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #a07040 0%, #704820 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: co-goblet-tilt 5s ease-in-out infinite;
}
.scn-canto-v-combat .spice-scatter {
  position: absolute; top: 50%; left: 30%; width: 1%; height: 1%;
  background: #c8a060;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(200,160,96,0.5);
  animation: co-spice-fall 12s linear infinite;
}
.scn-canto-v-combat .cloak-fragment {
  position: absolute; top: 30%; left: 15%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #6a4030 0%, #3a2018 100%);
  clip-path: polygon(0% 0%, 100% 20%, 80% 100%, 20% 80%);
  filter: blur(2px);
  animation: co-cloak-flap 3s ease-in-out infinite;
}
@keyframes co-sky-flash { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes co-elf-strike { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(10px) rotate(5deg) } 40% { transform: translateX(-5px) rotate(-3deg) } 60% { transform: translateX(8px) rotate(4deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes co-sarazin-recoil { 0% { transform: translateX(0) rotate(0deg) scale(1) } 25% { transform: translateX(-8px) rotate(-5deg) scale(0.95) } 50% { transform: translateX(4px) rotate(3deg) scale(1.02) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) scale(1) } }
@keyframes co-burst { 0% { opacity:0.5; transform: scale(0.8) } 100% { opacity:1; transform: scale(1.2) } }
@keyframes co-goblet-tilt { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(15deg) } 75% { transform: rotate(-10deg) } }
@keyframes co-spice-fall { 0% { transform: translateY(0) translateX(0); opacity:1 } 100% { transform: translateY(80vh) translateX(30px); opacity:0 } }
@keyframes co-cloak-flap { 0%,100% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(10deg) scale(1.05) } }

.scn-questions-canto11 {
  background:
    radial-gradient(ellipse at 50% 10%, #4a3a2a 0%, transparent 60%),
    linear-gradient(180deg, #1a1410 0%, #2a1e14 35%, #1a1008 100%);
}
.scn-questions-canto11 .sn1-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1e14 0%, #3a2a1a 40%, #2a1e14 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
}
.scn-questions-canto11 .sn1-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1208 0%, #0e0a04 100%);
  box-shadow: inset 0 12px 30px rgba(0,0,0,.8);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-questions-canto11 .sn1-arch {
  position: absolute; bottom: 30%; left: 50%; width: 140px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #1a1410 0%, #2a1e14 60%, transparent 70%);
  border: 6px solid #3a2a1a; border-bottom: none;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.5);
}
.scn-questions-canto11 .sn1-window {
  position: absolute; bottom: 55%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c8a050 0%, #8a6828 60%, #4a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 10px rgba(200,160,80,.15), 0 0 80px 20px rgba(200,160,80,.08);
  animation: sn1-window 6s ease-in-out infinite alternate;
}
.scn-questions-canto11 .sn1-dragon {
  position: absolute; bottom: 38%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1e14 60%, #1a1008 100%);
  border-radius: 40% 60% 50% 50% / 50% 70% 30% 50%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  transform-origin: 70% 60%;
  animation: sn1-dragon 8s ease-in-out infinite;
}
.scn-questions-canto11 .sn1-knight {
  position: absolute; bottom: 32%; left: 48%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 40%, #2a1e14 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5), inset 0 -4px 8px rgba(200,160,80,.15);
  transform-origin: bottom center;
  animation: sn1-knight 4s ease-in-out infinite;
}
.scn-questions-canto11 .sn1-torch {
  position: absolute; bottom: 50%; right: 22%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c8a050 0%, #8a6828 60%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 8px rgba(200,160,80,.4), 0 0 60px 16px rgba(200,160,80,.15);
  animation: sn1-torch 2s ease-in-out infinite alternate;
}
.scn-questions-canto11 .sn1-shadow {
  position: absolute; bottom: 30%; left: 34%; width: 100px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%);
  border-radius: 50%;
  transform-origin: center;
  animation: sn1-shadow 8s ease-in-out infinite;
}
@keyframes sn1-window {
  0% { opacity: .6; box-shadow: 0 0 20px 5px rgba(200,160,80,.1), 0 0 40px 10px rgba(200,160,80,.05); }
  50% { opacity: .9; box-shadow: 0 0 50px 15px rgba(200,160,80,.2), 0 0 100px 25px rgba(200,160,80,.1); }
  100% { opacity: .7; box-shadow: 0 0 30px 8px rgba(200,160,80,.12), 0 0 60px 15px rgba(200,160,80,.06); }
}
@keyframes sn1-dragon {
  0% { transform: translateX(0) translateY(0) rotate(-2deg) scaleX(1); }
  30% { transform: translateX(-8px) translateY(-4px) rotate(2deg) scaleX(.95); }
  60% { transform: translateX(4px) translateY(-2px) rotate(-1deg) scaleX(1.05); }
  100% { transform: translateX(0) translateY(0) rotate(0) scaleX(1); }
}
@keyframes sn1-knight {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes sn1-torch {
  0% { opacity: .7; box-shadow: 0 0 20px 5px rgba(200,160,80,.3), 0 0 40px 10px rgba(200,160,80,.1); }
  50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(200,160,80,.5), 0 0 80px 20px rgba(200,160,80,.2); }
  100% { opacity: .8; box-shadow: 0 0 25px 6px rgba(200,160,80,.35), 0 0 50px 12px rgba(200,160,80,.12); }
}
@keyframes sn1-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: .6; }
  30% { transform: scaleX(.8) translateX(-6px); opacity: .4; }
  60% { transform: scaleX(1.1) translateX(4px); opacity: .7; }
  100% { transform: scaleX(1) translateX(0); opacity: .6; }
}

.scn-questions-canto12 {
  background:
    radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1410 0%, #2a1e14 50%, #1a1008 100%);
}
.scn-questions-canto12 .sn2-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 50%, #2a1e14 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.5);
}
.scn-questions-canto12 .sn2-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1208 0%, #0e0a04 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
}
.scn-questions-canto12 .sn2-arch {
  position: absolute; bottom: 25%; left: 50%; width: 200px; height: 160px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #1a1410 0%, #2a1e14 50%, transparent 70%);
  border: 8px solid #3a2a1a; border-bottom: none;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -30px 60px rgba(0,0,0,.4);
}
.scn-questions-canto12 .sn2-window {
  position: absolute; bottom: 60%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d4b868 0%, #a08038 60%, #4a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 0 50px 12px rgba(212,184,104,.15), 0 0 100px 25px rgba(212,184,104,.08);
  animation: sn2-window 7s ease-in-out infinite alternate;
}
.scn-questions-canto12 .sn2-knight {
  position: absolute; bottom: 28%; left: 44%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 40%, #2a1e14 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: sn2-couple 5s ease-in-out infinite;
}
.scn-questions-canto12 .sn2-una {
  position: absolute; bottom: 28%; left: 52%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #b8a888 0%, #8a7a6a 50%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: sn2-couple 5s ease-in-out infinite .2s;
  filter: brightness(1.05);
}
.scn-questions-canto12 .sn2-candle {
  position: absolute; bottom: 45%; left: 48%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #e8d090 0%, #c8a050 40%, #5a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 35px 10px rgba(232,208,144,.4), 0 0 70px 20px rgba(232,208,144,.15);
  animation: sn2-candle 3s ease-in-out infinite alternate;
}
.scn-questions-canto12 .sn2-banner {
  position: absolute; bottom: 55%; left: 50%; width: 90px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #c8553d 0%, #a0461a 50%, #c8553d 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: sn2-banner 6s ease-in-out infinite;
}
@keyframes sn2-window {
  0% { opacity: .7; box-shadow: 0 0 30px 8px rgba(212,184,104,.12), 0 0 60px 15px rgba(212,184,104,.06); }
  50% { opacity: 1; box-shadow: 0 0 60px 18px rgba(212,184,104,.2), 0 0 120px 30px rgba(212,184,104,.1); }
  100% { opacity: .8; box-shadow: 0 0 40px 10px rgba(212,184,104,.14), 0 0 80px 18px rgba(212,184,104,.07); }
}
@keyframes sn2-couple {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes sn2-candle {
  0% { opacity: .8; box-shadow: 0 0 25px 8px rgba(232,208,144,.3), 0 0 50px 15px rgba(232,208,144,.1); transform: scaleY(1); }
  50% { opacity: 1; box-shadow: 0 0 45px 14px rgba(232,208,144,.5), 0 0 90px 25px rgba(232,208,144,.2); transform: scaleY(1.02); }
  100% { opacity: .85; box-shadow: 0 0 30px 10px rgba(232,208,144,.35), 0 0 60px 18px rgba(232,208,144,.12); transform: scaleY(.98); }
}
@keyframes sn2-banner {
  0% { transform: translateX(-50%) scaleX(1); opacity: .8; }
  50% { transform: translateX(-50%) scaleX(1.04); opacity: 1; }
  100% { transform: translateX(-50%) scaleX(.98); opacity: .85; }
}

.scn-glossary {
  background:
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #1a1410 0%, #2a1e14 100%);
}
.scn-glossary .sn3-book-left {
  position: absolute; bottom: 15%; left: 10%; width: 38%; height: 55%;
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c8b0 40%, #c0b498 100%);
  border-radius: 4% 0 0 4%;
  box-shadow: inset -8px 0 20px rgba(0,0,0,.15), 0 8px 30px rgba(0,0,0,.5);
  transform: perspective(800px) rotateY(-2deg);
  transform-origin: right center;
}
.scn-glossary .sn3-book-right {
  position: absolute; bottom: 15%; right: 10%; width: 38%; height: 55%;
  background: linear-gradient(180deg, #f0e4d0 0%, #dcd0b8 40%, #c8bca0 100%);
  border-radius: 0 4% 4% 0;
  box-shadow: inset 8px 0 20px rgba(0,0,0,.15), 0 8px 30px rgba(0,0,0,.5);
  transform: perspective(800px) rotateY(2deg);
  transform-origin: left center;
}
.scn-glossary .sn3-spine {
  position: absolute; bottom: 15%; left: 50%; width: 4%; height: 55%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #5a4a3a 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(0,0,0,.3);
}
.scn-glossary .sn3-decoration {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 6px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent 0%, #8a7a6a 20%, #c8b898 50%, #8a7a6a 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: sn3-decoration 10s ease-in-out infinite;
}
.scn-glossary .sn3-candle {
  position: absolute; top: 12%; right: 18%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e8d090 0%, #c8a050 30%, #5a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 40px 12px rgba(232,208,144,.35), 0 0 80px 25px rgba(232,208,144,.1);
  animation: sn3-candle 4s ease-in-out infinite alternate;
}
.scn-glossary .sn3-quill {
  position: absolute; top: 38%; right: 8%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #c8b898 0%, #8a7a6a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: sn3-quill 6s ease-in-out infinite;
}
.scn-glossary .sn3-inkwell {
  position: absolute; top: 48%; right: 6%; width: 18px; height: 16px;
  background: radial-gradient(circle, #1a1410 0%, #0e0a04 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  border: 2px solid #3a2a1a;
}
.scn-glossary .sn3-glow {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 55%;
  background: radial-gradient(ellipse at 50% 50%, rgba(232,208,144,.06) 0%, transparent 70%);
  border-radius: 4%;
  animation: sn3-glow 8s ease-in-out infinite alternate;
}
@keyframes sn3-decoration {
  0% { opacity: .5; transform: translateX(-50%) scaleX(.95); }
  50% { opacity: .8; transform: translateX(-50%) scaleX(1.05); }
  100% { opacity: .6; transform: translateX(-50%) scaleX(.98); }
}
@keyframes sn3-candle {
  0% { opacity: .8; box-shadow: 0 0 30px 8px rgba(232,208,144,.3), 0 0 60px 18px rgba(232,208,144,.08); transform: scaleY(1); }
  50% { opacity: 1; box-shadow: 0 0 50px 16px rgba(232,208,144,.45), 0 0 100px 30px rgba(232,208,144,.15); transform: scaleY(1.03); }
  100% { opacity: .85; box-shadow: 0 0 35px 10px rgba(232,208,144,.32), 0 0 70px 20px rgba(232,208,144,.1); transform: scaleY(.97); }
}
@keyframes sn3-quill {
  0% { transform: rotate(12deg) translateY(0); }
  30% { transform: rotate(18deg) translateY(-2px); }
  60% { transform: rotate(14deg) translateY(0); }
  100% { transform: rotate(12deg) translateY(0); }
}
@keyframes sn3-glow {
  0% { opacity: .4; }
  50% { opacity: .6; }
  100% { opacity: .45; }
}

.scn-canto-i-opening {
  background: 
    linear-gradient(180deg, #c8a87a 0%, #b8946a 40%, #a07a4e 100%),
    radial-gradient(ellipse at 70% 30%, #e0c090 0%, transparent 60%);
}

.scn-canto-i-opening .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #cbb59e 0%, #aa8b6e 100%);
  border-bottom: 6px solid #8a6a4a;
  animation: ciop-wall 12s ease-in-out infinite alternate;
}

.scn-canto-i-opening .window {
  position: absolute; top: 10%; left: 65%; width: 90px; height: 120px;
  background: linear-gradient(180deg, #ffe8c0 0%, #e0c090 60%, #b89a70 100%);
  border: 6px solid #6a4a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px #ffe0a0, 0 0 40px rgba(255,224,160,0.3);
  animation: ciop-window 8s ease-in-out infinite;
}

.scn-canto-i-opening .desk {
  position: absolute; bottom: 20%; left: 20%; width: 140px; height: 16px;
  background: linear-gradient(180deg, #8a6848 0%, #6a4a2a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: ciop-desk 15s ease-in-out infinite alternate;
}

.scn-canto-i-opening .book {
  position: absolute; bottom: 23%; left: 40%; width: 50px; height: 34px;
  background: linear-gradient(135deg, #b09070 0%, #8a7050 100%);
  border-radius: 2px 20px 2px 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ciop-book 6s ease-in-out infinite;
}

.scn-canto-i-opening .candle {
  position: absolute; bottom: 25%; left: 50%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #d0b080 0%, #a08460 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 12px 4px rgba(255,200,120,0.5);
}

.scn-canto-i-opening .candle::before {
  content: '';
  position: absolute; top: -10px; left: 50%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #e09840 60%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ciop-flame 2s ease-in-out infinite alternate;
}

.scn-canto-i-opening .figure-sitter {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ciop-sit 4s ease-in-out infinite;
}

.scn-canto-i-opening .shadow-cast {
  position: absolute; bottom: 18%; left: 25%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: ciop-shadow 4s ease-in-out infinite;
}

@keyframes ciop-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ciop-window {
  0% { box-shadow: inset 0 0 20px #ffe0a0, 0 0 30px rgba(255,224,160,0.2); }
  50% { box-shadow: inset 0 0 40px #ffd080, 0 0 60px rgba(255,208,128,0.5); }
  100% { box-shadow: inset 0 0 25px #ffe0a0, 0 0 35px rgba(255,224,160,0.25); }
}
@keyframes ciop-desk {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ciop-book {
  0%,100% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-4deg) translateX(2px); }
}
@keyframes ciop-flame {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.1, 1.15); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95, 1.05); opacity: 0.9; }
}
@keyframes ciop-sit {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes ciop-shadow {
  0%,100% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.05); }
}

.scn-canto-i-intro {
  background: 
    linear-gradient(180deg, #cbb09a 0%, #b0907a 40%, #8a705a 100%),
    radial-gradient(ellipse at 50% 0%, #e0c0a0 0%, transparent 70%);
}

.scn-canto-i-intro .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5a42 0%, #5a3a2a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: ciin-floor 10s ease-in-out infinite alternate;
}

.scn-canto-i-intro .wall-arc {
  position: absolute; inset: 0 0 25% 0;
  background: radial-gradient(ellipse at 50% 20%, #c0a88a 0%, #9a7a5e 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.2);
}

.scn-canto-i-intro .stand {
  position: absolute; bottom: 25%; left: 50%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: ciin-stand 12s ease-in-out infinite;
}

.scn-canto-i-intro .shield {
  position: absolute; bottom: 50%; left: 50%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #9a8a7a 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%) rotate(5deg);
  box-shadow: -2px 2px 10px rgba(0,0,0,0.5);
  border: 3px solid #5a4a3a;
}

.scn-canto-i-intro .shield::after {
  content: '';
  position: absolute; top: 20%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #b09880 0%, #8a705a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  border: 2px solid #4a3a2a;
}

.scn-canto-i-intro .knight-silhouette {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ciin-knight 5s ease-in-out infinite;
}

.scn-canto-i-intro .lantern-lit {
  position: absolute; bottom: 35%; right: 20%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #d0a060 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,150,80,0.6);
  animation: ciin-lantern 3s ease-in-out infinite alternate;
}

.scn-canto-i-intro .banner {
  position: absolute; top: 10%; right: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%);
  border-radius: 2px 2px 30% 30%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: ciin-banner 7s ease-in-out infinite alternate;
}

@keyframes ciin-floor {
  0% { opacity: 0.9; }
  100% { opacity: 1; }
}
@keyframes ciin-stand {
  0%,100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes ciin-knight {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
}
@keyframes ciin-lantern {
  0% { box-shadow: 0 0 20px 5px rgba(200,150,80,0.4); opacity: 0.8; }
  100% { box-shadow: 0 0 40px 15px rgba(200,150,80,0.7); opacity: 1; }
}
@keyframes ciin-banner {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(2deg); }
}

.scn-canto-i-forest {
  background: 
    linear-gradient(180deg, #9aba8a 0%, #7a9a6a 40%, #5a7a4a 100%),
    radial-gradient(ellipse at 50% 30%, #c0e8a0 0%, transparent 70%);
}

.scn-canto-i-forest .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d8a0 0%, #90b880 100%);
  animation: cifo-sky 10s ease-in-out infinite alternate;
}

.scn-canto-i-forest .canopy {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: radial-gradient(ellipse at 30% 40%, #6a8a5a 0%, #4a6a3a 60%, transparent 100%),
              radial-gradient(ellipse at 70% 50%, #5a7a4a 0%, transparent 70%);
  animation: cifo-canopy 20s ease-in-out infinite alternate;
}

.scn-canto-i-forest .trunk {
  position: absolute; bottom: 0; width: 30px; height: 70%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a4a3a 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 10px rgba(0,0,0,0.3);
}

.scn-canto-i-forest .trunk.left {
  left: 20%;
  animation: cifo-trunk-l 5s ease-in-out infinite;
}

.scn-canto-i-forest .trunk.right {
  right: 15%;
  width: 40px;
  animation: cifo-trunk-r 6s ease-in-out infinite;
}

.scn-canto-i-forest .path {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a22 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: cifo-path 15s ease-in-out infinite alternate;
}

.scn-canto-i-forest .dwarf-figure {
  position: absolute; bottom: 15%; left: 25%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cifo-dwarf 4s ease-in-out infinite;
}

.scn-canto-i-forest .lady-figure {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cifo-lady 5s ease-in-out infinite;
}

.scn-canto-i-forest .branch {
  position: absolute; top: 25%; left: 20%; width: 120px; height: 8px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 30%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: cifo-branch 12s ease-in-out infinite alternate;
}

@keyframes cifo-sky {
  0%,100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes cifo-canopy {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.02) translateY(-2px); }
  100% { transform: scale(0.98) translateY(1px); }
}
@keyframes cifo-trunk-l {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
}
@keyframes cifo-trunk-r {
  0%,100% { transform: scaleY(0.98); }
  50% { transform: scaleY(1.02); }
}
@keyframes cifo-path {
  0% { opacity: 0.9; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(0.97); }
}
@keyframes cifo-dwarf {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes cifo-lady {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes cifo-branch {
  0% { transform: rotate(-15deg) scaleX(1); }
  50% { transform: rotate(-13deg) scaleX(1.03); }
  100% { transform: rotate(-17deg) scaleX(0.97); }
}

.scn-canto-i-error {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #000 100%),
    radial-gradient(ellipse at 40% 30%, #2a2a3a 0%, transparent 70%);
}

.scn-canto-i-error .cave-mouth {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #0a0a0a 0%, #1a1a2a 60%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -30px 60px rgba(0,0,0,0.8);
  animation: cier-cave 15s ease-in-out infinite alternate;
}

.scn-canto-i-error .darkness {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, transparent 0%, #0a0a12 70%);
  animation: cier-dark 10s ease-in-out infinite;
}

.scn-canto-i-error .knight-helm {
  position: absolute; bottom: 22%; left: 28%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  box-shadow: -2px 2px 8px rgba(0,0,0,0.6);
  animation: cier-helm 4s ease-in-out infinite;
}

.scn-canto-i-error .dwarf-shadow {
  position: absolute; bottom: 15%; left: 10%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 70%);
  border-radius: 50%;
  animation: cier-shadow 5s ease-in-out infinite;
}

.scn-canto-i-error .eye-glow {
  position: absolute; bottom: 40%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,85,61,0.4), 0 0 40px 12px rgba(200,85,61,0.15);
  animation: cier-eye 3s ease-in-out infinite alternate;
}

.scn-canto-i-error .tentacle {
  position: absolute; bottom: 5%; left: 40%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(-10deg);
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  animation: cier-tentacle 6s ease-in-out infinite;
}

@keyframes cier-cave {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(0.97); opacity: 1; }
  100% { transform: scaleY(1.02); opacity: 0.85; }
}
@keyframes cier-dark {
  0%,100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes cier-helm {
  0%,100% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
}
@keyframes cier-shadow {
  0%,100% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.05); opacity: 0.5; }
}
@keyframes cier-eye {
  0% { box-shadow: 0 0 15px 4px rgba(200,85,61,0.3), 0 0 30px 8px rgba(200,85,61,0.1); opacity: 0.7; }
  50% { box-shadow: 0 0 30px 10px rgba(200,85,61,0.6), 0 0 60px 20px rgba(200,85,61,0.3); opacity: 1; }
  100% { box-shadow: 0 0 20px 5px rgba(200,85,61,0.4), 0 0 40px 12px rgba(200,85,61,0.15); opacity: 0.8; }
}
@keyframes cier-tentacle {
  0%,100% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(-5deg) scaleY(0.9); }
}

/* scene: allegory-purpose */
.scn-allegory-purpose {
  background:
    linear-gradient(135deg, #2b1e10 0%, #4a3520 50%, #3a2815 100%),
    radial-gradient(ellipse at 60% 30%, #6a5030 0%, transparent 70%);
}
.scn-allegory-purpose .bg {
  position:absolute; inset:0; background:radial-gradient(ellipse at 50% 30%, #3a2510 0%, transparent 100%); animation:ap-bg 12s ease-in-out infinite alternate;
}
.scn-allegory-purpose .desk {
  position:absolute; bottom:18%; left:10%; right:10%; height:22%; background:linear-gradient(180deg, #5a4030 0%, #3a2810 100%); border-radius:4px; box-shadow:0 6px 20px rgba(0,0,0,.6);
}
.scn-allegory-purpose .book {
  position:absolute; bottom:30%; left:40%; width:100px; height:60px; background:linear-gradient(135deg, #8a6a40 0%, #5a4030 100%); border-radius:4px 4px 2px 2px; transform-origin: left center; box-shadow:0 4px 12px rgba(0,0,0,.5); animation:ap-book 10s ease-in-out infinite alternate;
}
.scn-allegory-purpose .book-glow {
  position:absolute; bottom:32%; left:42%; width:80px; height:40px; background:radial-gradient(ellipse, #b09060 0%, transparent 100%); opacity:.6; filter:blur(10px); animation:ap-glow 4s ease-in-out infinite alternate;
}
.scn-allegory-purpose .candle {
  position:absolute; bottom:36%; left:58%; width:12px; height:30px; background:linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius:4px 4px 2px 2px; transform:rotate(-5deg); animation:ap-candle 8s ease-in-out infinite alternate;
}
.scn-allegory-purpose .candle::after {
  content:''; position:absolute; top:-6px; left:3px; width:6px; height:8px; background:radial-gradient(circle, #ffd060 0%, #ffa030 100%); border-radius:50%; box-shadow:0 0 16px 4px #ffa030; animation:ap-flame 2s ease-in-out infinite alternate;
}
.scn-allegory-purpose .figure {
  position:absolute; bottom:18%; left:25%; width:20px; 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:ap-figure 6s ease-in-out infinite;
}
.scn-allegory-purpose .particle-1, .scn-allegory-purpose .particle-2 {
  position:absolute; width:6px; height:6px; background:radial-gradient(circle, #d0b070 0%, transparent 100%); border-radius:50%; opacity:.5; filter:blur(2px);
}
.scn-allegory-purpose .particle-1 { top:12%; left:20%; animation:ap-drift1 20s linear infinite; }
.scn-allegory-purpose .particle-2 { top:18%; left:70%; animation:ap-drift2 25s linear infinite; animation-delay:5s; }

@keyframes ap-bg { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes ap-book { 0% { transform:rotate(0) translateY(0) } 50% { transform:rotate(2deg) translateY(-2px) } 100% { transform:rotate(0) translateY(0) } }
@keyframes ap-glow { 0% { opacity:.4; transform:scale(1) } 50% { opacity:.8; transform:scale(1.05) } 100% { opacity:.5; transform:scale(.98) } }
@keyframes ap-candle { 0% { transform:rotate(-5deg) scaleY(1) } 50% { transform:rotate(-3deg) scaleY(1.02) } 100% { transform:rotate(-6deg) scaleY(.98) } }
@keyframes ap-flame { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-2px) scale(1.2) } 100% { transform:translateY(0) scale(.9) } }
@keyframes ap-figure { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 33% { transform:translateX(4px) translateY(-2px) rotate(0) } 66% { transform:translateX(-2px) translateY(-1px) rotate(2deg) } 100% { transform:translateX(0) translateY(0) rotate(-1deg) } }
@keyframes ap-drift1 { 0% { transform:translateX(0) translateY(0) } 25% { transform:translateX(20px) translateY(-10px) } 50% { transform:translateX(40px) translateY(0) } 75% { transform:translateX(60px) translateY(-5px) } 100% { transform:translateX(80px) translateY(0) } }
@keyframes ap-drift2 { 0% { transform:translateX(0) translateY(0) } 50% { transform:translateX(-30px) translateY(10px) } 100% { transform:translateX(0) translateY(0) } }

/* scene: allegory-threefold */
.scn-allegory-threefold {
  background:
    linear-gradient(180deg, #1e1a28 0%, #2a2238 50%, #3a2a48 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a30 0%, transparent 70%);
}
.scn-allegory-threefold .back {
  position:absolute; inset:0; background:radial-gradient(ellipse at 50% 20%, #3a2a50 0%, transparent 100%); animation:at-back 15s ease-in-out infinite alternate;
}
.scn-allegory-threefold .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a1620 0%, #0a0a10 100%); border-radius:20% 20% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-allegory-threefold .arch {
  position:absolute; bottom:30%; width:80px; height:120px; background:linear-gradient(180deg, #4a3a60 0%, #2a1a30 100%); border-radius:40% 40% 10% 10% / 60% 60% 10% 10%; box-shadow:inset -4px 0 10px rgba(0,0,0,.4), inset 4px 0 10px rgba(0,0,0,.4);
}
.scn-allegory-threefold .arch-1 { left:15%; animation:at-arch1 10s ease-in-out infinite alternate; }
.scn-allegory-threefold .arch-2 { left:42%; width:90px; height:130px; animation:at-arch2 12s ease-in-out infinite alternate; }
.scn-allegory-threefold .arch-3 { right:15%; animation:at-arch3 11s ease-in-out infinite alternate; }
.scn-allegory-threefold .symbol {
  position:absolute; bottom:40%; width:20px; height:20px; border-radius:50%; background:radial-gradient(circle at 40% 40%, #c0a080 0%, #7a5a40 100%); box-shadow:0 0 12px 4px rgba(192,160,128,.5);
}
.scn-allegory-threefold .sym-1 { left:25%; animation:at-sym1 8s ease-in-out infinite alternate; }
.scn-allegory-threefold .sym-2 { left:50%; width:24px; height:24px; animation:at-sym2 9s ease-in-out infinite alternate; }
.scn-allegory-threefold .sym-3 { right:25%; animation:at-sym3 7s ease-in-out infinite alternate; }
.scn-allegory-threefold .mist {
  position:absolute; bottom:20%; left:0; right:0; height:40%; background:linear-gradient(180deg, transparent 0%, rgba(40,30,60,.3) 100%); filter:blur(10px); animation:at-mist 20s linear infinite;
}

@keyframes at-back { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes at-arch1 { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-3px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(.98) } }
@keyframes at-arch2 { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-5px) scale(1.03) } 100% { transform:translateY(0) scale(.97) } }
@keyframes at-arch3 { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-2px) rotate(1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes at-sym1 { 0% { transform:translateY(0) scale(1); opacity:.8 } 50% { transform:translateY(-4px) scale(1.2); opacity:1 } 100% { transform:translateY(0) scale(.9); opacity:.7 } }
@keyframes at-sym2 { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-3px) rotate(15deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes at-sym3 { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-2px) scale(1.15) } 100% { transform:translateY(0) scale(.95) } }
@keyframes at-mist { 0% { transform:translateY(0) } 50% { transform:translateY(-8px) } 100% { transform:translateY(0) } }

/* scene: allegory-key */
.scn-allegory-key {
  background:
    linear-gradient(135deg, #1a1a28 0%, #2a2038 40%, #1a1820 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a48 0%, transparent 70%);
}
.scn-allegory-key .background {
  position:absolute; inset:0; background:radial-gradient(ellipse at 60% 30%, #2a1a30 0%, transparent 100%); animation:ak-bg 18s ease-in-out infinite alternate;
}
.scn-allegory-key .tabletop {
  position:absolute; bottom:15%; left:15%; right:15%; height:25%; background:linear-gradient(180deg, #4a3a50 0%, #2a1a30 100%); border-radius:6px; box-shadow:0 6px 20px rgba(0,0,0,.7);
}
.scn-allegory-key .key-body {
  position:absolute; bottom:30%; left:45%; width:80px; height:20px; background:linear-gradient(135deg, #c0a060 0%, #8a6a30 100%); border-radius:4px; transform-origin: right center; box-shadow:0 3px 8px rgba(0,0,0,.5); animation:ak-body 8s ease-in-out infinite alternate;
}
.scn-allegory-key .key-handle {
  position:absolute; bottom:30%; left:calc(45% + 80px); width:10px; height:40px; background:linear-gradient(180deg, #c0a060 0%, #8a6a30 100%); border-radius:4px; transform-origin: bottom center; animation:ak-handle 8s ease-in-out infinite alternate;
}
.scn-allegory-key .key-bow {
  position:absolute; bottom:calc(30% + 40px); left:calc(45% + 76px); width:20px; height:20px; background:radial-gradient(circle at 40% 40%, #c0a060 0%, #8a6a30 100%); border-radius:50%; box-shadow:inset -2px -2px 6px rgba(0,0,0,.3); animation:ak-bow 8s ease-in-out infinite alternate;
}
.scn-allegory-key .token {
  position:absolute; bottom:28%; width:16px; height:16px; background:radial-gradient(circle at 30% 30%, #a09080 0%, #5a4a3a 100%); border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.4);
}
.scn-allegory-key .token-1 { left:32%; animation:ak-token1 6s ease-in-out infinite alternate; }
.scn-allegory-key .token-2 { left:58%; width:12px; height:12px; animation:ak-token2 7s ease-in-out infinite alternate; animation-delay:2s; }
.scn-allegory-key .glow {
  position:absolute; bottom:30%; left:45%; width:100px; height:60px; background:radial-gradient(ellipse, rgba(192,160,96,.3) 0%, transparent 100%); filter:blur(20px); animation:ak-glow 5s ease-in-out infinite alternate;
}

@keyframes ak-bg { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes ak-body { 0% { transform:rotate(-2deg) scaleX(1) } 50% { transform:rotate(0) scaleX(1.02) } 100% { transform:rotate(1deg) scaleX(.98) } }
@keyframes ak-handle { 0% { transform:rotate(-2deg) } 50% { transform:rotate(0) } 100% { transform:rotate(1deg) } }
@keyframes ak-bow { 0% { transform:rotate(-5deg) scale(1) } 50% { transform:rotate(0) scale(1.1) } 100% { transform:rotate(3deg) scale(.95) } }
@keyframes ak-token1 { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-4px) scale(1.15) } 100% { transform:translateY(0) scale(.9) } }
@keyframes ak-token2 { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-2px) rotate(90deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes ak-glow { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.7; transform:scale(1.3) } 100% { opacity:.4; transform:scale(.9) } }

/* scene: spenserian-stanza */
.scn-spenserian-stanza {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #d8cdb8 50%, #c8b898 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e8 0%, transparent 60%);
}
.scn-spenserian-stanza .wall {
  position:absolute; inset:0; background:linear-gradient(90deg, #e0d8c0 0%, #f0e8d8 100%); animation:ss-wall 20s ease-in-out infinite alternate;
}
.scn-spenserian-stanza .window {
  position:absolute; top:8%; left:10%; width:120px; height:140px; background:radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, #c0a060 100%); border:6px solid #8a7a60; border-radius:4px; box-shadow:inset 0 0 30px rgba(255,224,160,.3), 6px 6px 20px rgba(0,0,0,.2); animation:ss-window 6s ease-in-out infinite alternate;
}
.scn-spenserian-stanza .desk {
  position:absolute; bottom:12%; left:5%; right:20%; height:14%; background:linear-gradient(180deg, #b8a888 0%, #988070 100%); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.3);
}
.scn-spenserian-stanza .scroll {
  position:absolute; bottom:20%; left:15%; width:160px; height:40px; background:linear-gradient(135deg, #eedac0 0%, #d0b890 100%); border-radius:2px; transform:rotate(-3deg); box-shadow:0 2px 8px rgba(0,0,0,.2); animation:ss-scroll 15s ease-in-out infinite alternate;
}
.scn-spenserian-stanza .line {
  position:absolute; height:2px; background:linear-gradient(90deg, #4a3a2a 0%, #7a5a3a 50%, #4a3a2a 100%); border-radius:1px;
}
.scn-spenserian-stanza .line-1 { bottom:calc(20% + 26px); left:20%; width:130px; animation:ss-line1 8s ease-in-out infinite alternate; }
.scn-spenserian-stanza .line-2 { bottom:calc(20% + 18px); left:22%; width:120px; animation:ss-line2 9s ease-in-out infinite alternate; animation-delay:1s; }
.scn-spenserian-stanza .line-3 { bottom:calc(20% + 10px); left:18%; width:140px; height:3px; animation:ss-line3 7s ease-in-out infinite alternate; animation-delay:2s; }
.scn-spenserian-stanza .quill {
  position:absolute; bottom:24%; left:60%; width:6px; height:60px; background:linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius:2px; transform:rotate(20deg); transform-origin: bottom center; animation:ss-quill 5s ease-in-out infinite alternate;
}
.scn-spenserian-stanza .inkwell {
  position:absolute; bottom:16%; left:70%; width:18px; height:22px; background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:30% 30% 10% 10%; box-shadow:inset 0 -4px 6px rgba(255,255,255,.1); animation:ss-ink 12s ease-in-out infinite alternate;
}

@keyframes ss-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ss-window { 0% { box-shadow:inset 0 0 20px rgba(255,224,160,.2), 6px 6px 20px rgba(0,0,0,.1); transform:scale(1) } 50% { box-shadow:inset 0 0 50px rgba(255,224,160,.5), 6px 6px 25px rgba(0,0,0,.15); transform:scale(1.02) } 100% { box-shadow:inset 0 0 30px rgba(255,224,160,.3), 6px 6px 20px rgba(0,0,0,.1); transform:scale(.98) } }
@keyframes ss-scroll { 0% { transform:rotate(-3deg) translateX(0) } 50% { transform:rotate(-1deg) translateX(2px) } 100% { transform:rotate(-4deg) translateX(-1px) } }
@keyframes ss-line1 { 0% { width:130px; opacity:.5 } 50% { width:140px; opacity:1 } 100% { width:125px; opacity:.6 } }
@keyframes ss-line2 { 0% { width:120px; opacity:.4 } 50% { width:130px; opacity:1 } 100% { width:115px; opacity:.5 } }
@keyframes ss-line3 { 0% { width:140px; opacity:.5 } 50% { width:150px; opacity:1 } 100% { width:135px; opacity:.6 } }
@keyframes ss-quill { 0% { transform:rotate(20deg) scaleY(1) } 50% { transform:rotate(15deg) scaleY(1.05) } 100% { transform:rotate(22deg) scaleY(.95) } }
@keyframes ss-ink { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(.98) } }

/* questions-canto3 */
.scn-questions-canto3 { background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 30%, #2a1a1a 70%, #1a1010 100%), radial-gradient(ellipse at 30% 60%, #3a2a3a 0%, transparent 70%); }
.scn-questions-canto3 .wall    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.6); animation: qc3-fade 14s ease-in-out infinite alternate; }
.scn-questions-canto3 .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1212 0%, #0a0808 100%); border-radius: 0 0 10% 10%; }
.scn-questions-canto3 .arch    { position:absolute; bottom:30%; left:10%; width:50%; height:50%; background: transparent; border: 4px solid rgba(180,140,100,0.3); border-bottom: none; border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5); animation: qc3-arch 18s ease-in-out infinite alternate; }
.scn-questions-canto3 .window-glow { position:absolute; bottom:45%; left:25%; width:20px; height:40px; background: radial-gradient(circle, #c8a060 0%, #8a6040 100%); border-radius: 10px; box-shadow: 0 0 40px 12px rgba(200,160,96,0.4), 0 0 80px 24px rgba(200,160,96,0.2); animation: qc3-glow 5s ease-in-out infinite alternate; }
.scn-questions-canto3 .lion    { position:absolute; bottom:28%; left:45%; width:70px; height:50px; background: linear-gradient(135deg, #6a5030 0%, #4a3520 100%); border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%; clip-path: polygon(20% 0%, 80% 0%, 100% 40%, 90% 100%, 60% 85%, 40% 85%, 10% 100%, 0% 40%); filter: drop-shadow(0 4px 6px rgba(0,0,0,0.6)); animation: qc3-lion 8s ease-in-out infinite alternate; }
.scn-questions-canto3 .truth-figure { position:absolute; bottom:30%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #b89878 0%, #7a5a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: qc3-walk 10s ease-in-out infinite; }
.scn-questions-canto3 .shadow-figures { position:absolute; bottom:28%; left:55%; width:30px; height:45px; background: rgba(0,0,0,0.4); border-radius: 50% 50% 0 0 / 70% 70% 0 0; filter: blur(3px); animation: qc3-shift 15s ease-in-out infinite alternate; }
.scn-questions-canto3 .dust    { position:absolute; top:20%; left:40%; width:4px; height:4px; background: rgba(200,180,160,0.3); border-radius: 50%; box-shadow: 10px 20px 0 0 rgba(200,180,160,0.2), -15px 30px 0 0 rgba(200,180,160,0.15), 20px 10px 0 0 rgba(200,180,160,0.1); animation: qc3-dust 20s linear infinite; }
@keyframes qc3-fade  { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes qc3-arch  { 0% { transform: scaleX(0.95) translateY(0) } 50% { transform: scaleX(1.02) translateY(-2px) } 100% { transform: scaleX(0.98) translateY(1px) } }
@keyframes qc3-glow  { 0% { box-shadow: 0 0 30px 8px rgba(200,160,96,0.3); opacity:0.8 } 50% { box-shadow: 0 0 50px 16px rgba(200,160,96,0.6); opacity:1 } 100% { box-shadow: 0 0 35px 10px rgba(200,160,96,0.4); opacity:0.85 } }
@keyframes qc3-lion  { 0% { transform: translateY(0) rotate(-5deg) scale(0.95) } 50% { transform: translateY(-4px) rotate(3deg) scale(1.02) } 100% { transform: translateY(2px) rotate(-2deg) scale(0.98) } }
@keyframes qc3-walk  { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes qc3-shift { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-5px) scale(0.9) } 100% { transform: translateX(3px) scale(1.05) } }
@keyframes qc3-dust  { 0% { transform: translate(0,0) scale(1); opacity:0.2 } 50% { transform: translate(10px,-15px) scale(1.5); opacity:0.4 } 100% { transform: translate(-5px,-30px) scale(1); opacity:0.1 } }

/* questions-canto4 */
.scn-questions-canto4 { background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 50%, #0a0a0a 100%), radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 80%); }
.scn-questions-canto4 .hall-bg{ position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 60%, #1a0a0a 100%); box-shadow: inset 0 0 100px rgba(0,0,0,0.7); }
.scn-questions-canto4 .throne { position:absolute; bottom:20%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,0.6); animation: qc4-throne 12s ease-in-out infinite alternate; }
.scn-questions-canto4 .pride-figure { position:absolute; bottom:25%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: qc4-stand 6s ease-in-out infinite alternate; }
.scn-questions-canto4 .sin-line { position:absolute; bottom:18%; left:20%; width:60%; height:8px; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 6px, transparent 6px, transparent 12px); animation: qc4-line 20s linear infinite; }
.scn-questions-canto4 .knight-figure { position:absolute; bottom:22%; left:15%; width:18px; height:48px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(10deg); animation: qc4-knight 15s ease-in-out infinite; }
.scn-questions-canto4 .candle-glow { position:absolute; bottom:30%; left:55%; width:10px; height:10px; background: radial-gradient(circle, #c8a060 0%, #8a6040 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,160,96,0.5), 0 0 60px 20px rgba(200,160,96,0.2); animation: qc4-candle 7s ease-in-out infinite alternate; }
.scn-questions-canto4 .tapestry{ position:absolute; bottom:20%; right:10%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 5px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: qc4-tapestry 25s ease-in-out infinite alternate; }
@keyframes qc4-throne  { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.02) } 100% { transform: translateY(3px) scale(0.98) } }
@keyframes qc4-stand   { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(1px) rotate(-0.5deg) } }
@keyframes qc4-line    { 0% { background-position: 0 0 } 100% { background-position: 60px 0 } }
@keyframes qc4-knight  { 0% { transform: translateX(0) translateY(0) rotate(10deg) } 50% { transform: translateX(5px) translateY(-2px) rotate(12deg) } 100% { transform: translateX(-5px) translateY(1px) rotate(8deg) } }
@keyframes qc4-candle  { 0% { box-shadow: 0 0 20px 6px rgba(200,160,96,0.3); opacity:0.8 } 50% { box-shadow: 0 0 40px 14px rgba(200,160,96,0.7); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(200,160,96,0.4); opacity:0.85 } }
@keyframes qc4-tapestry{ 0% { opacity:0.5; transform: scaleY(0.95) } 50% { opacity:0.7; transform: scaleY(1.02) } 100% { opacity:0.6; transform: scaleY(0.98) } }

/* questions-canto5 */
.scn-questions-canto5 { background: linear-gradient(180deg, #0a0a1a 0%, #1a0a1a 50%, #0a0a0a 100%), radial-gradient(ellipse at 40% 70%, #1a0a2a 0%, transparent 80%); }
.scn-questions-canto5 .underworld-bg { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #0a0a1a 0%, #0a0a0a 100%); animation: qc5-bg 16s ease-in-out infinite alternate; }
.scn-questions-canto5 .ebony-gate { position:absolute; bottom:10%; left:35%; width:100px; height:120px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 0 40px rgba(0,0,0,0.8); border: 2px solid rgba(60,40,80,0.3); animation: qc5-gate 20s ease-in-out infinite alternate; }
.scn-questions-canto5 .night-figure { position:absolute; bottom:18%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; filter: drop-shadow(0 0 10px rgba(0,0,0,0.8)); animation: qc5-night 12s ease-in-out infinite alternate; }
.scn-questions-canto5 .sansjoy-figure { position:absolute; bottom:18%; left:50%; width:18px; height:45px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-10deg); animation: qc5-sansjoy 8s ease-in-out infinite; }
.scn-questions-canto5 .asclepius-snake { position:absolute; bottom:25%; left:30%; width:50px; height:20px; background: linear-gradient(90deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: rotate(-20deg); animation: qc5-snake 10s ease-in-out infinite alternate; }
.scn-questions-canto5 .mist   { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(20,10,20,0) 0%, rgba(20,10,20,0.6) 100%); filter: blur(8px); animation: qc5-mist 25s ease-in-out infinite alternate; }
.scn-questions-canto5 .spark  { position:absolute; top:30%; left:20%; width:3px; height:3px; background: rgba(200,180,160,0.6); border-radius: 50%; box-shadow: 20px -10px 0 0 rgba(200,180,160,0.3), -15px 20px 0 0 rgba(200,180,160,0.2); animation: qc5-spark 18s linear infinite; }
@keyframes qc5-bg    { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes qc5-gate  { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(2px) scaleY(0.98) } }
@keyframes qc5-night { 0% { transform: translateY(0) rotate(-2deg) scale(1) } 50% { transform: translateY(-4px) rotate(1deg) scale(1.03) } 100% { transform: translateY(2px) rotate(-1deg) scale(0.97) } }
@keyframes qc5-sansjoy{ 0% { transform: translateX(0) translateY(0) rotate(-10deg) } 30% { transform: translateX(4px) translateY(-1px) rotate(-8deg) } 60% { transform: translateX(-3px) translateY(1px) rotate(-12deg) } 100% { transform: translateX(0) translateY(0) rotate(-10deg) } }
@keyframes qc5-snake { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(5px) } 100% { transform: rotate(-25deg) translateX(-5px) } }
@keyframes qc5-mist  { 0% { opacity:0.3; transform: translateX(0) } 50% { opacity:0.7; transform: translateX(10px) } 100% { opacity:0.4; transform: translateX(-10px) } }
@keyframes qc5-spark { 0% { transform: translate(0,0); opacity:0.4 } 50% { transform: translate(15px,-20px); opacity:0.8 } 100% { transform: translate(-10px,-40px); opacity:0.1 } }

/* questions-canto6 */
.scn-questions-canto6 { background: linear-gradient(180deg, #0a1a0a 0%, #1a2a1a 40%, #0a0a0a 100%), radial-gradient(ellipse at 60% 80%, #1a3a1a 0%, transparent 80%); }
.scn-questions-canto6 .forest-bg { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #0a1a0a 0%, #1a2a1a 50%, #0a0a0a 100%); animation: qc6-forest 20s ease-in-out infinite alternate; }
.scn-questions-canto6 .trees  { position:absolute; bottom:10%; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); clip-path: polygon(10% 0%, 13% 20%, 12% 30%, 15% 40%, 10% 100%, 0% 100%, 0% 0%); } /* simplified with multiple tree like shapes? Use multiple trees via pseudo? We'll use a repeating pattern. */
.scn-questions-canto6 .trees  { position:absolute; bottom:10%; left:0; right:0; height:60%; background: repeating-linear-gradient(90deg, #1a2a1a 0px, #1a2a1a 4px, transparent 4px, transparent 12px, #0a1a0a 12px, #0a1a0a 16px, transparent 16px, transparent 24px); border-radius: 60% 60% 0 0 / 80% 80% 0 0; animation: qc6-trees 30s linear infinite; } /* mix of stripes and shapes */
.scn-questions-canto6 .una-figure { position:absolute; bottom:18%; left:30%; width:16px; height:38px; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: qc6-una 12s ease-in-out infinite; }
.scn-questions-canto6 .satyrane-figure { position:absolute; bottom:16%; left:45%; width:20px; height:42px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(5deg); animation: qc6-satyrane 14s ease-in-out infinite alternate; }
.scn-questions-canto6 .satyrs { position:absolute; bottom:14%; left:55%; width:24px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(0% 20%, 100% 20%, 100% 100%, 0% 100%); animation: qc6-satyrs 18s ease-in-out infinite; }
.scn-questions-canto6 .archimago-pilgrim { position:absolute; bottom:18%; left:60%; width:14px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: qc6-archimago 16s ease-in-out infinite alternate; }
.scn-questions-canto6 .moonbeam { position:absolute; top:0; left:40%; width:60px; height:100%; background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, rgba(200,220,255,0.05) 50%, transparent 100%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); filter: blur(10px); animation: qc6-moonbeam 30s ease-in-out infinite alternate; }
@keyframes qc6-forest   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes qc6-trees    { 0% { background-position: 0 0 } 100% { background-position: -120px 0 } }
@keyframes qc6-una      { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes qc6-satyrane { 0% { transform: translateX(0) translateY(0) rotate(5deg) } 50% { transform: translateX(-3px) translateY(-2px) rotate(3deg) } 100% { transform: translateX(3px) translateY(1px) rotate(7deg) } }
@keyframes qc6-satyrs   { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(0.95) } 100% { transform: translateX(-5px) scale(1.02) } }
@keyframes qc6-archimago{ 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 50% { transform: translateX(4px) translateY(-1px) rotate(-3deg) } 100% { transform: translateX(-4px) translateY(1px) rotate(-7deg) } }
@keyframes qc6-moonbeam { 0% { opacity:0.1; transform: scaleX(0.8) translateX(0) } 50% { opacity:0.3; transform: scaleX(1.2) translateX(5px) } 100% { opacity:0.15; transform: scaleX(0.9) translateX(-5px) } }

.scn-conclusion {
  background: linear-gradient(180deg, #1e1e2e 0%, #2a2438 40%, #3a2e3e 100%),
              radial-gradient(ellipse at 60% 80%, #3a2e3e 0%, transparent 60%);
}
.scn-conclusion .room-wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a2438 0%, #1e1e2e 100%); }
.scn-conclusion .room-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a1622 0%, #0e0c14 100%); }
.scn-conclusion .shelf { position: absolute; left: 15%; top: 20%; width: 40%; height: 8%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-conclusion .model-ship { position: absolute; left: 22%; top: 10%; width: 60px; height: 30px; background: linear-gradient(135deg, #5a3a2a 0%, #3a2010 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform: rotate(-5deg); animation: ship-c 6s ease-in-out infinite alternate; }
.scn-conclusion .lantern { position: absolute; left: 60%; top: 15%; width: 14px; height: 24px; background: radial-gradient(circle, #f0d080 0%, #c09060 60%, #6a4020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 8px rgba(200,140,80,0.6), 0 0 60px 20px rgba(200,140,80,0.3); animation: lantern-c 4s ease-in-out infinite alternate; }
.scn-conclusion .window { position: absolute; left: 10%; top: 10%; width: 60px; height: 80px; background: linear-gradient(180deg, #4a6a8a 0%, #2a3a5a 100%); border: 4px solid #3a2a1a; border-radius: 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-conclusion .curtain { position: absolute; left: 5%; top: 8%; width: 70px; height: 100px; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); opacity: 0.7; animation: curtain-c 10s ease-in-out infinite alternate; }
.scn-conclusion .figure-sitting { position: absolute; left: 35%; bottom: 25%; width: 20px; height: 40px; background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: breathe-c 8s ease-in-out infinite; }
@keyframes ship-c { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes lantern-c { 0% { opacity: 0.7; box-shadow: 0 0 20px 6px rgba(200,140,80,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(200,140,80,0.7); } 100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(200,140,80,0.5); } }
@keyframes curtain-c { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes breathe-c { 0% { transform: rotate(5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.02); } 100% { transform: rotate(5deg) scaleY(1); } }

.scn-notes {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2438 40%, #3a3048 100%),
              radial-gradient(ellipse at 40% 50%, #3a3048 0%, transparent 70%);
}
.scn-notes .room-wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #2a2438 0%, #1a1a2e 100%); }
.scn-notes .desk { position: absolute; bottom: 18%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,0.7); }
.scn-notes .book-stack { position: absolute; left: 15%; bottom: 45%; width: 40px; height: 30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.5); transform: rotate(-3deg); }
.scn-notes .inkwell { position: absolute; left: 30%; bottom: 42%; width: 16px; height: 18px; background: radial-gradient(circle, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20%; }
.scn-notes .quill { position: absolute; left: 35%; bottom: 50%; width: 4px; height: 30px; background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%); transform: rotate(25deg); transform-origin: bottom; animation: quill-n 6s ease-in-out infinite; }
.scn-notes .serpent-shadow { position: absolute; left: 50%; bottom: 25%; width: 80px; height: 40px; background: radial-gradient(ellipse at 30% 50%, #2a3a2a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40%; opacity: 0.6; filter: blur(4px); animation: coil-n 12s ease-in-out infinite alternate; }
.scn-notes .lamp { position: absolute; left: 60%; top: 15%; width: 18px; height: 30px; background: radial-gradient(circle, #f0d080 0%, #c09060 50%, #6a4020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 10px rgba(200,140,80,0.5); animation: lamp-n 5s ease-in-out infinite alternate; }
.scn-notes .paper-scatter { position: absolute; left: 20%; bottom: 30%; width: 30px; height: 20px; background: linear-gradient(135deg, #d0c0b0 0%, #a09080 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 10% 100%); transform: rotate(-10deg); }
@keyframes quill-n { 0% { transform: rotate(25deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-4px); } 100% { transform: rotate(25deg) translateY(0); } }
@keyframes coil-n { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(0.9); } 100% { transform: translateX(-5px) scaleX(1); } }
@keyframes lamp-n { 0% { opacity: 0.6; box-shadow: 0 0 20px 6px rgba(200,140,80,0.3); } 50% { opacity: 1; box-shadow: 0 0 50px 15px rgba(200,140,80,0.7); } 100% { opacity: 0.7; box-shadow: 0 0 30px 10px rgba(200,140,80,0.4); } }

.scn-questions-canto1 {
  background: linear-gradient(180deg, #1e1e30 0%, #2e2840 40%, #3e3250 100%),
              radial-gradient(ellipse at 50% 30%, #3e3250 0%, transparent 60%);
}
.scn-questions-canto1 .room-wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #2e2840 0%, #1e1e30 100%); }
.scn-questions-canto1 .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a2030 0%, #16101e 100%); }
.scn-questions-canto1 .bookcase { position: absolute; left: 5%; top: 10%; width: 30%; height: 60%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-questions-canto1 .table { position: absolute; left: 20%; bottom: 20%; width: 50%; height: 15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; }
.scn-questions-canto1 .chair { position: absolute; left: 40%; bottom: 20%; width: 20%; height: 30%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); }
.scn-questions-canto1 .figure-reading { position: absolute; left: 42%; bottom: 35%; width: 14px; height: 36px; background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%); border-radius: 50% 50% 60% 60% / 40% 40% 60% 60%; animation: breathe-q1 8s ease-in-out infinite; }
.scn-questions-canto1 .candle { position: absolute; left: 35%; bottom: 30%; width: 6px; height: 16px; background: linear-gradient(180deg, #f0d080 0%, #c09060 60%, #6a4020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 8px rgba(200,140,80,0.5); animation: candle-q1 3s ease-in-out infinite alternate; }
.scn-questions-canto1 .scroll { position: absolute; left: 28%; bottom: 28%; width: 40px; height: 12px; background: linear-gradient(180deg, #c8b898 0%, #a08060 100%); border-radius: 10%; transform: rotate(-15deg); }
@keyframes breathe-q1 { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes candle-q1 { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(200,140,80,0.3); } 50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(200,140,80,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(200,140,80,0.4); } }

.scn-questions-canto2 {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2440 40%, #3a3050 100%),
              radial-gradient(ellipse at 30% 60%, #3a3050 0%, transparent 70%);
}
.scn-questions-canto2 .room-wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #2a2440 0%, #1a1a2e 100%); }
.scn-questions-canto2 .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1e1a2a 0%, #0e0a1a 100%); }
.scn-questions-canto2 .mirror { position: absolute; left: 20%; top: 10%; width: 120px; height: 160px; background: linear-gradient(180deg, #4a5a7a 0%, #2a3a5a 100%); border: 6px solid #4a3a2a; border-radius: 10%; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); }
.scn-questions-canto2 .mirror-frame { position: absolute; left: 18%; top: 8%; width: 128px; height: 168px; border: 8px solid #5a4a3a; border-radius: 12%; background: transparent; pointer-events: none; }
.scn-questions-canto2 .knight-shadow { position: absolute; left: 30%; bottom: 20%; width: 18px; height: 50px; background: linear-gradient(180deg, #3a3a4a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: walk-q2 12s ease-in-out infinite; }
.scn-questions-canto2 .woman-shadow { position: absolute; left: 50%; bottom: 22%; width: 14px; height: 44px; background: linear-gradient(180deg, #4a3a4a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: walk-q2-reverse 12s ease-in-out infinite; }
.scn-questions-canto2 .window { position: absolute; right: 10%; top: 10%; width: 80px; height: 100px; background: linear-gradient(180deg, #4a6a8a 0%, #2a3a5a 100%); border: 4px solid #3a2a1a; border-radius: 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-questions-canto2 .phantom-shape { position: absolute; right: 15%; top: 15%; width: 40px; height: 60px; background: radial-gradient(ellipse, rgba(100,120,160,0.4) 0%, transparent 70%); filter: blur(6px); animation: drift-q2 20s ease-in-out infinite alternate; }
@keyframes walk-q2 { 0% { transform: rotate(5deg) translateX(0); } 25% { transform: rotate(3deg) translateX(10px); } 50% { transform: rotate(5deg) translateX(20px); } 75% { transform: rotate(7deg) translateX(10px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes walk-q2-reverse { 0% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(-3deg) translateX(-10px); } 50% { transform: rotate(-5deg) translateX(-20px); } 75% { transform: rotate(-7deg) translateX(-10px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes drift-q2 { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-10px) scale(1.1); opacity: 0.6; } 100% { transform: translateY(5px) scale(0.9); opacity: 0.2; } }

/* ===== spenser-london ===== */
.scn-spenser-london {
  background:
    linear-gradient(180deg, #f7eed8 0%, #e3d6b8 40%, #c9b99a 100%),
    radial-gradient(ellipse at 20% 30%, #ffedc0 0%, transparent 60%);
}
.scn-spenser-london .study-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d7b6 0%, #d8c5a0 100%);
}
.scn-spenser-london .window-light {
  position: absolute; top: 12%; left: 55%; width: 42%; height: 45%;
  background: linear-gradient(135deg, #fef8e0 0%, #e6d7b0 100%);
  border-radius: 4% 4% 8% 8% / 6% 6% 12% 12%;
  box-shadow: inset 0 0 30px rgba(255,230,180,.5);
  animation: sl-window 6s ease-in-out infinite alternate;
}
.scn-spenser-london .desk {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #6d5b45 0%, #4f3f2f 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-spenser-london .book-stack {
  position: absolute; bottom: 28%; left: 28%; width: 18%; height: 12%;
  background: linear-gradient(90deg, #7a5a3a 0%, #8c6a44 50%, #a8855c 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform: rotate(-2deg);
  animation: sl-book 12s ease-in-out infinite;
}
.scn-spenser-london .figure-silhouette {
  position: absolute; bottom: 28%; left: 50%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #3a2e1e 0%, #1a1008 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: sl-figure 4s ease-in-out infinite;
}
.scn-spenser-london .lamp-glow {
  position: absolute; bottom: 48%; left: 70%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffe680 0%, #f0c040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,200,80,.6), 0 0 40px 16px rgba(255,200,80,.3);
  animation: sl-lamp 3s ease-in-out infinite alternate;
}
.scn-spenser-london .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, transparent 0%, rgba(60,40,20,.4) 100%);
}
@keyframes sl-window {
  0% { opacity: .85; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: .9; transform: scaleX(1); }
}
@keyframes sl-book {
  0%,100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
}
@keyframes sl-figure {
  0% { transform: rotate(-1deg) translateY(0); }
  25% { transform: rotate(0.5deg) translateY(-1px); }
  50% { transform: rotate(-1.5deg) translateY(0.5px); }
  75% { transform: rotate(1deg) translateY(-0.5px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes sl-lamp {
  0% { box-shadow: 0 0 15px 5px rgba(255,200,80,.5); opacity: .7; }
  50% { box-shadow: 0 0 25px 10px rgba(255,200,80,.8); opacity: 1; }
  100% { box-shadow: 0 0 18px 6px rgba(255,200,80,.6); opacity: .8; }
}

/* ===== spenser-death ===== */
.scn-spenser-death {
  background:
    linear-gradient(180deg, #1a0d05 0%, #2f1a0e 40%, #0d0502 100%),
    radial-gradient(ellipse at 50% 60%, #5a2a10 0%, transparent 70%);
}
.scn-spenser-death .ruin-wall {
  position: absolute; inset: 0 0 20% 0;
  background:
    linear-gradient(135deg, #2a1a0a 0%, #1a0f05 50%, #0d0703 100%),
    repeating-linear-gradient(0deg, transparent, transparent 30px, #3a2515 30px, #3a2515 32px);
  border-radius: 0 0 30% 50% / 0 0 40% 60%;
  filter: blur(1px);
}
.scn-spenser-death .flame-core {
  position: absolute; bottom: 35%; left: 30%; width: 12px; height: 30px;
  background: radial-gradient(at 50% 0%, #ffa030 0%, #ff7030 40%, #ff3000 80%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 -8px 30px 15px rgba(255,100,0,.6);
  animation: sd-flame .8s ease-in-out infinite alternate;
}
.scn-spenser-death .fleeing-figure {
  position: absolute; bottom: 20%; right: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a0802 0%, #0a0200 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: sd-flee 3s ease-in-out infinite;
}
.scn-spenser-death .rising-smoke-1 {
  position: absolute; bottom: 60%; left: 25%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, rgba(60,40,20,.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: sd-smoke-1 6s linear infinite;
}
.scn-spenser-death .rising-smoke-2 {
  position: absolute; bottom: 55%; left: 35%; width: 50px; height: 80px;
  background: radial-gradient(ellipse, rgba(80,50,30,.25) 0%, transparent 70%);
  filter: blur(10px);
  animation: sd-smoke-2 8s linear infinite;
}
.scn-spenser-death .ember-rain {
  position: absolute; top: 10%; left: 0; right: 0; bottom: 0;
  background:
    radial-gradient(2px 2px at 20% 10%, #ff8020 0%, transparent 100%),
    radial-gradient(3px 3px at 40% 20%, #ff6020 0%, transparent 100%),
    radial-gradient(2px 2px at 60% 15%, #ff4010 0%, transparent 100%),
    radial-gradient(2px 2px at 80% 25%, #ff8030 0%, transparent 100%);
  background-size: 200px 200px;
  animation: sd-ember 4s linear infinite;
  pointer-events: none;
}
@keyframes sd-flame {
  0% { transform: scaleY(1) rotate(-2deg); opacity: .9; }
  50% { transform: scaleY(1.2) rotate(2deg); opacity: 1; }
  100% { transform: scaleY(0.9) rotate(-1deg); opacity: .85; }
}
@keyframes sd-flee {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(-2deg) translateY(-2px); }
  50% { transform: translateX(-15px) rotate(1deg) translateY(0); }
  75% { transform: translateX(-8px) rotate(-1deg) translateY(-1px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sd-smoke-1 {
  0% { transform: translateY(0) scale(1); opacity: .6; }
  50% { transform: translateY(-80px) scale(1.3); opacity: .3; }
  100% { transform: translateY(-160px) scale(1.6); opacity: 0; }
}
@keyframes sd-smoke-2 {
  0% { transform: translateY(0) scale(1); opacity: .5; }
  50% { transform: translateY(-60px) scale(1.2); opacity: .25; }
  100% { transform: translateY(-120px) scale(1.5); opacity: 0; }
}
@keyframes sd-ember {
  0% { background-position: 0 0; }
  100% { background-position: 0 200px; }
}

/* ===== spenser-legacy ===== */
.scn-spenser-legacy {
  background:
    linear-gradient(180deg, #ece4d0 0%, #d9ceb8 50%, #c0b5a0 100%),
    radial-gradient(ellipse at 50% 0%, #fffbe8 0%, transparent 60%);
}
.scn-spenser-legacy .chapel-arch {
  position: absolute; top: 0; left: 10%; width: 80%; height: 60%;
  background:
    linear-gradient(180deg, #d6cbb8 0%, #c0b5a0 100%),
    radial-gradient(ellipse at 50% 0%, #e8ddc8 0%, transparent 60%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.1);
}
.scn-spenser-legacy .tomb-stone {
  position: absolute; bottom: 22%; left: 50%; width: 40%; height: 25%;
  background: linear-gradient(135deg, #b8a88a 0%, #9e8e72 100%);
  border-radius: 4% 4% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 6px 12px rgba(0,0,0,.2);
  animation: slg-tomb 20s ease-in-out infinite;
}
.scn-spenser-legacy .open-book-legacy {
  position: absolute; bottom: 30%; left: 55%; width: 14%; height: 10%;
  background: linear-gradient(180deg, #f5eed8 0%, #e8ddc8 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: slg-book 15s ease-in-out infinite alternate;
}
.scn-spenser-legacy .quill-legacy {
  position: absolute; bottom: 32%; left: 52%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #8a7a60 0%, #5a4a30 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: 50% 80%;
  animation: slg-quill 8s ease-in-out infinite;
}
.scn-spenser-legacy .light-ray {
  position: absolute; top: 0; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, rgba(255,240,200,.3) 0%, transparent 100%);
  filter: blur(15px);
  animation: slg-light 12s ease-in-out infinite alternate;
}
.scn-spenser-legacy .wreath {
  position: absolute; bottom: 42%; left: 50%; width: 20%; height: 10%;
  background: radial-gradient(ellipse, #6b8a4a 0%, #4a6a2a 60%, transparent 80%);
  border-radius: 50%;
  transform: translateX(-50%) rotate(10deg);
  animation: slg-wreath 25s linear infinite;
}
.scn-spenser-legacy .glowing-dust {
  position: absolute; top: 20%; left: 0; right: 0; height: 30%;
  background:
    radial-gradient(2px 2px at 10% 20%, rgba(255,220,150,.4) 0%, transparent 100%),
    radial-gradient(2px 2px at 30% 40%, rgba(255,220,150,.3) 0%, transparent 100%),
    radial-gradient(1px 1px at 50% 30%, rgba(255,220,150,.5) 0%, transparent 100%),
    radial-gradient(2px 2px at 70% 50%, rgba(255,220,150,.3) 0%, transparent 100%),
    radial-gradient(1px 1px at 90% 25%, rgba(255,220,150,.4) 0%, transparent 100%);
  background-size: 180px 180px;
  animation: slg-dust 30s linear infinite;
  pointer-events: none;
}
@keyframes slg-tomb {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes slg-book {
  0% { transform: rotate(5deg) scaleX(1); }
  50% { transform: rotate(4deg) scaleX(1.02); }
  100% { transform: rotate(6deg) scaleX(1); }
}
@keyframes slg-quill {
  0%,100% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(-4px); }
}
@keyframes slg-light {
  0% { opacity: .4; transform: scaleY(1); }
  50% { opacity: .7; transform: scaleY(1.1); }
  100% { opacity: .5; transform: scaleY(1); }
}
@keyframes slg-wreath {
  0% { transform: translateX(-50%) rotate(10deg); }
  100% { transform: translateX(-50%) rotate(370deg); }
}
@keyframes slg-dust {
  0% { background-position: 0 0; opacity: .5; }
  50% { background-position: 60px 30px; opacity: .7; }
  100% { background-position: 120px 60px; opacity: .5; }
}

/* ===== faerie-queene-study ===== */
.scn-faerie-queene-study {
  background:
    linear-gradient(180deg, #1e1a2e 0%, #2a2640 50%, #1a1628 100%),
    radial-gradient(ellipse at 50% 60%, #2c2844 0%, transparent 70%);
}
.scn-faerie-queene-study .study-panel {
  position: absolute; inset: 0 0 25% 0;
  background:
    linear-gradient(180deg, #2a2640 0%, #1e1a2e 100%),
    repeating-linear-gradient(90deg, transparent, transparent 40px, #3a3654 40px, #3a3654 42px);
  opacity: .8;
}
.scn-faerie-queene-study .candle-flame {
  position: absolute; bottom: 32%; left: 25%; width: 8px; height: 26px;
  background: radial-gradient(at 50% 0%, #ffe880 0%, #f0a030 40%, #c06020 80%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 -6px 20px 10px rgba(240,160,48,.5);
  animation: fq-candle 2s ease-in-out infinite alternate;
}
.scn-faerie-queene-study .open-folio {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c8b0 100%);
  border-radius: 2% 2% 4% 4%;
  transform: perspective(400px) rotateX(10deg);
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: fq-folio 20s ease-in-out infinite;
}
.scn-faerie-queene-study .knight-helm {
  position: absolute; bottom: 38%; left: 60%; width: 12%; height: 18%;
  background: linear-gradient(135deg, #6a6a7a 0%, #4a4a5a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  box-shadow: 0 0 10px rgba(200,200,220,.2);
  transform: rotate(5deg);
  animation: fq-helm 8s ease-in-out infinite alternate;
}
.scn-faerie-queene-study .scroll-parchment {
  position: absolute; bottom: 20%; left: 50%; width: 25%; height: 15%;
  background: linear-gradient(180deg, #d4c8b0 0%, #b8a88a 100%);
  border-radius: 2% 2% 10% 10%;
  transform: rotate(-8deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-faerie-queene-study .quill-fq {
  position: absolute; bottom: 28%; left: 52%; width: 5px; height: 22px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: 50% 80%;
  animation: fq-quill 6s ease-in-out infinite;
}
.scn-faerie-queene-study .book-shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  filter: blur(3px);
}
@keyframes fq-candle {
  0% { transform: scaleY(1) rotate(-2deg); opacity: .8; }
  50% { transform: scaleY(1.15) rotate(1deg); opacity: 1; }
  100% { transform: scaleY(0.95) rotate(-1deg); opacity: .85; }
}
@keyframes fq-folio {
  0%,100% { transform: perspective(400px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(8deg) translateY(-2px); }
}
@keyframes fq-helm {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-3px); }
  100% { transform: rotate(6deg) translateY(0); }
}
@keyframes fq-quill {
  0%,100% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
}

/* scene: canto-viii-begin — tense, sunlit, horn's shrill power */
.scn-canto-viii-begin {
  background:
    linear-gradient(180deg, #5b8db8 0%, #8cb8d0 40%, #d0e0e8 70%, #f8f0d8 100%),
    radial-gradient(ellipse at 30% 20%, #ffe8b0 0%, transparent 60%);
}
.scn-canto-viii-begin .sky        { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a7a9a 0%, transparent 100%); animation: cv8b-sky 12s ease-in-out infinite alternate; }
.scn-canto-viii-begin .sun        { position:absolute; top:8%; left:30%; width:60px; height:60px; background: radial-gradient(circle, #ffe8a0 0%, #ffc860 50%, transparent 70%); border-radius:50%; filter: blur(4px); animation: cv8b-sun 8s ease-in-out infinite alternate; }
.scn-canto-viii-begin .castle-wall { position:absolute; bottom:40%; left:50%; width:120px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.3), 4px 0 8px rgba(0,0,0,.2); }
.scn-canto-viii-begin .ground     { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-canto-viii-begin .knight     { position:absolute; bottom:35%; left:38%; width:24px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cv8b-knight 6s ease-in-out infinite; }
.scn-canto-viii-begin .squire     { position:absolute; bottom:35%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cv8b-squire 6s ease-in-out infinite 0.5s; }
.scn-canto-viii-begin .horn       { position:absolute; bottom:42%; left:46%; width:8px; height:14px; background: radial-gradient(circle at 30% 30%, #c8a060 0%, #8a6030 100%); border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: cv8b-horn 3s ease-in-out infinite; }
.scn-canto-viii-begin .sound-waves { position:absolute; bottom:40%; left:46%; width:20px; height:20px; border: 3px solid rgba(255,220,140,.7); border-radius:50%; animation: cv8b-waves 3s ease-out infinite; }
@keyframes cv8b-sky    { 0% { opacity:.7; background-position:0 0 } 50% { opacity:1; background-position:0 10px } 100% { opacity:.8; background-position:0 0 } }
@keyframes cv8b-sun    { 0% { transform: scale(1) translate(0,0); filter:blur(4px) } 50% { transform: scale(1.05) translate(3px,-2px); filter:blur(3px) } 100% { transform: scale(.98) translate(0,0); filter:blur(5px) } }
@keyframes cv8b-knight { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes cv8b-squire { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-6px) translateY(-1px) rotate(-1deg) } 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 cv8b-horn  { 0%,100% { transform:rotate(-20deg) scale(1) } 50% { transform:rotate(-15deg) scale(1.1) } }
@keyframes cv8b-waves { 0% { opacity:1; transform: scale(.5) } 50% { opacity:.5; transform: scale(1.5) } 100% { opacity:0; transform: scale(2.5) } }

/* scene: canto-viii-battle — tense, sunlit, giant's wrath */
.scn-canto-viii-battle {
  background:
    linear-gradient(180deg, #6a8aaa 0%, #9ab8c8 40%, #d8d8c0 70%, #d0b880 100%),
    radial-gradient(ellipse at 60% 30%, #ffe8c0 0%, transparent 60%);
}
.scn-canto-viii-battle .sky        { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a7a9a 0%, transparent 100%); animation: cv8b2-sky 15s ease-in-out infinite alternate; }
.scn-canto-viii-battle .sun        { position:absolute; top:10%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #fff0c0 0%, #ffd080 50%, transparent 70%); border-radius:50%; filter: blur(3px); animation: cv8b2-sun 10s ease-in-out infinite alternate; }
.scn-canto-viii-battle .ground     { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 40% 60% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-canto-viii-battle .giant      { position:absolute; bottom:25%; left:20%; width:60px; height:100px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -4px 0 12px rgba(0,0,0,.5); animation: cv8b2-giant 8s ease-in-out infinite; }
.scn-canto-viii-battle .club       { position:absolute; bottom:30%; left:22%; width:12px; height:70px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a10 100%); border-radius: 20% 20% 30% 30%; transform-origin: bottom center; transform: rotate(20deg); box-shadow: 2px 2px 6px rgba(0,0,0,.5); animation: cv8b2-club 4s ease-in-out infinite; }
.scn-canto-viii-battle .knight     { position:absolute; bottom:30%; left:55%; width:22px; height:46px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cv8b2-knight 4s ease-in-out infinite 0.3s; }
.scn-canto-viii-battle .impact-dust{ position:absolute; bottom:20%; left:38%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(200,180,140,.6) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: cv8b2-dust 4s ease-in-out infinite; }
.scn-canto-viii-battle .shadow     { position:absolute; bottom:25%; left:18%; width:80px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); border-radius:50%; animation: cv8b2-shadow 8s ease-in-out infinite; }
@keyframes cv8b2-sky    { 0% { opacity:.8; background-position:0 0 } 50% { opacity:1; background-position:0 15px } 100% { opacity:.85; background-position:0 0 } }
@keyframes cv8b2-sun    { 0% { transform: scale(1); filter:blur(3px) } 50% { transform: scale(1.08) translate(-5px,2px); filter:blur(4px) } 100% { transform: scale(.95); filter:blur(2px) } }
@keyframes cv8b2-giant  { 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 cv8b2-club   { 0% { transform: rotate(20deg) translateY(0) } 25% { transform: rotate(40deg) translateY(-10px) } 50% { transform: rotate(20deg) translateY(0) } 75% { transform: rotate(0deg) translateY(5px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes cv8b2-knight { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-15px) translateY(-3px) rotate(-5deg) } 50% { transform: translateX(-30px) translateY(0) rotate(0) } 75% { transform: translateX(-15px) translateY(-1px) rotate(3deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes cv8b2-dust   { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(2); opacity:.2 } 100% { transform: scale(1); opacity:.6 } }
@keyframes cv8b2-shadow { 0% { transform: scale(1); opacity:.4 } 50% { transform: scale(1.3); opacity:.6 } 100% { transform: scale(1); opacity:.4 } }

/* scene: canto-viii-victory — calm, sunlit, reunion */
.scn-canto-viii-victory {
  background:
    linear-gradient(180deg, #8ab8d0 0%, #b8d8e0 40%, #e8e8c0 75%, #f0d8a0 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%);
}
.scn-canto-viii-victory .sky        { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a9ab0 0%, transparent 100%); animation: cv8b3-sky 18s ease-in-out infinite alternate; }
.scn-canto-viii-victory .sun        { position:absolute; top:12%; left:40%; width:70px; height:70px; background: radial-gradient(circle, #fff0c0 0%, #ffd880 50%, transparent 70%); border-radius:50%; filter: blur(5px); animation: cv8b3-sun 12s ease-in-out infinite alternate; }
.scn-canto-viii-victory .meadow     { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8aaa6a 0%, #5a7a4a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.2); animation: cv8b3-meadow 20s ease-in-out infinite alternate; }
.scn-canto-viii-victory .virgin     { position:absolute; bottom:28%; left:35%; width:22px; height:48px; background: linear-gradient(180deg, #c8b8a0 0%, #8a7a6a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cv8b3-virgin 8s ease-in-out infinite; }
.scn-canto-viii-victory .prince     { position:absolute; bottom:28%; left:50%; width:24px; height:50px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cv8b3-prince 8s ease-in-out infinite 0.5s; }
.scn-canto-viii-victory .banner-left  { position:absolute; bottom:22%; left:30%; width:6px; height:50px; background: linear-gradient(180deg, #b88040 0%, #8a6020 100%); border-radius: 20%; transform: rotate(-10deg); animation: cv8b3-banner 6s ease-in-out infinite; }
.scn-canto-viii-victory .banner-right { position:absolute; bottom:22%; right:32%; width:6px; height:50px; background: linear-gradient(180deg, #b88040 0%, #8a6020 100%); border-radius: 20%; transform: rotate(10deg); animation: cv8b3-banner 6s ease-in-out infinite 0.3s; }
.scn-canto-viii-victory .flowers    { position:absolute; bottom:20%; left:43%; width:14px; height:10px; background: radial-gradient(circle at 30% 30%, #d8a060 0%, #b07040 60%, transparent 70%); border-radius: 50%; box-shadow: 0 0 6px rgba(200,160,100,.5); animation: cv8b3-flowers 5s ease-in-out infinite; }
@keyframes cv8b3-sky    { 0% { opacity:.8; background-position:0 0 } 50% { opacity:1; background-position:0 8px } 100% { opacity:.9; background-position:0 0 } }
@keyframes cv8b3-sun    { 0% { transform: scale(1) translate(0,0); filter:blur(5px) } 50% { transform: scale(1.05) translate(2px,-2px); filter:blur(4px) } 100% { transform: scale(.98) translate(0,0); filter:blur(6px) } }
@keyframes cv8b3-meadow { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes cv8b3-virgin { 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 cv8b3-prince { 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(1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes cv8b3-banner { 0%,100% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(1.1) } }
@keyframes cv8b3-flowers{ 0%,100% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.2); opacity:1 } }

/* scene: canto-viii-dungeon — dark, dim-interior, blood and stone */
.scn-canto-viii-dungeon {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2e 70%, #2a2a1e 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-canto-viii-dungeon .wall-bg   { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: cv8b4-wall 20s ease-in-out infinite alternate; }
.scn-canto-viii-dungeon .floor     { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.6); border-radius: 10% 10% 0 0; }
.scn-canto-viii-dungeon .altar     { position:absolute; bottom:20%; left:50%; width:70px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,.5), inset 0 2px 6px rgba(255,255,255,.1); }
.scn-canto-viii-dungeon .blood     { position:absolute; bottom:18%; left:46%; width:40px; height:12px; background: radial-gradient(ellipse, #5e1a1d 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: cv8b4-blood 8s ease-in-out infinite alternate; }
.scn-canto-viii-dungeon .chains    { position:absolute; bottom:35%; left:25%; width:4px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 20%; box-shadow: 0 0 4px rgba(0,0,0,.5); transform: rotate(5deg); animation: cv8b4-chains 6s ease-in-out infinite; }
.scn-canto-viii-dungeon .torch     { position:absolute; bottom:40%; right:25%; width:10px; height:20px; background: linear-gradient(180deg, #8a5a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cv8b4-torch 2s ease-in-out infinite; }
.scn-canto-viii-dungeon .torch-glow{ position:absolute; bottom:38%; right:25%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,140,80,.4) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: cv8b4-glow 2s ease-in-out infinite alternate; }
.scn-canto-viii-dungeon .ashes     { position:absolute; bottom:15%; left:35%; width:20px; height:8px; background: radial-gradient(ellipse, rgba(200,180,160,.3) 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: cv8b4-ashes 12s linear infinite; }
@keyframes cv8b4-wall  { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cv8b4-blood { 0% { transform: scale(1) rotate(0); opacity:.6 } 50% { transform: scale(1.2) rotate(5deg); opacity:.8 } 100% { transform: scale(1) rotate(0); opacity:.6 } }
@keyframes cv8b4-chains{ 0% { transform: rotate(5deg) translateY(0) } 25% { transform: rotate(8deg) translateY(-2px) } 50% { transform: rotate(5deg) translateY(0) } 75% { transform: rotate(2deg) translateY(2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes cv8b4-torch { 0% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(5deg) scaleY(1.05) } 50% { transform: rotate(0deg) scaleY(1) } 75% { transform: rotate(-5deg) scaleY(.95) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes cv8b4-glow  { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.7; transform: scale(1.2) } 100% { opacity:.4; transform: scale(.9) } }
@keyframes cv8b4-ashes { 0% { transform: translateX(0) translateY(0); opacity:.3 } 25% { transform: translateX(10px) translateY(-5px); opacity:.2 } 50% { transform: translateX(20px) translateY(0); opacity:.3 } 75% { transform: translateX(30px) translateY(-3px); opacity:.1 } 100% { transform: translateX(40px) translateY(0); opacity:0 } }

/* canto-iii-sansloy – tense, sunlit */
.scn-canto-iii-sansloy {
  background: linear-gradient(180deg, #f9d77e 0%, #e8b44f 35%, #a67c3b 70%, #4a2e1a 100%),
              radial-gradient(ellipse at 50% 0%, #fff7e0 0%, transparent 60%);
}
.scn-canto-iii-sansloy .sun-blaze {
  position: absolute; inset: 0 0 55% 0;
  background: radial-gradient(circle at 70% 10%, #ffeebb 0%, transparent 50%);
  animation: s3-sun-pulse 5s ease-in-out infinite alternate;
}
.scn-canto-iii-sansloy .ground-hard {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b4c2a 0%, #3d2a14 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-canto-iii-sansloy .knight-silhouette {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a05 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-knight-shift 1.5s ease-in-out infinite alternate;
}
.scn-canto-iii-sansloy .spear {
  position: absolute; bottom: 35%; left: 44%; width: 4px; height: 55px;
  background: linear-gradient(0deg, #5a3a1a 30%, transparent 100%);
  transform: rotate(-20deg);
  animation: s3-spear-thrust 0.8s ease-in-out infinite alternate;
}
.scn-canto-iii-sansloy .red-cross {
  position: absolute; bottom: 42%; left: 48%; width: 18px; height: 18px;
  background: #7a2a1a;  /* terracotta – not crimson */
  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%);
  box-shadow: 0 0 8px 2px #ba4a2a;
  animation: s3-cross-glow 2s ease-in-out infinite alternate;
}
.scn-canto-iii-sansloy .dust-devil {
  position: absolute; bottom: 12%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,170,120,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: s3-dust-spin 6s linear infinite;
}
@keyframes s3-sun-pulse {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.9; transform: scale(0.98); }
}
@keyframes s3-knight-shift {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes s3-spear-thrust {
  0% { transform: rotate(-25deg) translateX(0); }
  50% { transform: rotate(-15deg) translateX(2px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes s3-cross-glow {
  0% { box-shadow: 0 0 6px 1px #ba4a2a; opacity: 0.8; }
  50% { box-shadow: 0 0 14px 4px #d06030; opacity: 1; }
  100% { box-shadow: 0 0 8px 2px #9a3a1a; opacity: 0.85; }
}
@keyframes s3-dust-spin {
  0% { transform: translateY(0) scale(1) rotate(0deg); opacity: 0.3; }
  25% { transform: translateY(-10px) scale(1.2) rotate(90deg); opacity: 0.5; }
  50% { transform: translateY(-5px) scale(0.9) rotate(180deg); opacity: 0.2; }
  75% { transform: translateY(-12px) scale(1.1) rotate(270deg); opacity: 0.4; }
  100% { transform: translateY(0) scale(1) rotate(360deg); opacity: 0.3; }
}

/* canto-iv-begin – calm, bright-interior */
.scn-canto-iv-begin {
  background: linear-gradient(180deg, #e8dcc0 0%, #c4b28a 40%, #a08864 100%),
              radial-gradient(ellipse at 50% 40%, #faf3e0 0%, transparent 70%);
}
.scn-canto-iv-begin .interior-wall-bg {
  position: absolute; inset: 0; opacity: 0.6;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(200,180,150,0.15) 30px, rgba(200,180,150,0.15) 32px);
  animation: s4b-wall-drape 20s linear infinite;
}
.scn-canto-iv-begin .window-light {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #fffbe8 0%, #f5e6c0 100%);
  border-radius: 50% / 30% 30% 20% 20%;
  box-shadow: 0 0 30px 15px #e0c480;
  animation: s4b-window-glow 6s ease-in-out infinite alternate;
}
.scn-canto-iv-begin .youth-knight-sil {
  position: absolute; bottom: 25%; left: 35%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2a2a20 0%, #1a1a10 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: s4b-figure-bow 8s ease-in-out infinite;
}
.scn-canto-iv-begin .lady-sil {
  position: absolute; bottom: 30%; left: 55%; width: 24px; height: 45px;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 50% 50% 35% 35% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: s4b-figure-grace 7s ease-in-out infinite alternate;
}
.scn-canto-iv-begin .hearth-fire {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 50px;
  background: radial-gradient(circle at 50% 80%, #f0a040 0%, #c06020 40%, transparent 70%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 8px #d08030;
  animation: s4b-fire-flicker 3s ease-in-out infinite;
}
.scn-canto-iv-begin .scroll-paper {
  position: absolute; bottom: 20%; left: 42%; width: 30px; height: 20px;
  background: #e8d4a0;
  border-radius: 10% 10% 30% 30%;
  transform: rotate(-8deg);
  box-shadow: 1px 2px 4px rgba(0,0,0,0.3);
  animation: s4b-scroll-flutter 12s ease-in-out infinite;
}
.scn-canto-iv-begin .shadow-cast {
  position: absolute; bottom: 10%; left: 30%; width: 100px; height: 20px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.2) 50%, transparent 100%);
  filter: blur(4px);
  animation: s4b-shadow-sway 10s ease-in-out infinite alternate;
}
@keyframes s4b-wall-drape {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes s4b-window-glow {
  0% { opacity: 0.7; box-shadow: 0 0 20px 8px #d4b870; }
  50% { opacity: 1; box-shadow: 0 0 40px 20px #f0d898; }
  100% { opacity: 0.8; box-shadow: 0 0 25px 10px #c8a860; }
}
@keyframes s4b-figure-bow {
  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 s4b-figure-grace {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes s4b-fire-flicker {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05) translateY(-1px); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes s4b-scroll-flutter {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes s4b-shadow-sway {
  0% { transform: translateX(0) scaleX(1); }
  100% { transform: translateX(10px) scaleX(1.1); }
}

/* canto-iv-pride – calm, bright-interior (palace) */
.scn-canto-iv-pride {
  background: linear-gradient(180deg, #ecd8b4 0%, #cdb48a 100%),
              radial-gradient(ellipse at 50% 30%, #fff7e0 0%, transparent 60%);
}
.scn-canto-iv-pride .palace-facade {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(0deg, #a08054 0%, #c8ab72 50%, #e8d094 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
  animation: s4p-palace-breathe 12s ease-in-out infinite alternate;
}
.scn-canto-iv-pride .golden-foil {
  position: absolute; inset: 5%; clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  background: linear-gradient(180deg, #f3d98a 0%, #d4b050 100%);
  opacity: 0.4;
  animation: s4p-gold-shimmer 8s ease-in-out infinite alternate;
}
.scn-canto-iv-pride .tower-left {
  position: absolute; bottom: 45%; left: 8%; width: 40px; height: 90px;
  background: linear-gradient(0deg, #9a7a4a 0%, #c8a868 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.2);
  animation: s4p-tower-sway 15s ease-in-out infinite;
}
.scn-canto-iv-pride .tower-right {
  position: absolute; bottom: 45%; right: 8%; width: 40px; height: 90px;
  background: linear-gradient(0deg, #9a7a4a 0%, #c8a868 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
  animation: s4p-tower-sway 15s ease-in-out infinite reverse;
}
.scn-canto-iv-pride .arch-door {
  position: absolute; bottom: 18%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5030 0%, #3f2e1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-canto-iv-pride .brick-line {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 2%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 40px, #9a7a4a 40px, #9a7a4a 42px);
  opacity: 0.5;
  animation: s4p-brick-move 20s linear infinite;
}
.scn-canto-iv-pride .shimmer-light {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse, rgba(255,240,180,0.3) 0%, transparent 70%);
  animation: s4p-shimmer-glow 5s ease-in-out infinite alternate;
}
@keyframes s4p-palace-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.01) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes s4p-gold-shimmer {
  0% { opacity: 0.3; filter: brightness(1); }
  50% { opacity: 0.5; filter: brightness(1.2); }
  100% { opacity: 0.4; filter: brightness(1); }
}
@keyframes s4p-tower-sway {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(0.5deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-0.5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes s4p-brick-move {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes s4p-shimmer-glow {
  0% { opacity: 0.2; transform: scale(0.95); }
  100% { opacity: 0.5; transform: scale(1.1); }
}

/* canto-iv-lucifera – calm, bright-interior (throne) */
.scn-canto-iv-lucifera {
  background: linear-gradient(180deg, #f7e8c8 0%, #ddc69a 40%, #b89e6e 100%),
              radial-gradient(ellipse at 50% 50%, #fff7e0 0%, transparent 70%);
}
.scn-canto-iv-lucifera .throne-room-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #ead6aa 0%, transparent 80%);
  animation: s4l-bg-drape 14s ease-in-out infinite alternate;
}
.scn-canto-iv-lucifera .cloth-of-state {
  position: absolute; top: 5%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(180deg, #b8865a 0%, #8a6038 100%);
  border-radius: 0 0 60% 60% / 0 0 40% 40%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  animation: s4l-cloth-billow 10s ease-in-out infinite alternate;
}
.scn-canto-iv-lucifera .throne {
  position: absolute; bottom: 20%; left: 50%; width: 70px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a860 0%, #b08040 60%, #7a5828 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5), inset 0 4px 10px rgba(255,220,150,0.3);
  animation: s4l-throne-glow 8s ease-in-out infinite alternate;
}
.scn-canto-iv-lucifera .queen-silhouette {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a12 0%, #0a0a08 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: s4l-queen-breathe 6s ease-in-out infinite;
}
.scn-canto-iv-lucifera .crown-glow {
  position: absolute; bottom: 58%; left: 50%; width: 14px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffecb0 0%, #e0b050 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #d4a040, 0 0 40px 16px rgba(200,160,60,0.4);
  animation: s4l-crown-pulse 4s ease-in-out infinite alternate;
}
.scn-canto-iv-lucifera .jewel-accent {
  position: absolute; bottom: 38%; left: 54%; width: 6px; height: 6px;
  background: #4060b0; /* sapphire blue */
  border-radius: 50%;
  box-shadow: 0 0 8px 3px #6080d0;
  animation: s4l-jewel-sparkle 3s ease-in-out infinite;
}
.scn-canto-iv-lucifera .golden-orb {
  position: absolute; bottom: 15%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0d060 0%, #c8a040 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #c8a040;
  animation: s4l-orb-float 9s ease-in-out infinite alternate;
}
@keyframes s4l-bg-drape {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes s4l-cloth-billow {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes s4l-throne-glow {
  0% { box-shadow: 0 8px 20px rgba(0,0,0,0.4); }
  50% { box-shadow: 0 8px 30px rgba(200,160,80,0.3); }
  100% { box-shadow: 0 8px 20px rgba(0,0,0,0.4); }
}
@keyframes s4l-queen-breathe {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-1px) scale(1.02); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes s4l-crown-pulse {
  0% { opacity: 0.7; box-shadow: 0 0 12px 4px #d4a040; }
  50% { opacity: 1; box-shadow: 0 0 28px 10px #e8b860; }
  100% { opacity: 0.8; box-shadow: 0 0 16px 5px #c8a050; }
}
@keyframes s4l-jewel-sparkle {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes s4l-orb-float {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-canto-vi-trevisan {
  background: 
    linear-gradient(180deg, #f9e4b7 0%, #d4a373 30%, #9c6644 100%),
    radial-gradient(ellipse at 70% 30%, #fff2c0 0%, transparent 60%);
}
.scn-canto-vi-trevisan .sky-glow {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #fff5d6 0%, #e8cfa0 50%, transparent 100%);
  animation: tv-sky 8s ease-in-out infinite alternate;
}
.scn-canto-vi-trevisan .hills-back {
  position:absolute; bottom:30%; left:5%; right:5%; height:20%;
  background: linear-gradient(180deg, #a68a6b 0%, #7a5b3a 100%);
  border-radius: 40% 30% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.3);
  animation: tv-hills 14s ease-in-out infinite alternate;
}
.scn-canto-vi-trevisan .hills-front {
  position:absolute; bottom:18%; left:-10%; right:0; height:28%;
  background: linear-gradient(180deg, #8b6f4e 0%, #5d4028 100%);
  border-radius: 50% 40% 0 0; box-shadow: inset 0 6px 14px rgba(0,0,0,.4);
  animation: tv-hills 18s ease-in-out infinite alternate-reverse;
}
.scn-canto-vi-trevisan .path {
  position:absolute; bottom:10%; left:35%; width:30%; height:12%;
  background: linear-gradient(180deg, #c9a57b 0%, #8c6e4f 100%);
  border-radius: 20% 20% 0 0; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
}
.scn-canto-vi-trevisan .weary-figure {
  position:absolute; bottom:18%; left:52%; width:22px; height:50px;
  background: linear-gradient(180deg, #2b1e12 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%); animation: tv-walk 5s ease-in-out infinite;
}
.scn-canto-vi-trevisan .staff {
  position:absolute; bottom:18%; left:54%; width:3px; height:60px;
  background: linear-gradient(180deg, #6b4a2a 0%, #3a2818 100%);
  transform: rotate(12deg); transform-origin: bottom center;
  animation: tv-staff 5s ease-in-out infinite;
}
.scn-canto-vi-trevisan .scrip {
  position:absolute; bottom:20%; left:48%; width:10px; height:14px;
  background: linear-gradient(180deg, #9e7a55 0%, #6f5134 100%);
  border-radius: 50% 50% 40% 40%; transform: rotate(-6deg);
  animation: tv-scrip 5s ease-in-out infinite;
}
.scn-canto-vi-trevisan .dust-cloud {
  position:absolute; bottom:12%; left:50%; width:40px; height:12px;
  background: radial-gradient(ellipse, rgba(200,170,130,.4) 0%, transparent 100%);
  filter: blur(4px); animation: tv-dust 18s linear infinite;
}
@keyframes tv-sky {
  0% { opacity: .85; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: .9; transform: scaleY(1); }
}
@keyframes tv-hills {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.005); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes tv-walk {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-48%) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-46%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-44%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-42%) translateY(0) rotate(0); }
}
@keyframes tv-staff {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(14deg); }
  100% { transform: rotate(10deg); }
}
@keyframes tv-scrip {
  0% { transform: rotate(-4deg); }
  50% { transform: rotate(-8deg); }
  100% { transform: rotate(-4deg); }
}
@keyframes tv-dust {
  0% { transform: translateX(0); opacity: .3; }
  50% { transform: translateX(30px); opacity: .6; }
  100% { transform: translateX(60px); opacity: .3; }
}

.scn-canto-vi-battle {
  background:
    linear-gradient(180deg, #f7d89c 0%, #d9a44a 40%, #8c6020 100%),
    radial-gradient(ellipse at 50% 20%, #ffeeb0 0%, transparent 60%);
}
.scn-canto-vi-battle .sun-burst {
  position:absolute; top:0; left:40%; width:100px; height:100px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd166 40%, transparent 70%);
  transform: translateX(-50%); animation: bt-sun 6s ease-in-out infinite alternate;
}
.scn-canto-vi-battle .ground-dust {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(0deg, #8b6e42 0%, #a7854e 40%, transparent 100%);
  border-radius: 60% 40% 0 0;
  animation: bt-dust 4s ease-in-out infinite;
}
.scn-canto-vi-battle .knight-left {
  position:absolute; bottom:15%; left:30%; width:50px; height:80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e241a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  box-shadow: -8px 0 12px rgba(0,0,0,.5);
  animation: bt-fight-left 1.5s ease-in-out infinite;
}
.scn-canto-vi-battle .knight-right {
  position:absolute; bottom:15%; right:30%; width:50px; height:80px;
  background: linear-gradient(180deg, #3a2e22 0%, #1f1810 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 8px 0 12px rgba(0,0,0,.5);
  animation: bt-fight-right 1.5s ease-in-out infinite;
}
.scn-canto-vi-battle .sword-clash {
  position:absolute; bottom:60%; left:50%; width:16px; height:16px;
  background: radial-gradient(circle, #fff2a0 0%, #f0c050 40%, transparent 80%);
  border-radius: 50%; transform: translateX(-50%);
  animation: bt-clash 0.8s ease-in-out infinite alternate;
}
.scn-canto-vi-battle .blood-pool {
  position:absolute; bottom:5%; left:40%; width:60px; height:20px;
  background: radial-gradient(ellipse, #6a2020 0%, #4a1515 70%, transparent 100%);
  border-radius: 50%; opacity: .6;
  animation: bt-blood 12s ease-in-out infinite;
}
.scn-canto-vi-battle .blood-splash {
  position:absolute; bottom:20%; left:45%; width:18px; height:18px;
  background: radial-gradient(circle, #7a2525 0%, transparent 100%);
  filter: blur(2px); animation: bt-splash 3s ease-in-out infinite;
}
.scn-canto-vi-battle .shadow-sharp {
  position:absolute; inset:50% 0 0 0;
  background: linear-gradient(0deg, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: bt-shadow 4s ease-in-out infinite;
}
@keyframes bt-sun {
  0% { transform: translateX(-50%) scale(1); opacity: .8; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: .85; }
}
@keyframes bt-dust {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.05); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes bt-fight-left {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(8px) rotate(-2deg); }
  50% { transform: translateX(16px) rotate(3deg); }
  75% { transform: translateX(8px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes bt-fight-right {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(-8px) rotate(2deg); }
  50% { transform: translateX(-16px) rotate(-3deg); }
  75% { transform: translateX(-8px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes bt-clash {
  0% { transform: translateX(-50%) scale(1); opacity: .7; }
  50% { transform: translateX(-50%) scale(3); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: .6; }
}
@keyframes bt-blood {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(1.3); opacity: .7; }
  100% { transform: scaleX(1); opacity: .5; }
}
@keyframes bt-splash {
  0% { transform: scale(1) rotate(0deg); opacity: .4; }
  50% { transform: scale(2) rotate(30deg); opacity: .8; }
  100% { transform: scale(1) rotate(0deg); opacity: .4; }
}
@keyframes bt-shadow {
  0% { opacity: .5; }
  50% { opacity: .9; }
  100% { opacity: .5; }
}

.scn-canto-vii-begin {
  background:
    linear-gradient(180deg, #1a1424 0%, #2a1f35 50%, #3e2a47 100%),
    radial-gradient(ellipse at 50% 60%, #2a1f35 0%, transparent 70%);
}
.scn-canto-vii-begin .dungeon-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(90deg, #2d2233 0%, #3a2a42 25%, #2d2233 50%, #3a2a42 75%, #2d2233 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,.6);
}
.scn-canto-vii-begin .dungeon-floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #3a2a42 0%, #1f1528 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-canto-vii-begin .barred-window {
  position:absolute; top:10%; left:30%; width:50px; height:50px;
  background: radial-gradient(circle, #4a3a5a 0%, #1a1424 100%);
  border: 4px solid #6a5a7a; border-radius: 20%;
  box-shadow: inset 0 0 20px rgba(100,80,120,.3);
}
.scn-canto-vii-begin .light-beam {
  position:absolute; top:8%; left:28%; width:20px; height:40px;
  background: linear-gradient(180deg, rgba(200,180,220,.5) 0%, transparent 100%);
  transform: rotate(-15deg); filter: blur(4px);
  animation: v7b-light 5s ease-in-out infinite alternate;
}
.scn-canto-vii-begin .captive-knight {
  position:absolute; bottom:18%; left:50%; width:30px; height:70px;
  background: linear-gradient(180deg, #3e2a3a 0%, #1f1420 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: v7b-knight 8s ease-in-out infinite;
}
.scn-canto-vii-begin .chain-left {
  position:absolute; bottom:30%; left:45%; width:8px; height:60px;
  background: linear-gradient(180deg, #6a5a6a 0%, #3a2a3a 100%);
  border-radius: 30%; transform: rotate(10deg);
  animation: v7b-chain 6s ease-in-out infinite;
}
.scn-canto-vii-begin .chain-right {
  position:absolute; bottom:30%; right:45%; width:8px; height:60px;
  background: linear-gradient(180deg, #6a5a6a 0%, #3a2a3a 100%);
  border-radius: 30%; transform: rotate(-10deg);
  animation: v7b-chain 6s ease-in-out infinite reverse;
}
.scn-canto-vii-begin .arthur-silhouette {
  position:absolute; bottom:20%; left:10%; width:40px; height:70px;
  background: linear-gradient(180deg, #2a1a2a 0%, #120a12 100%);
  border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%;
  animation: v7b-arthur 12s ease-in-out infinite;
}
.scn-canto-vii-begin .una-figure {
  position:absolute; bottom:20%; right:12%; width:25px; height:55px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 40% 40% 50% / 70% 60% 40% 30%;
  animation: v7b-una 12s ease-in-out infinite alternate;
}
@keyframes v7b-light {
  0% { opacity: .3; transform: rotate(-15deg) scaleY(1); }
  50% { opacity: .8; transform: rotate(-10deg) scaleY(1.2); }
  100% { opacity: .4; transform: rotate(-15deg) scaleY(1); }
}
@keyframes v7b-knight {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes v7b-chain {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes v7b-arthur {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes v7b-una {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-3px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0); }
}

.scn-canto-vii-fountain {
  background:
    linear-gradient(180deg, #dce8f0 0%, #a8c8d8 40%, #78a0b8 100%),
    radial-gradient(ellipse at 20% 80%, #d4e8f0 0%, transparent 60%);
}
.scn-canto-vii-fountain .glade-sky {
  position:absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, #d0e8f0 0%, #b0d0e0 60%, transparent 100%);
  animation: v7f-sky 12s ease-in-out infinite alternate;
}
.scn-canto-vii-fountain .glade-grass {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #5a7a4a 0%, #2a4a2a 100%);
  border-radius: 40% 60% 0 0;
  animation: v7f-grass 18s ease-in-out infinite alternate;
}
.scn-canto-vii-fountain .fountain-basin {
  position:absolute; bottom:15%; left:40%; width:100px; height:40px;
  background: linear-gradient(135deg, #7a8a7a 0%, #4a5a4a 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -6px 12px rgba(0,0,0,.3);
  animation: v7f-basin 8s ease-in-out infinite;
}
.scn-canto-vii-fountain .fountain-water {
  position:absolute; bottom:25%; left:45%; width:30px; height:60px;
  background: linear-gradient(180deg, rgba(180,220,255,.6) 0%, rgba(120,180,220,.4) 100%);
  border-radius: 50% 50% 30% 30%; filter: blur(2px);
  animation: v7f-water 4s ease-in-out infinite alternate;
}
.scn-canto-vii-fountain .nymph-statue {
  position:absolute; bottom:22%; left:50%; width:30px; height:50px;
  background: linear-gradient(180deg, #8a9a8a 0%, #5a6a5a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: v7f-nymph 10s ease-in-out infinite;
}
.scn-canto-vii-fountain .goddess-shadow {
  position:absolute; bottom:20%; right:20%; width:40px; height:60px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 30% 30% 50% / 70% 50% 50% 30%;
  opacity: .4; transform: rotate(-10deg);
  animation: v7f-shadow 14s ease-in-out infinite;
}
.scn-canto-vii-fountain .sun-sparkles {
  position:absolute; top:10%; left:0; width:100%; height:40%;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,200,.3) 0%, transparent 50%),
              radial-gradient(circle at 70% 40%, rgba(255,255,200,.2) 0%, transparent 40%);
  animation: v7f-sparkle 6s ease-in-out infinite;
}
@keyframes v7f-sky {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes v7f-grass {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes v7f-basin {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(1); }
}
@keyframes v7f-water {
  0% { transform: scaleY(1) translateY(0); opacity: .6; }
  50% { transform: scaleY(1.3) translateY(-4px); opacity: .9; }
  100% { transform: scaleY(1) translateY(0); opacity: .6; }
}
@keyframes v7f-nymph {
  0% { transform: translateX(-50%) rotate(0); }
  25% { transform: translateX(-50%) rotate(2deg); }
  50% { transform: translateX(-50%) rotate(-1deg); }
  75% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes v7f-shadow {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-8deg) translateX(4px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes v7f-sparkle {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .8; transform: scale(1.05); }
  100% { opacity: .3; transform: scale(1); }
}

.scn-canto-vii-orgoglio { background: linear-gradient(180deg, #b8d0e0 0%, #e8d8a0 40%, #d0a860 100%), radial-gradient(ellipse at 60% 20%, #ffe080 0%, transparent 60%); }
.scn-canto-vii-orgoglio .sky      { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #a0c8e0 0%, #c8d8f0 40%, #e8d8a0 100%); animation: og-sky 10s ease-in-out infinite alternate; }
.scn-canto-vii-orgoglio .sun      { position:absolute; top:8%; left:55%; width:60px; height:60px; background: radial-gradient(circle, #ffe8a0 0%, #ffd060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,208,96,.5); animation: og-sun 8s ease-in-out infinite alternate; }
.scn-canto-vii-orgoglio .ground   { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b08050 0%, #8a6040 30%, #6a4a30 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: og-ground 12s ease-in-out infinite alternate; }
.scn-canto-vii-orgoglio .giant    { position:absolute; bottom:35%; left:20%; width:60px; height:120px; background: linear-gradient(180deg, #8a7060 0%, #5a4a3a 40%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 2px 0 15px rgba(0,0,0,.4); transform-origin: bottom center; animation: og-giant 6s ease-in-out infinite; }
.scn-canto-vii-orgoglio .giant-arm{ position:absolute; bottom:55%; left:14%; width:30px; height:50px; background: linear-gradient(180deg, #7a6050 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 40% 30% 30%; transform-origin: top center; animation: og-arm 4s ease-in-out infinite; }
.scn-canto-vii-orgoglio .knight   { position:absolute; bottom:40%; left:50%; width:16px; height:30px; background: linear-gradient(180deg, #b0a090 0%, #706050 60%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 1px 0 6px rgba(0,0,0,.3); animation: og-knight 2s ease-in-out infinite; }
.scn-canto-vii-orgoglio .shadow   { position:absolute; bottom:30%; left:18%; width:80px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 70%); border-radius:50%; animation: og-shadow 6s ease-in-out infinite; }
.scn-canto-vii-orgoglio .dust     { position:absolute; bottom:40%; left:30%; width:100px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,140,.3) 0%, transparent 70%); filter: blur(4px); animation: og-dust 8s ease-in-out infinite; }
@keyframes og-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes og-sun    { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(.98); opacity:.85 } }
@keyframes og-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes og-giant  { 0% { transform: rotate(-1deg) translateX(0) } 25% { transform: rotate(1deg) translateX(2px) } 50% { transform: rotate(-.5deg) translateX(-1px) } 75% { transform: rotate(1.5deg) translateX(3px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes og-arm    { 0% { transform: rotate(-5deg) translateX(0) } 30% { transform: rotate(8deg) translateX(4px) } 50% { transform: rotate(-3deg) translateX(-2px) } 70% { transform: rotate(6deg) translateX(3px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes og-knight { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 20% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 40% { transform: translateX(8px) translateY(0) rotate(-1deg) } 60% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 80% { transform: translateX(16px) translateY(0) rotate(-2deg) } 100% { transform: translateX(20px) translateY(0) rotate(0deg) } }
@keyframes og-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.1) } 100% { opacity:.25; transform: scaleX(.95) } }
@keyframes og-dust   { 0% { opacity:.2; transform: translateY(0) scale(1) } 50% { opacity:.4; transform: translateY(-8px) scale(1.1) } 100% { opacity:.15; transform: translateY(2px) scale(.95) } }

.scn-canto-vii-dwarf { background: linear-gradient(180deg, #d0d8e0 0%, #e8d8b0 40%, #c0a060 100%), radial-gradient(ellipse at 40% 30%, #ffe0a0 0%, transparent 60%); }
.scn-canto-vii-dwarf .sky       { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0c8e0 0%, #d0d8f0 35%, #e8d8b0 100%); animation: dw-sky 14s ease-in-out infinite alternate; }
.scn-canto-vii-dwarf .sun-haze  { position:absolute; top:12%; left:30%; width:80px; height:60px; background: radial-gradient(ellipse, rgba(255,224,160,.4) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: dw-haze 10s ease-in-out infinite alternate; }
.scn-canto-vii-dwarf .ground    { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b08850 0%, #8a6840 30%, #5a4830 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 8px 25px rgba(0,0,0,.25); animation: dw-ground 16s ease-in-out infinite alternate; }
.scn-canto-vii-dwarf .dwarf     { position:absolute; bottom:32%; left:10%; width:18px; height:28px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%; box-shadow: 1px 0 6px rgba(0,0,0,.3); animation: dw-run 3s ease-in-out infinite; }
.scn-canto-vii-dwarf .shield    { position:absolute; bottom:36%; left:25%; width:16px; height:20px; background: linear-gradient(180deg, #b0a090 0%, #706050 60%, #4a3a2a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: dw-shield 3s ease-in-out infinite; }
.scn-canto-vii-dwarf .spear     { position:absolute; bottom:34%; left:32%; width:4px; height:40px; background: linear-gradient(180deg, #706050 0%, #4a3a2a 40%, #2a1a0a 100%); border-radius: 10%; transform-origin: bottom center; animation: dw-spear 3s ease-in-out infinite; }
.scn-canto-vii-dwarf .dust-trail{ position:absolute; bottom:30%; left:2%; width:60px; height:20px; background: radial-gradient(ellipse at 100% 100%, rgba(200,180,140,.35) 0%, transparent 80%); filter: blur(5px); animation: dw-dust 3s ease-in-out infinite; }
.scn-canto-vii-dwarf .tree      { position:absolute; bottom:28%; right:12%; width:12px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 8px rgba(0,0,0,.2); animation: dw-tree 10s ease-in-out infinite alternate; }
@keyframes dw-sky   { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dw-haze  { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.1) } 100% { opacity:.25; transform: scale(.95) } }
@keyframes dw-ground{ 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes dw-run   { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 15% { transform: translateX(6px) translateY(-2px) rotate(3deg) } 30% { transform: translateX(12px) translateY(0) rotate(-1deg) } 45% { transform: translateX(18px) translateY(-2px) rotate(2deg) } 60% { transform: translateX(24px) translateY(0) rotate(-2deg) } 75% { transform: translateX(30px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(40px) translateY(0) rotate(0deg) } }
@keyframes dw-shield{ 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(5deg) } 50% { transform: translateX(8px) rotate(-3deg) } 75% { transform: translateX(12px) rotate(4deg) } 100% { transform: translateX(16px) rotate(0deg) } }
@keyframes dw-spear { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(6px) rotate(4deg) } 60% { transform: translateX(12px) rotate(-1deg) } 100% { transform: translateX(18px) rotate(0deg) } }
@keyframes dw-dust  { 0% { opacity:.2; transform: translateX(0) scale(1) } 50% { opacity:.4; transform: translateX(20px) scale(1.2) } 100% { opacity:.15; transform: translateX(40px) scale(.9) } }
@keyframes dw-tree  { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }

.scn-canto-vii-prince-arthur { background: linear-gradient(180deg, #d8b878 0%, #f0d8a0 30%, #e8c890 100%), radial-gradient(ellipse at 50% 40%, #ffe8c0 0%, transparent 60%); }
.scn-canto-vii-prince-arthur .bg         { position:absolute; inset:0; background: linear-gradient(180deg, #c8a868 0%, #e0c080 40%, #d8b070 100%); animation: pa-bg 12s ease-in-out infinite alternate; }
.scn-canto-vii-prince-arthur .helmet     { position:absolute; bottom:25%; left:50%; width:100px; height:80px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #f0d8a0 0%, #d8b878 40%, #c8a060 100%); border-radius: 45% 45% 30% 30% / 55% 55% 25% 25%; box-shadow: 0 4px 20px rgba(200,160,96,.5), inset 0 -8px 20px rgba(160,120,60,.4); animation: pa-helmet 8s ease-in-out infinite alternate; }
.scn-canto-vii-prince-arthur .dragon-crest{ position:absolute; bottom:75%; left:45%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 40%, #f0d060 0%, #c8a040 60%, #a08020 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow: 0 0 15px rgba(240,208,96,.4); transform-origin: bottom center; animation: pa-dragon 6s ease-in-out infinite; }
.scn-canto-vii-prince-arthur .dragon-eye { position:absolute; bottom:80%; left:52%; width:8px; height:8px; background: radial-gradient(circle, #ffe080 0%, #d0a040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,224,128,.6); animation: pa-eye 4s ease-in-out infinite; }
.scn-canto-vii-prince-arthur .plume     { position:absolute; bottom:85%; left:42%; width:30px; height:40px; background: linear-gradient(180deg, #f0d0a0 0%, #e0b870 40%, #c89850 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; filter: blur(1px); animation: pa-plume 5s ease-in-out infinite; }
.scn-canto-vii-prince-arthur .sparkle-a { position:absolute; top:20%; left:35%; width:6px; height:6px; background: radial-gradient(circle, #ffe8c0 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,232,192,.5); animation: pa-sparkle-a 4s ease-in-out infinite; }
.scn-canto-vii-prince-arthur .sparkle-b { position:absolute; top:15%; left:55%; width:4px; height:4px; background: radial-gradient(circle, #ffe8c0 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,232,192,.4); animation: pa-sparkle-b 5s ease-in-out infinite reverse; }
.scn-canto-vii-prince-arthur .glow      { position:absolute; bottom:30%; left:50%; width:120px; height:100px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(240,208,96,.15) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: pa-glow 8s ease-in-out infinite alternate; }
@keyframes pa-bg      { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pa-helmet  { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.01) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes pa-dragon  { 0% { transform: rotate(-3deg) translateY(0) scale(1) } 30% { transform: rotate(5deg) translateY(-2px) scale(1.02) } 60% { transform: rotate(-2deg) translateY(1px) scale(.98) } 100% { transform: rotate(0deg) translateY(0) scale(1) } }
@keyframes pa-eye     { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.6; transform: scale(.95) } }
@keyframes pa-plume   { 0% { transform: rotate(-5deg) translateY(0) } 30% { transform: rotate(8deg) translateY(-3px) } 60% { transform: rotate(-3deg) translateY(1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes pa-sparkle-a{ 0% { opacity:.3; transform: scale(.8) translate(0,0) } 30% { opacity:1; transform: scale(1.2) translate(4px,-6px) } 60% { opacity:.5; transform: scale(.9) translate(-2px,-2px) } 100% { opacity:.2; transform: scale(.7) translate(0,0) } }
@keyframes pa-sparkle-b{ 0% { opacity:.2; transform: scale(.7) translate(0,0) } 40% { opacity:.9; transform: scale(1.1) translate(-5px,-8px) } 70% { opacity:.4; transform: scale(.8) translate(2px,-3px) } 100% { opacity:.1; transform: scale(.6) translate(0,0) } }
@keyframes pa-glow    { 0% { opacity:.4; transform: translateX(-50%) scale(1) } 50% { opacity:.6; transform: translateX(-50%) scale(1.08) } 100% { opacity:.35; transform: translateX(-50%) scale(.95) } }

.scn-canto-vii-arthur-una { background: linear-gradient(180deg, #b8d8e8 0%, #d8e8f0 30%, #e8d8c0 60%, #d0b888 100%), radial-gradient(ellipse at 50% 30%, #ffe8d0 0%, transparent 60%); }
.scn-canto-vii-arthur-una .sky       { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #a0c8e0 0%, #c8dff0 40%, #e0d8c0 100%); animation: au-sky 18s ease-in-out infinite alternate; }
.scn-canto-vii-arthur-una .sun       { position:absolute; top:10%; left:60%; width:50px; height:50px; background: radial-gradient(circle, #ffe8c0 0%, #ffd8a0 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(255,216,160,.4); animation: au-sun 12s ease-in-out infinite alternate; }
.scn-canto-vii-arthur-una .landscape { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #b09878 0%, #8a7860 30%, #6a5848 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); animation: au-land 20s ease-in-out infinite alternate; }
.scn-canto-vii-arthur-una .arthur    { position:absolute; bottom:35%; left:35%; width:22px; height:40px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 60%, #2a1a0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%; box-shadow: 1px 0 8px rgba(0,0,0,.25); animation: au-arthur 7s ease-in-out infinite; }
.scn-canto-vii-arthur-una .una       { position:absolute; bottom:35%; left:52%; width:20px; height:38px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 60%, #3a2a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%; box-shadow: 1px 0 8px rgba(0,0,0,.25); animation: au-una 7s ease-in-out infinite reverse; }
.scn-canto-vii-arthur-una .flowers   { position:absolute; bottom:36%; left:44%; width:40px; height:30px; background: radial-gradient(ellipse at 30% 100%, #d0a080 0%, #b88868 30%, transparent 60%), radial-gradient(ellipse at 70% 100%, #c89070 0%, #a87858 30%, transparent 60%); filter: blur(1px); animation: au-flowers 9s ease-in-out infinite; }
.scn-canto-vii-arthur-una .rays      { position:absolute; top:0; left:55%; width:200px; height:100%; background: linear-gradient(135deg, rgba(255,232,200,.1) 0%, rgba(255,232,200,.05) 40%, transparent 70%); transform-origin: top left; animation: au-rays 15s ease-in-out infinite alternate; }
@keyframes au-sky      { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes au-sun      { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.04); opacity:.95 } 100% { transform: scale(.98); opacity:.75 } }
@keyframes au-land     { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes au-arthur   { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(1px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-1px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes au-una      { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-1px) translateY(-2px) rotate(-2deg) } 50% { transform: translateX(0) translateY(0) rotate(1deg) } 75% { transform: translateX(1px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes au-flowers  { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.7; transform: scale(1.05) translateY(-1px) } 100% { opacity:.4; transform: scale(.98) } }
@keyframes au-rays     { 0% { opacity:.2; transform: rotate(-2deg) scaleX(1) } 50% { opacity:.35; transform: rotate(0deg) scaleX(1.05) } 100% { opacity:.15; transform: rotate(2deg) scaleX(.98) } }

.scn-canto-x-begin { background: linear-gradient(180deg, #87CEEB 0%, #FFF5EE 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 60%); }
.scn-canto-x-begin .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 60%, transparent 100%); animation: cx-skyGlow 8s ease-in-out infinite alternate; }
.scn-canto-x-begin .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background:radial-gradient(circle, #FFD700 0%, #FFAA00 50%, transparent 70%); border-radius:50%; box-shadow:0 0 40px 20px rgba(255,215,0,0.4); animation: cx-sunPulse 6s ease-in-out infinite; }
.scn-canto-x-begin .house { position:absolute; bottom:30%; left:40%; width:120px; height:90px; background:linear-gradient(180deg, #C9A96E 0%, #8B6F47 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: cx-houseBreath 12s ease-in-out infinite; }
.scn-canto-x-begin .windows { position:absolute; bottom:38%; left:45%; width:16px; height:20px; background:radial-gradient(circle, #FFD700 0%, #FFAA00 70%); border-radius:20%; box-shadow:0 0 20px 6px rgba(255,215,0,0.6); animation: cx-windowGlow 3s ease-in-out infinite alternate; }
.scn-canto-x-begin .matron { position:absolute; bottom:28%; left:35%; width:20px; height:50px; background:linear-gradient(180deg, #2C1E16 0%, #1A110C 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: cx-figureSway 5s ease-in-out infinite; }
.scn-canto-x-begin .tree { position:absolute; bottom:28%; left:65%; width:40px; height:80px; background:linear-gradient(180deg, #3B5323 0%, #1A2E0A 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; animation: cx-treeSway 7s ease-in-out infinite alternate; }
.scn-canto-x-begin .cloud { position:absolute; height:25px; background:linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(6px); }
.scn-canto-x-begin .cloud-1 { top:12%; left:10%; width:100px; animation: cx-cloudDrift 40s linear infinite; }
.scn-canto-x-begin .cloud-2 { top:20%; right:-30px; width:70px; animation: cx-cloudDrift 55s linear infinite reverse; }
.scn-canto-x-begin .path { position:absolute; bottom:25%; left:30%; right:50%; height:8px; background:linear-gradient(90deg, transparent, #D2B48C 50%, transparent); border-radius:50%; filter: blur(2px); animation: cx-pathFade 10s ease-in-out infinite alternate; }
@keyframes cx-skyGlow { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cx-sunPulse { 0% { transform:scale(1) translateY(0); box-shadow:0 0 40px 20px rgba(255,215,0,0.4) } 50% { transform:scale(1.05) translateY(-3px); box-shadow:0 0 60px 30px rgba(255,215,0,0.6) } 100% { transform:scale(1) translateY(0); box-shadow:0 0 40px 20px rgba(255,215,0,0.4) } }
@keyframes cx-houseBreath { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes cx-windowGlow { 0% { opacity:0.8; box-shadow:0 0 15px 4px rgba(255,215,0,0.5); } 50% { opacity:1; box-shadow:0 0 30px 10px rgba(255,215,0,0.8); } 100% { opacity:0.9; box-shadow:0 0 20px 6px rgba(255,215,0,0.6); } }
@keyframes cx-figureSway { 0% { transform:translateX(0) rotate(0); } 30% { transform:translateX(2px) rotate(2deg); } 60% { transform:translateX(-1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes cx-treeSway { 0% { transform:rotate(0deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-2deg); } }
@keyframes cx-cloudDrift { 0% { transform:translateX(0); } 100% { transform:translateX(120vw); } }
@keyframes cx-pathFade { 0% { opacity:0.3; } 100% { opacity:0.6; } }

.scn-canto-xi-begin { background: linear-gradient(180deg, #87CEEB 0%, #FFF8DC 100%), radial-gradient(ellipse at 50% 100%, #FFD700 0%, transparent 70%); }
.scn-canto-xi-begin .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 50%, transparent 100%); animation: cxi-skyFade 10s ease-in-out infinite alternate; }
.scn-canto-xi-begin .hills { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #7CCD7C 0%, #3CB371 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.3); animation: cxi-hillsWave 14s ease-in-out infinite; }
.scn-canto-xi-begin .knight { position:absolute; bottom:30%; left:35%; width:22px; height:60px; background: linear-gradient(180deg, #4A4A4A 0%, #2C2C2C 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation: cxi-knightBow 6s ease-in-out infinite; }
.scn-canto-xi-begin .lady { position:absolute; bottom:32%; left:55%; width:18px; height:50px; background: linear-gradient(180deg, #FFDAB9 0%, #FFB6C1 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; animation: cxi-ladyGesture 8s ease-in-out infinite; }
.scn-canto-xi-begin .sword { position:absolute; bottom:38%; left:32%; width:4px; height:30px; background: linear-gradient(180deg, #C0C0C0 0%, #808080 100%); border-radius:2px; transform:rotate(-15deg); transform-origin:bottom center; animation: cxi-swordGlint 3s ease-in-out infinite alternate; }
.scn-canto-xi-begin .wind { position:absolute; top:30%; left:0; right:0; height:40px; background: repeating-linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.2) 2%, transparent 4%); animation: cxi-windSweep 8s linear infinite; }
.scn-canto-xi-begin .cloud { position:absolute; top:14%; left:80%; width:90px; 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(5px); animation: cxi-cloudDrift 50s linear infinite; }
@keyframes cxi-skyFade { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes cxi-hillsWave { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cxi-knightBow { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-3px) rotate(-5deg); } 60% { transform: translateX(0) rotate(0); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cxi-ladyGesture { 0% { transform: translateX(0) rotate(0); } 40% { transform: translateX(2px) rotate(3deg); } 70% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cxi-swordGlint { 0% { opacity:0.3; box-shadow:0 0 0 0 rgba(255,255,255,0); } 50% { opacity:1; box-shadow:0 0 12px 4px rgba(255,255,255,0.6); } 100% { opacity:0.4; box-shadow:0 0 0 0 rgba(255,255,255,0); } }
@keyframes cxi-windSweep { 0% { background-position:0 0; } 100% { background-position:200% 0; } }
@keyframes cxi-cloudDrift { 0% { transform: translateX(0); } 100% { transform: translateX(-130vw); } }

.scn-canto-xi-dragon { background: linear-gradient(180deg, #FFD700 0%, #FFAA00 30%, #FF8C00 60%, #8B4513 100%), radial-gradient(ellipse at 70% 50%, #FF4500 0%, transparent 50%); }
.scn-canto-xi-dragon .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #FFD700 0%, #FFA500 60%, transparent 100%); animation: cxd-skyHeat 6s ease-in-out infinite alternate; }
.scn-canto-xi-dragon .hill { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #DAA520 0%, #B8860B 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,0.5); animation: cxd-hillShimmer 12s ease-in-out infinite; }
.scn-canto-xi-dragon .dragon { position:absolute; bottom:25%; left:20%; width:120px; height:80px; background: radial-gradient(ellipse 60% 70% at 30% 50%, #A0522D 0%, #5C3317 60%, #3E2723 100%); border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%; transform: skewX(-10deg); box-shadow: 0 10px 20px rgba(0,0,0,0.6); animation: cxd-dragonBreath 4s ease-in-out infinite; }
.scn-canto-xi-dragon .eye { position:absolute; bottom:38%; left:35%; width:10px; height:10px; background: radial-gradient(circle, #FF4500 0%, #FFD700 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,69,0,0.6); animation: cxd-eyeGlow 1.5s ease-in-out infinite alternate; }
.scn-canto-xi-dragon .knight { position:absolute; bottom:28%; right:25%; width:18px; height:50px; background: linear-gradient(180deg, #4A4A4A 0%, #2C2C2C 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation: cxd-knightDash 3s ease-in-out infinite; }
.scn-canto-xi-dragon .rock { position:absolute; bottom:30%; left:65%; width:30px; height:30px; background: linear-gradient(180deg, #696969 0%, #3C3C3C 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 4px 6px rgba(0,0,0,0.4); animation: cxd-rockJitter 8s ease-in-out infinite; }
.scn-canto-xi-dragon .sun { position:absolute; top:5%; right:10%; width:80px; height:80px; background:radial-gradient(circle, #FFF5EE 0%, #FFD700 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,215,0,0.5); animation: cxd-sunPulse 8s ease-in-out infinite; }
@keyframes cxd-skyHeat { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cxd-hillShimmer { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cxd-dragonBreath { 0% { transform: scaleX(1) scaleY(1) skewX(-10deg); } 50% { transform: scaleX(1.05) scaleY(1.02) skewX(-12deg); } 100% { transform: scaleX(1) scaleY(1) skewX(-10deg); } }
@keyframes cxd-eyeGlow { 0% { opacity:0.6; box-shadow:0 0 15px 4px rgba(255,69,0,0.4); } 50% { opacity:1; box-shadow:0 0 30px 12px rgba(255,69,0,0.8); } 100% { opacity:0.7; box-shadow:0 0 20px 6px rgba(255,69,0,0.5); } }
@keyframes cxd-knightDash { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(-8px) rotate(-5deg); } 40% { transform: translateX(0) rotate(0); } 60% { transform: translateX(4px) rotate(3deg); } 80% { transform: translateX(0) rotate(0); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cxd-rockJitter { 0% { transform: translate(0,0) rotate(0); } 25% { transform: translate(1px,-1px) rotate(2deg); } 50% { transform: translate(-1px,1px) rotate(-1deg); } 75% { transform: translate(2px,0) rotate(1deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes cxd-sunPulse { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.08); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }

.scn-canto-xii-begin { background: linear-gradient(180deg, #FFB6C1 0%, #FFDAB9 30%, #FFFACD 60%, #FFE4E1 100%), radial-gradient(ellipse at 50% 0%, #FF69B4 0%, transparent 50%); }
.scn-canto-xii-begin .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #FFB6C1 0%, #FFDAB9 50%, transparent 100%); animation: cxii-skyGlow 10s ease-in-out infinite alternate; }
.scn-canto-xii-begin .sunrise { position:absolute; top:8%; left:50%; width:80px; height:80px; background:radial-gradient(circle, #FFD700 0%, #FF4500 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,150,50,0.5); animation: cxii-sunrise 12s ease-in-out infinite; }
.scn-canto-xii-begin .aurora { position:absolute; bottom:20%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #FFDAB9 0%, #FFB6C1 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation: cxii-auroraFloat 8s ease-in-out infinite; }
.scn-canto-xii-begin .chariot { position:absolute; bottom:25%; left:55%; width:60px; height:30px; background: linear-gradient(180deg, #DAA520 0%, #B8860B 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: cxii-chariotRoll 15s linear infinite; }
.scn-canto-xii-begin .flowers { position:absolute; bottom:18%; left:0; right:0; height:12px; background: repeating-conic-gradient(#FF69B4 0% 10%, #FFB6C1 10% 20%, #FFDAB9 20% 30%) 0% 50% / 60px 12px; animation: cxii-flowers 10s ease-in-out infinite alternate; }
.scn-canto-xii-begin .rays { position:absolute; top:0; left:0; right:0; bottom:50%; background: radial-gradient(ellipse at 50% 100%, rgba(255,215,0,0.3) 0%, transparent 70%); animation: cxii-rays 8s ease-in-out infinite alternate; }
.scn-canto-xii-begin .petals { position:absolute; top:20%; left:50%; width:8px; height:8px; background: #FF69B4; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,105,180,0.3); animation: cxii-petals 4s ease-in-out infinite; }
@keyframes cxii-skyGlow { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes cxii-sunrise { 0% { transform: translateY(0) scale(0.9); opacity:0.8; } 50% { transform: translateY(-20px) scale(1.1); opacity:1; } 100% { transform: translateY(0) scale(0.9); opacity:0.8; } }
@keyframes cxii-auroraFloat { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cxii-chariotRoll { 0% { transform: translateX(0) rotate(0); } 100% { transform: translateX(20px) rotate(5deg); } }
@keyframes cxii-flowers { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } }
@keyframes cxii-rays { 0% { opacity:0.5; } 100% { opacity:0.8; } }
@keyframes cxii-petals { 0% { transform: translate(0,0) rotate(0); opacity:1; } 50% { transform: translate(10px,-20px) rotate(45deg); opacity:0.6; } 100% { transform: translate(0,0) rotate(0); opacity:1; } }

.scn-canto-i-archimago {
  background: linear-gradient(180deg, #c1e4ff 0%, #ffe9b0 40%, #ffcc80 70%, #f0c070 100%), radial-gradient(ellipse at 70% 20%, #fffde8 0%, transparent 60%);
}
.scn-canto-i-archimago .sun-glare { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff9e0 0%, rgba(255,249,224,0) 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,249,224,0.3); animation: ar-sun-glow 6s ease-in-out infinite alternate; }
.scn-canto-i-archimago .cloud-a { position:absolute; top:15%; left:10%; width:100px; height:20px; background: rgba(255,255,255,0.6); border-radius:50%; filter: blur(8px); animation: ar-drift 35s linear infinite; }
.scn-canto-i-archimago .cloud-b { position:absolute; top:25%; right:5%; width:80px; height:16px; background: rgba(255,255,255,0.5); border-radius:50%; filter: blur(6px); animation: ar-drift 50s linear infinite reverse; animation-delay: -20s; }
.scn-canto-i-archimago .forest { position:absolute; bottom:30%; left:0; right:0; height:50%; background: repeating-linear-gradient(90deg, #2d5a27 0px, #2d5a27 8px, transparent 8px, transparent 20px), linear-gradient(180deg, #387a38 0%, #1a3a1a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: ar-forest-sway 12s ease-in-out infinite alternate; }
.scn-canto-i-archimago .path { position:absolute; bottom:5%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #c4a86a 0%, #a07d4a 100%); border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.2); }
.scn-canto-i-archimago .knight { position:absolute; bottom:10%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ar-figure-breathe 4s ease-in-out infinite; }
.scn-canto-i-archimago .knight::after { content:''; position:absolute; top:8px; left:50%; transform:translateX(-50%); width:20px; height:8px; background: #2a3a4a; border-radius:50% 50% 0 0; }
.scn-canto-i-archimago .lady { position:absolute; bottom:10%; left:45%; width:20px; height:44px; background: linear-gradient(180deg, #d4a0b0 0%, #a07080 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ar-figure-breathe 4.5s ease-in-out infinite; }
.scn-canto-i-archimago .sage { position:absolute; bottom:10%; right:30%; width:18px; height:48px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform-origin: bottom center; animation: ar-sage-walk 6s ease-in-out infinite; }

@keyframes ar-sun-glow { 0% { transform: scale(0.95); opacity:0.8; box-shadow: 0 0 60px 30px rgba(255,249,224,0.2); } 50% { transform: scale(1.05); opacity:1; box-shadow: 0 0 100px 50px rgba(255,249,224,0.5); } 100% { transform: scale(0.98); opacity:0.9; box-shadow: 0 0 80px 40px rgba(255,249,224,0.3); } }
@keyframes ar-drift { 0% { transform: translateX(-30px); } 50% { transform: translateX(50px); } 100% { transform: translateX(120vw); } }
@keyframes ar-forest-sway { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes ar-figure-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ar-sage-walk { 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); } }

/* Scene 2: canto-i-dream */
.scn-canto-i-dream {
  background: linear-gradient(180deg, #0d0d2b 0%, #1b1b3a 50%, #2a2a4e 100%), radial-gradient(ellipse at 80% 20%, #4a5a7a 0%, transparent 70%);
}
.scn-canto-i-dream .moon { position:absolute; top:12%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #e8f0ff 0%, #b0c4ff 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(176,196,255,0.3); animation: dr-moon-glow 8s ease-in-out infinite alternate; }
.scn-canto-i-dream .cloud-a { position:absolute; top:8%; left:-10%; width:120px; height:15px; background: rgba(200,210,240,0.15); border-radius:50%; filter: blur(10px); animation: dr-drift 40s linear infinite; }
.scn-canto-i-dream .cloud-b { position:absolute; top:20%; right:-10%; width:90px; height:12px; background: rgba(200,210,240,0.1); border-radius:50%; filter: blur(8px); animation: dr-drift 60s linear infinite reverse; animation-delay: -30s; }
.scn-canto-i-dream .trees-left { position:absolute; bottom:30%; left:0; width:15%; height:60%; background: linear-gradient(180deg, #0e1e0e 0%, #050f05 100%); border-radius: 40% 60% 0 0 / 30% 50% 0 0; }
.scn-canto-i-dream .trees-right { position:absolute; bottom:30%; right:0; width:15%; height:60%; background: linear-gradient(180deg, #0e1e0e 0%, #050f05 100%); border-radius: 60% 40% 0 0 / 50% 30% 0 0; }
.scn-canto-i-dream .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0a1a0a 0%, #051005 100%); border-radius: 30% 30% 0 0 / 10% 10% 0 0; }
.scn-canto-i-dream .knight { position:absolute; bottom:15%; left:40%; width:60px; height:25px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50%; transform: rotate(10deg); animation: dr-sleep 8s ease-in-out infinite; }
.scn-canto-i-dream .dream-figure { position:absolute; bottom:40%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, rgba(200,220,255,0.6) 0%, rgba(200,220,255,0.1) 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; filter: blur(3px); opacity:0.7; animation: dr-dream-float 10s ease-in-out infinite; }
.scn-canto-i-dream .fog { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(200,210,240,0.05) 0%, rgba(200,210,240,0.15) 50%, transparent 100%); filter: blur(15px); animation: dr-fog-move 20s ease-in-out infinite alternate; }

@keyframes dr-moon-glow { 0% { transform: scale(0.95); opacity:0.8; box-shadow: 0 0 30px 15px rgba(176,196,255,0.2); } 50% { transform: scale(1.05); opacity:1; box-shadow: 0 0 60px 30px rgba(176,196,255,0.5); } 100% { transform: scale(0.98); opacity:0.9; box-shadow: 0 0 40px 20px rgba(176,196,255,0.3); } }
@keyframes dr-drift { 0% { transform: translateX(-30px); } 50% { transform: translateX(50px); } 100% { transform: translateX(120vw); } }
@keyframes dr-sleep { 0% { transform: rotate(8deg) scale(1); } 50% { transform: rotate(12deg) scale(1.02); } 100% { transform: rotate(8deg) scale(1); } }
@keyframes dr-dream-float { 0% { transform: translateY(0) rotate(-5deg); opacity:0.6; } 50% { transform: translateY(-15px) rotate(5deg); opacity:1; } 100% { transform: translateY(0) rotate(-5deg); opacity:0.6; } }
@keyframes dr-fog-move { 0% { opacity:0.3; transform: translateY(0); } 50% { opacity:0.7; transform: translateY(-5px); } 100% { opacity:0.3; transform: translateY(0); } }

/* Scene 3: canto-i-ending */
.scn-canto-i-ending {
  background: linear-gradient(180deg, #3a2a4a 0%, #6a4a7a 30%, #d08060 60%, #f0c090 80%, #ffe8c0 100%), radial-gradient(ellipse at 50% 100%, #ffd8b0 0%, transparent 50%);
}
.scn-canto-i-ending .stars { position:absolute; top:0; left:0; width:100%; height:60%; background: radial-gradient(circle 2px at 15% 20%, #fff 100%, transparent), radial-gradient(circle 1px at 40% 30%, #fff 100%, transparent), radial-gradient(circle 1px at 70% 15%, #fff 100%, transparent), radial-gradient(circle 2px at 85% 25%, #fff 100%, transparent), radial-gradient(circle 1px at 55% 8%, #fff 100%, transparent); opacity:0.6; animation: en-stars-twinkle 4s ease-in-out infinite alternate; }
.scn-canto-i-ending .dawn-glow { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:80px; height:40px; background: radial-gradient(ellipse, #ffd8b0 0%, transparent 70%); border-radius:50%; animation: en-dawn-pulse 10s ease-in-out infinite alternate; }
.scn-canto-i-ending .cloud-a { position:absolute; top:20%; left:5%; width:90px; height:14px; background: rgba(255,200,180,0.4); border-radius:50%; filter: blur(6px); animation: en-drift 40s linear infinite; }
.scn-canto-i-ending .cloud-b { position:absolute; top:15%; right:10%; width:70px; height:12px; background: rgba(255,200,180,0.3); border-radius:50%; filter: blur(5px); animation: en-drift 60s linear infinite reverse; animation-delay: -20s; }
.scn-canto-i-ending .hill { position:absolute; bottom:25%; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: en-hill-breathe 12s ease-in-out infinite alternate; }
.scn-canto-i-ending .path { position:absolute; bottom:5%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #c09060 0%, #a07040 100%); border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%; }
.scn-canto-i-ending .knight { position:absolute; bottom:10%; left:30%; width:22px; height:46px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: en-figure-breathe 4s ease-in-out infinite; }
.scn-canto-i-ending .false-figure { position:absolute; bottom:10%; right:25%; width:20px; height:44px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: en-false-approach 8s ease-in-out infinite; }
.scn-canto-i-ending .rooster { position:absolute; bottom:30%; left:10%; width:16px; height:20px; background: #5a3a2a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: en-rooster-crow 6s ease-in-out infinite; }

@keyframes en-stars-twinkle { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
@keyframes en-dawn-pulse { 0% { transform: translateX(-50%) scale(0.9); opacity:0.7; } 50% { transform: translateX(-50%) scale(1.1); opacity:1; } 100% { transform: translateX(-50%) scale(0.95); opacity:0.8; } }
@keyframes en-drift { 0% { transform: translateX(-30px); } 50% { transform: translateX(50px); } 100% { transform: translateX(120vw); } }
@keyframes en-hill-breathe { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes en-figure-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes en-false-approach { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-8px) rotate(2deg); } 50% { transform: translateX(-16px) rotate(0deg); } 75% { transform: translateX(-8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes en-rooster-crow { 0% { transform: translateY(0) rotate(-5deg); } 30% { transform: translateY(-5px) rotate(5deg); } 60% { transform: translateY(-2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Scene 4: canto-ii-begin */
.scn-canto-ii-begin {
  background: linear-gradient(180deg, #5a3a6a 0%, #b07090 30%, #d0a090 60%, #f0d0b0 80%, #fff0e0 100%), radial-gradient(ellipse at 30% 100%, #f0c0a0 0%, transparent 50%);
}
.scn-canto-ii-begin .sky { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(255,200,200,0.1) 100%); animation: be-sky-breathe 15s ease-in-out infinite alternate; }
.scn-canto-ii-begin .sunrise { position:absolute; bottom:40%; left:20%; width:50px; height:50px; background: radial-gradient(circle, #ffd0a0 0%, #f0b080 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(240,150,80,0.3); animation: be-sunrise-glow 8s ease-in-out infinite alternate; }
.scn-canto-ii-begin .cloud-a { position:absolute; top:15%; left:10%; width:100px; height:16px; background: rgba(255,200,200,0.3); border-radius:50%; filter: blur(8px); animation: be-drift 45s linear infinite; }
.scn-canto-ii-begin .cloud-b { position:absolute; top:25%; right:5%; width:80px; height:12px; background: rgba(255,200,200,0.2); border-radius:50%; filter: blur(6px); animation: be-drift 55s linear infinite reverse; animation-delay: -25s; }
.scn-canto-ii-begin .road { position:absolute; bottom:0; left:30%; right:30%; height:35%; background: linear-gradient(180deg, #c09060 0%, #906040 100%); border-radius: 10% 10% 0 0 / 50% 50% 0 0; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.2); }
.scn-canto-ii-begin .trees-bg { position:absolute; bottom:30%; left:0; right:0; height:50%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, #2a4a2a 20px, #2a4a2a 25px, transparent 25px, transparent 40px), linear-gradient(180deg, #3a6a3a 0%, #1a3a1a 100%); opacity:0.7; animation: be-trees-sway 12s ease-in-out infinite alternate; }
.scn-canto-ii-begin .lady-una { position:absolute; bottom:10%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #8a6a7a 0%, #5a4a5a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: be-figure-breathe 4s ease-in-out infinite; }
.scn-canto-ii-begin .lady-una::after { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:16px; height:8px; background: #6a5a6a; border-radius:50% 50% 0 0; }
.scn-canto-ii-begin .donkey { position:absolute; bottom:8%; left:42%; width:30px; height:18px; background: #8a7a6a; border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation: be-donkey-walk 6s ease-in-out infinite; }
.scn-canto-ii-begin .dew-drops { position:absolute; top:0; left:0; width:100%; height:100%; pointer-events:none; background: radial-gradient(circle 2px at 20% 30%, rgba(255,255,255,0.4) 0%, transparent 100%), radial-gradient(circle 1px at 50% 20%, rgba(255,255,255,0.3) 0%, transparent 100%), radial-gradient(circle 1px at 80% 35%, rgba(255,255,255,0.2) 0%, transparent 100%), radial-gradient(circle 2px at 60% 40%, rgba(255,255,255,0.3) 0%, transparent 100%); animation: be-dew-sparkle 5s ease-in-out infinite alternate; }

@keyframes be-sky-breathe { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes be-sunrise-glow { 0% { transform: scale(0.95); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1.02); opacity:0.9; } }
@keyframes be-drift { 0% { transform: translateX(-30px); } 50% { transform: translateX(50px); } 100% { transform: translateX(120vw); } }
@keyframes be-trees-sway { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes be-figure-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes be-donkey-walk { 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 be-dew-sparkle { 0% { opacity:0.3; } 50% { opacity:1; } 100% { opacity:0.4; } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.bright { position: absolute; pointer-events: none; }
.bundle { position: absolute; pointer-events: none; }
.eager { position: absolute; pointer-events: none; }
.feat { position: absolute; pointer-events: none; }
.moor { position: absolute; pointer-events: none; }
.presenter { position: absolute; pointer-events: none; }
.wizard- { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* wedding-feast-revelry */
.scn-wedding-feast-revelry {
  background: linear-gradient(180deg, #2b1a0e 0%, #4a2f1a 30%, #6b3f1c 70%, #2b1a0e 100%), radial-gradient(ellipse at 50% 80%, #d98b3a 0%, transparent 60%);
}
.scn-wedding-feast-revelry .hall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(180,100,30,0.3) 60%, rgba(0,0,0,0.4) 100%); animation: wf-ambient 10s ease-in-out infinite alternate;
}
.scn-wedding-feast-revelry .arch {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 160px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #4a2f1a 0%, #1a0e06 70%); border-radius: 50% 50% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.5); animation: wf-arch 16s ease-in-out infinite;
}
.scn-wedding-feast-revelry .table {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 18px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-wedding-feast-revelry .candles {
  position: absolute; bottom: 24%; left: 30%; width: 40%; height: 8px; background: repeating-linear-gradient(90deg, #ffd080 0px 2px, transparent 2px 10px); animation: wf-candles 3s ease-in-out infinite alternate;
}
.scn-wedding-feast-revelry .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 50px; background: linear-gradient(180deg, #1a0e06 0%, #0d0603 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wf-sway 5s ease-in-out infinite;
}
.scn-wedding-feast-revelry .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 30px; height: 50px; background: linear-gradient(180deg, #1a0e06 0%, #0d0603 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wf-sway 5s ease-in-out infinite reverse;
}
.scn-wedding-feast-revelry .chandelier {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 40px; transform: translateX(-50%); background: radial-gradient(circle at 50% 0%, #d9a03a 0%, #6b3f1c 80%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); box-shadow: 0 0 30px 10px rgba(217,160,58,0.6); animation: wf-swing 8s ease-in-out infinite;
}
.scn-wedding-feast-revelry .banner {
  position: absolute; top: 12%; right: 10%; width: 40px; height: 60px; background: linear-gradient(180deg, #8b4513 0%, #5a2a0a 100%); border-radius: 4px 4px 12px 12px; transform-origin: top center; animation: wf-banner 6s ease-in-out infinite;
}
@keyframes wf-ambient { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes wf-arch { 0%, 100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes wf-candles { 0% { opacity: 0.8; box-shadow: 0 0 10px 2px #ffd080; } 50% { opacity: 1; box-shadow: 0 0 18px 6px #ffd080; } 100% { opacity: 0.85; box-shadow: 0 0 12px 3px #ffd080; } }
@keyframes wf-sway { 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 wf-swing { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes wf-banner { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }

/* knight-returns-queene */
.scn-knight-returns-queene {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 40%, #e0f0ff 70%, #f0f8ff 100%), radial-gradient(ellipse at 50% 10%, #fff4e0 0%, transparent 50%);
}
.scn-knight-returns-queene .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #b0d4f0 0%, #e0f0ff 100%); animation: krq-sky 20s ease-in-out infinite alternate;
}
.scn-knight-returns-queene .castle-wall {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 45%; background: linear-gradient(180deg, #c8b29a 0%, #a0846c 100%); border-radius: 8% 8% 0 0 / 12% 12% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.3); animation: krq-wall 12s ease-in-out infinite;
}
.scn-knight-returns-queene .door {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: 0 0 10px 2px rgba(255,215,0,0.4); animation: krq-door 15s ease-in-out infinite;
}
.scn-knight-returns-queene .knight {
  position: absolute; bottom: 28%; left: 25%; width: 35px; height: 55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: krq-knight 6s ease-in-out infinite;
}
.scn-knight-returns-queene .queen {
  position: absolute; bottom: 28%; right: 30%; width: 32px; height: 58px; background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: krq-queen 8s ease-in-out infinite;
}
.scn-knight-returns-queene .flowers {
  position: absolute; bottom: 22%; left: 8%; right: 8%; height: 12px; background: repeating-conic-gradient(#f0a050 0deg 10deg, transparent 10deg 30deg); background-size: 30px 100%; animation: krq-flowers 4s ease-in-out infinite alternate;
}
.scn-knight-returns-queene .fountain {
  position: absolute; bottom: 24%; left: 50%; width: 20px; height: 30px; transform: translateX(-50%); background: radial-gradient(circle, #a0d0f0 0%, transparent 70%); border-radius: 50% 50% 0 0; animation: krq-fountain 3s ease-in-out infinite alternate;
}
@keyframes krq-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes krq-wall { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes krq-door { 0% { transform: translateX(-50%) rotateY(0deg); } 50% { transform: translateX(-50%) rotateY(5deg); } 100% { transform: translateX(-50%) rotateY(0deg); } }
@keyframes krq-knight { 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); } }
@keyframes krq-queen { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(-3px) rotate(-3deg) scaleY(0.97); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes krq-flowers { 0% { background-size: 30px 100%; } 50% { background-size: 35px 100%; } 100% { background-size: 30px 100%; } }
@keyframes krq-fountain { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.6; } 50% { transform: translateX(-50%) scaleY(1.1); opacity: 0.9; } 100% { transform: translateX(-50%) scaleY(1); opacity: 0.7; } }

.scn-lion-una-cottage { 
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3a2a1e 40%, #4a3a2a 70%, #2a1f1a 100%),
    radial-gradient(ellipse at 30% 60%, #8a6a3a 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-lion-una-cottage .wall     { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a1f1a, #3a2a1e, #2a1f1a); }
.scn-lion-una-cottage .floor    { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1e, #2a1f1a); }
.scn-lion-una-cottage .hearth   { position:absolute; bottom:30%; left:15%; width:30%; height:20%; background: #4a3a2a; border-radius: 20% 20% 0 0; box-shadow: inset 0 -10px 20px #1a0f0a; }
.scn-lion-una-cottage .fire-glow { position:absolute; bottom:35%; left:20%; width:20%; height:25%; background: radial-gradient(ellipse 60% 80% at 50% 100%, #ffa040 0%, #804020 60%, transparent 100%); animation: luc-fire 3s ease-in-out infinite; }
.scn-lion-una-cottage .window   { position:absolute; bottom:45%; right:20%; width:18%; height:25%; background: #2a3a4a; border: 4px solid #4a3a2a; border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px #1a2a3a; animation: luc-window 8s ease-in-out infinite; }
.scn-lion-una-cottage .figure-una { position:absolute; bottom:25%; left:40%; width:6%; height:30%; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: luc-una 4s ease-in-out infinite; }
.scn-lion-una-cottage .lion     { position:absolute; bottom:20%; left:25%; width:15%; height:20%; background: radial-gradient(ellipse 60% 40% at 50% 60%, #b08050 0%, #6a4a2a 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-10deg); animation: luc-lion 6s ease-in-out infinite; }
.scn-lion-una-cottage .shadow   { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); }
@keyframes luc-fire  { 0% { transform: scaleY(1) translateY(0); opacity:0.8 } 50% { transform: scaleY(1.1) translateY(-2px); opacity:1 } 100% { transform: scaleY(1) translateY(0); opacity:0.8 } }
@keyframes luc-window { 0%,100% { opacity:0.6; box-shadow: inset 0 0 20px #1a2a3a } 50% { opacity:0.8; box-shadow: inset 0 0 30px #2a3a5a } }
@keyframes luc-una   { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes luc-lion  { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(2px) } 100% { transform: rotate(-10deg) translateX(0) } }

.scn-sans-loy-reveals-archimago {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #b0d4e0 40%, #e0e8d0 80%, #c8b090 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%);
}
.scn-sans-loy-reveals-archimago .sky           { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d4e0 0%, #e0e8d0 100%); }
.scn-sans-loy-reveals-archimago .sun-rays      { position:absolute; top:0; left:20%; width:10%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 60%); filter: blur(10px); animation: slr-sun 12s ease-in-out infinite; }
.scn-sans-loy-reveals-archimago .ground        { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8b090 0%, #a08860 100%); border-radius: 30% 0 0 0 / 20% 0 0 0; }
.scn-sans-loy-reveals-archimago .rock.left     { position:absolute; bottom:35%; left:10%; width:20%; height:25%; background: linear-gradient(135deg, #a08860, #705040); border-radius: 40% 60% 20% 20%; transform: rotate(-15deg); }
.scn-sans-loy-reveals-archimago .rock.right    { position:absolute; bottom:30%; right:8%; width:25%; height:30%; background: linear-gradient(135deg, #806050, #604030); border-radius: 50% 30% 10% 20%; transform: rotate(10deg); }
.scn-sans-loy-reveals-archimago .figure-archimago { position:absolute; bottom:25%; left:30%; width:12%; height:40%; background: linear-gradient(180deg, #406070 0%, #203040 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: slr-archimago 3s ease-in-out infinite; }
.scn-sans-loy-reveals-archimago .figure-sansloy { position:absolute; bottom:25%; right:30%; width:14%; height:45%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 35% 35% 20% 20% / 45% 45% 25% 25%; transform-origin: bottom center; animation: slr-sansloy 3.5s ease-in-out infinite alternate; }
.scn-sans-loy-reveals-archimago .dust          { position:absolute; bottom:20%; left:40%; width:20%; height:5%; background: radial-gradient(ellipse, rgba(200,180,140,0.4) 0%, transparent 70%); filter: blur(4px); animation: slr-dust 20s linear infinite; }
@keyframes slr-sun      { 0%,100% { opacity:0.6 } 50% { opacity:1 } }
@keyframes slr-archimago { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes slr-sansloy   { 0% { transform: translateX(0) rotate(-1deg) scaleY(1) } 50% { transform: translateX(-8px) rotate(1deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(-1deg) scaleY(1) } }
@keyframes slr-dust      { 0% { transform: translateX(-10px) scale(0.8) } 50% { transform: translateX(10px) scale(1.2) } 100% { transform: translateX(-10px) scale(0.8) } }

.scn-house-of-pride-lucifera {
  background: 
    linear-gradient(180deg, #d4c8a0 0%, #e8d8b0 40%, #c8a880 80%, #a08860 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-house-of-pride-lucifera .back-wall   { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d4c8a0, #b8a880); }
.scn-house-of-pride-lucifera .floor       { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #c8a880, #a08860); }
.scn-house-of-pride-lucifera .pillar.left  { position:absolute; top:10%; left:10%; width:8%; height:70%; background: linear-gradient(90deg, #e8d8b0, #c8a880); border-radius: 10% 10% 0 0; }
.scn-house-of-pride-lucifera .pillar.right { position:absolute; top:10%; right:10%; width:8%; height:70%; background: linear-gradient(90deg, #e8d8b0, #c8a880); border-radius: 10% 10% 0 0; }
.scn-house-of-pride-lucifera .throne      { position:absolute; bottom:18%; left:50%; width:30%; height:30%; transform:translateX(-50%); background: linear-gradient(180deg, #e0c090 0%, #b09060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-house-of-pride-lucifera .dragon      { position:absolute; bottom:10%; left:45%; width:20%; height:15%; background: linear-gradient(135deg, #4a6a3a, #2a4a2a); border-radius: 50% 50% 30% 30%; transform: rotate(5deg); animation: hpl-dragon 5s ease-in-out infinite; }
.scn-house-of-pride-lucifera .figure-lucifera { position:absolute; bottom:30%; left:50%; width:12%; height:30%; transform:translateX(-50%); background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: hpl-lucifera 4s ease-in-out infinite; }
.scn-house-of-pride-lucifera .chandelier  { position:absolute; top:2%; left:30%; width:40%; height:8%; background: radial-gradient(ellipse 30% 100% at 50% 100%, #e0c080 0%, #a08050 100%); border-radius: 40% 40% 0 0; filter: blur(1px); animation: hpl-chandelier 12s ease-in-out infinite; }
@keyframes hpl-dragon     { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes hpl-lucifera   { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes hpl-chandelier { 0%,100% { opacity:0.8; filter: blur(1px) } 50% { opacity:1; filter: blur(0) } }

.scn-seven-deadly-sins-procession {
  background: 
    linear-gradient(180deg, #2a2020 0%, #3a2a2a 30%, #4a3a3a 60%, #2a2020 100%),
    radial-gradient(ellipse at 50% 0%, #5a4a3a 0%, transparent 70%);
}
.scn-seven-deadly-sins-procession .palace-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a, #2a1a1a); }
.scn-seven-deadly-sins-procession .torch.left   { position:absolute; top:20%; left:5%; width:3%; height:40%; background: linear-gradient(180deg, #a08050 0%, #604030 100%); border-radius: 10% 10% 0 0; animation: sds-torch 3s ease-in-out infinite; }
.scn-seven-deadly-sins-procession .torch.right  { position:absolute; top:20%; right:5%; width:3%; height:40%; background: linear-gradient(180deg, #a08050 0%, #604030 100%); border-radius: 10% 10% 0 0; animation: sds-torch 3s ease-in-out infinite reverse; }
.scn-seven-deadly-sins-procession .procession-wrath { position:absolute; bottom:25%; left:25%; width:18%; height:35%; background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(5deg); animation: sds-wrath 4s ease-in-out infinite; }
.scn-seven-deadly-sins-procession .procession-envy  { position:absolute; bottom:25%; right:30%; width:16%; height:30%; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%); border-radius: 35% 35% 20% 20% / 45% 45% 25% 25%; transform: rotate(-3deg); animation: sds-envy 5s ease-in-out infinite alternate; }
.scn-seven-deadly-sins-procession .wagon       { position:absolute; bottom:15%; left:50%; width:30%; height:20%; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 10% 10% 5% 5%; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); animation: sds-wagon 8s ease-in-out infinite; }
.scn-seven-deadly-sins-procession .figure-satan { position:absolute; bottom:40%; left:48%; width:10%; height:25%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom; animation: sds-satan 3s ease-in-out infinite; }
.scn-seven-deadly-sins-procession .shadow-wave { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 50%, transparent 100%); filter: blur(6px); animation: sds-shadow 20s linear infinite; }
@keyframes sds-torch   { 0%,100% { opacity:0.7; filter: blur(0); } 50% { opacity:1; filter: blur(3px); } }
@keyframes sds-wrath   { 0% { transform: rotate(5deg) scaleY(1) } 50% { transform: rotate(8deg) scaleY(1.05) } 100% { transform: rotate(5deg) scaleY(1) } }
@keyframes sds-envy    { 0% { transform: rotate(-3deg) translateX(0) } 50% { transform: rotate(0deg) translateX(5px) } 100% { transform: rotate(-3deg) translateX(0) } }
@keyframes sds-wagon   { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes sds-satan   { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.1) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes sds-shadow  { 0% { transform: translateX(-10px) } 100% { transform: translateX(10px) } }

/* Scene 1: satyrane-helps-una - warm sunlit woodland */
.scn-satyrane-helps-una {
  background: linear-gradient(180deg, #FFD79C 0%, #F4A460 50%, #D2691E 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,255,200,0.6) 0%, transparent 60%);
}
.scn-satyrane-helps-una .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #FFEFC0 80%);
  animation: su-sky 15s ease-in-out infinite alternate;
}
.scn-satyrane-helps-una .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #FFF5B0 0%, #FFD700 50%, #FFB347 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,215,0,0.5), 0 0 160px 60px rgba(255,215,0,0.2);
  animation: su-sun 8s ease-in-out infinite alternate;
}
.scn-satyrane-helps-una .path {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #C8A96E 0%, #A0854B 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: su-path 12s ease-in-out infinite alternate;
}
.scn-satyrane-helps-una .tree {
  position: absolute; bottom: 20%; width: 30px;
  background: linear-gradient(180deg, #6B4226 0%, #3E2723 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-satyrane-helps-una .tree-a {
  left: 18%; height: 180px;
  transform-origin: bottom center;
  animation: su-tree 20s ease-in-out infinite alternate;
}
.scn-satyrane-helps-una .tree-b {
  right: 22%; height: 140px;
  transform-origin: bottom center;
  animation: su-tree 24s ease-in-out infinite alternate-reverse;
}
.scn-satyrane-helps-una .figure {
  position: absolute; bottom: 18%; width: 20px;
  background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-satyrane-helps-una .satyrane {
  left: 40%; height: 60px;
  animation: su-walk 4s ease-in-out infinite;
}
.scn-satyrane-helps-una .una {
  left: 52%; height: 55px;
  animation: su-walk 4s ease-in-out 0.5s infinite;
}
.scn-satyrane-helps-una .pilgrim {
  position: absolute; bottom: 30%; right: 20%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #8D6E63 0%, #5D4037 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  animation: su-pilgrim 6s ease-in-out infinite alternate;
}
.scn-satyrane-helps-una .leaf {
  position: absolute; width: 12px; height: 12px;
  background: radial-gradient(circle, #8BC34A, #4CAF50);
  border-radius: 50% 0 50% 0;
  opacity: 0.7;
}
.scn-satyrane-helps-una .leaf-a {
  top: 20%; left: 10%;
  animation: su-leaf 6s linear infinite;
}
.scn-satyrane-helps-una .leaf-b {
  top: 40%; left: 60%;
  animation: su-leaf 8s linear infinite 2s;
}
@keyframes su-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes su-sun { 0% { transform: translateX(-5px) scale(1); } 50% { transform: translateX(0) scale(1.02); } 100% { transform: translateX(5px) scale(1); } }
@keyframes su-path { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes su-tree { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes su-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-2deg); } 75% { transform: translateX(15px) rotate(1deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes su-pilgrim { 0% { transform: translateY(0) rotate(-5deg); opacity:0.6; } 50% { transform: translateY(-4px) rotate(3deg); opacity:1; } 100% { transform: translateY(0) rotate(-5deg); opacity:0.6; } }
@keyframes su-leaf { 0% { transform: translate(0,0) rotate(0deg) scale(1); } 25% { transform: translate(20px,30px) rotate(90deg) scale(0.8); } 50% { transform: translate(40px,10px) rotate(180deg) scale(1); } 75% { transform: translate(60px,20px) rotate(270deg) scale(0.9); } 100% { transform: translate(80px,0) rotate(360deg) scale(1); } }

/* Scene 2: item-fountain-curse-orgoglio - tense sunlit */
.scn-item-fountain-curse-orgoglio {
  background: linear-gradient(180deg, #FFE0B2 0%, #FFCC80 40%, #D84315 100%),
              radial-gradient(ellipse at 50% 80%, rgba(255,200,100,0.3) 0%, transparent 70%);
}
.scn-item-fountain-curse-orgoglio .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8D6E63 0%, #5D4037 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-item-fountain-curse-orgoglio .fountain {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #BDBDBD 0%, #757575 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: fc-fountain 3s ease-in-out infinite alternate;
}
.scn-item-fountain-curse-orgoglio .water {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #64B5F6 0%, #1E88E5 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px rgba(100,181,246,0.4);
  animation: fc-water 2s ease-in-out infinite alternate;
}
.scn-item-fountain-curse-orgoglio .redcrosse {
  position: absolute; bottom: 10%; left: 30%;
  width: 22px; height: 40px;
  background: linear-gradient(180deg, #B71C1C 0%, #880E4F 100%); /* desaturated dark red */
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-15deg);
  animation: fc-knight 4s ease-in-out infinite;
}
.scn-item-fountain-curse-orgoglio .duessa {
  position: absolute; bottom: 15%; right: 35%;
  width: 18px; height: 45px;
  background: linear-gradient(180deg, #E91E63 0%, #AD1457 100%); /* desaturated red-pink */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fc-duessa 3.5s ease-in-out infinite alternate;
}
.scn-item-fountain-curse-orgoglio .giant {
  position: absolute; bottom: 10%; right: 10%;
  width: 80px; height: 160px;
  background: linear-gradient(180deg, #4E342E 0%, #2E1A11 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fc-giant 5s ease-in-out infinite alternate;
}
.scn-item-fountain-curse-orgoglio .shadow {
  position: absolute; bottom: 0; width: 60px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
}
.scn-item-fountain-curse-orgoglio .shadow-a {
  left: 25%; animation: fc-shadow 4s ease-in-out infinite alternate;
}
.scn-item-fountain-curse-orgoglio .shadow-b {
  right: 15%; width: 100px; animation: fc-shadow 5s ease-in-out infinite alternate-reverse;
}
@keyframes fc-fountain { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes fc-water { 0% { height: 30px; opacity:0.8; } 50% { height: 35px; opacity:1; } 100% { height: 30px; opacity:0.8; } }
@keyframes fc-knight { 0% { transform: rotate(-15deg) translateY(0); } 25% { transform: rotate(-10deg) translateY(-2px); } 50% { transform: rotate(-15deg) translateY(1px); } 75% { transform: rotate(-20deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes fc-duessa { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes fc-giant { 0% { transform: scale(1) rotate(-2deg); opacity:0.8; } 50% { transform: scale(1.02) rotate(0); opacity:1; } 100% { transform: scale(1) rotate(2deg); opacity:0.8; } }
@keyframes fc-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.8; } 100% { transform: scaleX(1); opacity:0.5; } }

/* Scene 3: duessa-orgoglio-queen - dark dark */
.scn-duessa-orgoglio-queen {
  background: linear-gradient(180deg, #1A1A2E 0%, #2D1B4E 40%, #3A0066 100%),
              radial-gradient(circle at 60% 50%, rgba(128,0,128,0.3) 0%, transparent 60%);
}
.scn-duessa-orgoglio-queen .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.6) 100%);
  animation: do-bg 10s ease-in-out infinite alternate;
}
.scn-duessa-orgoglio-queen .throne {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 80px;
  background: linear-gradient(180deg, #4A148C 0%, #1A0033 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.8), inset 0 5px 15px rgba(156,39,176,0.3);
}
.scn-duessa-orgoglio-queen .duessa {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #FFD54F 0%, #FFA000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(255,215,0,0.5);
  animation: do-queen 4s ease-in-out infinite alternate;
}
.scn-duessa-orgoglio-queen .beast {
  position: absolute; bottom: 5%; height: 50px; width: 40px;
  background: linear-gradient(180deg, #2E1A11 0%, #0D0D0D 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-duessa-orgoglio-queen .head-1 { left: 30%; animation: do-head 3s ease-in-out infinite; }
.scn-duessa-orgoglio-queen .head-2 { left: 45%; animation: do-head 3.2s ease-in-out infinite 0.5s; }
.scn-duessa-orgoglio-queen .head-3 { left: 60%; animation: do-head 3.5s ease-in-out infinite 1s; }
.scn-duessa-orgoglio-queen .dwarf {
  position: absolute; bottom: 5%; left: 10%;
  width: 18px; height: 30px;
  background: linear-gradient(180deg, #795548 0%, #3E2723 100%);
  border-radius: 45% 45% 40% 40% / 50% 50% 40% 40%;
  animation: do-dwarf 6s ease-in-out infinite alternate;
}
.scn-duessa-orgoglio-queen .armor {
  position: absolute; bottom: 5%; left: 5%;
  width: 25px; height: 20px;
  background: linear-gradient(180deg, #B0BEC5 0%, #607D8B 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px rgba(176,190,197,0.5);
  animation: do-armor 8s ease-in-out infinite alternate;
}
@keyframes do-bg { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes do-queen { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes do-head { 0% { transform: scale(1) rotate(0); } 25% { transform: scale(1.05) rotate(-5deg); } 50% { transform: scale(0.95) rotate(5deg); } 75% { transform: scale(1.02) rotate(-3deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes do-dwarf { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes do-armor { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }

/* Scene 4: una-tells-her-story - tense dim-interior */
.scn-una-tells-her-story {
  background: linear-gradient(135deg, #2C1810 0%, #3E2723 50%, #1A0D0A 100%),
              radial-gradient(circle at 40% 60%, #E65100 0%, transparent 70%);
}
.scn-una-tells-her-story .wall-left {
  position: absolute; top: 0; bottom: 0; left: 0; width: 30%;
  background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%);
  border-right: 2px solid #2C1810;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: ut-wall 12s ease-in-out infinite alternate;
}
.scn-una-tells-her-story .wall-right {
  position: absolute; top: 0; bottom: 0; right: 0; width: 30%;
  background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%);
  border-left: 2px solid #2C1810;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: ut-wall 12s ease-in-out infinite alternate-reverse;
}
.scn-una-tells-her-story .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4E342E 0%, #1A0D0A 100%);
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.7);
  border-radius: 20% 20% 0 0;
}
.scn-una-tells-her-story .fire {
  position: absolute; bottom: 15%; left: 20%;
  width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #FF6F00 0%, #E65100 50%, #BF360C 80%, transparent 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(255,111,0,0.4), 0 0 80px 40px rgba(230,81,0,0.2);
  animation: ut-fire 2s ease-in-out infinite alternate;
}
.scn-una-tells-her-story .una {
  position: absolute; bottom: 12%; left: 45%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #D7CCC8 0%, #8D6E63 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ut-una 4s ease-in-out infinite alternate;
}
.scn-una-tells-her-story .dwarf {
  position: absolute; bottom: 10%; left: 28%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #795548 0%, #3E2723 100%);
  border-radius: 48% 48% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ut-dwarf 5s ease-in-out infinite alternate;
}
.scn-una-tells-her-story .shadow-flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 20% 55%, rgba(0,0,0,0.2) 0%, transparent 60%);
  animation: ut-flicker 3s ease-in-out infinite;
}
@keyframes ut-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ut-fire { 0% { transform: scale(1) translateY(0); } 25% { transform: scale(1.1) translateY(-3px); } 50% { transform: scale(0.95) translateY(1px); } 75% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes ut-una { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ut-dwarf { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.02) rotate(3deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes ut-flicker { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-allegory-notes-clarified {
  background:
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, #1a1410 60%),
    linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%);
}
.scn-allegory-notes-clarified .room-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 80%),
              linear-gradient(180deg, #2a1a1a 0%, #1a1210 100%);
  animation: anc-room 20s ease-in-out infinite alternate;
}
.scn-allegory-notes-clarified .desk {
  position: absolute; bottom: 20%; left: 25%; width: 35%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  transform: perspective(800px) rotateX(10deg);
}
.scn-allegory-notes-clarified .book {
  position: absolute; bottom: 26%; left: 30%; width: 14%; height: 6%;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4%;
  transform: rotate(-5deg);
  box-shadow: 2px 4px 6px rgba(0,0,0,0.4);
  animation: anc-book 6s ease-in-out infinite;
}
.scn-allegory-notes-clarified .lamp {
  position: absolute; bottom: 30%; left: 55%; width: 6%; height: 12%;
  background: radial-gradient(ellipse at 50% 0%, #f0c068 0%, #b08040 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(192,128,64,0.5);
  animation: anc-lamp 3s ease-in-out infinite alternate;
}
.scn-allegory-notes-clarified .figure-knight {
  position: absolute; bottom: 22%; left: 40%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: anc-knight 8s ease-in-out infinite;
}
.scn-allegory-notes-clarified .figure-pegasus {
  position: absolute; bottom: 30%; left: 60%; width: 14%; height: 10%;
  background: radial-gradient(ellipse at 50% 40%, #4a3a3a 0%, transparent 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: anc-pegasus 12s ease-in-out infinite;
}
.scn-allegory-notes-clarified .note {
  position: absolute; bottom: 32%; left: 38%; width: 4%; height: 3%;
  background: linear-gradient(180deg, #c0b090 0%, #a09080 100%);
  border-radius: 10%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: anc-note 4s ease-in-out infinite alternate;
}
@keyframes anc-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes anc-book { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes anc-lamp { 0% { box-shadow: 0 0 20px 10px rgba(192,128,64,0.4); opacity: 0.9; } 50% { box-shadow: 0 0 40px 20px rgba(255,192,96,0.6); opacity: 1; } 100% { box-shadow: 0 0 25px 12px rgba(192,128,64,0.45); } }
@keyframes anc-knight { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(2deg); } }
@keyframes anc-pegasus { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes anc-note { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(18deg) scale(0.95); } }

.scn-hill-of-contemplation-prophesy {
  background:
    radial-gradient(ellipse at 30% 30%, #f0e8c0 0%, #c8b080 30%, transparent 60%),
    linear-gradient(180deg, #ffd080 0%, #f0a060 30%, #806050 100%);
}
.scn-hill-of-contemplation-prophesy .sky-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffd080 0%, #f0a060 40%, #c08050 70%, transparent 100%);
  animation: hcp-sky 15s ease-in-out infinite alternate;
}
.scn-hill-of-contemplation-prophesy .sun {
  position: absolute; bottom: 50%; left: 20%; width: 10%; height: 10%;
  background: radial-gradient(circle, #ffe080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,160,64,0.4);
  animation: hcp-sun 8s ease-in-out infinite alternate;
}
.scn-hill-of-contemplation-prophesy .hill {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #706050 0%, #504030 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-hill-of-contemplation-prophesy .path {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 4%;
  background: linear-gradient(90deg, #a08060 0%, #c0a080 50%, #a08060 100%);
  border-radius: 50%;
  transform: perspective(300px) rotateX(40deg);
  animation: hcp-path 12s ease-in-out infinite;
}
.scn-hill-of-contemplation-prophesy .figure-knight {
  position: absolute; bottom: 34%; left: 35%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hcp-knight 6s ease-in-out infinite;
}
.scn-hill-of-contemplation-prophesy .figure-hermit {
  position: absolute; bottom: 36%; left: 55%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #c0b0a0 0%, #806050 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hcp-hermit 10s ease-in-out infinite;
}
.scn-hill-of-contemplation-prophesy .tower {
  position: absolute; bottom: 20%; left: 70%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: hcp-tower 20s ease-in-out infinite alternate;
}
@keyframes hcp-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hcp-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.1); } 100% { transform: translateY(3px) scale(0.95); } }
@keyframes hcp-path { 0%,100% { transform: perspective(300px) rotateX(40deg) translateY(0); } 50% { transform: perspective(300px) rotateX(42deg) translateY(-2px); } }
@keyframes hcp-knight { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(2deg); } }
@keyframes hcp-hermit { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes hcp-tower { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(1px); } }

.scn-dragon-final-blow {
  background:
    radial-gradient(ellipse at 70% 20%, #ff8040 0%, #c04020 30%, transparent 60%),
    linear-gradient(180deg, #e07040 0%, #a04030 50%, #502020 100%);
}
.scn-dragon-final-blow .sky-storm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f08040 0%, #c06030 40%, #803020 100%);
  animation: dfb-sky 4s ease-in-out infinite alternate;
}
.scn-dragon-final-blow .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #603030 0%, #301818 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.6);
}
.scn-dragon-final-blow .knight {
  position: absolute; bottom: 30%; left: 25%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 60%, #303030 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dfb-knight 1s ease-in-out infinite;
}
.scn-dragon-final-blow .sword {
  position: absolute; bottom: 40%; left: 38%; width: 3%; height: 30%;
  background: linear-gradient(180deg, #e0e0e0 0%, #b0b0b0 50%, #808080 100%);
  border-radius: 50% / 10% 10%;
  transform: rotate(45deg);
  transform-origin: bottom center;
  box-shadow: 0 0 20px 5px rgba(255,255,255,0.3);
  animation: dfb-sword 0.5s ease-in-out infinite alternate;
}
.scn-dragon-final-blow .dragon-head {
  position: absolute; bottom: 35%; left: 55%; width: 18%; height: 18%;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  clip-path: polygon(0% 30%, 20% 0%, 80% 0%, 100% 30%, 100% 70%, 80% 100%, 20% 100%, 0% 70%);
  animation: dfb-head 0.8s ease-in-out infinite;
}
.scn-dragon-final-blow .dragon-body {
  position: absolute; bottom: 20%; left: 60%; width: 30%; height: 25%;
  background: linear-gradient(90deg, #a08060 0%, #705040 50%, #503020 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: dfb-body 1.2s ease-in-out infinite;
}
.scn-dragon-final-blow .light-flash {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 40% 50%, rgba(255,255,200,0.8) 0%, transparent 40%);
  mix-blend-mode: overlay;
  pointer-events: none;
  animation: dfb-flash 0.3s ease-in-out infinite;
}
@keyframes dfb-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes dfb-knight { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
@keyframes dfb-sword { 0% { transform: rotate(40deg) scaleY(1); } 100% { transform: rotate(50deg) scaleY(1.1); } }
@keyframes dfb-head { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(5deg); } }
@keyframes dfb-body { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(3px); } }
@keyframes dfb-flash { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } }

.scn-item-dragon-shield-trophy {
  background:
    radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, #c0a080 40%, transparent 70%),
    linear-gradient(180deg, #f0d0a0 0%, #c09060 50%, #805030 100%);
}
.scn-item-dragon-shield-trophy .bg-sunlit {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 30%, #fff0d0 0%, transparent 60%),
              linear-gradient(180deg, #f0d8b0 0%, #d0b090 100%);
  animation: dst-bg 12s ease-in-out infinite alternate;
}
.scn-item-dragon-shield-trophy .throne {
  position: absolute; bottom: 10%; left: 20%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #c0a080 0%, #907050 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  transform: perspective(600px) rotateY(10deg);
}
.scn-item-dragon-shield-trophy .king {
  position: absolute; bottom: 20%; left: 22%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: dst-king 6s ease-in-out infinite;
}
.scn-item-dragon-shield-trophy .queen {
  position: absolute; bottom: 18%; left: 14%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #c0a080 0%, #907060 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: dst-queen 7s ease-in-out infinite;
}
.scn-item-dragon-shield-trophy .knight-present {
  position: absolute; bottom: 15%; left: 45%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 60%, #303030 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dst-knight 5s ease-in-out infinite;
}
.scn-item-dragon-shield-trophy .shield {
  position: absolute; bottom: 30%; left: 50%; width: 15%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #f0c040 0%, #c08020 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(192,128,32,0.5), inset 0 -4px 8px rgba(0,0,0,0.4);
  transform: rotate(5deg);
  animation: dst-shield 4s ease-in-out infinite alternate;
}
.scn-item-dragon-shield-trophy .dwarf {
  position: absolute; bottom: 10%; left: 35%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #806050 0%, #504030 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: dst-dwarf 8s ease-in-out infinite;
}
@keyframes dst-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dst-king { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes dst-queen { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes dst-knight { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } }
@keyframes dst-shield { 0% { transform: rotate(5deg) scale(1); box-shadow: 0 0 20px 8px rgba(192,128,32,0.4); } 50% { transform: rotate(10deg) scale(1.05); box-shadow: 0 0 40px 15px rgba(255,200,64,0.6); } 100% { transform: rotate(3deg) scale(0.95); box-shadow: 0 0 25px 10px rgba(192,128,32,0.45); } }
@keyframes dst-dwarf { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } }

/* house-of-holinesse */
.scn-house-of-holinesse {
  background: linear-gradient(180deg, #f9e6c4 0%, #e8c88a 40%, #cba06a 100%), radial-gradient(ellipse at 50% 60%, #ffe0a0 0%, transparent 70%);
}
.scn-house-of-holinesse .wall-glow {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe9b0 0%, #f5d898 50%, transparent 100%);
  animation: ho-glow 6s ease-in-out infinite alternate;
}
.scn-house-of-holinesse .wood-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3e1e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  border-radius: 20% 20% 0 0;
}
.scn-house-of-holinesse .window-light {
  position: absolute; top: 8%; left: 60%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #fff8d0 0%, #ffdd88 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 50px 20px rgba(255,221,120,0.5);
  opacity: 0.7; animation: ho-light 8s ease-in-out infinite alternate;
}
.scn-house-of-holinesse .lectern {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 90px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.4);
  animation: ho-lectern 12s ease-in-out infinite;
}
.scn-house-of-holinesse .book-open {
  position: absolute; bottom: 55%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 30px;
  background: linear-gradient(135deg, #fff5d6 0%, #f0dbb0 50%, #d4b88a 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-house-of-holinesse .figure-fidelia {
  position: absolute; bottom: 30%; left: 32%; 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: ho-figure 4s ease-in-out infinite alternate;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
}
.scn-house-of-holinesse .figure-speranza {
  position: absolute; bottom: 30%; right: 32%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ho-figure2 5s ease-in-out infinite alternate;
  box-shadow: -2px 0 6px rgba(0,0,0,0.3);
}
.scn-house-of-holinesse .candle-glow {
  position: absolute; bottom: 40%; left: 28%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd86a 0%, #ffaa40 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffaa40, 0 0 60px 20px rgba(255,170,64,0.3);
  animation: ho-candle 3s ease-in-out infinite alternate;
}

@keyframes ho-glow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ho-light { 0% { opacity: 0.6; transform: scaleY(0.95); } 50% { opacity: 0.9; transform: scaleY(1.05); } 100% { opacity: 0.7; transform: scaleY(1); } }
@keyframes ho-lectern { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ho-figure { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes ho-figure2 { 0% { transform: rotate(1deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(-3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes ho-candle { 0% { box-shadow: 0 0 20px 5px #ffaa40, 0 0 40px 10px rgba(255,170,64,0.2); } 50% { box-shadow: 0 0 35px 12px #ffcc60, 0 0 70px 20px rgba(255,204,96,0.5); } 100% { box-shadow: 0 0 25px 8px #ffaa40, 0 0 50px 15px rgba(255,170,64,0.3); } }

/* item-iron-whip-penance */
.scn-item-iron-whip-penance {
  background: linear-gradient(180deg, #1a101a 0%, #0d0810 40%, #1a121a 100%), radial-gradient(ellipse at 40% 20%, #2a1a2a 0%, transparent 70%);
}
.scn-item-iron-whip-penance .dark-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, #2a202a 0%, transparent 100%);
  animation: ip-bg 20s ease-in-out infinite alternate;
}
.scn-item-iron-whip-penance .stone-pillar {
  position: absolute; bottom: 0; left: 30%; width: 20px; height: 60%;
  background: linear-gradient(180deg, #3a303a 0%, #1a121a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 4px 0 10px rgba(0,0,0,0.6);
}
.scn-item-iron-whip-penance .chain-link {
  position: absolute; bottom: 35%; left: 30%; width: 40px; height: 4px;
  background: #4a3a3a;
  border-radius: 2px;
  animation: ip-chain 3s ease-in-out infinite;
}
.scn-item-iron-whip-penance .iron-whip {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 3px;
  transform-origin: left center;
  animation: ip-whip 2s ease-in-out infinite alternate;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-item-iron-whip-penance .shadow-figure {
  position: absolute; bottom: 10%; right: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0d080d 0%, #050305 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ip-figure 6s ease-in-out infinite alternate;
}
.scn-item-iron-whip-penance .candle-flicker {
  position: absolute; bottom: 40%; right: 35%; width: 6px; height: 6px;
  background: radial-gradient(circle, #d08060 0%, #8a4030 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px #8a4030, 0 0 40px 10px rgba(138,64,48,0.3);
  animation: ip-candle 2s ease-in-out infinite alternate;
}

@keyframes ip-bg { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes ip-chain { 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 ip-whip { 0% { transform: rotate(-30deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.1); } 100% { transform: rotate(-30deg) scaleX(1); } }
@keyframes ip-figure { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ip-candle { 0% { box-shadow: 0 0 15px 3px #8a4030, 0 0 30px 8px rgba(138,64,48,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 30px 8px #c06040, 0 0 60px 15px rgba(192,96,64,0.4); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #8a4030, 0 0 35px 10px rgba(138,64,48,0.3); opacity: 0.9; } }

/* hill-of-contemplation */
.scn-hill-of-contemplation {
  background: linear-gradient(180deg, #c9dae8 0%, #a7bdd6 40%, #7a9aba 100%), radial-gradient(ellipse at 50% 120%, #e8d0b8 0%, transparent 70%);
}
.scn-hill-of-contemplation .dawn-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0d8b0 0%, #c9dae8 40%, #a0b8d0 100%);
  animation: hc-sky 30s ease-in-out infinite alternate;
}
.scn-hill-of-contemplation .distant-hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 40% 60% 0 0;
  opacity: 0.5;
  animation: hc-hills 40s ease-in-out infinite alternate;
}
.scn-hill-of-contemplation .hill-slope {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a7a4a 0%, #2a4a2a 100%);
  border-radius: 50% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
}
.scn-hill-of-contemplation .hermit-silhouette {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 70px;
  background: #0a0a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-hermit 15s ease-in-out infinite alternate;
}
.scn-hill-of-contemplation .staff {
  position: absolute; bottom: 22%; left: 27%; width: 4px; height: 70px;
  background: #2a1a0a;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: hc-staff 15s ease-in-out infinite alternate;
}
.scn-hill-of-contemplation .city-glow {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 40px;
  background: radial-gradient(ellipse, #ffe0b0 0%, #c0a070 40%, transparent 100%);
  border-radius: 30% 30% 20% 20%;
  animation: hc-city 20s ease-in-out infinite alternate;
}
.scn-hill-of-contemplation .cloud-1 {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 20px;
  background: rgba(255,255,255,0.4);
  filter: blur(8px);
  border-radius: 50%;
  animation: hc-cloud1 60s linear infinite;
}
.scn-hill-of-contemplation .cloud-2 {
  position: absolute; top: 20%; right: 5%; width: 70px; height: 14px;
  background: rgba(255,255,255,0.3);
  filter: blur(6px);
  border-radius: 50%;
  animation: hc-cloud2 50s linear infinite reverse;
}

@keyframes hc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hc-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes hc-hermit { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes hc-staff { 0% { transform: rotate(8deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(10deg); } }
@keyframes hc-city { 0% { opacity: 0.5; transform: translateX(-50%) scaleX(0.95); } 50% { opacity: 0.8; transform: translateX(-50%) scaleX(1.05); } 100% { opacity: 0.6; transform: translateX(-50%) scaleX(1); } }
@keyframes hc-cloud1 { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes hc-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* dragon-first-clash */
.scn-dragon-first-clash {
  background: linear-gradient(180deg, #f0d4a0 0%, #d4b078 40%, #a08060 100%), radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 70%);
}
.scn-dragon-first-clash .sunlit-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffecc0 0%, #f0d4a0 100%);
  animation: df-sky 8s ease-in-out infinite alternate;
}
.scn-dragon-first-clash .dust-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8a880 0%, #8a6a4a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-dragon-first-clash .dragon-body {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 20% 20% 40%;
  transform-origin: left center;
  animation: df-dragon 4s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.5);
}
.scn-dragon-first-clash .dragon-wing {
  position: absolute; bottom: 50%; left: 25%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #4a5a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom left;
  animation: df-wing 3s ease-in-out infinite alternate;
}
.scn-dragon-first-clash .knight-horse {
  position: absolute; bottom: 35%; right: 25%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 30% 20% 30%;
  transform-origin: bottom center;
  animation: df-horse 2s ease-in-out infinite alternate;
  box-shadow: 4px 2px 8px rgba(0,0,0,0.4);
}
.scn-dragon-first-clash .lance-spear {
  position: absolute; bottom: 50%; right: 15%; width: 70px; height: 6px;
  background: linear-gradient(90deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 3px;
  transform-origin: right center;
  animation: df-lance 2s ease-in-out infinite alternate;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-dragon-first-clash .dark-blood {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 8px;
  background: #4a1a1a;
  border-radius: 50%;
  filter: blur(2px);
  animation: df-blood 5s ease-in-out infinite;
}
.scn-dragon-first-clash .impact-dust {
  position: absolute; bottom: 35%; left: 40%; width: 40px; height: 20px;
  background: rgba(160,120,80,0.6);
  filter: blur(6px);
  border-radius: 50%;
  animation: df-dust 3s ease-in-out infinite alternate;
}

@keyframes df-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes df-dragon { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-10px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes df-wing { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(1.1); } 100% { transform: rotate(-5deg) scaleY(0.95); } }
@keyframes df-horse { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(10px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes df-lance { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.1); } 100% { transform: rotate(-15deg) scaleX(1); } }
@keyframes df-blood { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.3); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes df-dust { 0% { opacity: 0.3; transform: translateY(0) scaleX(1); } 50% { opacity: 0.7; transform: translateY(-5px) scaleX(1.2); } 100% { opacity: 0.4; transform: translateY(0) scaleX(1); } }

/* archimago-false-una */
.scn-archimago-false-una { background: linear-gradient(180deg, #1a0a0a 0%, #2a1410 40%, #3a1c12 80%, #1a0a0a 100%), radial-gradient(ellipse at 50% 60%, #ff6a33 0%, transparent 60%); }
.scn-archimago-false-una .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0e0705 0%, #1a0c08 50%, #0e0705 100%); }
.scn-archimago-false-una .fire-glow { position:absolute; bottom:20%; left:10%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #cc4400 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: arf-fire 2s ease-in-out infinite alternate; }
.scn-archimago-false-una .archimago { position:absolute; bottom:28%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 12px rgba(255,100,30,0.3); animation: arf-figure 8s ease-in-out infinite; }
.scn-archimago-false-una .false-una { position:absolute; bottom:30%; left:55%; width:24px; height:50px; background: linear-gradient(180deg, #ffddaa 0%, #ddaa77 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 8px #ffaa66, 0 0 40px 15px rgba(255,170,102,0.3); animation: arf-glow 3s ease-in-out infinite alternate; }
.scn-archimago-false-una .magic-sparks { position:absolute; top:20%; left:50%; width:80px; height:80px; background: radial-gradient(circle, #ffcc88 0%, transparent 60%); filter: blur(3px); animation: arf-sparks 6s ease-in-out infinite; }
.scn-archimago-false-una .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1010 0%, #0e0808 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.6); }
@keyframes arf-fire { 0% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.1) } 100% { opacity: 0.85; transform: scaleY(0.95) } }
@keyframes arf-figure { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes arf-glow { 0% { box-shadow: 0 0 15px 5px #ffaa66, 0 0 30px 10px rgba(255,170,102,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 25px 10px #ffcc88, 0 0 50px 20px rgba(255,204,136,0.5); opacity: 1; } 100% { box-shadow: 0 0 18px 6px #ffaa66, 0 0 35px 12px rgba(255,170,102,0.25); opacity: 0.85; } }
@keyframes arf-sparks { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-20px) scale(1.2); opacity: 0.8; } 100% { transform: translateY(0) scale(0.9); opacity: 0.4; } }

/* knight-flees-archimago-deceit */
.scn-knight-flees-archimago-deceit { background: linear-gradient(180deg, #1a2a3a 0%, #3a4a5a 30%, #8a7a5a 60%, #c8a870 100%), radial-gradient(ellipse at 30% 40%, #c8a870 0%, transparent 60%); }
.scn-knight-flees-archimago-deceit .sky-dawn { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a3a4a 0%, #8a7a5a 50%, #c8a870 100%); animation: kni-sky 20s ease-in-out infinite alternate; }
.scn-knight-flees-archimago-deceit .ground-dark { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-knight-flees-archimago-deceit .horse-rider { position:absolute; bottom:28%; left:20%; width:50px; height:35px; background: linear-gradient(180deg, #1a0a0a 0%, #0e0505 100%); border-radius: 40% 20% 20% 40% / 60% 30% 30% 60%; transform-origin: bottom center; animation: kni-gallop 0.6s ease-in-out infinite; }
.scn-knight-flees-archimago-deceit .una-chaser { position:absolute; bottom:30%; right:25%; width:20px; height:45px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kni-run 1.2s ease-in-out infinite; }
.scn-knight-flees-archimago-deceit .morning-star { position:absolute; top:14%; left:60%; width:12px; height:12px; background: radial-gradient(circle, #ffe0a0 0%, #ffcc66 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #ffcc66; animation: kni-star 4s ease-in-out infinite alternate; }
.scn-knight-flees-archimago-deceit .fence { position:absolute; bottom:28%; right:10%; width:30%; height:4px; background: #3a2a1a; border-radius: 2px; box-shadow: 0 -10px 0 #3a2a1a, 0 -20px 0 #3a2a1a; animation: kni-fence 5s linear infinite; }
@keyframes kni-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes kni-gallop { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(5px) rotate(0); } 50% { transform: translateX(0) rotate(3deg); } 75% { transform: translateX(-5px) rotate(0); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes kni-run { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes kni-star { 0% { opacity: 0.7; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(0.9); } }
@keyframes kni-fence { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }

/* duessa-false-fidessa */
.scn-duessa-false-fidessa { background: linear-gradient(180deg, #8ac0e8 0%, #d4e8f0 30%, #f0d080 70%, #d4a050 100%), radial-gradient(ellipse at 70% 30%, #ffffff 0%, transparent 60%); }
.scn-duessa-false-fidessa .sky-sunlit { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #6ab0e0 0%, #b0d8f0 60%, transparent 100%); }
.scn-duessa-false-fidessa .path-golden { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #d4a050 0%, #b08030 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,0.3); }
.scn-duessa-false-fidessa .knight-walk { position:absolute; bottom:22%; left:30%; width:28px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: duf-walk 2s ease-in-out infinite; }
.scn-duessa-false-fidessa .duessa-false { position:absolute; bottom:24%; right:35%; width:22px; height:55px; background: linear-gradient(180deg, #d4a0a0 0%, #a07070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 0 10px rgba(180,80,80,0.2); animation: duf-walk 2s ease-in-out infinite reverse; }
.scn-duessa-false-fidessa .sun-burst { position:absolute; top:8%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #fff8e0 0%, #ffd080 40%, transparent 80%); border-radius: 50%; filter: blur(6px); animation: duf-sun 8s ease-in-out infinite alternate; }
.scn-duessa-false-fidessa .tree-bg1 { position:absolute; bottom:0; left:10%; width:15%; height:60%; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%); border-radius: 30% 30% 0 0; filter: blur(3px); animation: duf-tree 15s ease-in-out infinite; }
.scn-duessa-false-fidessa .tree-bg2 { position:absolute; bottom:0; right:5%; width:20%; height:50%; background: linear-gradient(180deg, #4a6a2a 0%, #2a4a1a 100%); border-radius: 40% 40% 0 0; filter: blur(4px); animation: duf-tree 20s ease-in-out infinite reverse; }
@keyframes duf-walk { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes duf-sun { 0% { opacity: 0.8; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.85; transform: scale(0.95); } }
@keyframes duf-tree { 0% { transform: rotate(0); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0); } }

/* item-bleeding-bough-fradubio */
.scn-item-bleeding-bough-fradubio { background: linear-gradient(180deg, #2a4a2a 0%, #4a6a3a 40%, #6a8a4a 80%, #3a5a2a 100%), radial-gradient(ellipse at 40% 50%, #8aba6a 0%, transparent 70%); }
.scn-item-bleeding-bough-fradubio .forest-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8aba6a 0%, #4a6a3a 60%, transparent 100%); animation: itb-sky 12s ease-in-out infinite alternate; }
.scn-item-bleeding-bough-fradubio .bg-trees { position:absolute; bottom:10%; left:0; right:0; height:60%; background: linear-gradient(90deg, #3a5a2a 0%, #2a4a1a 30%, #4a6a2a 60%, #2a4a1a 100%); border-radius: 20% 80% 0 0 / 50% 50% 0 0; filter: blur(5px); }
.scn-item-bleeding-bough-fradubio .tree-trunk { position:absolute; bottom:0; left:40%; width:40px; height:70%; background: linear-gradient(90deg, #4a3a2a 0%, #6a4a3a 30%, #4a3a2a 70%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 15px rgba(0,0,0,0.3); }
.scn-item-bleeding-bough-fradubio .bleeding-bough { position:absolute; top:30%; left:42%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #8a2020 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform: rotate(-20deg); transform-origin: bottom left; animation: itb-bough 6s ease-in-out infinite; }
.scn-item-bleeding-bough-fradubio .knight-standing { position:absolute; bottom:15%; left:55%; width:28px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: itb-knight 8s ease-in-out infinite; }
.scn-item-bleeding-bough-fradubio .ground-moss { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%); border-radius: 30% 70% 0 0 / 40% 40% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.4); }
.scn-item-bleeding-bough-fradubio .blood-drip { position:absolute; top:35%; left:44%; width:4px; height:20px; background: #8a2020; border-radius: 0 0 50% 50%; animation: itb-drip 3s ease-in-out infinite; }
@keyframes itb-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes itb-bough { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-25deg); } 100% { transform: rotate(-20deg); } }
@keyframes itb-knight { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes itb-drip { 0% { height: 20px; opacity: 1; } 50% { height: 30px; opacity: 0.8; } 100% { height: 20px; opacity: 1; } }

.scn-arthur-rescues-redcrosse {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8c88a 30%, #d4a05a 60%, #b8823a 100%),
    radial-gradient(ellipse at 60% 40%, #fff4d0 0%, transparent 50%);
}
.scn-arthur-rescues-redcrosse .sky-sun {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a8d8ea 0%, #7bb8d4 40%, transparent 100%);
  animation: ar-sky 8s ease-in-out infinite alternate;
}
.scn-arthur-rescues-redcrosse .ground-battle {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6b5a3a 0%, #4a3a22 40%, #2a1a0a 100%);
  border-radius: 20% 30% 0 0 / 10% 15% 0 0;
  animation: ar-ground 6s ease-in-out infinite alternate;
}
.scn-arthur-rescues-redcrosse .beast-shadow {
  position: absolute; bottom: 30%; left: 20%; width: 140px; height: 100px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 60% 40% 30% 70% / 50% 60% 40% 50%;
  transform: rotate(-10deg);
  animation: ar-beast 3s ease-in-out infinite alternate;
}
.scn-arthur-rescues-redcrosse .arthur-arm {
  position: absolute; bottom: 42%; left: 48%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #d4b88a 0%, #a88a5a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-arm 0.8s ease-in-out infinite alternate;
}
.scn-arthur-rescues-redcrosse .sword-strike {
  position: absolute; bottom: 48%; left: 52%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #f0e8d0 0%, #c0b090 50%, #a09070 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(240,232,208,.6);
  transform-origin: bottom center;
  animation: ar-sword 0.4s ease-in-out infinite alternate;
}
.scn-arthur-rescues-redcrosse .duessa-flee {
  position: absolute; bottom: 45%; right: 8%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ar-flee 4s ease-in-out infinite;
}
.scn-arthur-rescues-redcrosse .blood-splash {
  position: absolute; bottom: 28%; left: 25%; width: 20px; height: 20px;
  background: radial-gradient(circle, #a0461a 0%, transparent 70%);
  border-radius: 50%;
  animation: ar-blood 1.2s ease-in-out infinite alternate;
}
.scn-arthur-rescues-redcrosse .dust-cloud {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at center, rgba(180,160,120,.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: ar-dust 5s linear infinite;
}
@keyframes ar-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes ar-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes ar-beast { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } 100% { transform: rotate(-12deg) scale(.98); } }
@keyframes ar-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-15deg); } }
@keyframes ar-sword { 0% { transform: rotate(-30deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.1); } 100% { transform: rotate(-25deg) scaleY(1); } }
@keyframes ar-flee { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-8px) rotate(5deg); } 50% { transform: translateX(-16px) rotate(-3deg); } 75% { transform: translateX(-24px) rotate(4deg); } 100% { transform: translateX(-32px) rotate(0); } }
@keyframes ar-blood { 0% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(1.1); opacity: .6; } }
@keyframes ar-dust { 0% { transform: translateY(0) translateX(0); opacity: .5; } 50% { transform: translateY(-6px) translateX(10px); opacity: .3; } 100% { transform: translateY(0) translateX(20px); opacity: .5; } }

.scn-item-dungeon-keys-ignaro {
  background:
    linear-gradient(180deg, #0a0a12 0%, #14141e 30%, #1a1a2a 60%, #0e0e18 100%),
    radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 70%);
}
.scn-item-dungeon-keys-ignaro .wall-dark {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #0a0a14 0%, #141422 30%, #1a1a2a 50%, #141422 70%, #0a0a14 100%);
  animation: ig-wall 20s ease-in-out infinite alternate;
}
.scn-item-dungeon-keys-ignaro .floor-blood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #0a0000 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  animation: ig-blood 12s ease-in-out infinite alternate;
}
.scn-item-dungeon-keys-ignaro .altar-shadow {
  position: absolute; bottom: 25%; left: 35%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.8);
  animation: ig-altar 15s ease-in-out infinite alternate;
}
.scn-item-dungeon-keys-ignaro .keys-glow {
  position: absolute; bottom: 40%; left: 45%; width: 14px; height: 24px;
  background: radial-gradient(circle at 50% 40%, #f0d060 0%, #c09840 60%, transparent 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(240,208,96,.5), 0 0 40px 12px rgba(240,208,96,.2);
  animation: ig-keys 3s ease-in-out infinite alternate;
}
.scn-item-dungeon-keys-ignaro .iron-door {
  position: absolute; bottom: 15%; right: 15%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 4% 4% 2% 2% / 6% 6% 3% 3%;
  box-shadow: inset 0 2px 8px rgba(0,0,0,.6);
  animation: ig-door 9s ease-in-out infinite alternate;
}
.scn-item-dungeon-keys-ignaro .prisoner-hand {
  position: absolute; bottom: 20%; right: 18%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #c0a880 0%, #8a7050 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ig-hand 4s ease-in-out infinite;
}
.scn-item-dungeon-keys-ignaro .torch-flicker {
  position: absolute; top: 20%; left: 25%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0a030 0%, #d06020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(240,160,48,.6), 0 0 60px 20px rgba(240,160,48,.2);
  animation: ig-torch 0.8s ease-in-out infinite alternate;
}
@keyframes ig-wall { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes ig-blood { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes ig-altar { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(.99); } }
@keyframes ig-keys { 0% { transform: translateY(0) rotate(-5deg); box-shadow: 0 0 15px 4px rgba(240,208,96,.4); } 50% { transform: translateY(-3px) rotate(5deg); box-shadow: 0 0 25px 8px rgba(240,208,96,.7); } 100% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 18px 5px rgba(240,208,96,.5); } }
@keyframes ig-door { 0% { transform: scaleX(1); } 25% { transform: scaleX(.98); } 50% { transform: scaleX(1); } 75% { transform: scaleX(1.01); } 100% { transform: scaleX(1); } }
@keyframes ig-hand { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(5deg); } 50% { transform: translateY(-1px) rotate(-3deg); } 75% { transform: translateY(-4px) rotate(6deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ig-torch { 0% { transform: scaleY(1) rotate(-2deg); opacity: .9; } 50% { transform: scaleY(1.15) rotate(2deg); opacity: 1; } 100% { transform: scaleY(1.05) rotate(-1deg); opacity: .95; } }

.scn-arthur-reveals-love-quest {
  background:
    linear-gradient(180deg, #4a3020 0%, #5a3a2a 30%, #6a4a3a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 40% 50%, #8a6a4a 0%, transparent 60%);
}
.scn-arthur-reveals-love-quest .chamber-warm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #5a4a3a 30%, #3a2a1a 100%);
  animation: arl-chamber 20s ease-in-out infinite alternate;
}
.scn-arthur-reveals-love-quest .fire-glow {
  position: absolute; bottom: 20%; left: 28%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 60%, #f0a040 0%, #c07020 40%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 50px 20px rgba(240,160,64,.5), 0 0 100px 40px rgba(240,160,64,.2);
  animation: arl-fire 3s ease-in-out infinite alternate;
}
.scn-arthur-reveals-love-quest .arthur-seated {
  position: absolute; bottom: 25%; left: 32%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: arl-sit 6s ease-in-out infinite;
}
.scn-arthur-reveals-love-quest .love-vision {
  position: absolute; top: 12%; right: 20%; width: 70px; height: 90px;
  background: radial-gradient(ellipse at center, rgba(240,220,180,.4) 0%, rgba(200,180,140,.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: arl-vision 8s ease-in-out infinite alternate;
}
.scn-arthur-reveals-love-quest .diamond-box {
  position: absolute; bottom: 30%; right: 25%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #e0d8c0 0%, #c0b8a0 50%, #a09880 100%);
  border-radius: 10% 10% 15% 15% / 20% 20% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,.4), inset 0 1px 4px rgba(255,255,255,.3);
  animation: arl-box 5s ease-in-out infinite alternate;
}
.scn-arthur-reveals-love-quest .shadow-pillar {
  position: absolute; bottom: 0; left: 55%; width: 60px; height: 100%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 50%, rgba(0,0,0,.5) 100%);
  animation: arl-pillar 18s ease-in-out infinite alternate;
}
.scn-arthur-reveals-love-quest .ember-drift {
  position: absolute; bottom: 30%; left: 25%; width: 6px; height: 6px;
  background: radial-gradient(circle, #f0a040 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(240,160,64,.6);
  animation: arl-ember 4s ease-in-out infinite;
}
.scn-arthur-reveals-love-quest .tapestry-wave {
  position: absolute; top: 8%; left: 10%; width: 90px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30% / 10% 10% 20% 20%;
  filter: blur(1px);
  animation: arl-tapestry 15s ease-in-out infinite alternate;
}
@keyframes arl-chamber { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes arl-fire { 0% { transform: scale(1) rotate(-2deg); opacity: .8; } 50% { transform: scale(1.08) rotate(2deg); opacity: 1; } 100% { transform: scale(1.03) rotate(-1deg); opacity: .9; } }
@keyframes arl-sit { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes arl-vision { 0% { transform: translateY(0) scale(1); opacity: .3; } 50% { transform: translateY(-8px) scale(1.1); opacity: .6; } 100% { transform: translateY(0) scale(1); opacity: .4; } }
@keyframes arl-box { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes arl-pillar { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .4; } }
@keyframes arl-ember { 0% { transform: translate(0, 0) scale(1); opacity: .8; } 25% { transform: translate(8px, -12px) scale(1.2); opacity: 1; } 50% { transform: translate(16px, -24px) scale(.8); opacity: .6; } 75% { transform: translate(24px, -36px) scale(1.1); opacity: .9; } 100% { transform: translate(32px, -48px) scale(1); opacity: .7; } }
@keyframes arl-tapestry { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }

.scn-item-diamond-box-healing {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #d4c0a0 30%, #b8a080 60%, #8a7050 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 50%);
}
.scn-item-diamond-box-healing .sun-blast {
  position: absolute; top: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #f8f0d8 0%, #e8d8b8 40%, transparent 100%);
  animation: db-sun 10s ease-in-out infinite alternate;
}
.scn-item-diamond-box-healing .cave-mouth {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
  animation: db-cave 18s ease-in-out infinite alternate;
}
.scn-item-diamond-box-healing .terwin-corpse {
  position: absolute; bottom: 18%; left: 30%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  animation: db-corpse 20s ease-in-out infinite;
}
.scn-item-diamond-box-healing .despaire-form {
  position: absolute; bottom: 25%; right: 25%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: -4px 0 12px rgba(0,0,0,.5);
  animation: db-despaire 6s ease-in-out infinite alternate;
}
.scn-item-diamond-box-healing .redcrosse-kneel {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: db-kneel 4s ease-in-out infinite;
}
.scn-item-diamond-box-healing .diamond-gleam {
  position: absolute; bottom: 28%; left: 22%; width: 16px; height: 16px;
  background: radial-gradient(circle, #f8f4e8 0%, #c8c0b0 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(248,244,232,.5), 0 0 40px 12px rgba(248,244,232,.2);
  animation: db-gleam 2s ease-in-out infinite alternate;
}
.scn-item-diamond-box-healing .shadow-snare {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 30%;
  background: radial-gradient(ellipse at center, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: db-snare 12s ease-in-out infinite alternate;
}
.scn-item-diamond-box-healing .dust-mote {
  position: absolute; top: 20%; left: 50%; width: 4px; height: 4px;
  background: rgba(200,180,160,.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: db-dust 8s linear infinite;
}
@keyframes db-sun { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes db-cave { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes db-corpse { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes db-despaire { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes db-kneel { 0% { transform: rotate(0) scaleY(1); } 25% { transform: rotate(-3deg) scaleY(1.02); } 50% { transform: rotate(0) scaleY(1); } 75% { transform: rotate(2deg) scaleY(.98); } 100% { transform: rotate(0) scaleY(1); } }
@keyframes db-gleam { 0% { transform: scale(1); opacity: .7; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(1.1); opacity: .8; } }
@keyframes db-snare { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .4; } }
@keyframes db-dust { 0% { transform: translateY(0) translateX(0); opacity: .5; } 25% { transform: translateY(-10px) translateX(8px); opacity: .7; } 50% { transform: translateY(-20px) translateX(-4px); opacity: .4; } 75% { transform: translateY(-30px) translateX(12px); opacity: .6; } 100% { transform: translateY(-40px) translateX(0); opacity: .5; } }

/* scene 1 */
.scn-item-well-of-life-healing { background: linear-gradient(180deg, #3b1f47 0%, #7a4430 40%, #c97d4a 70%, #edd9a6 100%), radial-gradient(ellipse at 30% 20%, #edd9a6 0%, transparent 60%); }
.scn-item-well-of-life-healing .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a2d5e 0%, #b06a3a 60%, transparent 100%); animation: wlh-sky 8s ease-in-out infinite alternate; }
.scn-item-well-of-life-healing .sunrise { position:absolute; bottom:52%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #ffe082 0%, #d4953a 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(217,149,58,.5), 0 0 120px 40px rgba(217,149,58,.2); animation: wlh-sun 10s ease-in-out infinite; }
.scn-item-well-of-life-healing .well { position:absolute; bottom:8%; left:20%; width:80px; height:40px; border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: inset 0 -8px 12px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4); }
.scn-item-well-of-life-healing .well::before { content:''; position:absolute; inset:10% 10% 20% 10%; background: radial-gradient(circle, #a0d8c0 0%, #388060 60%, #1a3a2a 100%); border-radius:50%; animation: wlh-well 4s ease-in-out infinite alternate; }
.scn-item-well-of-life-healing .knight { position:absolute; bottom:20%; left:38%; width:22px; height:50px; background: linear-gradient(180deg, #404060 0%, #202040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wlh-knight 3s ease-in-out infinite; }
.scn-item-well-of-life-healing .knight::after { content:''; position:absolute; top:2px; left:50%; width:30px; height:18px; background: linear-gradient(90deg, #606080, #303050); border-radius:50% 50% 0 0; transform:translateX(-50%) rotate(-15deg); border-left:2px solid #8080a0; }
.scn-item-well-of-life-healing .dragon { position:absolute; bottom:5%; right:10%; width:120px; height:60px; background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%); border-radius: 40% 50% 30% 40% / 50% 60% 40% 50%; transform: rotate(-10deg); animation: wlh-dragon 6s ease-in-out infinite; }
.scn-item-well-of-life-healing .dragon::before { content:''; position:absolute; top:-20px; right:10px; width:30px; height:40px; background: linear-gradient(180deg, #4a4a3a, #2a2a1a); border-radius:50% 30% 50% 50%; transform: rotate(20deg); }
.scn-item-well-of-life-healing .light-beam { position:absolute; top:20%; left:30%; width:6px; height:80px; background: linear-gradient(180deg, rgba(255,224,130,.7) 0%, rgba(255,224,130,.2) 100%); border-radius:50%; filter: blur(3px); transform: rotate(10deg); animation: wlh-beam 2s ease-in-out infinite alternate; transform-origin: top center; }
@keyframes wlh-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes wlh-sun { 0%,100% { transform: translate(0,0) scale(1); box-shadow:0 0 60px 20px rgba(217,149,58,.5)} 50% { transform: translate(5px,-3px) scale(1.1); box-shadow:0 0 80px 30px rgba(217,149,58,.7)} }
@keyframes wlh-well { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.2); opacity:1 } 100% { transform: scaleY(1); opacity:.9 } }
@keyframes wlh-knight { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-10px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-8px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wlh-dragon { 0% { transform: translateX(0) rotate(-10deg) } 25% { transform: translateX(-20px) rotate(-15deg) } 50% { transform: translateX(0) rotate(-5deg) } 75% { transform: translateX(10px) rotate(-10deg) } 100% { transform: translateX(0) rotate(-10deg) } }
@keyframes wlh-beam { 0% { opacity:.3; transform: rotate(8deg) scaleY(1) } 50% { opacity:1; transform: rotate(12deg) scaleY(1.3) } 100% { opacity:.5; transform: rotate(10deg) scaleY(1) } }

/* scene 2 */
.scn-dragon-slain-triumph { background: linear-gradient(180deg, #8cb8d0 0%, #c0d8e0 40%, #f0e8c0 80%, #ffe8a0 100%), radial-gradient(ellipse at 70% 30%, #ffe8a0 0%, transparent 60%); }
.scn-dragon-slain-triumph .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0c8e0 0%, #d0e8f0 50%, transparent 100%); animation: dst-sky 15s ease-in-out infinite alternate; }
.scn-dragon-slain-triumph .sun { position:absolute; top:10%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #fff8d0 0%, #f0d060 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(240,208,96,.5), 0 0 150px 50px rgba(240,208,96,.2); animation: dst-sun 20s ease-in-out infinite; }
.scn-dragon-slain-triumph .city { position:absolute; bottom:30%; left:15%; width:70px; height:50px; background: linear-gradient(180deg, #b0a090 0%, #807060 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,.2); }
.scn-dragon-slain-triumph .city::after { content:''; position:absolute; top:10%; left:20%; width:15px; height:20px; background: #c0b0a0; border-radius:5px 5px 0 0; box-shadow: 25px 0 0 #b0a090; }
.scn-dragon-slain-triumph .crowd { position:absolute; bottom:18%; left:10%; right:20%; height:30px; background: repeating-linear-gradient(90deg, #706050 0px, #706050 4px, transparent 4px, transparent 8px); animation: dst-crowd 12s linear infinite; }
.scn-dragon-slain-triumph .dead-dragon { position:absolute; bottom:5%; left:5%; width:140px; height:30px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 40% 30% 60% 50% / 60% 40% 70% 50%; transform: rotate(-5deg); animation: dst-dragon 8s ease-in-out infinite; }
.scn-dragon-slain-triumph .dead-dragon::before { content:''; position:absolute; top:-10px; right:10px; width:40px; height:20px; background: #3a4a3a; border-radius:50% 50% 20% 20%; transform: rotate(30deg); }
.scn-dragon-slain-triumph .una-crowned { position:absolute; bottom:20%; left:50%; width:20px; height:55px; background: linear-gradient(180deg, #c09070 0%, #a07050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: dst-una 6s ease-in-out infinite; }
.scn-dragon-slain-triumph .una-crowned::after { content:''; position:absolute; top:-8px; left:50%; width:20px; height:8px; background: #d0b050; border-radius:50% 50% 0 0; transform:translateX(-50%); box-shadow: 0 2px 4px rgba(0,0,0,.3); }
@keyframes dst-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dst-sun { 0%,100% { transform: translate(0,0) } 50% { transform: translate(5px,-5px) } }
@keyframes dst-crowd { 0% { background-position:0 0 } 100% { background-position:40px 0 } }
@keyframes dst-dragon { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-7deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes dst-una { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } }

/* scene 3 */
.scn-item-fidessa-letter-deception { background: linear-gradient(180deg, #d0b088 0%, #c09870 40%, #a07850 80%, #806040 100%), radial-gradient(ellipse at 50% 70%, #e0c8a0 0%, transparent 70%); }
.scn-item-fidessa-letter-deception .bg-arch { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #b09070 0%, #907050 100%); clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); }
.scn-item-fidessa-letter-deception .throne { position:absolute; bottom:10%; left:65%; width:50px; height:60px; background: linear-gradient(180deg, #705030, #503020); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-item-fidessa-letter-deception .throne::before { content:''; position:absolute; top:-15px; left:50%; width:60px; height:20px; background: #806040; border-radius:50% 50% 0 0; transform:translateX(-50%); border-bottom:2px solid #604020; }
.scn-item-fidessa-letter-deception .knight { position:absolute; bottom:15%; left:35%; width:22px; height:55px; background: linear-gradient(180deg, #505070 0%, #303050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: fld-knight 3s ease-in-out infinite; }
.scn-item-fidessa-letter-deception .knight::after { content:''; position:absolute; top:2px; left:50%; width:28px; height:16px; background: #707090; border-radius:50% 50% 0 0; transform:translateX(-50%) rotate(10deg); }
.scn-item-fidessa-letter-deception .una { position:absolute; bottom:15%; left:55%; width:18px; height:48px; background: linear-gradient(180deg, #c09070, #a07050); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: fld-una 2.5s ease-in-out infinite; }
.scn-item-fidessa-letter-deception .messenger { position:absolute; bottom:5%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateY(-20px); animation: fld-messenger 4s ease-in-out infinite; }
.scn-item-fidessa-letter-deception .letter { position:absolute; bottom:20%; left:30%; width:12px; height:15px; background: #e0c090; border:1px solid #806040; border-radius:2px; transform-origin: bottom left; animation: fld-letter 2s ease-in-out infinite; }
@keyframes fld-knight { 0% { transform: rotate(5deg) translateY(0) } 25% { transform: rotate(8deg) translateY(-2px) } 50% { transform: rotate(3deg) translateY(0) } 75% { transform: rotate(6deg) translateY(-1px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes fld-una { 0%,100% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(2px) } }
@keyframes fld-messenger { 0% { transform: translateY(-20px) rotate(0) } 30% { transform: translateY(-18px) rotate(-3deg) } 60% { transform: translateY(-22px) rotate(2deg) } 100% { transform: translateY(-20px) rotate(0) } }
@keyframes fld-letter { 0%,100% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(10deg) scaleY(1.1) } }

/* scene 4 */
.scn-redcross-flees-phantoms { background: linear-gradient(180deg, #2a3a4a 0%, #4a5a3a 40%, #7a6a3a 70%, #9a8a6a 100%), radial-gradient(ellipse at 60% 10%, #9a8a6a 0%, transparent 70%); }
.scn-redcross-flees-phantoms .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a4a5a 0%, #5a6a4a 50%, transparent 100%); animation: rfp-sky 14s ease-in-out infinite alternate; }
.scn-redcross-flees-phantoms .tree-left { position:absolute; bottom:10%; left:5%; width:60px; height:120px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 30% 50% / 60% 50% 40% 50%; animation: rfp-tree-l 6s ease-in-out infinite; }
.scn-redcross-flees-phantoms .tree-left::before { content:''; position:absolute; top:15%; left:0; width:40px; height:60px; background: #1a2a1a; border-radius:50% 40% 60% 50%; }
.scn-redcross-flees-phantoms .tree-right { position:absolute; bottom:15%; right:8%; width:50px; height:100px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 40% 40% 60% / 50% 60% 40% 50%; animation: rfp-tree-r 8s ease-in-out infinite 2s; }
.scn-redcross-flees-phantoms .redcross { position:absolute; bottom:10%; left:40%; width:20px; height:45px; background: linear-gradient(180deg, #505070 0%, #303050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: rfp-rider 2.5s ease-in-out infinite; }
.scn-redcross-flees-phantoms .redcross::after { content:''; position:absolute; top:0; left:50%; width:30px; height:15px; background: #606080; border-radius:50% 50% 0 0; transform:translateX(-50%) rotate(15deg); }
.scn-redcross-flees-phantoms .blood-drip { position:absolute; top:20%; left:12%; width:4px; height:40px; background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%); border-radius:50%; animation: rfp-drip 3s ease-in-out infinite; }
.scn-redcross-flees-phantoms .duessa { position:absolute; bottom:10%; right:25%; width:18px; height:45px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.7; animation: rfp-duessa 5s ease-in-out infinite; }
@keyframes rfp-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes rfp-tree-l { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(3deg) } }
@keyframes rfp-tree-r { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-3deg) } }
@keyframes rfp-rider { 0% { transform: rotate(10deg) translateX(0) } 25% { transform: rotate(12deg) translateX(8px) } 50% { transform: rotate(8deg) translateX(0) } 75% { transform: rotate(10deg) translateX(-4px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes rfp-drip { 0% { height:40px; opacity:.8 } 50% { height:60px; opacity:1 } 100% { height:40px; opacity:.6 } }
@keyframes rfp-duessa { 0%,100% { opacity:.5; transform: translateY(0) } 50% { opacity:.9; transform: translateY(-5px) } }

.scn-redcross-house-of-pride-again { background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #8a6a4a 70%, #aa8a6a 100%), radial-gradient(ellipse at 50% 80%, rgba(170,138,106,0.4) 0%, transparent 60%); } 
.scn-redcross-house-of-pride-again .bg-curtain{position:absolute;inset:0 0 40% 0;background:linear-gradient(180deg,#5e1a1d 0%,#702243 40%,#8b3a3a 100%);animation:rp-curtain 12s ease-in-out infinite;opacity:.85;border-radius:0 0 40% 40%/0 0 20% 20%}
.scn-redcross-house-of-pride-again .floor{position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(180deg,#2a1a0a 0%,#4a3a2a 100%);border-radius:30% 30% 0 0}
.scn-redcross-house-of-pride-again .pillar-l{position:absolute;left:10%;top:10%;width:6%;height:70%;background:linear-gradient(90deg,#6a5a4a 0%,#8a7a6a 50%,#6a5a4a 100%);border-radius:20%/10%;box-shadow:4px 8px 16px rgba(0,0,0,0.5);animation:rp-pillar 8s ease-in-out infinite alternate}
.scn-redcross-house-of-pride-again .pillar-r{position:absolute;right:10%;top:10%;width:6%;height:70%;background:linear-gradient(90deg,#6a5a4a 0%,#8a7a6a 50%,#6a5a4a 100%);border-radius:20%/10%;box-shadow:-4px 8px 16px rgba(0,0,0,0.5);animation:rp-pillar 8s ease-in-out infinite alternate-reverse}
.scn-redcross-house-of-pride-again .throne{position:absolute;bottom:28%;left:50%;width:20%;height:30%;transform:translateX(-50%);background:linear-gradient(180deg,#b08040 0%,#8a6030 100%);border-radius:10% 10% 4% 4%;box-shadow:0 12px 24px rgba(0,0,0,0.6)}
.scn-redcross-house-of-pride-again .figure-knight{position:absolute;bottom:18%;left:34%;width:8%;height:22%;background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:rp-knight 3s ease-in-out infinite}
.scn-redcross-house-of-pride-again .figure-sansjoy{position:absolute;bottom:18%;right:34%;width:8%;height:22%;background:linear-gradient(180deg,#3a2a2a 0%,#2a1a1a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:rp-sansjoy 3s ease-in-out infinite 1.5s}
.scn-redcross-house-of-pride-again .duessa-shadow{position:absolute;top:8%;left:45%;width:10%;height:20%;background:radial-gradient(circle,rgba(80,40,60,0.6) 0%,transparent 100%);border-radius:50%;animation:rp-duessa 6s ease-in-out infinite alternate}
.scn-redcross-house-of-pride-again .light-rays{position:absolute;top:0;left:30%;width:40%;height:60%;background:linear-gradient(180deg,rgba(255,200,100,0.15) 0%,transparent 100%);clip-path:polygon(0 0,100% 0,80% 100%,20% 100%);animation:rp-rays 4s ease-in-out infinite alternate}
@keyframes rp-curtain{0%{opacity:.8}50%{opacity:1}100%{opacity:.75}}
@keyframes rp-pillar{0%{transform:translateY(0)}50%{transform:translateY(-4px)}100%{transform:translateY(0)}}
@keyframes rp-knight{0%{transform:translateX(0) rotate(0)}25%{transform:translateX(4px) rotate(-3deg)}50%{transform:translateX(0) rotate(0)}75%{transform:translateX(-4px) rotate(3deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes rp-sansjoy{0%{transform:translateX(0) rotate(0)}25%{transform:translateX(-4px) rotate(3deg)}50%{transform:translateX(0) rotate(0)}75%{transform:translateX(4px) rotate(-3deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes rp-duessa{0%{transform:translateY(0) scale(1)}50%{transform:translateY(12px) scale(0.9)}100%{transform:translateY(0) scale(1)}}
@keyframes rp-rays{0%{opacity:0.6}50%{opacity:1}100%{opacity:0.5}}

.scn-catalog-of-proud-fallen { background: linear-gradient(180deg, #0a0a1a 0%, #12122a 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%); }
.scn-catalog-of-proud-fallen .bg-dark{position:absolute;inset:0;background:linear-gradient(135deg,#0a0a1a 0%,#141428 50%,#1a1a30 100%);animation:pf-dark 30s ease-in-out infinite}
.scn-catalog-of-proud-fallen .bg-columns{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.02) 5%,rgba(255,255,255,0.04) 10%,transparent 15%);animation:pf-columns 40s linear infinite}
.scn-catalog-of-proud-fallen .floor{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(0deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:40% 40% 0 0;opacity:0.8}
.scn-catalog-of-proud-fallen .crown{position:absolute;bottom:25%;left:30%;width:15%;height:10%;background:linear-gradient(135deg,#8a6a3a 0%,#6a4a1a 100%);clip-path:polygon(20% 0%,80% 0%,70% 40%,100% 60%,70% 80%,50% 100%,30% 80%,0% 60%,30% 40%);animation:pf-crown 10s ease-in-out infinite;transform-origin:bottom center}
.scn-catalog-of-proud-fallen .scroll{position:absolute;bottom:15%;right:20%;width:30%;height:8%;background:linear-gradient(90deg,#2a1a0a 0%,#3a2a1a 20%,#2a1a0a 40%,#3a2a1a 60%,#2a1a0a 80%,#3a2a1a 100%);border-radius:50%/100%;animation:pf-scroll 15s ease-in-out infinite;opacity:0.6}
.scn-catalog-of-proud-fallen .chains{position:absolute;top:10%;left:50%;width:2%;height:50%;background:linear-gradient(180deg,#3a3a4a 0%,#5a5a6a 20%,#3a3a4a 40%,#5a5a6a 60%,#3a3a4a 80%,#5a5a6a 100%);border-radius:20%;animation:pf-chains 6s ease-in-out infinite;transform-origin:top center}
.scn-catalog-of-proud-fallen .shadow-figure{position:absolute;bottom:10%;left:50%;width:12%;height:30%;background:linear-gradient(180deg,rgba(20,20,40,0.8) 0%,rgba(10,10,20,0.9) 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;filter:blur(3px);animation:pf-figure 20s ease-in-out infinite}
@keyframes pf-dark{0%{opacity:0.9}50%{opacity:1}100%{opacity:0.85}}
@keyframes pf-columns{0%{background-position:0 0}100%{background-position:100% 0}}
@keyframes pf-crown{0%{transform:rotate(-5deg) scale(1)}25%{transform:rotate(3deg) scale(0.95)}50%{transform:rotate(-2deg) scale(1)}75%{transform:rotate(4deg) scale(0.9)}100%{transform:rotate(-5deg) scale(1)}}
@keyframes pf-scroll{0%{transform:translateY(0) scaleX(1)}50%{transform:translateY(-3px) scaleX(0.8)}100%{transform:translateY(0) scaleX(1)}}
@keyframes pf-chains{0%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}100%{transform:rotate(-2deg)}}
@keyframes pf-figure{0%{opacity:0.5;transform:translateY(0)}50%{opacity:0.7;transform:translateY(-2px)}100%{opacity:0.5;transform:translateY(0)}}

.scn-arthur-seeks-gloriane { background: linear-gradient(180deg, #1a1a2e 0%, #0a0a2a 40%, #2a2a3e 100%), radial-gradient(ellipse at 50% 60%, #2a2a3e 0%, transparent 60%); }
.scn-arthur-seeks-gloriane .bg-wall{position:absolute;inset:0;background:linear-gradient(135deg,#1a1a2a 0%,#2a2a3a 50%,#1a1a2a 100%);animation:ag-wall 20s ease-in-out infinite}
.scn-arthur-seeks-gloriane .window{position:absolute;top:15%;left:15%;width:25%;height:40%;background:linear-gradient(180deg,#0a0a2a 0%,#2a2a4e 100%);border:4px solid #3a3a4a;border-radius:10%/5%;box-shadow:inset 0 0 40px rgba(100,150,255,0.1)}
.scn-arthur-seeks-gloriane .moonlight{position:absolute;top:15%;left:15%;width:25%;height:60%;background:linear-gradient(135deg,rgba(200,200,255,0.06) 0%,rgba(200,200,255,0.02) 50%,transparent 100%);clip-path:polygon(0 0,100% 0,70% 100%,30% 100%);animation:ag-moonlight 25s ease-in-out infinite alternate}
.scn-arthur-seeks-gloriane .figure-arthur{position:absolute;bottom:20%;left:30%;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:ag-arthur 5s ease-in-out infinite;z-index:2}
.scn-arthur-seeks-gloriane .figure-redcrosse{position:absolute;bottom:20%;right:35%;width:9%;height:24%;background:linear-gradient(180deg,#2a1a1a 0%,#1a0a0a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:ag-redcrosse 5s ease-in-out infinite 2.5s;z-index:2}
.scn-arthur-seeks-gloriane .table{position:absolute;bottom:12%;left:38%;width:24%;height:6%;background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%);border-radius:10%/20%;box-shadow:0 4px 8px rgba(0,0,0,0.5);z-index:1}
@keyframes ag-wall{0%{opacity:0.9}50%{opacity:1}100%{opacity:0.85}}
@keyframes ag-moonlight{0%{opacity:0.3;transform:scale(0.95)}50%{opacity:0.6;transform:scale(1)}100%{opacity:0.4;transform:scale(0.9)}}
@keyframes ag-arthur{0%{transform:translateX(0) rotate(0)}25%{transform:translateX(2px) rotate(-1deg)}50%{transform:translateX(0) rotate(0)}75%{transform:translateX(-2px) rotate(1deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes ag-redcrosse{0%{transform:translateX(0) rotate(0)}25%{transform:translateX(-2px) rotate(1deg)}50%{transform:translateX(0) rotate(0)}75%{transform:translateX(2px) rotate(-1deg)}100%{transform:translateX(0) rotate(0)}}

.scn-gloriana-light-of-faerie { background: linear-gradient(135deg, #ffd700 0%, #ffaa00 30%, #ff8c00 60%, #cc6600 100%), radial-gradient(ellipse at 50% 70%, rgba(255,200,100,0.3) 0%, transparent 60%); }
.scn-gloriana-light-of-faerie .bg-radiant{position:absolute;inset:0;background:radial-gradient(circle at 50% 30%, rgba(255,255,200,0.2) 0%, transparent 80%);animation:gf-radiant 8s ease-in-out infinite alternate}
.scn-gloriana-light-of-faerie .throne{position:absolute;bottom:20%;left:50%;width:25%;height:35%;transform:translateX(-50%);background:linear-gradient(180deg,#d4a017 0%,#b8860b 100%);border-radius:10% 10% 5% 5%;box-shadow:0 20px 40px rgba(0,0,0,0.3)}
.scn-gloriana-light-of-faerie .figure-gloriana{position:absolute;bottom:22%;left:50%;width:12%;height:28%;transform:translateX(-50%);background:radial-gradient(circle at 50% 60%, #ffdd99 0%, #ffcc66 30%, #cc8800 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;filter:blur(1px);animation:gf-gloriana 6s ease-in-out infinite;box-shadow:0 0 80px 20px rgba(255,200,100,0.5)}
.scn-gloriana-light-of-faerie .figure-knight1{position:absolute;bottom:15%;left:20%;width:8%;height:22%;background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:gf-knight 5s ease-in-out infinite}
.scn-gloriana-light-of-faerie .figure-knight2{position:absolute;bottom:15%;right:20%;width:8%;height:22%;background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:gf-knight 5s ease-in-out infinite 2.5s}
.scn-gloriana-light-of-faerie .light-beams{position:absolute;top:0;left:0;width:100%;height:60%;background:repeating-linear-gradient(45deg,transparent 0%,rgba(255,255,200,0.05) 10%,rgba(255,255,200,0.1) 20%,transparent 30%);animation:gf-beams 15s linear infinite}
@keyframes gf-radiant{0%{opacity:0.8}50%{opacity:1}100%{opacity:0.7}}
@keyframes gf-gloriana{0%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.02)}100%{transform:translateX(-50%) scale(0.98)}}
@keyframes gf-knight{0%{transform:translateY(0) rotate(0)}25%{transform:translateY(-2px) rotate(-2deg)}50%{transform:translateY(0) rotate(0)}75%{transform:translateY(-2px) rotate(2deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes gf-beams{0%{background-position:0 0}100%{background-position:100% 0}}

/* duel-with-sansjoy – tense dawn */
.scn-duel-with-sansjoy {
  background:
    linear-gradient(180deg, #ffaa66 0%, #ff8844 20%, #cc6633 40%, #774422 70%, #332211 100%),
    radial-gradient(ellipse at 70% 40%, #ffcc88 0%, transparent 60%) 0 0 / cover;
}
.scn-duel-with-sansjoy .dsj-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffbb77 0%, #ff9955 40%, transparent 100%);
  animation: dsj-dawn 8s ease-in-out infinite alternate;
}
.scn-duel-with-sansjoy .dsj-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #554433 0%, #443322 50%, #332211 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-duel-with-sansjoy .dsj-knight-l {
  position: absolute; bottom: 18%; left: 30%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: dsj-slash-l 1.2s ease-in-out infinite alternate;
}
.scn-duel-with-sansjoy .dsj-knight-r {
  position: absolute; bottom: 18%; right: 30%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: dsj-slash-r 1.2s ease-in-out infinite alternate 0.6s;
}
.scn-duel-with-sansjoy .dsj-spark {
  position: absolute; bottom: 36%; left: 50%; width: 14px; height: 14px;
  margin-left: -7px;
  background: radial-gradient(circle, #ffeebb 0%, #ffaa44 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffaa44;
  animation: dsj-clash 0.4s ease-in-out infinite alternate;
}
.scn-duel-with-sansjoy .dsj-pavilion {
  position: absolute; bottom: 30%; left: 10%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #cc8844 0%, #aa6633 70%);
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  opacity: 0.9;
  animation: dsj-sway 6s ease-in-out infinite;
}
.scn-duel-with-sansjoy .dsj-banner {
  position: absolute; bottom: 46%; left: 42%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: dsj-flag 1.5s ease-in-out infinite alternate;
}
@keyframes dsj-dawn {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dsj-slash-l {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(15deg) scale(1.02); }
  100% { transform: rotate(-10deg); }
}
@keyframes dsj-slash-r {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(-15deg) scale(1.02); }
  100% { transform: rotate(10deg); }
}
@keyframes dsj-clash {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 5px #ffaa44; }
  50% { transform: scale(1.8); opacity: 1; box-shadow: 0 0 50px 15px #ffdd77; }
  100% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 5px #ffaa44; }
}
@keyframes dsj-sway {
  0%,100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes dsj-flag {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); }
}

/* duessa-claims-victory – bright interior, tense */
.scn-duessa-claims-victory {
  background:
    linear-gradient(180deg, #eeddbb 0%, #ddcc99 40%, #bbaa77 70%, #998866 100%),
    radial-gradient(ellipse at 50% 30%, #ffffff 0%, transparent 70%) 0 0 / cover;
}
.scn-duessa-claims-victory .dcv-bg {
  position: absolute; inset: 0 15% 0 15%;
  background: linear-gradient(180deg, #eeddcc 0%, #ccbbaa 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.15);
  border-radius: 8px;
}
.scn-duessa-claims-victory .dcv-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #bbaa99 0%, #998877 100%);
  border-radius: 30% 30% 0 0;
}
.scn-duessa-claims-victory .dcv-throne {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 60px;
  margin-left: -20px;
  background: linear-gradient(180deg, #cc9966 0%, #aa7744 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 4px 4px 8px rgba(0,0,0,0.3);
  animation: dcv-throne-pulse 3s ease-in-out infinite alternate;
}
.scn-duessa-claims-victory .dcv-duessa {
  position: absolute; bottom: 12%; left: 38%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dcv-weep 4s ease-in-out infinite;
}
.scn-duessa-claims-victory .dcv-knight {
  position: absolute; bottom: 12%; right: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: 50% 100%;
  animation: dcv-bow 6s ease-in-out infinite;
}
.scn-duessa-claims-victory .dcv-shield {
  position: absolute; bottom: 24%; right: 36%; width: 18px; height: 24px;
  background: radial-gradient(circle, #ccbb88 0%, #998866 60%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 10px 2px #bbaa77;
  animation: dcv-glow 2s ease-in-out infinite alternate;
}
.scn-duessa-claims-victory .dcv-tear {
  position: absolute; bottom: 30%; left: 36%; width: 4px; height: 10px;
  background: radial-gradient(circle, #aaaabb 0%, #667788 100%);
  border-radius: 50% 50% 30% 30%;
  animation: dcv-drop 1.8s ease-in infinite;
  box-shadow: 0 0 4px 1px #8899aa;
}
@keyframes dcv-throne-pulse {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}
@keyframes dcv-weep {
  0%,100% { transform: translateY(0) rotate(2deg); }
  25% { transform: translateY(-2px) rotate(-3deg); }
  75% { transform: translateY(-1px) rotate(3deg); }
}
@keyframes dcv-bow {
  0% { transform: rotate(0); }
  30% { transform: rotate(-8deg) translateX(-3px); }
  70% { transform: rotate(0) scale(1); }
  100% { transform: rotate(0); }
}
@keyframes dcv-glow {
  0% { box-shadow: 0 0 8px 2px #bbaa77; opacity: 0.8; }
  100% { box-shadow: 0 0 20px 6px #ddcc99; opacity: 1; }
}
@keyframes dcv-drop {
  0% { transform: translateY(0) scaleY(1); opacity: 1; }
  80% { transform: translateY(15px) scaleY(1.5); opacity: 0.6; }
  100% { transform: translateY(20px) scaleY(0.5); opacity: 0; }
}

/* aesculapius-restores-sansjoy – dark, hellish */
.scn-aesculapius-restores-sansjoy {
  background:
    linear-gradient(180deg, #1a0520 0%, #2a0a30 30%, #4a1040 60%, #2a0a20 100%),
    radial-gradient(ellipse at 60% 70%, #aa4422 0%, transparent 60%) 0 0 / cover;
}
.scn-aesculapius-restores-sansjoy .ars-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #200520 0%, #3a0a30 40%, transparent 100%);
  animation: ars-glow 10s ease-in-out infinite alternate;
}
.scn-aesculapius-restores-sansjoy .ars-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a0510 0%, #0f0308 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
}
.scn-aesculapius-restores-sansjoy .ars-chariot {
  position: absolute; bottom: 18%; left: 20%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  animation: ars-shake 3s ease-in-out infinite;
}
.scn-aesculapius-restores-sansjoy .ars-wounded {
  position: absolute; bottom: 20%; right: 30%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(20deg);
  animation: ars-twitch 4s ease-in-out infinite;
}
.scn-aesculapius-restores-sansjoy .ars-aesculapius {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  animation: ars-staff 5s ease-in-out infinite;
}
.scn-aesculapius-restores-sansjoy .ars-night {
  position: absolute; bottom: 30%; left: 15%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 60%, #0a0a1a 40%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: ars-drift 20s linear infinite;
}
.scn-aesculapius-restores-sansjoy .ars-cerberus {
  position: absolute; bottom: 10%; left: 50%; width: 40px; height: 30px;
  margin-left: -20px;
  background: linear-gradient(90deg, #1a0a0a 0%, #2a1a1a 50%, #1a0a0a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ars-lurk 6s ease-in-out infinite alternate;
}
@keyframes ars-glow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes ars-shake {
  0%,100% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  75% { transform: translateX(-3px) rotate(-2deg); }
}
@keyframes ars-twitch {
  0%,100% { transform: rotate(20deg); }
  20% { transform: rotate(25deg) translateY(-1px); }
  60% { transform: rotate(15deg) translateY(2px); }
}
@keyframes ars-staff {
  0%,100% { transform: rotate(0); }
  30% { transform: rotate(-8deg); }
  70% { transform: rotate(8deg) translateY(-2px); }
}
@keyframes ars-drift {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(20px) scale(1.05); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes ars-lurk {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}

/* una-satyrs-sylvanus – calm sunlit forest */
.scn-una-satyrs-sylvanus {
  background:
    linear-gradient(180deg, #cce4aa 0%, #aacc77 30%, #88aa55 60%, #557733 100%),
    radial-gradient(ellipse at 40% 20%, #eeffdd 0%, transparent 70%) 0 0 / cover;
}
.scn-una-satyrs-sylvanus .uss-forest {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #447733 0%, #225511 60%, #113300 100%);
  clip-path: polygon(0 0, 100% 0, 100% 70%, 70% 100%, 30% 100%, 0 70%);
  opacity: 0.8;
  animation: uss-breathe 15s ease-in-out infinite alternate;
}
.scn-una-satyrs-sylvanus .uss-sunbeam {
  position: absolute; top: 10%; left: 0; right: 0; height: 50%;
  background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, rgba(255,255,200,0.1) 100%);
  clip-path: polygon(20% 0, 80% 0, 70% 100%, 30% 100%);
  filter: blur(10px);
  animation: uss-beam 20s linear infinite;
}
.scn-una-satyrs-sylvanus .uss-una {
  position: absolute; bottom: 12%; left: 40%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #eeddcc 0%, #ccbbaa 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px 3px #ffeecc;
  animation: uss-drift 8s ease-in-out infinite;
}
.scn-una-satyrs-sylvanus .uss-satyr-1 {
  position: absolute; bottom: 8%; left: 50%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: 50% 100%;
  animation: uss-hop 3s ease-in-out infinite;
}
.scn-una-satyrs-sylvanus .uss-satyr-2 {
  position: absolute; bottom: 8%; right: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: 50% 100%;
  animation: uss-hop 3s ease-in-out infinite 1s;
}
.scn-una-satyrs-sylvanus .uss-sylvanus {
  position: absolute; bottom: 25%; left: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: 50% 100%;
  animation: uss-bow 6s ease-in-out infinite alternate;
}
.scn-una-satyrs-sylvanus .uss-flower {
  position: absolute; bottom: 5%; left: 20%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #ffccaa 0%, #cc8866 60%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 4px 6px 8px rgba(0,0,0,0.1);
  animation: uss-sway 4s ease-in-out infinite;
}
@keyframes uss-breathe {
  0% { transform: scale(0.98); opacity: 0.8; }
  100% { transform: scale(1.02); opacity: 0.9; }
}
@keyframes uss-beam {
  0% { transform: translateX(-10px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(2deg); }
  100% { transform: translateX(-10px) rotate(-2deg); }
}
@keyframes uss-drift {
  0%,100% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-3px) rotate(-3deg); }
  70% { transform: translateY(1px) rotate(2deg); }
}
@keyframes uss-hop {
  0%,100% { transform: translateY(0) scaleY(1); }
  30% { transform: translateY(-5px) scaleY(0.85); }
  70% { transform: translateY(3px) scaleY(1.1); }
}
@keyframes uss-bow {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg) translateY(-2px); }
}
@keyframes uss-sway {
  0%,100% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg) translateX(2px); }
}

/* ===== Scene: redcross-knight-quest-begins ===== */
.scn-redcross-knight-quest-begins {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 50%, #90EE90 50%, #2E8B57 100%),
              radial-gradient(circle at 70% 20%, #FFD700 0%, transparent 60%);
}
.scn-redcross-knight-quest-begins .sky   { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #B0E0E6 0%, transparent 100%); animation: rk-sky 12s ease-in-out infinite alternate; }
.scn-redcross-knight-quest-begins .sun   { position:absolute; top:8%; left:65%; width:50px; height:50px; background:radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 100%); border-radius:50%; box-shadow:0 0 40px 20px #FFD700; animation: rk-sun 8s ease-in-out infinite alternate; }
.scn-redcross-knight-quest-begins .ground{ position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #90EE90 0%, #3CB371 100%); border-radius:60% 60% 0 0; animation: rk-ground 18s ease-in-out infinite alternate; }
.scn-redcross-knight-quest-begins .knight{ position:absolute; bottom:30%; left:38%; width:24px; height:56px; background:linear-gradient(180deg, #C0C0C0 0%, #808080 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rk-knight 4s ease-in-out infinite; }
.scn-redcross-knight-quest-begins .shield-cross{ position:absolute; bottom:33%; left:36%; width:18px; height:20px; background:#a0461a; clip-path:polygon(25% 0%, 75% 0%, 100% 25%, 100% 75%, 75% 100%, 25% 100%, 0% 75%, 0% 25%); box-shadow:0 0 8px #a0461a; animation: rk-shield 3s ease-in-out infinite alternate; }
.scn-redcross-knight-quest-begins .una    { position:absolute; bottom:28%; left:50%; width:20px; height:46px; background:linear-gradient(180deg, #FFF8DC 0%, #F5DEB3 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rk-una 5s ease-in-out infinite; }
.scn-redcross-knight-quest-begins .lamb   { position:absolute; bottom:26%; left:58%; width:14px; height:18px; background:#FAEBD7; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rk-lamb 6s ease-in-out infinite; }
.scn-redcross-knight-quest-begins .cloud  { position:absolute; height:22px; background:rgba(255,255,255,0.7); border-radius:50%; filter:blur(4px); }
.scn-redcross-knight-quest-begins .cloud-a{ top:12%; left:10%; width:90px; animation: rk-cloud-drift 40s linear infinite; }
.scn-redcross-knight-quest-begins .cloud-b{ top:20%; right:5%; width:70px; animation: rk-cloud-drift 50s linear infinite reverse; }
@keyframes rk-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes rk-sun { 0%{transform:scale(1) rotate(0deg)} 50%{transform:scale(1.1) rotate(5deg)} 100%{transform:scale(0.95) rotate(-5deg)} }
@keyframes rk-ground { 0%{transform:translateY(0) scaleY(1)} 50%{transform:translateY(-3px) scaleY(0.97)} 100%{transform:translateY(2px) scaleY(1.02)} }
@keyframes rk-knight { 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(0deg)} }
@keyframes rk-shield { 0%{box-shadow:0 0 6px #a0461a; opacity:0.9} 50%{box-shadow:0 0 16px #a0461a; opacity:1} 100%{box-shadow:0 0 8px #a0461a; opacity:0.85} }
@keyframes rk-una { 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 rk-lamb { 0%{transform:translateX(0) translateY(0)} 33%{transform:translateX(4px) translateY(-3px)} 66%{transform:translateX(2px) translateY(0)} 100%{transform:translateX(0) translateY(0)} }
@keyframes rk-cloud-drift { 0%{transform:translateX(-100px)} 100%{transform:translateX(120vw)} }

/* ===== Scene: error-den-battle ===== */
.scn-error-den-battle {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2b1b3a 70%, #1a0a1a 100%),
              radial-gradient(circle at 50% 80%, #3a2a4a 0%, transparent 60%);
}
.scn-error-den-battle .bg-deep    { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 50%, #0f0f1f 0%, #000 100%); opacity:0.8; animation: eb-bg 20s ease-in-out infinite alternate; }
.scn-error-den-battle .cave-wall  { position:absolute; bottom:0; width:30%; height:80%; background:linear-gradient(180deg, #2a1a2a 0%, #0f0f0f 100%); border-radius:10% 10% 0 0; }
.scn-error-den-battle .cave-left  { left:0; transform:skewY(3deg); animation: eb-wall-left 8s ease-in-out infinite alternate; }
.scn-error-den-battle .cave-right { right:0; transform:skewY(-3deg); animation: eb-wall-right 8s ease-in-out infinite alternate; }
.scn-error-den-battle .error      { position:absolute; bottom:25%; left:40%; width:60px; height:80px; background:linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 50%, #1a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; clip-path:polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: eb-error 4s ease-in-out infinite; }
.scn-error-den-battle .poison     { position:absolute; bottom:40%; left:46%; width:8px; height:12px; background:linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%); border-radius:50%; filter:blur(1px); animation: eb-poison 3s ease-in-out infinite; }
.scn-error-den-battle .books      { position:absolute; bottom:35%; left:30%; width:12px; height:16px; background:#6a4a3a; border-radius:2px; transform:rotate(-20deg); animation: eb-books 5s ease-in-out infinite alternate; }
.scn-error-den-battle .frog       { position:absolute; bottom:20%; left:55%; width:10px; height:8px; background:#3a6a3a; border-radius:50% 50% 0 0; animation: eb-frog 2s ease-in-out infinite; }
.scn-error-den-battle .serpent    { position:absolute; bottom:15%; left:35%; width:6px; height:30px; background:#2a4a2a; border-radius:0 0 50% 50%; transform-origin:top; animation: eb-serpent 3s ease-in-out infinite; }
@keyframes eb-bg { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.5} }
@keyframes eb-wall-left { 0%{transform:skewY(3deg) translateX(0)} 50%{transform:skewY(5deg) translateX(-5px)} 100%{transform:skewY(1deg) translateX(2px)} }
@keyframes eb-wall-right { 0%{transform:skewY(-3deg) translateX(0)} 50%{transform:skewY(-5deg) translateX(5px)} 100%{transform:skewY(-1deg) translateX(-2px)} }
@keyframes eb-error { 0%{transform:rotate(-5deg) scaleY(1)} 25%{transform:rotate(5deg) scaleY(1.05)} 50%{transform:rotate(-3deg) scaleY(0.95)} 75%{transform:rotate(6deg) scaleY(1.02)} 100%{transform:rotate(0) scaleY(1)} }
@keyframes eb-poison { 0%{transform:translateY(0) scale(1); opacity:0.8} 50%{transform:translateY(-20px) scale(1.3); opacity:0.4} 100%{transform:translateY(0) scale(1); opacity:0.8} }
@keyframes eb-books { 0%{transform:rotate(-20deg) translateY(0)} 50%{transform:rotate(15deg) translateY(-8px)} 100%{transform:rotate(-25deg) translateY(3px)} }
@keyframes eb-frog { 0%{transform:translateX(0) translateY(0)} 25%{transform:translateX(6px) translateY(-4px)} 50%{transform:translateX(0) translateY(-2px)} 75%{transform:translateX(-4px) translateY(0)} 100%{transform:translateX(0) translateY(0)} }
@keyframes eb-serpent { 0%{transform:rotate(0deg) scaleY(1)} 33%{transform:rotate(30deg) scaleY(1.2)} 66%{transform:rotate(-20deg) scaleY(0.9)} 100%{transform:rotate(0deg) scaleY(1)} }

/* ===== Scene: spenserian-stanza-invented ===== */
.scn-spenserian-stanza-invented {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 70%, #1a1008 100%),
              radial-gradient(circle at 60% 40%, #5a4a3a 0%, transparent 70%);
}
.scn-spenserian-stanza-invented .bg-wall { position:absolute; inset:0; background:repeating-linear-gradient(0deg, transparent, transparent 20px, #3a2a1a 20px, #3a2a1a 21px); opacity:0.3; animation: ss-wall 30s linear infinite; }
.scn-spenserian-stanza-invented .desk   { position:absolute; bottom:10%; left:15%; right:15%; height:20%; background:linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:4px; box-shadow:0 -4px 10px rgba(0,0,0,0.5); }
.scn-spenserian-stanza-invented .paper  { position:absolute; bottom:30%; left:30%; width:40%; height:50%; background:#F5DEB3; transform:rotate(-2deg); box-shadow:2px 2px 8px rgba(0,0,0,0.4); animation: ss-paper 12s ease-in-out infinite alternate; }
.scn-spenserian-stanza-invented .quill  { position:absolute; bottom:45%; left:55%; width:4px; height:30px; background:#D2B48C; transform:rotate(15deg); transform-origin:bottom; border-radius:0 0 50% 50%; animation: ss-quill 4s ease-in-out infinite; }
.scn-spenserian-stanza-invented .inkwell{ position:absolute; bottom:42%; left:62%; width:12px; height:16px; background:#2a1a0a; border-radius:20% 20% 10% 10%; box-shadow:0 0 6px #1a1008; }
.scn-spenserian-stanza-invented .candle { position:absolute; bottom:42%; left:22%; width:10px; height:20px; background:#FFF8DC; border-radius:4px 4px 2px 2px; transform:rotate(3deg); }
.scn-spenserian-stanza-invented .flame  { position:absolute; bottom:62%; left:22%; width:6px; height:12px; background:radial-gradient(circle, #FFD700 0%, #FF8C00 60%, transparent 100%); border-radius:50% 50% 30% 30%; animation: ss-flame 2s ease-in-out infinite alternate; }
.scn-spenserian-stanza-invented .smoke  { position:absolute; bottom:70%; left:23%; width:8px; height:20px; background:rgba(200,180,150,0.3); filter:blur(3px); border-radius:50%; animation: ss-smoke 6s ease-in-out infinite; }
.scn-spenserian-stanza-invented .shadow { position:absolute; bottom:0; left:40%; width:20px; height:80%; background:rgba(0,0,0,0.4); filter:blur(5px); animation: ss-shadow 10s ease-in-out infinite alternate; }
@keyframes ss-wall { 0%{background-position:0 0} 100%{background-position:0 40px} }
@keyframes ss-paper { 0%{transform:rotate(-2deg) translateY(0)} 50%{transform:rotate(2deg) translateY(-2px)} 100%{transform:rotate(-3deg) translateY(1px)} }
@keyframes ss-quill { 0%{transform:rotate(15deg) scaleY(1)} 33%{transform:rotate(20deg) scaleY(1.05)} 66%{transform:rotate(10deg) scaleY(0.98)} 100%{transform:rotate(15deg) scaleY(1)} }
@keyframes ss-flame { 0%{transform:scaleY(1) scaleX(1); opacity:0.9} 30%{transform:scaleY(1.3) scaleX(0.8); opacity:1} 70%{transform:scaleY(0.9) scaleX(1.1); opacity:0.7} 100%{transform:scaleY(1) scaleX(1); opacity:0.9} }
@keyframes ss-smoke { 0%{transform:translateY(0) scale(1); opacity:0.3} 50%{transform:translateY(-30px) scale(2); opacity:0} 100%{transform:translateY(0) scale(1); opacity:0.3} }
@keyframes ss-shadow { 0%{transform:skewX(0deg) scaleX(1)} 50%{transform:skewX(5deg) scaleX(1.1)} 100%{transform:skewX(-3deg) scaleX(0.9)} }

/* ===== Scene: allegory-explained-queene ===== */
.scn-allegory-explained-queene {
  background: linear-gradient(180deg, #1a1008 0%, #2a1a0a 30%, #4a3a2a 70%, #1a0a00 100%),
              radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-allegory-explained-queene .bg-tapestry { position:absolute; inset:0; background:repeating-linear-gradient(90deg, transparent, transparent 30px, #3a2a1a 30px, #3a2a1a 32px); opacity:0.2; animation: ae-tapestry 40s linear infinite; }
.scn-allegory-explained-queene .desk   { position:absolute; bottom:8%; left:20%; right:20%; height:18%; background:linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:6px; box-shadow:0 -4px 12px rgba(0,0,0,0.6); }
.scn-allegory-explained-queene .letter { position:absolute; bottom:30%; left:25%; width:30%; height:40%; background:#F5DEB3; transform:rotate(-1deg); box-shadow:2px 2px 6px rgba(0,0,0,0.3); animation: ae-letter 15s ease-in-out infinite alternate; }
.scn-allegory-explained-queene .seal   { position:absolute; bottom:35%; left:42%; width:12px; height:12px; background:#a0461a; border-radius:50%; box-shadow:0 0 4px #a0461a; animation: ae-seal 5s ease-in-out infinite alternate; }
.scn-allegory-explained-queene .quill  { position:absolute; bottom:40%; left:55%; width:4px; height:28px; background:#D2B48C; transform:rotate(-10deg); transform-origin:bottom; border-radius:0 0 50% 50%; }
.scn-allegory-explained-queene .spenser{ position:absolute; bottom:12%; left:30%; width:20px; height:50px; background:linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ae-spenser 8s ease-in-out infinite; }
.scn-allegory-explained-queene .gloriana{ position:absolute; bottom:18%; right:25%; width:22px; height:60px; background:linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; clip-path:polygon(0 0, 100% 0, 80% 100%, 20% 100%); opacity:0.7; animation: ae-gloriana 12s ease-in-out infinite alternate; }
.scn-allegory-explained-queene .lamp   { position:absolute; bottom:45%; left:10%; width:14px; height:18px; background:radial-gradient(circle, #FFD700 0%, #B8860B 100%); border-radius:50% 50% 40% 40%; box-shadow:0 0 20px 6px #FFD700; animation: ae-lamp 6s ease-in-out infinite alternate; }
.scn-allegory-explained-queene .books  { position:absolute; bottom:10%; left:5%; width:8px; height:14px; background:#6a4a3a; border-radius:2px; transform:rotate(10deg); animation: ae-books 20s ease-in-out infinite; }
@keyframes ae-tapestry { 0%{background-position:0 0} 100%{background-position:60px 0} }
@keyframes ae-letter { 0%{transform:rotate(-1deg) translateY(0)} 50%{transform:rotate(1deg) translateY(-3px)} 100%{transform:rotate(-2deg) translateY(1px)} }
@keyframes ae-seal { 0%{box-shadow:0 0 4px #a0461a; opacity:0.8} 50%{box-shadow:0 0 12px #a0461a; opacity:1} 100%{box-shadow:0 0 6px #a0461a; opacity:0.7} }
@keyframes ae-spenser { 0%{transform:translateY(0) rotate(-2deg)} 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 ae-gloriana { 0%{transform:rotate(-3deg) scaleY(1); opacity:0.6} 50%{transform:rotate(3deg) scaleY(1.05); opacity:0.8} 100%{transform:rotate(0) scaleY(0.95); opacity:0.5} }
@keyframes ae-lamp { 0%{box-shadow:0 0 15px 4px #FFD700; opacity:0.8} 50%{box-shadow:0 0 30px 10px #FFD700; opacity:1} 100%{box-shadow:0 0 20px 6px #FFD700; opacity:0.7} }
@keyframes ae-books { 0%{transform:rotate(10deg) translateY(0)} 33%{transform:rotate(-5deg) translateY(-4px)} 66%{transform:rotate(15deg) translateY(2px)} 100%{transform:rotate(10deg) translateY(0)} }
/* end per-scene blocks */
