/* 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-marriage-settlement-clause {
  background: linear-gradient(180deg, #1a1410 0%, #2a2218 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-marriage-settlement-clause .bg-ms {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #2a2218 0%, #3a2e22 50%, #2a2218 100%);
}
.scn-marriage-settlement-clause .desk-ms {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2e22 100%);
  border-radius: 2px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-marriage-settlement-clause .paper-ms {
  position: absolute; bottom: 28%; left: 38%; right: 38%; height: 8%;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b89a 100%);
  border-radius: 1px; transform: rotate(-1deg);
  animation: ms4-unroll 8s ease-in-out infinite;
}
.scn-marriage-settlement-clause .quill-ms {
  position: absolute; bottom: 32%; left: 45%; width: 2px; height: 16px;
  background: #4a3a2a;
  border-radius: 1px;
  animation: ms4-quill 5s ease-in-out infinite alternate;
}
.scn-marriage-settlement-clause .candle-ms {
  position: absolute; bottom: 32%; left: 60%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8a878 100%);
  border-radius: 2px 2px 0 0;
}
.scn-marriage-settlement-clause .figure-walter {
  position: absolute; bottom: 26%; left: 25%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ms4-still 6s ease-in-out infinite;
}
.scn-marriage-settlement-clause .figure-wife {
  position: absolute; bottom: 26%; left: 55%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ms4-still 6s ease-in-out infinite alternate;
}
.scn-marriage-settlement-clause .glow-ms {
  position: absolute; bottom: 30%; left: 60%; width: 30px; height: 30px; transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(232,216,184,.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: ms4-glow 4s ease-in-out infinite alternate;
}
@keyframes ms4-unroll {
  0% { transform: scaleX(0.8) rotate(-1deg); opacity: 0.7; }
  50% { transform: scaleX(1) rotate(-1deg); opacity: 1; }
  100% { transform: scaleX(0.8) rotate(-1deg); opacity: 0.7; }
}
@keyframes ms4-quill {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes ms4-still {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ms4-glow {
  0% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.9); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
  100% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.95); }
}

/* paris-tour-garonne-speed — calm, sunlit, wide horizon with speeding chaise */

/* scene: sermon-characters */
.scn-sermon-characters {
  background: linear-gradient(180deg, #1a0f0a 0%, #4a2818 40%, #6a3a22 70%, #2a1a12 100%), radial-gradient(ellipse at 50% 60%, #8a4a2a 0%, transparent 60%);
}
.scn-sermon-characters .bg-fire { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a4a2a 0%, transparent 100%); opacity:0.6; animation: sc-bgfire 6s ease-in-out infinite alternate; }
.scn-sermon-characters .pulpit { position:absolute; bottom:10%; left:25%; width:80px; height:120px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-sermon-characters .preacher { position:absolute; bottom:15%; left:30%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: sc-preacher 4s ease-in-out infinite; }
.scn-sermon-characters .widow { position:absolute; bottom:10%; left:55%; width:22px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.85); animation: sc-widow 6s ease-in-out infinite alternate; }
.scn-sermon-characters .fire { position:absolute; bottom:8%; left:20%; width:24px; height:40px; background: radial-gradient(ellipse at 50% 100%, #e08030 0%, #c86020 40%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: sc-fire 2s ease-in-out infinite alternate; }
.scn-sermon-characters .light-ray { position:absolute; top:0; left:20%; width:120px; height:100%; background: linear-gradient(180deg, rgba(255,180,80,0.2) 0%, transparent 100%); transform: skewX(-15deg); animation: sc-lightray 8s ease-in-out infinite; }
@keyframes sc-bgfire { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes sc-preacher { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes sc-widow { 0% { transform: scale(0.85) translateX(0); } 50% { transform: scale(0.90) translateX(3px); } 100% { transform: scale(0.85) translateX(0); } }
@keyframes sc-fire { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.15); } 100% { opacity:0.8; transform: scaleY(1); } }
@keyframes sc-lightray { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

/* scene: sermon-conclusion */
.scn-sermon-conclusion {
  background: linear-gradient(180deg, #1a0f0a 0%, #4a2818 30%, #2a1a12 70%, #0f0806 100%), radial-gradient(ellipse at 50% 50%, #7a3a22 0%, transparent 50%);
}
.scn-sermon-conclusion .bg-deep { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a12 0%, transparent 100%); animation: scl-bg 10s ease-in-out infinite alternate; }
.scn-sermon-conclusion .desk { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #5a3828 0%, #3a2218 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-sermon-conclusion .book { position:absolute; bottom:25%; left:35%; width:80px; height:60px; background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4% 4% 2% 2%; transform: rotate(-2deg); animation: scl-book 8s ease-in-out infinite; }
.scn-sermon-conclusion .candle { position:absolute; bottom:30%; left:55%; width:10px; height:50px; background: linear-gradient(180deg, #d0b070 0%, #8a6a3a 100%); border-radius: 20% 20% 5% 5%; }
.scn-sermon-conclusion .flame { position:absolute; bottom:72%; left:57%; width:8px; height:16px; background: radial-gradient(ellipse at 50% 20%, #ffd0a0 0%, #e08030 50%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: scl-flame 2s ease-in-out infinite alternate; }
.scn-sermon-conclusion .hand { position:absolute; bottom:20%; left:30%; width:16px; height:30px; background: linear-gradient(180deg, #5a3828 0%, #3a2218 100%); border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%; transform: rotate(15deg); animation: scl-hand 5s ease-in-out infinite; }
.scn-sermon-conclusion .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, #0a0503 100%); animation: scl-shadow 6s ease-in-out infinite alternate; }
@keyframes scl-bg { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes scl-book { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes scl-flame { 0% { transform: scaleY(1) rotate(-5deg); } 50% { transform: scaleY(1.2) rotate(2deg); } 100% { transform: scaleY(1) rotate(5deg); } }
@keyframes scl-hand { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes scl-shadow { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* scene: sermon-religion-morality */
.scn-sermon-religion-morality {
  background: linear-gradient(180deg, #1a1210 0%, #4a2a1a 40%, #2a1a12 80%, #0f0806 100%), radial-gradient(ellipse at 50% 30%, #7a3a22 0%, transparent 70%);
}
.scn-sermon-religion-morality .bg-shadow { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a1a12 0%, transparent 100%); animation: srm-bgshadow 12s ease-in-out infinite alternate; }
.scn-sermon-religion-morality .scale-left { position:absolute; bottom:30%; left:20%; width:40px; height:40px; background: linear-gradient(135deg, #8a6a3a 0%, #5a3828 100%); border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: srm-scaleleft 4s ease-in-out infinite alternate; }
.scn-sermon-religion-morality .scale-right { position:absolute; bottom:30%; right:20%; width:40px; height:40px; background: linear-gradient(135deg, #8a6a3a 0%, #5a3828 100%); border-radius: 50% 50% 0 0; transform: rotate(10deg); animation: srm-scaleright 4s ease-in-out infinite alternate; }
.scn-sermon-religion-morality .balance { position:absolute; bottom:48%; left:50%; width:80px; height:8px; background: linear-gradient(90deg, #b08040 0%, #6a4a3a 100%); transform: translateX(-50%); border-radius: 20%; }
.scn-sermon-religion-morality .gavel { position:absolute; bottom:20%; left:45%; width:12px; height:30px; background: linear-gradient(180deg, #5a3828 0%, #3a2218 100%); border-radius: 20%; transform: rotate(15deg); animation: srm-gavel 6s ease-in-out infinite; }
.scn-sermon-religion-morality .light-source { position:absolute; top:5%; left:45%; width:30px; height:30px; background: radial-gradient(circle, #ffd0a0 0%, #e08030 40%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: srm-lightsrc 3s ease-in-out infinite alternate; }
@keyframes srm-bgshadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes srm-scaleleft { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes srm-scaleright { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(3px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes srm-gavel { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(5px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes srm-lightsrc { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }

/* scene: sermon-blessing */
.scn-sermon-blessing {
  background: linear-gradient(180deg, #1a0f0a 0%, #4a2818 30%, #6a3a22 60%, #2a1a12 100%), radial-gradient(ellipse at 50% 40%, #8a4a2a 0%, transparent 60%);
}
.scn-sermon-blessing .bg-warm { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6a3a22 0%, transparent 100%); opacity:0.5; animation: sb-bgwarm 8s ease-in-out infinite alternate; }
.scn-sermon-blessing .hands-up { position:absolute; bottom:30%; left:50%; width:40px; height:60px; background: linear-gradient(180deg, #5a3828 0%, #3a2218 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; transform: translateX(-50%); animation: sb-hands 5s ease-in-out infinite; }
.scn-sermon-blessing .halo { position:absolute; bottom:58%; left:50%; width:60px; height:60px; background: radial-gradient(circle, #ffd0a0 0%, #e08030 40%, transparent 70%); border-radius: 50%; transform: translateX(-50%); filter: blur(8px); animation: sb-halo 4s ease-in-out infinite alternate; }
.scn-sermon-blessing .ray-left { position:absolute; bottom:50%; left:10%; width:40%; height:8px; background: linear-gradient(90deg, transparent 0%, rgba(255,180,80,0.2) 100%); transform: rotate(20deg); transform-origin: bottom left; animation: sb-rayleft 6s ease-in-out infinite alternate; }
.scn-sermon-blessing .ray-right { position:absolute; bottom:50%; right:10%; width:40%; height:8px; background: linear-gradient(90deg, rgba(255,180,80,0.2) 0%, transparent 100%); transform: rotate(-20deg); transform-origin: bottom right; animation: sb-rayright 6s ease-in-out infinite alternate; }
.scn-sermon-blessing .figure-low { position:absolute; bottom:5%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.7); opacity:0.5; animation: sb-figurelow 10s ease-in-out infinite; }
@keyframes sb-bgwarm { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes sb-hands { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes sb-halo { 0% { opacity:0.3; transform: translateX(-50%) scale(1); } 50% { opacity:0.7; transform: translateX(-50%) scale(1.1); } 100% { opacity:0.5; transform: translateX(-50%) scale(1); } }
@keyframes sb-rayleft { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes sb-rayright { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes sb-figurelow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-sermon-introduction {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #6a3a2a 70%, #3a1a0a 100%),
    radial-gradient(ellipse at 40% 60%, rgba(255,140,40,0.3) 0%, transparent 70%);
}
.scn-sermon-introduction .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #1a0a00 0%, #3a1a0a 60%, #2a0a00 100%); }
.scn-sermon-introduction .fireplace { position:absolute; bottom:10%; left:50%; width:120px; height:200px; transform:translateX(-120%); background:linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:20px 20px 0 0; box-shadow:inset 0 -20px 30px rgba(0,0,0,0.6); }
.scn-sermon-introduction .fire-glow { position:absolute; bottom:10%; left:50%; width:100px; height:160px; transform:translateX(-120%); background:radial-gradient(ellipse, #ff8030 0%, #ff6020 40%, transparent 70%); animation:si-fireglow 0.8s ease-in-out infinite alternate; border-radius:50%; }
.scn-sermon-introduction .figure { position:absolute; bottom:10%; width:50px; height:180px; background:linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-sermon-introduction .father { left:20%; transform:rotate(-5deg); animation:si-father 4s ease-in-out infinite; }
.scn-sermon-introduction .slop { right:20%; transform:rotate(3deg); animation:si-slop 4s ease-in-out infinite 2s; }
.scn-sermon-introduction .table { position:absolute; bottom:10%; left:50%; width:160px; height:20px; transform:translateX(-50%); background:linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:4px; }
.scn-sermon-introduction .candle { position:absolute; bottom:12%; left:35%; width:8px; height:40px; background:linear-gradient(180deg, #e8d8c0 0%, #8a7a6a 100%); border-radius:2px; animation:si-candle 3s ease-in-out infinite; }
.scn-sermon-introduction .candle-glow { position:absolute; bottom:14%; left:35%; width:30px; height:30px; transform:translate(-50%,0); background:radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%); animation:si-candle-glow 2s ease-in-out infinite alternate; }
.scn-sermon-introduction .smoke { position:absolute; bottom:30%; left:35%; width:20px; height:40px; background:radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 70%); filter:blur(6px); animation:si-smoke 12s linear infinite; }
@keyframes si-fireglow { 0% { opacity:0.7; transform: translateX(-120%) scale(1); } 100% { opacity:1; transform: translateX(-120%) scale(1.05); } }
@keyframes si-father { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-5px); } }
@keyframes si-slop { 0%,100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-4px); } }
@keyframes si-candle { 0%,100% { opacity:0.9; transform: scaleY(1); } 50% { opacity:0.7; transform: scaleY(0.95); } }
@keyframes si-candle-glow { 0% { opacity:0.4; transform: translate(-50%,0) scale(0.8); } 100% { opacity:0.8; transform: translate(-50%,0) scale(1.1); } }
@keyframes si-smoke { 0% { transform: translateY(0) scaleX(1); opacity:0.3; } 50% { transform: translateY(-60px) scaleX(1.5); opacity:0.1; } 100% { transform: translateY(-120px) scaleX(2); opacity:0; } }

.scn-trim-attitude {
  background:
    linear-gradient(180deg, #3a1a0a 0%, #4a2a1a 40%, #2a0a00 100%),
    radial-gradient(ellipse at 60% 70%, rgba(255,140,40,0.25) 0%, transparent 60%);
}
.scn-trim-attitude .wall { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); }
.scn-trim-attitude .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-trim-attitude .trim-silhouette { position:absolute; bottom:25%; left:50%; width:40px; height:170px; transform:translateX(-50%); background:linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation:ta-trim 3s ease-in-out infinite; }
.scn-trim-attitude .trim-arm-left { position:absolute; bottom:50%; left:48%; width:30px; height:12px; background:linear-gradient(180deg, #0a0a0a, #1a1a1a); border-radius:50%; transform-origin: right center; transform:rotate(-30deg); animation:ta-arm-left 1.5s ease-in-out infinite alternate; }
.scn-trim-attitude .trim-arm-right { position:absolute; bottom:50%; left:52%; width:30px; height:12px; background:linear-gradient(180deg, #0a0a0a, #1a1a1a); border-radius:50%; transform-origin: left center; transform:rotate(20deg); animation:ta-arm-right 1.8s ease-in-out infinite alternate; }
.scn-trim-attitude .firelight-spot { position:absolute; bottom:25%; left:50%; width:100px; height:150px; transform:translateX(-50%); background:radial-gradient(ellipse, rgba(255,180,80,0.2) 0%, transparent 70%); animation:ta-spot 4s ease-in-out infinite alternate; }
.scn-trim-attitude .shadow { position:absolute; bottom:0; left:40%; width:120px; height:40px; background:radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation:ta-shadow 3s ease-in-out infinite; }
@keyframes ta-trim { 0%,100% { transform: translateX(-50%) rotate(0deg) translateY(0); } 25% { transform: translateX(-50%) rotate(-2deg) translateY(-3px); } 75% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } }
@keyframes ta-arm-left { 0% { transform: rotate(-25deg) scaleX(1); } 100% { transform: rotate(-35deg) scaleX(1.1); } }
@keyframes ta-arm-right { 0% { transform: rotate(15deg) scaleX(1); } 100% { transform: rotate(25deg) scaleX(1.05); } }
@keyframes ta-spot { 0% { opacity:0.3; transform: translateX(-50%) scale(0.9); } 100% { opacity:0.6; transform: translateX(-50%) scale(1.1); } }
@keyframes ta-shadow { 0%,100% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.2); opacity:0.8; } }

.scn-sermon-begins {
  background:
    linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 50%, #2a0a00 100%),
    radial-gradient(ellipse at 50% 40%, rgba(255,200,100,0.3) 0%, transparent 60%);
}
.scn-sermon-begins .pulpit-bg { position:absolute; inset:0; background:linear-gradient(180deg, #2a0a00 0%, #4a1a0a 100%); }
.scn-sermon-begins .pulpit { position:absolute; bottom:15%; left:50%; width:100px; height:150px; transform:translateX(-50%); background:linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%); border-radius:10px 10px 0 0; box-shadow:0 10px 20px rgba(0,0,0,0.5); }
.scn-sermon-begins .book { position:absolute; bottom:25%; left:50%; width:40px; height:30px; transform:translateX(-50%); background:linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,0.3); animation:sb-book 6s ease-in-out infinite; }
.scn-sermon-begins .trim-bowing { position:absolute; bottom:10%; left:30%; width:35px; height:150px; background:linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; transform:rotate(20deg); animation:sb-bow 4s ease-in-out infinite; }
.scn-sermon-begins .candle-left { position:absolute; bottom:18%; left:42%; width:6px; height:30px; background:linear-gradient(180deg, #e8d8c0 0%, #8a7a6a 100%); border-radius:2px; animation:sb-candle 2.5s ease-in-out infinite; }
.scn-sermon-begins .candle-right { position:absolute; bottom:18%; left:58%; width:6px; height:30px; background:linear-gradient(180deg, #e8d8c0 0%, #8a7a6a 100%); border-radius:2px; animation:sb-candle 2.5s ease-in-out infinite 1.2s; }
.scn-sermon-begins .warm-halo { position:absolute; bottom:15%; left:50%; width:200px; height:200px; transform:translateX(-50%); background:radial-gradient(circle, rgba(255,180,80,0.2) 0%, transparent 70%); animation:sb-halo 5s ease-in-out infinite alternate; }
@keyframes sb-book { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes sb-bow { 0%,100% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-5px); } }
@keyframes sb-candle { 0%,100% { opacity:0.8; } 50% { opacity:0.6; } }
@keyframes sb-halo { 0% { opacity:0.3; transform: translateX(-50%) scale(0.9); } 100% { opacity:0.5; transform: translateX(-50%) scale(1.1); } }

.scn-sermon-interruption {
  background:
    linear-gradient(180deg, #1a0a00 0%, #2a0a00 50%, #0a0000 100%),
    radial-gradient(ellipse at 70% 50%, rgba(200,60,20,0.2) 0%, transparent 60%);
}
.scn-sermon-interruption .cell-bg { position:absolute; inset:0; background:linear-gradient(180deg, #0a0000 0%, #1a0a00 100%); }
.scn-sermon-interruption .bars { position:absolute; inset:0; background:repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(100,80,60,0.4) 40px, rgba(100,80,60,0.4) 45px); animation:si-bars 10s linear infinite; }
.scn-sermon-interruption .slop-silhouette { position:absolute; bottom:20%; right:10%; width:50px; height:180px; background:linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(2deg); animation:si-slop-shape 3s ease-in-out infinite; }
.scn-sermon-interruption .hand-pointing { position:absolute; bottom:50%; right:8%; width:8px; height:30px; background:linear-gradient(180deg, #0a0a1a, #1a1a2a); border-radius:50%; transform:rotate(-40deg); transform-origin: bottom center; animation:si-point 1.5s ease-in-out infinite alternate; }
.scn-sermon-interruption .shadow-inquisitor { position:absolute; bottom:10%; left:10%; width:60px; height:200px; background:linear-gradient(180deg, #0a0000 0%, #1a0a00 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; opacity:0.7; animation:si-inq 4s ease-in-out infinite; }
.scn-sermon-interruption .torch-glow { position:absolute; bottom:20%; left:80%; width:80px; height:80px; background:radial-gradient(circle, rgba(200,80,20,0.4) 0%, transparent 70%); animation:si-torch 1.2s ease-in-out infinite alternate; }
.scn-sermon-interruption .flicker-line { position:absolute; bottom:30%; left:5%; width:20px; height:2px; background:rgba(200,60,20,0.6); border-radius:2px; box-shadow:0 0 10px rgba(200,60,20,0.3); animation:si-flicker 0.3s linear infinite; }
@keyframes si-bars { 0% { transform: translateX(0); } 100% { transform: translateX(-45px); } }
@keyframes si-slop-shape { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-4px); } }
@keyframes si-point { 0% { transform: rotate(-35deg) scaleX(1); } 100% { transform: rotate(-45deg) scaleX(1.2); } }
@keyframes si-inq { 0%,100% { transform: translateX(0) scaleY(1); opacity:0.7; } 50% { transform: translateX(5px) scaleY(0.95); opacity:0.9; } }
@keyframes si-torch { 0% { opacity:0.3; transform: scale(0.9); } 100% { opacity:0.6; transform: scale(1.1); } }
@keyframes si-flicker { 0%,100% { opacity:0.8; } 50% { opacity:0.2; } }

/* trim-plan */
.scn-trim-plan { background:
  linear-gradient(180deg, #2a1a1a 0%, #3a2720 40%, #4a3028 100%),
  radial-gradient(ellipse at 50% 80%, #8a4a30 0%, transparent 60%);
}
.scn-trim-plan .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #4a3028 0%, #3a2018 100%); }
.scn-trim-plan .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #2a1a12 0%, #3a2218 100%); }
.scn-trim-plan .fireplace { position:absolute; bottom:30%; left:50%; width:120px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 10% 10% 4% 4%; box-shadow: -6px 0 12px rgba(0,0,0,.4), 6px 0 12px rgba(0,0,0,.4); }
.scn-trim-plan .fire { position:absolute; bottom:28%; left:50%; width:60px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #ffa050 0%, #ff6030 40%, #8a3010 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 15px #ff7030; animation: tp-fire 2s ease-in-out infinite alternate; }
.scn-trim-plan .trim { position:absolute; bottom:29%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tp-trim-talk 4s ease-in-out infinite; }
.scn-trim-plan .toby { position:absolute; bottom:28%; left:55%; width:32px; height:72px; background: linear-gradient(180deg, #3a2218 0%, #2a1208 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tp-toby-listen 3s ease-in-out infinite alternate; }
.scn-trim-plan .chair { position:absolute; bottom:30%; right:20%; width:40px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 10% 10% 20% 20%; transform: rotate(-5deg); }
.scn-trim-plan .table { position:absolute; bottom:30%; left:40%; width:50px; height:10px; background: #4a2a1a; border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
@keyframes tp-fire  { 0% { transform: translateX(-50%) scale(1); opacity:.9 } 50% { transform: translateX(-50%) scale(1.08, .95); opacity:1 } 100% { transform: translateX(-50%) scale(1); opacity:.85 } }
@keyframes tp-trim-talk { 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 tp-toby-listen { 0% { transform: translateY(0) rotate(0) } 100% { transform: translateY(-2px) rotate(3deg) } }

/* trim-plan-accepted */
.scn-trim-plan-accepted { background:
  linear-gradient(180deg, #2a1a1a 0%, #3a2720 40%, #4a3028 100%),
  radial-gradient(ellipse at 50% 80%, #b06030 0%, transparent 60%);
}
.scn-trim-plan-accepted .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #4a3028 0%, #3a2018 100%); }
.scn-trim-plan-accepted .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #2a1a12 0%, #3a2218 100%); }
.scn-trim-plan-accepted .fireplace { position:absolute; bottom:30%; left:50%; width:120px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 10% 10% 4% 4%; }
.scn-trim-plan-accepted .fire.flare { position:absolute; bottom:28%; left:50%; width:70px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #ffb060 0%, #ff8030 40%, #a03010 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 60px 20px #ff9040; animation: tpa-fire 1.5s ease-in-out infinite alternate, tpa-flare 3s ease-in-out infinite; }
.scn-trim-plan-accepted .toby-jump { position:absolute; bottom:28%; left:55%; width:32px; height:72px; background: linear-gradient(180deg, #3a2218 0%, #2a1208 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tpa-toby-jump 0.8s ease-in-out infinite; }
.scn-trim-plan-accepted .trim-point { position:absolute; bottom:29%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tpa-trim-point 1.2s ease-in-out infinite; }
.scn-trim-plan-accepted .spade { position:absolute; bottom:32%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%); border-radius: 10% 10% 40% 40%; transform: rotate(25deg); animation: tpa-spade 1s ease-in-out infinite alternate; }
.scn-trim-plan-accepted .coin { position:absolute; bottom:36%; left:60%; width:12px; height:12px; background: radial-gradient(circle, #d0a050 0%, #b08030 100%); border-radius: 50%; box-shadow: 0 0 10px 3px #c09040; animation: tpa-coin 0.6s ease-in-out infinite alternate; }
@keyframes tpa-fire  { 0% { transform: translateX(-50%) scale(1); opacity:.8 } 100% { transform: translateX(-50%) scale(1.1, .9); opacity:1 } }
@keyframes tpa-flare { 0% { box-shadow: 0 0 40px 15px #ff7030 } 50% { box-shadow: 0 0 80px 30px #ff9040 } 100% { box-shadow: 0 0 40px 15px #ff7030 } }
@keyframes tpa-toby-jump { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-12px) rotate(-5deg) } 50% { transform: translateY(0) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tpa-trim-point { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(10deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(5px) rotate(10deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tpa-spade { 0% { transform: rotate(20deg) } 100% { transform: rotate(30deg) } }
@keyframes tpa-coin { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-8px) scale(1.2) } }

/* shandy-hall-bowling-green */
.scn-shandy-hall-bowling-green { background:
  linear-gradient(180deg, #0a1a2a 0%, #1a2a3e 40%, #2a3a4a 100%),
  radial-gradient(ellipse at 70% 20%, #2a4a6a 0%, transparent 60%);
}
.scn-shandy-hall-bowling-green .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(0deg, #1a2a3e 0%, #0a1a2a 100%); animation: shbg-sky 15s ease-in-out infinite alternate; }
.scn-shandy-hall-bowling-green .stars { position:absolute; width:3px; height:3px; background: #e0e8ff; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,255,255,.5); }
.scn-shandy-hall-bowling-green .star-1 { top:15%; left:20%; animation: shbg-twinkle 3s ease-in-out infinite; }
.scn-shandy-hall-bowling-green .star-2 { top:25%; right:30%; animation: shbg-twinkle 5s ease-in-out infinite 1s; }
.scn-shandy-hall-bowling-green .house { position:absolute; bottom:40%; left:15%; width:100px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 100%); border-radius: 8% 8% 4% 4%; box-shadow: -4px 4px 12px rgba(0,0,0,.6); }
.scn-shandy-hall-bowling-green .green { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #1a3a1a 0%, #2a5a2a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-shandy-hall-bowling-green .tree { position:absolute; bottom:38%; width:30px; height:60px; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; }
.scn-shandy-hall-bowling-green .tree-1 { left:35%; animation: shbg-tree 20s ease-in-out infinite; }
.scn-shandy-hall-bowling-green .tree-2 { right:20%; transform: scale(0.9); animation: shbg-tree 25s ease-in-out infinite 5s; }
.scn-shandy-hall-bowling-green .lantern { position:absolute; bottom:38%; left:50%; width:8px; height:12px; background: radial-gradient(circle, #ffd080 0%, #b08030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px #ffc060; animation: shbg-lantern 4s ease-in-out infinite alternate; }
@keyframes shbg-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes shbg-twinkle { 0% { opacity:0.3; transform:scale(0.8) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:0.3; transform:scale(0.8) } }
@keyframes shbg-tree { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes shbg-lantern { 0% { box-shadow: 0 0 15px 5px #ffc060; opacity:0.9 } 50% { box-shadow: 0 0 30px 15px #ffd080; opacity:1 } 100% { box-shadow: 0 0 20px 8px #ffc060; opacity:0.95 } }

/* return-to-parlour */
.scn-return-to-parlour { background:
  linear-gradient(180deg, #2a1a1a 0%, #3a2720 40%, #4a3028 100%),
  radial-gradient(ellipse at 50% 80%, #7a3a20 0%, transparent 60%);
}
.scn-return-to-parlour .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #4a3028 0%, #3a2018 100%); }
.scn-return-to-parlour .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #2a1a12 0%, #3a2218 100%); }
.scn-return-to-parlour .hearth { position:absolute; bottom:30%; left:50%; width:150px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 10% 10% 5% 5%; }
.scn-return-to-parlour .fire { position:absolute; bottom:28%; left:50%; width:50px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #ffa050 0%, #ff6030 40%, #8a3010 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 12px #ff7030; animation: rtp-fire 2s ease-in-out infinite alternate; }
.scn-return-to-parlour .window { position:absolute; top:10%; right:10%; width:60px; height:80px; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3e 100%); border: 6px solid #3a2218; border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 10px rgba(0,0,0,.5); }
.scn-return-to-parlour .toby-sit { position:absolute; bottom:28%; left:45%; width:34px; height:70px; background: linear-gradient(180deg, #3a2218 0%, #2a1208 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rtp-toby 6s ease-in-out infinite; }
.scn-return-to-parlour .trim-stand { position:absolute; bottom:26%; right:25%; width:30px; height:75px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rtp-trim 5s ease-in-out infinite alternate; }
.scn-return-to-parlour .book { position:absolute; bottom:30%; left:20%; width:40px; height:30px; background: linear-gradient(180deg, #4a2a1a 0%, #6a4a2a 100%); border-radius: 4%; box-shadow: 2px 2px 6px rgba(0,0,0,.4); transform: rotate(5deg); animation: rtp-book 8s ease-in-out infinite; }
@keyframes rtp-fire  { 0% { transform: translateX(-50%) scale(1); opacity:.85 } 50% { transform: translateX(-50%) scale(1.05, .95); opacity:1 } 100% { transform: translateX(-50%) scale(1); opacity:.9 } }
@keyframes rtp-toby { 0% { transform: rotate(0) } 25% { transform: rotate(2deg) } 50% { transform: rotate(0) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes rtp-trim { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes rtp-book { 0% { transform: rotate(5deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(5deg) } }

.scn-father-natural-relation {
  background: linear-gradient(180deg, #2b1d0e 0%, #3a2b1a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 80%);
}
.scn-father-natural-relation .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1e130c 0%, #3e2a1a 50%, #1e130c 100%); animation: f1-breathe 12s ease-in-out infinite; }
.scn-father-natural-relation .desk { position:absolute; bottom:10%; left:10%; right:20%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.5); }
.scn-father-natural-relation .book { position:absolute; bottom:18%; left:20%; width:30%; height:14%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2px; transform: rotate(-3deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: f1-book 8s ease-in-out infinite; }
.scn-father-natural-relation .father-figure { position:absolute; bottom:24%; left:25%; width:12%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: f1-figure 6s ease-in-out infinite; }
.scn-father-natural-relation .lamp-glow { position:absolute; bottom:32%; left:50%; width:6%; height:8%; background: radial-gradient(circle, #ffd080 0%, #c08840 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px #c08840, 0 0 80px 40px rgba(192,136,64,.3); animation: f1-glow 3s ease-in-out infinite alternate; }
.scn-father-natural-relation .shadow-warm { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%); }
@keyframes f1-breathe { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.88 } }
@keyframes f1-book { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes f1-figure { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes f1-glow { 0% { opacity:.6; box-shadow:0 0 20px 10px #b08040,0 0 40px 20px rgba(176,128,64,.2); } 50% { opacity:1; box-shadow:0 0 50px 25px #ffd080,0 0 100px 50px rgba(255,208,128,.4); } 100% { opacity:.7; box-shadow:0 0 25px 12px #c08840,0 0 50px 25px rgba(192,136,64,.3); } }

.scn-father-argues-authority {
  background: linear-gradient(180deg, #1a1210 0%, #2a1c14 40%, #1a0e08 100%), radial-gradient(ellipse at 40% 50%, #2e1c12 0%, transparent 70%);
}
.scn-father-argues-authority .room-dark { position:absolute; inset:0; background: linear-gradient(160deg, #140e0a 0%, #2a1a12 60%, #0e0806 100%); animation: f2-pulse 15s ease-in-out infinite; }
.scn-father-argues-authority .table { position:absolute; bottom:8%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6); }
.scn-father-argues-authority .father-torso { position:absolute; bottom:22%; left:35%; width:14%; height:28%; background: linear-gradient(180deg, #1e120a 0%, #0e0804 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: f2-torso 4s ease-in-out infinite; }
.scn-father-argues-authority .father-arm { position:absolute; bottom:30%; left:42%; width:8%; height:18%; background: linear-gradient(180deg, #1a1008 0%, #0e0804 100%); border-radius: 30% 30% 20% 20%; transform-origin: top center; transform: rotate(-20deg); animation: f2-arm 3s ease-in-out infinite; }
.scn-father-argues-authority .pointing-hand { position:absolute; bottom:44%; left:52%; width:4%; height:6%; background: radial-gradient(circle, #2a1a0a 0%, #1a0e06 100%); border-radius: 50%; box-shadow: 0 0 4px 2px rgba(0,0,0,.3); animation: f2-hand 2s ease-in-out infinite; }
.scn-father-argues-authority .shadow-sharp { position:absolute; top:20%; right:10%; width:40%; height:50%; background: linear-gradient(135deg, rgba(0,0,0,.4) 0%, transparent 100%); filter: blur(3px); animation: f2-shadow 5s ease-in-out infinite; }
.scn-father-argues-authority .air-ripple { position:absolute; top:40%; left:60%; width:6%; height:10%; background: radial-gradient(ellipse, rgba(200,180,160,.15) 0%, transparent 100%); border-radius: 50%; animation: f2-ripple 2s ease-in-out infinite; }
@keyframes f2-pulse { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes f2-torso { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes f2-arm { 0% { transform: rotate(-20deg) } 30% { transform: rotate(-35deg) } 70% { transform: rotate(-10deg) } 100% { transform: rotate(-20deg) } }
@keyframes f2-hand { 0%,100% { transform: scale(1) } 50% { transform: scale(1.2) translate(2px, -2px) } }
@keyframes f2-shadow { 0%,100% { opacity:.4 } 50% { opacity:.7 } }
@keyframes f2-ripple { 0%,100% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.5) } }

.scn-uncle-toby-interrupts {
  background: linear-gradient(180deg, #1e1712 0%, #2c1e18 40%, #1a100a 100%), radial-gradient(ellipse at 60% 40%, #3a2a1e 0%, transparent 70%);
}
.scn-uncle-toby-interrupts .room-amber { position:absolute; inset:0; background: linear-gradient(145deg, #2a1a12 0%, #3a2a1e 50%, #1a100a 100%); animation: u1-flicker 10s ease-in-out infinite; }
.scn-uncle-toby-interrupts .uncle-toby { position:absolute; bottom:20%; right:30%; width:16%; height:30%; background: linear-gradient(180deg, #1e140e 0%, #0e0a06 100%); border-radius: 50% 45% 40% 40% / 55% 50% 35% 35%; transform-origin: bottom center; animation: u1-toby 6s ease-in-out infinite; }
.scn-uncle-toby-interrupts .pipe { position:absolute; bottom:32%; right:38%; width:20%; height:4%; background: linear-gradient(90deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 2px 50% 50% 2px; transform: rotate(-15deg); transform-origin: left center; animation: u1-pipe 4s ease-in-out infinite; }
.scn-uncle-toby-interrupts .smoke-wisp { position:absolute; bottom:42%; right:45%; width:6%; height:10%; background: radial-gradient(ellipse, rgba(200,190,180,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: u1-smoke1 8s ease-out infinite; }
.scn-uncle-toby-interrupts .smoke-wisp2 { position:absolute; bottom:44%; right:48%; width:4%; height:8%; background: radial-gradient(ellipse, rgba(180,170,160,.2) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: u1-smoke2 10s ease-out infinite; animation-delay: -3s; }
.scn-uncle-toby-interrupts .chair-back { position:absolute; bottom:28%; right:20%; width:12%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 20% 20% 0 0; box-shadow: -4px 0 6px rgba(0,0,0,.4); }
.scn-uncle-toby-interrupts .shadow-slice { position:absolute; top:10%; left:0; width:30%; height:80%; background: linear-gradient(90deg, rgba(0,0,0,.3) 0%, transparent 100%); animation: u1-shadow 12s ease-in-out infinite; }
@keyframes u1-flicker { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes u1-toby { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-4px) rotate(-2deg) } 60% { transform: translateY(-1px) rotate(1deg) } }
@keyframes u1-pipe { 0%,100% { transform: rotate(-15deg) } 40% { transform: rotate(-10deg) } 70% { transform: rotate(-20deg) } }
@keyframes u1-smoke1 { 0% { transform: translate(0,0) scale(1); opacity:.5 } 50% { transform: translate(-10px,-20px) scale(2); opacity:.2 } 100% { transform: translate(-20px,-40px) scale(3); opacity:0 } }
@keyframes u1-smoke2 { 0% { transform: translate(0,0) scale(1); opacity:.4 } 50% { transform: translate(8px,-15px) scale(1.8); opacity:.1 } 100% { transform: translate(15px,-30px) scale(2.5); opacity:0 } }
@keyframes u1-shadow { 0%,100% { opacity:.3 } 50% { opacity:.6 } }

.scn-trim-catechism {
  background: linear-gradient(180deg, #f5e8d0 0%, #e8d4b8 40%, #d4bea0 100%), radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 70%);
}
.scn-trim-catechism .sunlit-wall { position:absolute; inset:0; background: linear-gradient(145deg, #f0e0c8 0%, #e0ccb0 50%, #d0baa0 100%); animation: t1-sun 20s ease-in-out infinite; }
.scn-trim-catechism .trim-figure { position:absolute; bottom:18%; left:40%; width:12%; height:32%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 45% 50% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: t1-figure 8s ease-in-out infinite; }
.scn-trim-catechism .catechism-book { position:absolute; bottom:22%; left:44%; width:8%; height:10%; background: linear-gradient(180deg, #c0a880 0%, #a08860 100%); border-radius: 2px; transform: rotate(2deg); box-shadow: 1px 1px 4px rgba(0,0,0,.2); animation: t1-book 6s ease-in-out infinite; }
.scn-trim-catechism .window-light { position:absolute; top:5%; left:10%; width:30%; height:50%; background: linear-gradient(135deg, rgba(255,245,220,.6) 0%, transparent 100%); filter: blur(8px); animation: t1-window 15s ease-in-out infinite; }
.scn-trim-catechism .floor-glow { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(0deg, rgba(200,180,150,.5) 0%, transparent 100%); }
.scn-trim-catechism .dust-mote { position:absolute; top:30%; left:20%; width:2%; height:2%; background: radial-gradient(circle, rgba(255,255,200,.6) 0%, transparent 100%); border-radius: 50%; animation: t1-dust 12s linear infinite; }
.scn-trim-catechism .dust-mote2 { position:absolute; top:50%; left:50%; width:1.5%; height:1.5%; background: radial-gradient(circle, rgba(255,255,200,.4) 0%, transparent 100%); border-radius: 50%; animation: t1-dust 18s linear infinite reverse; animation-delay: -6s; }
@keyframes t1-sun { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes t1-figure { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(0.5deg) } }
@keyframes t1-book { 0%,100% { transform: rotate(2deg) } 50% { transform: rotate(4deg) translateY(-1px) } }
@keyframes t1-window { 0%,100% { opacity:.5 } 50% { opacity:.8 } }
@keyframes t1-dust { 0% { transform: translate(0,0) scale(1); opacity:.5 } 50% { transform: translate(30px,-20px) scale(1.5); opacity:.2 } 100% { transform: translate(60px,-40px) scale(0.5); opacity:0 } }

.scn-father-orator { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #3a1a0a 100%), radial-gradient(ellipse at 50% 30%, #6a3a1a 0%, transparent 70%); }
.scn-father-orator .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%); border-bottom: 2px solid #5a3a2a; }
.scn-father-orator .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-top: 2px solid #3a2a1a; }
.scn-father-orator .lectern { position:absolute; bottom:30%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-father-orator .figure { position:absolute; bottom:26%; left:50%; width:30px; height:90px; transform:translateX(-50%) scaleY(1.02); background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fo-figure 6s ease-in-out infinite; }
.scn-father-orator .arm { position:absolute; bottom:46%; left:56%; width:20px; height:12px; transform-origin: 0% 50%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 60% 40% 40% 60%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: fo-arm 4s ease-in-out infinite alternate; }
.scn-father-orator .fire { position:absolute; bottom:12%; left:15%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 100%, #d06020 0%, #802010 40%, #4a2010 70%, transparent 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: fo-fire 2s ease-in-out infinite alternate; }
.scn-father-orator .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 20% 80%, rgba(200,100,30,.15) 0%, transparent 60%); animation: fo-glow 4s ease-in-out infinite alternate; pointer-events:none; }
.scn-father-orator .shadow { position:absolute; bottom:0; left:30%; width:120px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); transform: skewX(-10deg); animation: fo-shadow 6s ease-in-out infinite; }
@keyframes fo-figure { 0%,100% { transform: translateX(-50%) scaleY(1.02) rotate(0deg); } 50% { transform: translateX(-50%) scaleY(1.04) rotate(1deg); } }
@keyframes fo-arm { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes fo-fire { 0% { transform: scaleY(1) scaleX(1); opacity:.8; } 50% { transform: scaleY(1.15) scaleX(.95); opacity:1; } 100% { transform: scaleY(.9) scaleX(1.05); opacity:.9; } }
@keyframes fo-glow { 0%,100% { opacity:.5; } 50% { opacity:.8; } }
@keyframes fo-shadow { 0%,100% { transform: skewX(-10deg) scaleX(1); } 50% { transform: skewX(-8deg) scaleX(1.1); } }

.scn-father-opinions-evolution { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%), radial-gradient(ellipse at 30% 60%, #5a3a2a 0%, transparent 70%); }
.scn-father-opinions-evolution .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-bottom: 2px solid #4a3a2a; }
.scn-father-opinions-evolution .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-top: 2px solid #3a2a1a; }
.scn-father-opinions-evolution .chair { position:absolute; bottom:34%; left:42%; width:40px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-father-opinions-evolution .figure { position:absolute; bottom:32%; left:44%; width:26px; height:80px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fop-figure 5s ease-in-out infinite; }
.scn-father-opinions-evolution .thought-a { position:absolute; bottom:60%; left:54%; width:16px; height:16px; background: radial-gradient(circle, rgba(200,180,100,.6) 0%, transparent 70%); border-radius: 50%; animation: fop-thought 6s ease-in-out infinite; }
.scn-father-opinions-evolution .thought-b { position:absolute; bottom:65%; left:60%; width:12px; height:12px; background: radial-gradient(circle, rgba(200,180,100,.5) 0%, transparent 70%); border-radius: 50%; animation: fop-thought 8s ease-in-out infinite reverse; }
.scn-father-opinions-evolution .thought-c { position:absolute; bottom:55%; left:66%; width:10px; height:10px; background: radial-gradient(circle, rgba(200,180,100,.4) 0%, transparent 70%); border-radius: 50%; animation: fop-thought 7s ease-in-out infinite 2s; }
.scn-father-opinions-evolution .sparkle { position:absolute; bottom:70%; left:48%; width:4px; height:4px; background: #e0d0a0; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(224,208,160,.6); animation: fop-sparkle 3s ease-in-out infinite alternate; }
@keyframes fop-figure { 0%,100% { transform: rotate(-2deg); } 25% { transform: rotate(2deg) translateX(2px); } 50% { transform: rotate(-3deg) translateX(-1px); } 75% { transform: rotate(1deg) translateX(1px); } }
@keyframes fop-thought { 0% { transform: translateY(0) scale(1); opacity:.7; } 25% { transform: translateY(-8px) scale(1.2); opacity:.9; } 50% { transform: translateY(-4px) scale(.9); opacity:.6; } 75% { transform: translateY(-12px) scale(1.1); opacity:.8; } 100% { transform: translateY(0) scale(1); opacity:.7; } }
@keyframes fop-sparkle { 0% { opacity:.3; transform: scale(.5); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.5; transform: scale(.8); } }

.scn-father-aversion-tristram { background: linear-gradient(180deg, #2a1a0a 0%, #3a2210 40%, #1a0a00 100%), radial-gradient(ellipse at 60% 40%, #4a2a1a 0%, transparent 70%); }
.scn-father-aversion-tristram .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2210 0%, #2a1a0a 100%); border-bottom: 2px solid #4a3a2a; }
.scn-father-aversion-tristram .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-top: 2px solid #3a2a1a; }
.scn-father-aversion-tristram .figure { position:absolute; bottom:28%; left:40%; width:28px; height:90px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fat-figure 4s ease-in-out infinite; }
.scn-father-aversion-tristram .arm { position:absolute; bottom:36%; left:47%; width:24px; height:10px; transform-origin: 0% 100%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 60% 40% 40% 60%; animation: fat-arm 3s ease-in-out infinite alternate; }
.scn-father-aversion-tristram .bundle { position:absolute; bottom:24%; left:62%; width:20px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: fat-bundle 3s ease-in-out infinite; }
.scn-father-aversion-tristram .shadow { position:absolute; bottom:0; left:35%; width:80px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); animation: fat-shadow 4s ease-in-out infinite; }
.scn-father-aversion-tristram .glow { position:absolute; bottom:10%; right:20%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(180,120,60,.2) 0%, transparent 70%); animation: fat-glow 5s ease-in-out infinite alternate; pointer-events:none; }
@keyframes fat-figure { 0%,100% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(-3deg) scaleY(1.02); } 50% { transform: rotate(2deg) scaleY(.98); } 75% { transform: rotate(-1deg) scaleY(1); } }
@keyframes fat-arm { 0% { transform: rotate(-40deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(4px); } 100% { transform: rotate(-35deg) translateX(0); } }
@keyframes fat-bundle { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(5deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(3deg); } }
@keyframes fat-shadow { 0%,100% { transform: scaleX(1); opacity:.4; } 50% { transform: scaleX(.9); opacity:.6; } }
@keyframes fat-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.7; transform: scale(1.1); } 100% { opacity:.4; transform: scale(.95); } }

.scn-father-dissertation { background: linear-gradient(180deg, #2a1a0a 0%, #3a2210 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 20%, #4a2a1a 0%, transparent 70%); }
.scn-father-dissertation .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2210 0%, #2a1a0a 100%); border-bottom: 2px solid #4a3a2a; }
.scn-father-dissertation .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-top: 2px solid #3a2a1a; }
.scn-father-dissertation .desk { position:absolute; bottom:34%; left:30%; width:120px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: perspective(200px) rotateX(10deg); }
.scn-father-dissertation .figure { position:absolute; bottom:30%; left:36%; width:24px; height:80px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fd-figure 6s ease-in-out infinite; }
.scn-father-dissertation .paper-stack { position:absolute; bottom:36%; left:44%; width:30px; height:8px; background: linear-gradient(180deg, #c0b090 0%, #a09080 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: fd-stack 8s ease-in-out infinite; }
.scn-father-dissertation .paper-stack::after { content:''; position:absolute; bottom:2px; left:2px; width:26px; height:4px; background: linear-gradient(180deg, #b0a080 0%, #a09080 100%); border-radius: 1px; }
.scn-father-dissertation .inkwell { position:absolute; bottom:36%; left:54%; width:10px; height:12px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: fd-ink 5s ease-in-out infinite alternate; }
.scn-father-dissertation .quill { position:absolute; bottom:46%; left:56%; width:18px; height:6px; transform-origin: 100% 50%; background: linear-gradient(180deg, #c0b090 0%, #a09080 100%); border-radius: 60% 40% 40% 60%; box-shadow: 0 1px 3px rgba(0,0,0,.3); animation: fd-quill 4s ease-in-out infinite alternate; }
.scn-father-dissertation .glow { position:absolute; bottom:10%; left:20%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 100%, rgba(180,120,60,.15) 0%, transparent 70%); animation: fd-glow 5s ease-in-out infinite alternate; pointer-events:none; }
@keyframes fd-figure { 0%,100% { transform: rotate(-1deg) scaleY(1); } 25% { transform: rotate(2deg) scaleY(1.02); } 50% { transform: rotate(-2deg) scaleY(.98); } 75% { transform: rotate(1deg) scaleY(1); } }
@keyframes fd-stack { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.05); } }
@keyframes fd-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fd-quill { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(5deg) translateX(3px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes fd-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.15); } 100% { opacity:.4; transform: scale(.9); } }

/* scene: knowledge-thirst */
.scn-knowledge-thirst { background: linear-gradient(180deg, #4a3520 0%, #3a2a15 50%, #2a1a0a 100%), radial-gradient(ellipse at 70% 30%, #d4a040 0%, transparent 60%); }
.scn-knowledge-thirst .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a15 0%, #2a1a0a 100%); }
.scn-knowledge-thirst .window-light { position:absolute; top:0; left:40%; width:30%; height:45%; background: linear-gradient(180deg, rgba(255,230,180,.6) 0%, transparent 100%); border-radius: 0 0 20% 20%; box-shadow: 0 0 40px 20px rgba(255,200,120,.3); animation: kt-win 6s ease-in-out infinite alternate; }
.scn-knowledge-thirst .desk { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a15 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-knowledge-thirst .map { position:absolute; bottom:18%; left:35%; width:30%; height:16%; background: linear-gradient(135deg, #c8a86a 0%, #a08040 50%, #806030 100%); border-radius: 2% / 10%; transform: perspective(400px) rotateX(10deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: kt-map 8s ease-in-out infinite; }
.scn-knowledge-thirst .figure { position:absolute; bottom:12%; left:45%; width:20px; height:45px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: kt-fig 4s ease-in-out infinite; }
.scn-knowledge-thirst .candle { position:absolute; bottom:28%; left:30%; width:6px; height:14px; background: linear-gradient(180deg, #f4d080 0%, #c8a060 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 12px 6px #f0c060; animation: kt-flame 2s ease-in-out infinite alternate; }
.scn-knowledge-thirst .motes { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, rgba(255,255,150,.03) 0%, transparent 70%); filter: blur(2px); animation: kt-drift 20s linear infinite; }
@keyframes kt-win  { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes kt-map  { 0% { transform: perspective(400px) rotateX(10deg) translateY(0); } 50% { transform: perspective(400px) rotateX(12deg) translateY(-3px); } 100% { transform: perspective(400px) rotateX(10deg) translateY(0); } }
@keyframes kt-fig  { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 75% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes kt-flame{ 0% { box-shadow: 0 0 8px 4px #e8b050; transform: scaleY(1); } 50% { box-shadow: 0 0 16px 8px #ffd080; transform: scaleY(1.2); } 100% { box-shadow: 0 0 10px 5px #e8b050; transform: scaleY(0.9); } }
@keyframes kt-drift{ 0% { transform: translateX(0) translateY(0); opacity: .3; } 50% { transform: translateX(10px) translateY(-5px); opacity: .5; } 100% { transform: translateX(20px) translateY(0); opacity: .3; } }

/* scene: projectile-studies */
.scn-projectile-studies { background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 70%, #14141e 100%), radial-gradient(ellipse at 80% 50%, #2a2a4e 0%, transparent 60%); }
.scn-projectile-studies .dark-room { position:absolute; inset:0; background: linear-gradient(135deg, #101018 0%, #181820 100%); }
.scn-projectile-studies .window-slit { position:absolute; top:10%; right:5%; width:4%; height:30%; background: linear-gradient(180deg, #404060 0%, #1a1a3e 100%); box-shadow: 0 0 20px 10px rgba(64,64,96,.3); animation: ps-slit 5s ease-in-out infinite alternate; }
.scn-projectile-studies .cannon { position:absolute; bottom:20%; left:10%; width:25%; height:8%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 40% 10% 10% 40%; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-projectile-studies .ball-path { position:absolute; top:20%; left:30%; width:40%; height:5%; background: radial-gradient(circle, rgba(200,200,220,.1) 0%, transparent 70%); border-radius: 50%; transform: rotate(15deg); animation: ps-ball 3s ease-in-out infinite alternate; }
.scn-projectile-studies .figure { position:absolute; bottom:18%; left:45%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: ps-fig 4s ease-in-out infinite; }
.scn-projectile-studies .shadow { position:absolute; bottom:16%; left:40%; width:20%; height:4%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: ps-shadow 4s ease-in-out infinite; }
.scn-projectile-studies .book { position:absolute; bottom:14%; left:55%; width:8%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 10% 10% 0; box-shadow: 0 2px 4px rgba(0,0,0,.4); transform: rotate(5deg); }
@keyframes ps-slit  { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes ps-ball  { 0% { transform: rotate(15deg) scale(1); opacity: .4; } 50% { transform: rotate(20deg) scale(1.2); opacity: .8; } 100% { transform: rotate(15deg) scale(1); opacity: .4; } }
@keyframes ps-fig   { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes ps-shadow{ 0% { transform: translateX(0) scale(1); opacity: .3; } 50% { transform: translateX(5px) scale(1.2); opacity: .5; } 100% { transform: translateX(0) scale(1); opacity: .3; } }

/* scene: apostrophe-to-reader */
.scn-apostrophe-to-reader { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 70%, #1a0f05 100%), radial-gradient(ellipse at 60% 40%, #604020 0%, transparent 60%); }
.scn-apostrophe-to-reader .study-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 100%); }
.scn-apostrophe-to-reader .candlelight { position:absolute; top:20%; left:30%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 0%, rgba(255,220,150,.4) 0%, transparent 70%); animation: ar-glow 4s ease-in-out infinite alternate; }
.scn-apostrophe-to-reader .desk { position:absolute; bottom:8%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #5a4018 0%, #3a2a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.5); }
.scn-apostrophe-to-reader .manuscript { position:absolute; bottom:14%; left:25%; width:30%; height:12%; background: linear-gradient(135deg, #c8a86a 0%, #a08a50 100%); border-radius: 2%; transform: perspective(500px) rotateX(5deg); box-shadow: 2px 2px 4px rgba(0,0,0,.3); animation: ar-paper 10s ease-in-out infinite; }
.scn-apostrophe-to-reader .figure { position:absolute; bottom:12%; left:40%; width:22px; height:48px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar-fig 6s ease-in-out infinite; }
.scn-apostrophe-to-reader .hand { position:absolute; bottom:20%; left:35%; width:8px; height:14px; background: radial-gradient(ellipse at 50% 30%, #7a6040 0%, #4a3020 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: ar-hand 3s ease-in-out infinite alternate; }
.scn-apostrophe-to-reader .ink-well { position:absolute; bottom:16%; left:20%; width:4%; height:4%; background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.6); }
@keyframes ar-glow { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .7; transform: scale(1); } }
@keyframes ar-paper{ 0% { transform: perspective(500px) rotateX(5deg) translateY(0); } 50% { transform: perspective(500px) rotateX(7deg) translateY(-2px); } 100% { transform: perspective(500px) rotateX(5deg) translateY(0); } }
@keyframes ar-fig  { 0% { transform: rotate(-2deg) translateY(0); } 33% { transform: rotate(2deg) translateY(-3px); } 66% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes ar-hand { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(5px); } 100% { transform: rotate(-5deg) translateX(2px); } }

/* scene: recovery-announcement */
.scn-recovery-announcement { background: linear-gradient(180deg, #4a3520 0%, #3a2a15 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #d4a040 0%, transparent 60%); }
.scn-recovery-announcement .morning-room { position:absolute; inset:0; background: linear-gradient(135deg, #4a3520 0%, #3a2a15 100%); }
.scn-recovery-announcement .window-light { position:absolute; top:0; left:30%; width:40%; height:50%; background: linear-gradient(180deg, rgba(255,230,180,.5) 0%, transparent 100%); border-radius: 0 0 30% 30%; box-shadow: 0 0 50px 25px rgba(255,200,120,.2); animation: ra-win 8s ease-in-out infinite alternate; }
.scn-recovery-announcement .bed { position:absolute; bottom:8%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-recovery-announcement .figure-sitting { position:absolute; bottom:18%; left:40%; width:24px; height:40px; background: linear-gradient(180deg, #6a5030 0%, #3a2a15 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: ra-sit 5s ease-in-out infinite; }
.scn-recovery-announcement .chair { position:absolute; bottom:8%; left:35%; width:10%; height:12%; background: linear-gradient(180deg, #5a4020 0%, #3a2a0a 100%); border-radius: 20% 20% 0 0; }
.scn-recovery-announcement .surgeon-bag { position:absolute; bottom:12%; right:20%; width:6%; height:6%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-recovery-announcement .motes { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, rgba(255,255,200,.03) 0%, transparent 70%); filter: blur(2px); animation: ra-drift 25s linear infinite; }
@keyframes ra-win { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes ra-sit { 0% { transform: rotate(-1deg) translateY(0); } 33% { transform: rotate(2deg) translateY(-3px); } 66% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes ra-drift{ 0% { transform: translateX(0) translateY(0); opacity: .2; } 50% { transform: translateX(15px) translateY(-5px); opacity: .4; } 100% { transform: translateX(30px) translateY(0); opacity: .2; } }

.scn-preliminary-observation { background: linear-gradient(180deg, #fef9e0 0%, #f5e6c0 40%, #e0ccaa 100%), radial-gradient(ellipse at 50% 40%, #fff4d6 0%, transparent 70%); }
.scn-preliminary-observation .wall { position:absolute; inset:0; background: linear-gradient(to bottom, #fdf6e3 0%, #ede0c8 100%); }
.scn-preliminary-observation .window { position:absolute; top:10%; left:8%; width:30%; height:45%; background: linear-gradient(135deg, #f0e8d8 0%, #d4c6a8 100%); border:6px solid #b8a88a; border-radius:4px; box-shadow:inset 0 0 40px rgba(255,255,200,.3); animation: po-window 8s ease-in-out infinite alternate; }
.scn-preliminary-observation .desk { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #c8b08a 0%, #a08868 100%); border-radius:20% 20% 0 0/40% 40% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.15); }
.scn-preliminary-observation .book { position:absolute; bottom:30%; left:25%; width:20%; height:18%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:2px 2px 6px 6px; box-shadow:4px 4px 8px rgba(0,0,0,.2); transform:rotate(-5deg); animation: po-book 12s ease-in-out infinite; }
.scn-preliminary-observation .lamp { position:absolute; bottom:45%; left:8%; width:10%; height:20%; background: linear-gradient(180deg, #e0c080 0%, #b09050 100%); border-radius:40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow:0 0 30px 10px rgba(255,200,100,.4); animation: po-lamp 4s ease-in-out infinite alternate; }
.scn-preliminary-observation .globe { position:absolute; bottom:32%; right:10%; width:18%; height:18%; background: radial-gradient(circle at 30% 30%, #4a7a9a 0%, #2a5a7a 50%, #1a3a5a 100%); border-radius:50%; box-shadow:0 0 20px 4px rgba(255,255,200,.15); animation: po-globe 25s linear infinite; }
.scn-preliminary-observation .reader { position:absolute; bottom:28%; left:32%; width:15%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(2deg); animation: po-reader 5s ease-in-out infinite; }
@keyframes po-window { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes po-book { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes po-lamp { 0% { box-shadow:0 0 20px 5px rgba(255,200,100,.3); } 50% { box-shadow:0 0 40px 15px rgba(255,200,100,.6); } 100% { box-shadow:0 0 25px 8px rgba(255,200,100,.35); } }
@keyframes po-globe { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }
@keyframes po-reader { 0% { transform:rotate(2deg); } 50% { transform:rotate(-1deg) translateY(-1px); } 100% { transform:rotate(2deg); } }

.scn-chair-knob-illustration { background: linear-gradient(180deg, #fdf4d8 0%, #eddcc0 50%, #dcc8a8 100%), radial-gradient(ellipse at 50% 60%, #fff8e0 0%, transparent 70%); }
.scn-chair-knob-illustration .bg-panel { position:absolute; inset:0; background: linear-gradient(135deg, #f5e8d0 0%, #e0d0b0 100%); }
.scn-chair-knob-illustration .chair-back { position:absolute; bottom:25%; left:50%; width:40%; height:45%; transform:translateX(-50%); background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius:60% 60% 20% 20% / 80% 80% 20% 20%; box-shadow:0 10px 20px rgba(0,0,0,.2); animation: ck-chair 10s ease-in-out infinite; }
.scn-chair-knob-illustration .knob-left { position:absolute; bottom:38%; left:38%; width:6%; height:8%; background: radial-gradient(circle, #e8c878 0%, #a88040 100%); border-radius:50%; box-shadow:0 0 12px 4px rgba(200,160,80,.4); animation: ck-knob-l 3s ease-in-out infinite; }
.scn-chair-knob-illustration .knob-right { position:absolute; bottom:38%; right:38%; width:6%; height:8%; background: radial-gradient(circle, #e8c878 0%, #a88040 100%); border-radius:50%; box-shadow:0 0 12px 4px rgba(200,160,80,.4); animation: ck-knob-r 3s ease-in-out infinite 1.5s; }
.scn-chair-knob-illustration .cushion { position:absolute; bottom:12%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:20% 20% 40% 40%; box-shadow:inset 0 4px 10px rgba(0,0,0,.3); }
.scn-chair-knob-illustration .hand { position:absolute; bottom:30%; right:20%; width:8%; height:12%; background: linear-gradient(180deg, #d4b090 0%, #b08860 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-15deg); animation: ck-hand 4s ease-in-out infinite; }
@keyframes ck-chair { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes ck-knob-l { 0% { transform:scale(1); } 50% { transform:scale(1.15); } 100% { transform:scale(1); } }
@keyframes ck-knob-r { 0% { transform:scale(1); } 50% { transform:scale(1.15); } 100% { transform:scale(1); } }
@keyframes ck-hand { 0% { transform:rotate(-15deg) translateX(0); } 50% { transform:rotate(-10deg) translateX(3px); } 100% { transform:rotate(-15deg) translateX(0); } }

.scn-desire-for-both { background: linear-gradient(180deg, #fef5e0 0%, #f0e0c0 50%, #dcc8a8 100%), radial-gradient(ellipse at 40% 50%, #fff4d8 0%, transparent 70%); }
.scn-desire-for-both .bg-panel { position:absolute; inset:0; background: linear-gradient(135deg, #f0e0c8 0%, #dcccac 100%); }
.scn-desire-for-both .chair-back { position:absolute; bottom:25%; left:50%; width:40%; height:45%; transform:translateX(-50%); background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius:60% 60% 20% 20% / 80% 80% 20% 20%; box-shadow:0 10px 20px rgba(0,0,0,.2); animation: db-chair 12s ease-in-out infinite; }
.scn-desire-for-both .knob-left { position:absolute; bottom:38%; left:38%; width:6%; height:8%; background: radial-gradient(circle, #e8c878 0%, #a88040 100%); border-radius:50%; box-shadow:0 0 20px 6px rgba(200,160,80,.5); animation: db-knob 3s ease-in-out infinite; }
.scn-desire-for-both .knob-right { position:absolute; bottom:38%; right:38%; width:6%; height:8%; background: radial-gradient(circle, #e8c878 0%, #a88040 100%); border-radius:50%; box-shadow:0 0 20px 6px rgba(200,160,80,.5); animation: db-knob 3s ease-in-out infinite 1.5s; }
.scn-desire-for-both .knob-left.glow { animation-name: db-knob-glow; animation-duration: 2s; }
.scn-desire-for-both .knob-right.glow { animation-name: db-knob-glow; animation-duration: 2s; animation-delay: 1s; }
.scn-desire-for-both .cushion { position:absolute; bottom:12%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:20% 20% 40% 40%; box-shadow:inset 0 4px 10px rgba(0,0,0,.3); }
.scn-desire-for-both .arm { position:absolute; bottom:18%; left:20%; width:12%; height:20%; background: linear-gradient(180deg, #d4b090 0%, #b08860 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform:rotate(-20deg); animation: db-arm 5s ease-in-out infinite; }
.scn-desire-for-both .fingers { position:absolute; bottom:22%; left:14%; width:6%; height:8%; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius:50% 50% 30% 30%; animation: db-fingers 2s ease-in-out infinite; }
@keyframes db-chair { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(-1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes db-knob { 0% { transform:scale(1) translateY(0); } 50% { transform:scale(1.1) translateY(-2px); } 100% { transform:scale(1) translateY(0); } }
@keyframes db-knob-glow { 0% { box-shadow:0 0 20px 6px rgba(200,160,80,.5); } 50% { box-shadow:0 0 40px 14px rgba(255,200,100,.8); } 100% { box-shadow:0 0 20px 6px rgba(200,160,80,.5); } }
@keyframes db-arm { 0% { transform:rotate(-20deg); } 50% { transform:rotate(-15deg) translateX(5px); } 100% { transform:rotate(-20deg); } }
@keyframes db-fingers { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }

.scn-grave-gentry-stratagem { background: linear-gradient(180deg, #f2e6d0 0%, #e0d0b4 40%, #c8b89c 100%), radial-gradient(ellipse at 50% 30%, #fff4dc 0%, transparent 70%); }
.scn-grave-gentry-stratagem .wall { position:absolute; inset:0; background: linear-gradient(180deg, #ede0c8 0%, #d8c8ac 100%); }
.scn-grave-gentry-stratagem .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #b8a080 0%, #987860 100%); border-radius:30% 30% 0 0/60% 60% 0 0; box-shadow:inset 0 6px 20px rgba(0,0,0,.1); }
.scn-grave-gentry-stratagem .gentry-a { position:absolute; bottom:18%; left:15%; width:14%; height:40%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform:rotate(5deg); animation: gg-gentry 6s ease-in-out infinite; }
.scn-grave-gentry-stratagem .gentry-b { position:absolute; bottom:20%; left:40%; width:16%; height:38%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform:rotate(-3deg); animation: gg-gentry 6s ease-in-out infinite 2s; }
.scn-grave-gentry-stratagem .gentry-c { position:absolute; bottom:22%; right:18%; width:14%; height:36%; background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform:rotate(2deg); animation: gg-gentry 6s ease-in-out infinite 4s; }
.scn-grave-gentry-stratagem .caption-bar { position:absolute; bottom:60%; left:10%; right:10%; height:6%; background: linear-gradient(135deg, #c8a878 0%, #a88858 100%); border-radius:10px; box-shadow:0 4px 8px rgba(0,0,0,.2); animation: gg-bar 3s ease-in-out infinite; }
@keyframes gg-gentry { 0% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(3deg) translateY(-4px); } 100% { transform:rotate(5deg) translateY(0); } }
@keyframes gg-bar { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.8; } }

/* uncle-toby-anecdote – warm window-lit interior */
.scn-uncle-toby-anecdote {
  background:
    linear-gradient(180deg, #f0d8b0 0%, #e8c090 30%, #b08050 70%, #705030 100%),
    radial-gradient(ellipse at 60% 40%, rgba(255,220,160,0.4) 0%, transparent 60%);
}
.scn-uncle-toby-anecdote .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #c8a878 0%, #a08050 100%);
}
.scn-uncle-toby-anecdote .window {
  position: absolute; top: 8%; left: 60%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #ffe0a0 0%, #d4b680 100%);
  border: 6px solid #8a6a3a; border-radius: 4px;
  box-shadow: inset 0 0 30px #ffe8b0;
  animation: uta-window 8s ease-in-out infinite alternate;
}
.scn-uncle-toby-anecdote .window-glow {
  position: absolute; top: 8%; left: 60%; width: 100px; height: 140px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,130,0.5) 0%, transparent 70%);
  animation: uta-glow 3s ease-in-out infinite alternate;
}
.scn-uncle-toby-anecdote .chair {
  position: absolute; bottom: 22%; left: 35%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 8% 8% 30% 30% / 20% 20% 60% 60%;
  box-shadow: inset 0 4px 8px #2a1a0a;
}
.scn-uncle-toby-anecdote .figure {
  position: absolute; bottom: 24%; left: 38%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uta-figure 6s ease-in-out infinite;
}
.scn-uncle-toby-anecdote .pipe {
  position: absolute; bottom: 32%; left: 43%; width: 20px; height: 8px;
  background: #3a2a1a; border-radius: 40% 60% 20% 80%;
  transform: rotate(-30deg);
  animation: uta-puff 3s ease-in-out infinite;
}
.scn-uncle-toby-anecdote .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 140px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(4px);
}
@keyframes uta-window { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes uta-glow { 0% { transform: scale(1); opacity:0.6 } 50% { transform: scale(1.05); opacity:0.9 } 100% { transform: scale(0.95); opacity:0.5 } }
@keyframes uta-figure { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes uta-puff { 0% { opacity:0 } 30% { opacity:0.6 } 60% { opacity:0 } 100% { opacity:0 } }

/* reader-apostrophe – dim interior, funny reader */
.scn-reader-apostrophe {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-reader-apostrophe .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 50%);
}
.scn-reader-apostrophe .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px #1a0a00;
}
.scn-reader-apostrophe .book {
  position: absolute; bottom: 24%; left: 30%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 4px 12px #1a0a00;
  animation: rap-book 4s ease-in-out infinite;
}
.scn-reader-apostrophe .reader {
  position: absolute; bottom: 22%; left: 40%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom;
  animation: rap-reader 3s ease-in-out infinite alternate;
}
.scn-reader-apostrophe .candle {
  position: absolute; bottom: 26%; left: 60%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #ffe0a0 0%, #d4a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px #ffd080;
}
.scn-reader-apostrophe .candle-glow {
  position: absolute; bottom: 28%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,80,0.5) 0%, transparent 60%);
  animation: rap-glow 2s ease-in-out infinite alternate;
}
.scn-reader-apostrophe .shadow {
  position: absolute; bottom: 10%; left: 10%; width: 160px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(6px);
}
@keyframes rap-book { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-12deg) scale(1.02) } 100% { transform: rotate(-8deg) scale(1) } }
@keyframes rap-reader { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(3deg) } }
@keyframes rap-glow { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:0.9; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }

/* begetting-details – calm dim interior with door and bed */
.scn-begetting-details {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a3a4a 70%, #2a2a3a 100%),
    radial-gradient(ellipse at 30% 50%, rgba(100,100,130,0.2) 0%, transparent 60%);
}
.scn-begetting-details .wall-dark {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(135deg, #2a2a3a, #1a1a2a);
}
.scn-begetting-details .door {
  position: absolute; bottom: 5%; left: 40%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border: 4px solid #2a1a0a; border-radius: 4px;
  box-shadow: inset 0 0 20px #0a0a1a;
  animation: bd-door 10s ease-in-out infinite alternate;
}
.scn-begetting-details .bed {
  position: absolute; bottom: 10%; left: 10%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 8px #0a0a1a;
}
.scn-begetting-details .curtain {
  position: absolute; top: 0; left: 30%; width: 100px; height: 100%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 60% 0 0;
  filter: blur(2px);
  animation: bd-curtain 6s ease-in-out infinite alternate;
}
.scn-begetting-details .figure-silhouette {
  position: absolute; bottom: 10%; left: 25%; width: 40px; height: 60px;
  background: #1a0a00;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  opacity: 0.7;
  animation: bd-figure 4s ease-in-out infinite;
}
.scn-begetting-details .moonlight-slab {
  position: absolute; top: 5%; left: 35%; width: 60px; height: 180px;
  background: linear-gradient(180deg, rgba(200,200,255,0.15) 0%, transparent 80%);
  transform: skewX(-10deg);
  filter: blur(4px);
  animation: bd-moon 12s linear infinite alternate;
}
@keyframes bd-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes bd-curtain { 0% { transform: translateX(0) skewX(0) } 50% { transform: translateX(2px) skewX(2deg) } 100% { transform: translateX(-2px) skewX(-2deg) } }
@keyframes bd-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes bd-moon { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

/* clock-winding-habit – warm dim interior with grandfather clock */
.scn-clock-winding-habit {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 70% 20%, #6a4a2a 0%, transparent 50%);
}
.scn-clock-winding-habit .wall-clock {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #4a3a2a, #2a1a0a);
}
.scn-clock-winding-habit .clock-face {
  position: absolute; bottom: 35%; left: 50%; width: 90px; height: 90px;
  background: radial-gradient(circle at 50% 50%, #f0e0c0 0%, #c0a880 70%, #a08050 100%);
  border-radius: 50%;
  border: 6px solid #4a2a1a;
  box-shadow: inset 0 0 20px #2a1a0a, 0 4px 8px #0a0a00;
  animation: cwh-face 60s linear infinite;
}
.scn-clock-winding-habit .clock-body {
  position: absolute; bottom: 15%; left: 48%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 5% 5% 30% 30% / 10% 10% 40% 40%;
  box-shadow: inset 0 4px 8px #1a0a00;
}
.scn-clock-winding-habit .pendulum {
  position: absolute; bottom: 10%; left: 50%; width: 8px; height: 60px;
  background: #6a4a2a;
  transform-origin: top center;
  animation: cwh-pendulum 2s ease-in-out infinite alternate;
}
.scn-clock-winding-habit .figure-winding {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cwh-figure 4s ease-in-out infinite;
}
.scn-clock-winding-habit .lamp {
  position: absolute; bottom: 30%; left: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c0a070 0%, #8a6a3a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 0 20px #ffd080;
}
.scn-clock-winding-habit .lamp-glow {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,80,0.4) 0%, transparent 60%);
  animation: cwh-glow 3s ease-in-out infinite alternate;
}
@keyframes cwh-face { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes cwh-pendulum { 0% { transform: rotate(-15deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(15deg) } }
@keyframes cwh-figure { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cwh-glow { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:0.9; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }

.scn-dr-slop-defines-recovery { background: linear-gradient(180deg, #2a2320 0%, #1e1815 50%, #14100e 100%), radial-gradient(ellipse at 50% 30%, #3a2f2a 0%, transparent 70%); }
.scn-dr-slop-defines-recovery .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a1614 0%, #2a231e 50%, #1a1614 100%); }
.scn-dr-slop-defines-recovery .desk { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3c322c 0%, #2a221e 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-dr-slop-defines-recovery .candle { position:absolute; bottom:30%; left:45%; width:12px; height:40px; background: linear-gradient(180deg, #e8dcc8 0%, #c0b09a 100%); border-radius: 4px; }
.scn-dr-slop-defines-recovery .flame { position:absolute; bottom:66%; left:45.5%; width:8px; height:18px; background: radial-gradient(circle, #ffdd60 0%, #ffa040 50%, transparent 100%); border-radius: 50% 50% 30% 30%; animation: dr1-flicker 2s ease-in-out infinite alternate; }
.scn-dr-slop-defines-recovery .figure { position:absolute; bottom:30%; right:20%; width:32px; height:60px; background: linear-gradient(180deg, #1e1a18 0%, #0e0c0a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dr1-gesture 4s ease-in-out infinite; }
.scn-dr-slop-defines-recovery .book { position:absolute; bottom:33%; left:30%; width:50px; height:30px; background: linear-gradient(180deg, #4a3d36 0%, #2a221e 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-dr-slop-defines-recovery .glow { position:absolute; bottom:40%; left:45%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,200,100,.15) 0%, transparent 100%); border-radius: 50%; animation: dr1-glow 8s ease-in-out infinite alternate; }
@keyframes dr1-flicker { 0% { transform: scaleY(1) rotate(0deg); opacity:.9; } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1; } 100% { transform: scaleY(0.9) rotate(-2deg); opacity:.8; } }
@keyframes dr1-gesture { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes dr1-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.3); } 100% { opacity:.4; transform: scale(1.1); } }

.scn-wadmnan-tender-inquiries { background: linear-gradient(180deg, #2c2418 0%, #1e1810 50%, #140e0a 100%), radial-gradient(ellipse at 50% 50%, #3a2e1a 0%, transparent 70%); }
.scn-wadmnan-tender-inquiries .bg-warm { position:absolute; inset:0; background: linear-gradient(90deg, #1a1410 0%, #2a2218 50%, #1a1410 100%); }
.scn-wadmnan-tender-inquiries .fireplace { position:absolute; bottom:0; left:15%; right:55%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); }
.scn-wadmnan-tender-inquiries .flame { position:absolute; bottom:30%; left:28%; width:20px; height:30px; background: radial-gradient(circle, #ffcc60 0%, #ff8020 40%, transparent 100%); border-radius: 50% 50% 30% 30%; animation: w1-fire 3s ease-in-out infinite alternate; }
.scn-wadmnan-tender-inquiries .couch { position:absolute; bottom:10%; left:50%; right:10%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-wadmnan-tender-inquiries .figure-f { position:absolute; bottom:20%; left:55%; width:28px; height:50px; background: linear-gradient(180deg, #2a221a 0%, #16120e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: w1-lean 5s ease-in-out infinite; }
.scn-wadmnan-tender-inquiries .figure-m { position:absolute; bottom:20%; left:75%; width:34px; height:56px; background: linear-gradient(180deg, #1e1814 0%, #0c0a08 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: w1-sway 6s ease-in-out infinite; }
.scn-wadmnan-tender-inquiries .glow { position:absolute; bottom:30%; left:28%; width:100px; height:80px; background: radial-gradient(circle, rgba(255,180,60,.2) 0%, transparent 100%); border-radius: 50%; animation: w1-heat 8s ease-in-out infinite alternate; }
@keyframes w1-fire { 0% { transform: scaleY(1) rotate(0deg); opacity:.9; } 50% { transform: scaleY(1.2) rotate(3deg); opacity:1; } 100% { transform: scaleY(0.8) rotate(-3deg); opacity:.7; } }
@keyframes w1-lean { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes w1-sway { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes w1-heat { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.5; transform: scale(1.2); } 100% { opacity:.4; transform: scale(0.9); } }

.scn-question-about-place-of-wound { background: linear-gradient(180deg, #1a1816 0%, #12100e 50%, #0a0a08 100%), radial-gradient(ellipse at 50% 50%, #2a221e 0%, transparent 70%); }
.scn-question-about-place-of-wound .bg-shadow { position:absolute; inset:0; background: linear-gradient(135deg, #141210 0%, #1e1a16 50%, #141210 100%); }
.scn-question-about-place-of-wound .figure-f { position:absolute; bottom:20%; left:40%; width:26px; height:48px; background: linear-gradient(180deg, #2a221e 0%, #14120e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: q1-lunge 3s ease-in-out infinite; }
.scn-question-about-place-of-wound .figure-m { position:absolute; bottom:20%; left:60%; width:36px; height:60px; background: linear-gradient(180deg, #1e1a16 0%, #0c0a08 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: q1-tense 4s ease-in-out infinite; }
.scn-question-about-place-of-wound .waistband { position:absolute; bottom:40%; left:62%; width:20px; height:8px; background: #b85a3a; border-radius: 2px; box-shadow: 0 0 6px rgba(184,90,58,.6); animation: q1-focus 3.5s ease-in-out infinite; }
.scn-question-about-place-of-wound .lamp { position:absolute; top:40%; left:50%; width:8px; height:24px; background: linear-gradient(180deg, #c0b09a 0%, #8a7a6a 100%); border-radius: 4px; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-question-about-place-of-wound .glow { position:absolute; bottom:35%; left:55%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,100,.12) 0%, transparent 100%); border-radius: 50%; animation: q1-light 5s ease-in-out infinite alternate; }
@keyframes q1-lunge { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes q1-tense { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes q1-focus { 0% { opacity:.7; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.2); } 100% { opacity:.7; transform: scaleX(1); } }
@keyframes q1-light { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.1); } 100% { opacity:.4; transform: scale(0.95); } }

.scn-item-map-of-namur { background: linear-gradient(180deg, #2a2420 0%, #1e1a16 50%, #14120e 100%), radial-gradient(ellipse at 50% 70%, #3a302a 0%, transparent 70%); }
.scn-item-map-of-namur .bg-table { position:absolute; inset:0; background: linear-gradient(135deg, #1a1612 0%, #2a221e 50%, #1a1612 100%); }
.scn-item-map-of-namur .map { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #c8b89a 0%, #a09078 100%); border-radius: 4%; box-shadow: 0 -4px 8px rgba(0,0,0,.4); animation: i1-map 10s ease-in-out infinite alternate; }
.scn-item-map-of-namur .scissors { position:absolute; bottom:35%; left:45%; width:30px; height:12px; background: linear-gradient(90deg, #c0b0a0 0%, #8a7a6a 50%, #c0b0a0 100%); border-radius: 30% 30% 0 0; transform: rotate(-20deg); transform-origin: right center; animation: i1-snip 4s ease-in-out infinite; }
.scn-item-map-of-namur .finger-f { position:absolute; bottom:30%; left:40%; width:10px; height:16px; background: #d4bc9e; border-radius: 30% 30% 40% 40%; transform: rotate(-15deg); animation: i1-point 3s ease-in-out infinite; }
.scn-item-map-of-namur .finger-m { position:absolute; bottom:32%; left:55%; width:12px; height:18px; background: #b09878; border-radius: 30% 30% 40% 40%; transform: rotate(10deg); animation: i1-point2 3.5s ease-in-out infinite; }
.scn-item-map-of-namur .glow { position:absolute; bottom:30%; left:50%; width:100px; height:80px; background: radial-gradient(circle, rgba(255,200,100,.1) 0%, transparent 100%); border-radius: 50%; animation: i1-glow 6s ease-in-out infinite alternate; }
@keyframes i1-map { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes i1-snip { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(3px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes i1-point { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes i1-point2 { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes i1-glow { 0% { opacity:.2; transform: scale(1); } 50% { opacity:.4; transform: scale(1.1); } 100% { opacity:.3; transform: scale(0.9); } }

.scn-father-awkwardness {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 0%, #8a5a2a 0%, transparent 60%);
}
.scn-father-awkwardness .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: fa-wall 8s ease-in-out infinite alternate;
}
.scn-father-awkwardness .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1008 0%, #3a2818 100%);
}
.scn-father-awkwardness .fireplace {
  position: absolute; bottom: 25%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 30px 10px #c07030, inset 0 -20px 20px #ffa040;
  animation: fa-fire 4s ease-in-out infinite;
}
.scn-father-awkwardness .chair {
  position: absolute; bottom: 22%; right: 20%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-father-awkwardness .figure {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fa-figure 3s ease-in-out infinite;
}
.scn-father-awkwardness .arm-right {
  position: absolute; bottom: 55%; left: 43%; width: 45px; height: 6px;
  background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: fa-arm-right 2s ease-in-out infinite alternate;
}
.scn-father-awkwardness .arm-left {
  position: absolute; bottom: 55%; left: 35%; width: 40px; height: 6px;
  background: linear-gradient(270deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50%;
  transform-origin: right center;
  animation: fa-arm-left 2s ease-in-out infinite alternate;
}
.scn-father-awkwardness .wig {
  position: absolute; bottom: 82%; left: 42%; width: 24px; height: 12px;
  background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 0 0;
  animation: fa-wig 4s ease-in-out infinite;
}
@keyframes fa-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes fa-fire { 0% { box-shadow: 0 0 20px 8px #c07030 } 50% { box-shadow: 0 0 40px 15px #ffa040 } 100% { box-shadow: 0 0 20px 8px #c07030 } }
@keyframes fa-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(4px) translateY(-3px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes fa-arm-right { 0% { transform: rotate(-30deg) } 100% { transform: rotate(30deg) } }
@keyframes fa-arm-left { 0% { transform: rotate(30deg) } 100% { transform: rotate(-30deg) } }
@keyframes fa-wig { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-5px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }

.scn-reach-attempt {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 0%, #8a5a2a 0%, transparent 60%);
}
.scn-reach-attempt .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: ra-wall 10s ease-in-out infinite alternate;
}
.scn-reach-attempt .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1008 0%, #3a2818 100%);
}
.scn-reach-attempt .fireplace {
  position: absolute; bottom: 25%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 30px 10px #c07030, inset 0 -20px 20px #ffa040;
  animation: ra-fire 5s ease-in-out infinite;
}
.scn-reach-attempt .figure {
  position: absolute; bottom: 15%; left: 35%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-figure 4s ease-in-out infinite;
}
.scn-reach-attempt .arm-cross {
  position: absolute; bottom: 45%; left: 35%; width: 60px; height: 6px;
  background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: ra-arm-cross 3s ease-in-out infinite alternate;
}
.scn-reach-attempt .arm-stuck {
  position: absolute; bottom: 50%; left: 42%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: ra-arm-stuck 2.5s ease-in-out infinite;
}
.scn-reach-attempt .pocket {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30%;
  border: 1px solid #1a0a00;
  animation: ra-pocket 6s ease-in-out infinite;
}
@keyframes ra-wall { 0% { opacity: 0.9 } 50% { opacity: 0.7 } 100% { opacity: 0.9 } }
@keyframes ra-fire { 0% { box-shadow: 0 0 25px 8px #c07030 } 50% { box-shadow: 0 0 45px 15px #ffa040 } 100% { box-shadow: 0 0 25px 8px #c07030 } }
@keyframes ra-figure { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes ra-arm-cross { 0% { transform: rotate(-80deg) } 100% { transform: rotate(80deg) } }
@keyframes ra-arm-stuck { 0% { transform: rotate(0deg) } 25% { transform: rotate(20deg) } 75% { transform: rotate(-10deg) } 100% { transform: rotate(0deg) } }
@keyframes ra-pocket { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(1) } }

.scn-mind-body-analogy {
  background: linear-gradient(180deg, #2a2825 0%, #1a1815 50%, #0a0805 100%),
              radial-gradient(ellipse at 50% 100%, #3a3530 0%, transparent 70%);
}
.scn-mind-body-analogy .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2825 0%, #0a0805 100%);
  animation: mb-dim 12s ease-in-out infinite alternate;
}
.scn-mind-body-analogy .stand {
  position: absolute; bottom: 10%; left: 40%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
}
.scn-mind-body-analogy .jerkin {
  position: absolute; bottom: 35%; left: 28%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 10px #8a7a6a;
  animation: mb-jerkin 6s ease-in-out infinite;
}
.scn-mind-body-analogy .lining {
  position: absolute; bottom: 38%; left: 33%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 15% 15% 0 0;
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  border: 1px solid #3a2a1a;
  animation: mb-lining 8s ease-in-out infinite alternate;
}
.scn-mind-body-analogy .button {
  position: absolute; bottom: 55%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #8a7a6a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 2px #0a0a0a;
  animation: mb-button 4s ease-in-out infinite;
}
.scn-mind-body-analogy .thread {
  position: absolute; bottom: 55%; left: 43%; width: 20px; height: 2px;
  background: #5a4a3a;
  border-radius: 50%;
  animation: mb-thread 5s linear infinite;
}
@keyframes mb-dim { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes mb-jerkin { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes mb-lining { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes mb-button { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mb-thread { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

.scn-uncle-toby-interpretation {
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 0%, #c07030 0%, transparent 70%);
}
.scn-uncle-toby-interpretation .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  animation: ut-wall 9s ease-in-out infinite alternate;
}
.scn-uncle-toby-interpretation .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1008 0%, #3a2818 100%);
}
.scn-uncle-toby-interpretation .fireplace {
  position: absolute; bottom: 25%; left: 15%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 40px 15px #e08040, inset 0 -30px 30px #ffb060;
  animation: ut-fire 5s ease-in-out infinite;
}
.scn-uncle-toby-interpretation .armchair {
  position: absolute; bottom: 22%; right: 20%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}
.scn-uncle-toby-interpretation .figure {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ut-figure 4s ease-in-out infinite;
}
.scn-uncle-toby-interpretation .face-profile {
  position: absolute; bottom: 60%; left: 48%; width: 20px; height: 24px;
  background: radial-gradient(circle at 30% 50%, #b05030 0%, #5a2a1a 100%);
  border-radius: 50% 40% 40% 50%;
  box-shadow: 0 0 10px 2px #ff8040;
  animation: ut-face 6s ease-in-out infinite alternate;
}
.scn-uncle-toby-interpretation .glow {
  position: absolute; bottom: 40%; left: 30%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,160,64,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: ut-glow 8s ease-in-out infinite alternate;
}
@keyframes ut-wall { 0% { opacity: 0.9 } 50% { opacity: 0.6 } 100% { opacity: 0.9 } }
@keyframes ut-fire { 0% { box-shadow: 0 0 30px 12px #e08040 } 50% { box-shadow: 0 0 50px 20px #ffa040 } 100% { box-shadow: 0 0 30px 12px #e08040 } }
@keyframes ut-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ut-face { 0% { opacity: 0.8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.8; transform: scale(1) } }
@keyframes ut-glow { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.1) } 100% { opacity: 0.4; transform: scale(1) } }

/* ===== trim-enters-for-story ===== */
.scn-trim-enters-for-story {
  background: linear-gradient(180deg, #4a2a1a 0%, #3a2010 40%, #2a1508 100%),
              radial-gradient(ellipse at 50% 70%, #c08040 0%, transparent 60%);
}
.scn-trim-enters-for-story .room-back { position:absolute; inset:0; background: linear-gradient(180deg, #6a4a2a 0%, #5a3a1a 100%); }
.scn-trim-enters-for-story .hearth { position:absolute; bottom:20%; left:20%; width:35%; height:40%; background: linear-gradient(180deg, #3a2010, #1a0e08); border-radius: 10% 10% 30% 30%; box-shadow: inset 0 0 30px #251208; }
.scn-trim-enters-for-story .fire-glow { position:absolute; bottom:28%; left:26%; width:20%; height:18%; background: radial-gradient(ellipse, #ffa040 0%, #ff8030 30%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: te-fire 2s ease-in-out infinite alternate; }
.scn-trim-enters-for-story .armchair { position:absolute; bottom:18%; right:25%; width:24%; height:30%; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a20 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 12px #1a0e08; }
.scn-trim-enters-for-story .bookcase { position:absolute; top:10%; right:5%; width:20%; height:60%; background: linear-gradient(180deg, #4a2a1a, #2a1508); border-radius: 4%; box-shadow: inset 0 0 10px #1a0e08; }
.scn-trim-enters-for-story .figure-yorick { position:absolute; bottom:22%; left:35%; width:12%; height:40%; background: linear-gradient(180deg, #d0b080 0%, #a08050 50%, #705030 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom; animation: te-yorick 6s ease-in-out infinite; }
.scn-trim-enters-for-story .figure-toby { position:absolute; bottom:18%; left:55%; width:10%; height:38%; background: linear-gradient(180deg, #b09070 0%, #806050 50%, #504030 100%); border-radius: 35% 35% 15% 15% / 55% 55% 25% 25%; transform-origin: bottom; animation: te-toby 5s ease-in-out infinite; }
.scn-trim-enters-for-story .candle { position:absolute; top:30%; left:42%; width:2%; height:12%; background: linear-gradient(180deg, #f0e0c0, #c0a080); border-radius: 10%; box-shadow: 0 0 20px 8px #ffd080; animation: te-candle 3s ease-in-out infinite alternate; }
@keyframes te-fire { 0% { transform: scale(1); opacity:0.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.7 } }
@keyframes te-yorick { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes te-toby { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes te-candle { 0% { box-shadow: 0 0 15px 5px #ffd080; } 50% { box-shadow: 0 0 30px 10px #ffcc70; } 100% { box-shadow: 0 0 20px 6px #ffd080; } }

/* ===== trim-admitted ===== */
.scn-trim-admitted {
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 50%, #2a1508 100%),
              radial-gradient(ellipse at 30% 60%, #c08040 0%, transparent 50%);
}
.scn-trim-admitted .wall { position:absolute; inset:0; background: linear-gradient(180deg, #6a4a2a, #4a2a1a); }
.scn-trim-admitted .door-frame { position:absolute; left:25%; top:10%; width:30%; height:80%; background: linear-gradient(90deg, #4a2a1a 0%, #3a2010 50%, #4a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px #1a0e08; }
.scn-trim-admitted .door-open { position:absolute; left:28%; top:12%; width:24%; height:76%; background: linear-gradient(180deg, #2a1508 0%, #1a0e08 100%); transform-origin: left; animation: ta-door 8s ease-in-out infinite alternate; }
.scn-trim-admitted .trim-silhouette { position:absolute; bottom:18%; left:35%; width:12%; height:40%; background: linear-gradient(180deg, #1a0e08 0%, #0a0500 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: translateZ(0); animation: ta-trim 6s ease-in-out infinite; }
.scn-trim-admitted .table { position:absolute; bottom:10%; right:20%; width:30%; height:8%; background: linear-gradient(180deg, #6a4a2a, #4a2a1a); border-radius: 10%; box-shadow: 0 4px 8px #1a0e08; }
.scn-trim-admitted .book { position:absolute; bottom:15%; right:30%; width:8%; height:10%; background: linear-gradient(135deg, #8a6a4a, #5a3a20); border-radius: 10%; transform: rotate(15deg); animation: ta-book 4s ease-in-out infinite; }
.scn-trim-admitted .yorick-silhouette { position:absolute; bottom:18%; right:22%; width:10%; height:38%; background: linear-gradient(180deg, #2a1a0a, #1a0e08); border-radius: 35% 35% 15% 15% / 55% 55% 25% 25%; transform: rotate(-5deg); animation: ta-yorick 5s ease-in-out infinite; }
.scn-trim-admitted .candle-stand { position:absolute; bottom:12%; right:27%; width:2%; height:15%; background: linear-gradient(180deg, #c0a080, #8a6a4a); border-radius: 10%; box-shadow: 0 0 12px 4px #ffd080; animation: ta-candle 3s ease-in-out infinite alternate; }
@keyframes ta-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-25deg); } 100% { transform: rotateY(0deg); } }
@keyframes ta-trim { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes ta-book { 0% { transform: rotate(15deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(15deg); } }
@keyframes ta-yorick { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(-5deg); } }
@keyframes ta-candle { 0% { opacity:0.8; box-shadow:0 0 10px 3px #ffc080; } 50% { opacity:1; box-shadow:0 0 20px 6px #ffd080; } 100% { opacity:0.85; box-shadow:0 0 12px 4px #ffc080; } }

/* ===== greek-quotations ===== */
.scn-greek-quotations {
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 60%, #050510 100%),
              radial-gradient(ellipse at 40% 80%, #2a2a4e 0%, transparent 70%);
}
.scn-greek-quotations .study-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e3a, #0e0e1a); }
.scn-greek-quotations .desk { position:absolute; bottom:10%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #2a2a40, #151528); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px #0a0a14; }
.scn-greek-quotations .bookstack { position:absolute; bottom:24%; left:15%; width:30%; height:20%; background: linear-gradient(180deg, #3a3a50, #1a1a30); border-radius: 10%; box-shadow: 4px 4px 8px #0a0a14; }
.scn-greek-quotations .candle-flame { position:absolute; bottom:35%; left:60%; width:3%; height:12%; background: radial-gradient(ellipse, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: gq-flame 2s ease-in-out infinite alternate; }
.scn-greek-quotations .scroll { position:absolute; bottom:28%; left:50%; width:20%; height:8%; background: linear-gradient(90deg, #c8b89a, #a89878); border-radius: 10%; transform: rotate(-10deg); animation: gq-scroll 4s ease-in-out infinite; }
.scn-greek-quotations .inkwell { position:absolute; bottom:22%; left:42%; width:4%; height:6%; background: linear-gradient(180deg, #2a2a40, #0a0a1e); border-radius: 50%; box-shadow: 0 0 6px #0a0a14; }
.scn-greek-quotations .shadow-figure { position:absolute; bottom:18%; right:20%; width:8%; height:30%; background: linear-gradient(180deg, #1a1a2e, #0a0a1e); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; filter: blur(2px); opacity:0.6; animation: gq-shade 8s ease-in-out infinite alternate; }
@keyframes gq-flame { 0% { transform: scaleY(1); opacity:0.7; } 50% { transform: scaleY(1.2); opacity:1; } 100% { transform: scaleY(0.9); opacity:0.8; } }
@keyframes gq-scroll { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-7deg); } 100% { transform: rotate(-10deg); } }
@keyframes gq-shade { 0% { transform: translateY(0); opacity:0.6; } 50% { transform: translateY(-4px); opacity:0.8; } 100% { transform: translateY(0); opacity:0.6; } }

/* ===== gymnast-tripet-fight ===== */
.scn-gymnast-tripet-fight {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 60%, #daa520 100%),
              radial-gradient(ellipse at 30% 20%, #fff5cc 0%, transparent 50%);
}
.scn-gymnast-tripet-fight .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: gt-sky 10s ease-in-out infinite alternate; }
.scn-gymnast-tripet-fight .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8a85a 0%, #8a6a2a 100%); border-radius: 30% 30% 0 0; }
.scn-gymnast-tripet-fight .dust-cloud { position:absolute; bottom:28%; left:20%; width:40%; height:20%; background: radial-gradient(ellipse, rgba(200,180,120,0.6) 0%, transparent 70%); filter: blur(12px); animation: gt-dust 4s ease-in-out infinite; }
.scn-gymnast-tripet-fight .horse { position:absolute; bottom:22%; left:30%; width:25%; height:35%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gt-horse 3s ease-in-out infinite; }
.scn-gymnast-tripet-fight .gymnast { position:absolute; bottom:38%; left:33%; width:12%; height:25%; background: linear-gradient(180deg, #c8a85a 0%, #a08040 50%, #705020 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform-origin: bottom; animation: gt-gymnast 2s ease-in-out infinite; }
.scn-gymnast-tripet-fight .soldier-fleeing { position:absolute; bottom:20%; left:55%; width:10%; height:30%; background: linear-gradient(180deg, #3a5a7a 0%, #2a3a5a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: scaleX(-1); animation: gt-flee 5s ease-in-out infinite alternate; }
.scn-gymnast-tripet-fight .soldier-fallen { position:absolute; bottom:12%; left:65%; width:14%; height:10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(20deg); animation: gt-fall 6s ease-in-out infinite; }
.scn-gymnast-tripet-fight .sun-beams { position:absolute; top:0; left:30%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%); filter: blur(10px); animation: gt-beam 8s ease-in-out infinite alternate; }
@keyframes gt-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes gt-dust { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.2); opacity:0.8; } 100% { transform: scale(1); opacity:0.5; } }
@keyframes gt-horse { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes gt-gymnast { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes gt-flee { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes gt-fall { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(30deg) translateY(5px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes gt-beam { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

/* father-amused */
.scn-father-amused { background: linear-gradient(180deg, #e8dcc0 0%, #d4c4a0 40%, #c0aa80 100%), radial-gradient(ellipse at 20% 80%, #f0e4c8 0%, transparent 60%); }
.scn-father-amused .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e0d4b8 0%, #d0c0a0 100%); }
.scn-father-amused .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b09878 0%, #8a7058 100%); }
.scn-father-amused .window { position:absolute; top:12%; left:10%; width:80px; height:100px; background: radial-gradient(circle at 50% 60%, #fff8e0 0%, #d0c0a0 80%); border:6px solid #8a7058; border-radius:8% 8% 4% 4%; box-shadow: inset 0 0 30px #fff8e0; }
.scn-father-amused .table { position:absolute; bottom:28%; left:30%; width:120px; height:20px; background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%); border-radius:10% / 50%; }
.scn-father-amused .father-figure { position:absolute; bottom:35%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fa-laugh 2s ease-in-out infinite; }
.scn-father-amused .toby-figure { position:absolute; bottom:35%; left:60%; width:28px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fa-point 5s ease-in-out infinite; }
.scn-father-amused .hobbyhorse { position:absolute; bottom:32%; left:65%; width:40px; height:30px; background: #7a5a3a; border-radius:50% 50% 20% 20% / 30% 30% 40% 40%; transform: rotate(-10deg); animation: fa-bob 3s ease-in-out infinite; }
.scn-father-amused .candle-glow { position:absolute; bottom:30%; left:35%; width:20px; height:20px; background: radial-gradient(circle, #ffe080 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,224,128,0.4); animation: fa-flicker 1.5s ease-in-out infinite alternate; }
@keyframes fa-laugh { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes fa-point { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(5deg); } }
@keyframes fa-bob { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes fa-flicker { 0% { opacity:0.7; transform:scale(0.95); } 100% { opacity:1; transform:scale(1.05); } }

/* father-panegyric-battering-rams */
.scn-father-panegyric-battering-rams { background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a8 50%, #b0a080 100%), radial-gradient(ellipse at 50% 100%, #c8b898 0%, transparent 70%); }
.scn-father-panegyric-battering-rams .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e0d4b8 0%, #c8b898 100%); }
.scn-father-panegyric-battering-rams .colonnade { position:absolute; left:50%; bottom:45%; width:80%; height:55%; transform:translateX(-50%); background: repeating-linear-gradient(90deg, #a08868 0px, #a08868 10px, transparent 10px, transparent 50px); }
.scn-father-panegyric-battering-rams .pedestal { position:absolute; bottom:25%; left:55%; width:60px; height:50px; background: linear-gradient(180deg, #907860 0%, #705840 100%); border-radius:10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-father-panegyric-battering-rams .ram-model { position:absolute; bottom:32%; left:57%; width:80px; height:20px; background: linear-gradient(90deg, #4a3020 0%, #6a5040 50%, #4a3020 100%); border-radius:20% / 50%; transform: rotate(-5deg); animation: fp-ram 4s ease-in-out infinite; }
.scn-father-panegyric-battering-rams .father-orator { position:absolute; bottom:25%; left:30%; width:32px; height:75px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fp-gesture 3s ease-in-out infinite; }
.scn-father-panegyric-battering-rams .shadow-audience { position:absolute; bottom:25%; right:15%; width:100px; height:60px; background: radial-gradient(ellipse, #2a1a0a 0%, transparent 70%); filter: blur(4px); }
.scn-father-panegyric-battering-rams .scroll { position:absolute; top:20%; left:15%; width:40px; height:60px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b090 100%); border-radius:0 0 10% 10%; box-shadow: 2px 4px 6px rgba(0,0,0,0.2); animation: fp-unroll 6s ease-in-out infinite; }
@keyframes fp-ram { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-5px); } }
@keyframes fp-gesture { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-6px) rotate(-3deg); } }
@keyframes fp-unroll { 0% { height:60px; opacity:0.8; } 50% { height:70px; opacity:1; } 100% { height:60px; opacity:0.8; } }

/* toby-pipe-smoke */
.scn-toby-pipe-smoke { background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #6a3a2a 0%, transparent 60%); }
.scn-toby-pipe-smoke .backwall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-toby-pipe-smoke .fireplace { position:absolute; bottom:25%; left:50%; width:120px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 0 30px #8a4a2a; }
.scn-toby-pipe-smoke .fire { position:absolute; bottom:30%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #ff8020 0%, #ff4010 40%, transparent 70%); border-radius:50% 50% 20% 20%; animation: tp-fire 1.5s ease-in-out infinite alternate; }
.scn-toby-pipe-smoke .toby-silhouette { position:absolute; bottom:10%; left:35%; width:35px; height:85px; background: #0a0500; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-sit 3s ease-in-out infinite; }
.scn-toby-pipe-smoke .pipe-glow { position:absolute; bottom:30%; left:48%; width:8px; height:8px; background: #ff6020; border-radius:50%; box-shadow: 0 0 20px 6px #ff6020; animation: tp-puff 2s ease-in-out infinite; }
.scn-toby-pipe-smoke .smoke-cloud-a { position:absolute; bottom:45%; left:40%; width:70px; height:40px; background: radial-gradient(circle, rgba(200,200,200,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: tp-drift-a 8s linear infinite; }
.scn-toby-pipe-smoke .smoke-cloud-b { position:absolute; bottom:40%; left:50%; width:60px; height:50px; background: radial-gradient(circle, rgba(200,200,200,0.25) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: tp-drift-b 10s linear infinite reverse; }
.scn-toby-pipe-smoke .father-coughing { position:absolute; bottom:15%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-cough 4s ease-in-out infinite; }
@keyframes tp-fire { 0% { transform: scaleX(1) scaleY(1); opacity:0.9; } 100% { transform: scaleX(1.2) scaleY(1.1); opacity:1; } }
@keyframes tp-sit { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes tp-puff { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.5); opacity:1; } 100% { transform: scale(1); opacity:0.8; } }
@keyframes tp-drift-a { 0% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-20px) translateX(30px); } 100% { transform: translateY(-40px) translateX(60px); } }
@keyframes tp-drift-b { 0% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-30px) translateX(-20px); } 100% { transform: translateY(-60px) translateX(-40px); } }
@keyframes tp-cough { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-5px) rotate(4deg); } }

/* new-bridge-italian */
.scn-new-bridge-italian { background: linear-gradient(180deg, #d4c8b0 0%, #b8a888 50%, #9a7a68 100%), radial-gradient(ellipse at 30% 70%, #e0d4c0 0%, transparent 60%); }
.scn-new-bridge-italian .workshop-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c8b8a0 0%, #a89078 100%); }
.scn-new-bridge-italian .workbench { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #8a7058 0%, #6a5040 100%); border-radius:4% / 10%; box-shadow: inset 0 4px 10px rgba(0,0,0,0.3); }
.scn-new-bridge-italian .bridge-model { position:absolute; bottom:25%; left:35%; width:100px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); clip-path: polygon(0% 100%, 10% 30%, 30% 30%, 40% 0%, 60% 0%, 70% 30%, 90% 30%, 100% 100%); animation: nb-lift 5s ease-in-out infinite; }
.scn-new-bridge-italian .trim-figure { position:absolute; bottom:22%; left:25%; width:28px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nb-work 3s ease-in-out infinite; }
.scn-new-bridge-italian .toolbox { position:absolute; bottom:22%; right:20%; width:50px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:10% / 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-new-bridge-italian .blueprint { position:absolute; top:15%; left:15%; width:50px; height:70px; background: linear-gradient(180deg, #e8e0c8 0%, #c8b8a0 100%); border:2px solid #6a5040; box-shadow: 2px 4px 8px rgba(0,0,0,0.2); }
.scn-new-bridge-italian .candle-sconce { position:absolute; top:15%; right:20%; width:16px; height:16px; background: radial-gradient(circle, #ffd080 0%, #c09040 60%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,208,128,0.4); animation: nb-glow 2s ease-in-out infinite alternate; }
@keyframes nb-lift { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes nb-work { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes nb-glow { 0% { opacity:0.7; transform:scale(0.95); } 100% { opacity:1; transform:scale(1.05); } }

.scn-father-book-discussion {
  background: linear-gradient(180deg, #2a1e12 0%, #3d2b1a 40%, #1f140a 100%), radial-gradient(ellipse at 50% 30%, #5a3f28 0%, transparent 70%);
}
.scn-father-book-discussion .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3520 0%, #2a1e12 100%);
  animation: fbd-wall 20s ease-in-out infinite alternate;
}
.scn-father-book-discussion .table {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 22%;
  background: linear-gradient(180deg, #6b4c34 0%, #3d2b1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-father-book-discussion .book {
  position: absolute; bottom: 32%; left: 45%; width: 60px; height: 42px;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: fbd-book 8s ease-in-out infinite;
}
.scn-father-book-discussion .candle {
  position: absolute; bottom: 44%; left: 60%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e8c888 0%, #b88a44 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 6px #ffaa44;
  animation: fbd-candle 2s ease-in-out infinite alternate;
}
.scn-father-book-discussion .figure {
  position: absolute; bottom: 20%; left: 35%; width: 36px; height: 52px;
  background: radial-gradient(ellipse at 50% 30%, #2a1e12 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fbd-figure 6s ease-in-out infinite;
}
.scn-father-book-discussion .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: fbd-shadow 6s ease-in-out infinite;
}
.scn-father-book-discussion .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 50%, rgba(255,170,68,.15) 0%, transparent 60%);
  pointer-events: none;
  animation: fbd-glow 3s ease-in-out infinite alternate;
}
@keyframes fbd-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes fbd-book { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-1px) } }
@keyframes fbd-candle { 0% { box-shadow: 0 0 10px 4px #ffaa44; } 50% { box-shadow: 0 0 14px 8px #ffcc66; } 100% { box-shadow: 0 0 8px 3px #ffaa44; } }
@keyframes fbd-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fbd-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } }
@keyframes fbd-glow { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }

.scn-father-walking-down {
  background: linear-gradient(180deg, #1a140e 0%, #2c2014 40%, #4a3520 100%), radial-gradient(ellipse at 50% 100%, #2c2014 0%, transparent 70%);
}
.scn-father-walking-down .backdrop {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3d2b1a 0%, #1a140e 100%);
  animation: fwd-backdrop 15s ease-in-out infinite alternate;
}
.scn-father-walking-down .stair {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 50%;
  background: repeating-linear-gradient(180deg, #4a3520 0px, #4a3520 8px, #2c2014 8px, #2c2014 16px);
  border-radius: 0 0 20% 20%;
}
.scn-father-walking-down .riser {
  position: absolute; bottom: 40%; left: 20%; width: 60%; height: 4px;
  background: #5a4528;
  border-radius: 2px;
  box-shadow: 0 16px 0 #5a4528, 0 32px 0 #5a4528, 0 48px 0 #5a4528;
  animation: fwd-riser 10s linear infinite;
}
.scn-father-walking-down .figure {
  position: absolute; bottom: 18%; left: 30%; width: 28px; height: 48px;
  background: radial-gradient(ellipse at 50% 30%, #1a140e 0%, #0d0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fwd-walk 1.5s steps(1) infinite;
}
.scn-father-walking-down .lantern {
  position: absolute; bottom: 32%; left: 25%; width: 8px; height: 12px;
  background: #e8b050;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 4px #e8b050;
  animation: fwd-lantern 2s ease-in-out infinite alternate;
}
.scn-father-walking-down .shadow {
  position: absolute; bottom: 12%; left: 25%; width: 30px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%);
  filter: blur(3px);
  animation: fwd-shadow 1.5s steps(1) infinite;
}
@keyframes fwd-backdrop { 0%,100% { opacity: .7 } 50% { opacity: 1 } }
@keyframes fwd-riser { 0% { transform: translateY(0) } 100% { transform: translateY(-16px) } }
@keyframes fwd-walk { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-3px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fwd-lantern { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes fwd-shadow { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.9) } }

.scn-yorick-enters-parlour {
  background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a0 40%, #a08870 100%), radial-gradient(ellipse at 50% 60%, #f0e8d0 0%, transparent 70%);
}
.scn-yorick-enters-parlour .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #c0b098 100%);
  animation: yep-room 12s ease-in-out infinite alternate;
}
.scn-yorick-enters-parlour .doorway {
  position: absolute; bottom: 20%; left: 10%; width: 80px; height: 140px;
  background: #b8a890;
  border-radius: 40px 40px 0 0;
  border: 4px solid #8a7a68;
  box-shadow: inset 0 0 20px rgba(0,0,0,.2);
  transform: translateX(-50%);
  animation: yep-door 8s ease-in-out infinite;
}
.scn-yorick-enters-parlour .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8a890 0%, #9a8a78 100%);
}
.scn-yorick-enters-parlour .figure {
  position: absolute; bottom: 18%; left: 12%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yep-enter 4s ease-in-out infinite;
}
.scn-yorick-enters-parlour .window {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 30%, #f8f4e8 0%, #d8d0c0 70%);
  border-radius: 8px;
  border: 6px solid #b8a890;
  box-shadow: inset 0 0 20px rgba(255,255,255,.6);
  animation: yep-window 6s ease-in-out infinite alternate;
}
.scn-yorick-enters-parlour .light-beam {
  position: absolute; top: 8%; right: 10%; width: 100px; height: 200px;
  background: linear-gradient(135deg, rgba(255,248,220,.4) 0%, transparent 70%);
  filter: blur(10px);
  pointer-events: none;
  animation: yep-beam 8s ease-in-out infinite alternate;
}
@keyframes yep-room { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes yep-door { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-48%) scaleX(0.98) } }
@keyframes yep-enter { 0% { transform: translateX(-10px) rotate(0deg) } 30% { transform: translateX(0) rotate(-2deg) } 60% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(10px) rotate(0deg) } }
@keyframes yep-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,255,.4) } 50% { box-shadow: inset 0 0 30px rgba(255,255,255,.8) } 100% { box-shadow: inset 0 0 20px rgba(255,255,255,.5) } }
@keyframes yep-beam { 0% { opacity: .2; transform: scaleY(0.95) } 50% { opacity: .5; transform: scaleY(1) } 100% { opacity: .3; transform: scaleY(0.95) } }

.scn-yorick-replies {
  background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a0 50%, #a08870 100%), radial-gradient(ellipse at 50% 70%, #f0e8d0 0%, transparent 70%);
}
.scn-yorick-replies .bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%);
  animation: yr-bg 14s ease-in-out infinite alternate;
}
.scn-yorick-replies .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 12px rgba(0,0,0,.3);
}
.scn-yorick-replies .father-figure {
  position: absolute; bottom: 18%; left: 28%; width: 34px; height: 48px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yr-father 5s ease-in-out infinite;
}
.scn-yorick-replies .yorick-figure {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yr-yorick 4s ease-in-out infinite;
}
.scn-yorick-replies .window {
  position: absolute; top: 8%; left: 5%; width: 50px; height: 70px;
  background: radial-gradient(circle at 50% 30%, #f8f4e8 0%, #d8d0c0 70%);
  border-radius: 6px;
  border: 6px solid #b8a890;
  box-shadow: inset 0 0 15px rgba(255,255,255,.5);
  animation: yr-window 5s ease-in-out infinite alternate;
}
.scn-yorick-replies .glow {
  position: absolute; top: 5%; left: 3%; width: 120px; height: 150px;
  background: radial-gradient(ellipse at 30% 20%, rgba(255,248,200,.2) 0%, transparent 70%);
  filter: blur(15px);
  pointer-events: none;
  animation: yr-glow 4s ease-in-out infinite alternate;
}
.scn-yorick-replies .shadow {
  position: absolute; bottom: 15%; left: 25%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: yr-shadow 6s ease-in-out infinite;
}
@keyframes yr-bg { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes yr-father { 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 yr-yorick { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes yr-window { 0% { box-shadow: inset 0 0 15px rgba(255,255,255,.3) } 50% { box-shadow: inset 0 0 25px rgba(255,255,255,.7) } 100% { box-shadow: inset 0 0 15px rgba(255,255,255,.4) } }
@keyframes yr-glow { 0% { opacity: .2 } 50% { opacity: .5 } 100% { opacity: .3 } }
@keyframes yr-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.85) } }

/* ========== sermon-resumed ========== */
.scn-sermon-resumed { background: linear-gradient(180deg, #3a1e0c 0%, #241208 40%, #1a0e06 100%), radial-gradient(ellipse at 30% 70%, #b85a2a 0%, transparent 60%); }
.scn-sermon-resumed .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a2a14 0%, #2a180c 100%); border-bottom:2px solid #5a3a1a; }
.scn-sermon-resumed .hearth { position:absolute; bottom:10%; left:15%; width:40%; height:40%; background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%); border-radius:30% 30% 10% 10%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.6); }
.scn-sermon-resumed .fire-core { position:absolute; bottom:20%; left:25%; width:20%; height:15%; background: radial-gradient(circle, #ff8c42 0%, #d4601a 40%, #8a3c0a 70%, transparent 100%); border-radius:50%; animation: sr-fire 1.5s ease-in-out infinite alternate; }
.scn-sermon-resumed .fire-glow { position:absolute; bottom:10%; left:10%; width:80%; height:50%; background: radial-gradient(ellipse at 35% 80%, rgba(230,130,50,.5) 0%, transparent 70%); animation: sr-glow 3s ease-in-out infinite alternate; }
.scn-sermon-resumed .chair { position:absolute; bottom:15%; left:45%; width:30%; height:45%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius:10% 10% 30% 30% / 20% 20% 50% 50%; box-shadow: 2px 0 6px rgba(0,0,0,.4); }
.scn-sermon-resumed .figure-sr { position:absolute; bottom:25%; left:48%; width:18%; height:50%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sr-figure 8s ease-in-out infinite; }
.scn-sermon-resumed .book-sr { position:absolute; bottom:30%; left:44%; width:12%; height:8%; background: linear-gradient(135deg, #6a4a22 0%, #4a2a12 100%); border-radius:4px; transform:rotate(-10deg); animation: sr-book 4s ease-in-out infinite alternate; }
.scn-sermon-resumed .shadows { position:absolute; inset:0; background: radial-gradient(ellipse at 35% 70%, transparent 40%, rgba(0,0,0,.5) 100%); animation: sr-shadow 12s ease-in-out infinite alternate; }
@keyframes sr-fire { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(0.95) translateY(0); } }
@keyframes sr-glow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sr-figure { 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 sr-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes sr-shadow { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

/* ========== sermon-text ========== */
.scn-sermon-text { background: linear-gradient(180deg, #4a2a14 0%, #2a180c 50%, #1a0e06 100%), radial-gradient(ellipse at 50% 60%, #b85a22 0%, transparent 70%); }
.scn-sermon-text .study-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); }
.scn-sermon-text .candle { position:absolute; bottom:30%; left:40%; width:4%; height:25%; background: linear-gradient(180deg, #f0c888 0%, #d4a060 50%, #8a5a20 100%); border-radius:20% 20% 10% 10%; animation: st-candle 5s ease-in-out infinite; }
.scn-sermon-text .candle-glow { position:absolute; bottom:30%; left:36%; width:28%; height:35%; background: radial-gradient(ellipse, #ffd080 0%, #e09040 30%, transparent 60%); animation: st-glow 3s ease-in-out infinite alternate; }
.scn-sermon-text .desk { position:absolute; bottom:10%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #6a4a22 0%, #4a2a12 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-sermon-text .book-open { position:absolute; bottom:22%; left:30%; width:30%; height:12%; background: linear-gradient(135deg, #8a6a3a 0%, #5a3a1a 50%, #7a5a2a 100%); border-radius:4px; transform: perspective(400px) rotateX(10deg); animation: st-book 8s ease-in-out infinite alternate; }
.scn-sermon-text .hand-st { position:absolute; bottom:25%; left:28%; width:10%; height:18%; background: linear-gradient(180deg, #4a2a14 0%, #2a180c 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(15deg); animation: st-hand 6s ease-in-out infinite alternate; }
.scn-sermon-text .spectacles { position:absolute; bottom:38%; left:35%; width:8%; height:4%; background: transparent; border: 2px solid #c09050; border-radius:40%; box-shadow: 0 0 4px #c09050; animation: st-spec 10s ease-in-out infinite; }
@keyframes st-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes st-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes st-book { 0% { transform: perspective(400px) rotateX(10deg) translateY(0); } 50% { transform: perspective(400px) rotateX(5deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(10deg) translateY(0); } }
@keyframes st-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes st-spec { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* ========== sermon-conscience ========== */
.scn-sermon-conscience { background: linear-gradient(180deg, #2a1a0e 0%, #4a2a14 30%, #1a0e06 100%), radial-gradient(ellipse at 40% 50%, #b85a2a 0%, transparent 60%); }
.scn-sermon-conscience .deep-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 40%, rgba(0,0,0,.8) 100%); animation: sc-deep 15s ease-in-out infinite alternate; }
.scn-sermon-conscience .arch { position:absolute; bottom:20%; left:15%; width:70%; height:80%; border: 8px solid #5a3a1a; border-radius:60% 60% 0 0 / 80% 80% 0 0; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-sermon-conscience .kneeler { position:absolute; bottom:10%; left:30%; width:40%; height:25%; background: linear-gradient(180deg, #6a4a22 0%, #4a2a12 100%); border-radius:30% 30% 10% 10%; }
.scn-sermon-conscience .figure-sc { position:absolute; bottom:20%; left:38%; width:24%; height:45%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-figure 7s ease-in-out infinite alternate; }
.scn-sermon-conscience .rope { position:absolute; bottom:38%; left:32%; width:2%; height:40%; background: #5a3a1a; border-radius:30%; transform: rotate(5deg); animation: sc-rope 4s ease-in-out infinite; }
.scn-sermon-conscience .stain-glass { position:absolute; top:10%; left:30%; width:40%; height:40%; background: radial-gradient(circle at 50% 50%, #8a5a2a 0%, #4a2a14 40%, transparent 60%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; animation: sc-glass 20s ease-in-out infinite alternate; }
.scn-sermon-conscience .altar-glow { position:absolute; bottom:15%; left:35%; width:30%; height:10%; background: radial-gradient(ellipse, #ffc060 0%, #b85a2a 40%, transparent 70%); animation: sc-glow 3s ease-in-out infinite alternate; }
.scn-sermon-conscience .dust-mot { position:absolute; top:20%; left:10%; width:5px; height:5px; background: #ffd080; border-radius:50%; box-shadow: 20px 30px 0 0 #ffc060, 50px 10px 0 0 #e09040, 80px 50px 0 0 #ffb050; animation: sc-dust 30s linear infinite; }
@keyframes sc-deep { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes sc-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-5px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes sc-rope { 0% { transform: rotate(5deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(5deg); } }
@keyframes sc-glass { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(0.95); } }
@keyframes sc-glow { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.2); } 100% { opacity:0.7; transform: scaleY(1); } }
@keyframes sc-dust { 0% { transform: translateY(0) translateX(0); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translateY(-200px) translateX(100px); opacity:0; } }

/* ========== sermon-examples ========== */
.scn-sermon-examples { background: linear-gradient(180deg, #1a0e06 0%, #3a1e0e 40%, #2a140a 100%), radial-gradient(ellipse at 50% 70%, #b85a2a 0%, transparent 50%); }
.scn-sermon-examples .cave-wall { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, #4a2a14 0%, #1a0e06 80%); }
.scn-sermon-examples .fire-pit { position:absolute; bottom:15%; left:25%; width:50%; height:20%; background: radial-gradient(ellipse at 50% 60%, #8a3c0a 0%, #3a1a0a 60%, transparent 100%); border-radius:50%; }
.scn-sermon-examples .logs { position:absolute; bottom:18%; left:30%; width:40%; height:8%; background: linear-gradient(90deg, #5a3a1a 0%, #4a2a12 50%, #5a3a1a 100%); border-radius:20px; box-shadow: inset 0 -2px 4px rgba(0,0,0,.6); animation: se-logs 10s ease-in-out infinite alternate; }
.scn-sermon-examples .flame-l { position:absolute; bottom:27%; left:28%; width:10%; height:20%; background: linear-gradient(180deg, #ff8c42 0%, #d4601a 50%, #8a3c0a 100%); border-radius:50% 50% 20% 20%; filter: blur(2px); animation: se-flame-l 1.2s ease-in-out infinite alternate; }
.scn-sermon-examples .flame-r { position:absolute; bottom:27%; right:28%; width:10%; height:25%; background: linear-gradient(180deg, #ffa050 0%, #d4601a 50%, #8a3c0a 100%); border-radius:50% 50% 20% 20%; filter: blur(2px); animation: se-flame-r 1.8s ease-in-out infinite alternate; }
.scn-sermon-examples .vagrant-se { position:absolute; bottom:10%; left:35%; width:30%; height:60%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: se-figure 12s ease-in-out infinite; }
.scn-sermon-examples .staff { position:absolute; bottom:10%; left:38%; width:3%; height:55%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius:30%; transform: rotate(-8deg); animation: se-staff 4s ease-in-out infinite alternate; }
.scn-sermon-examples .shadow-hand { position:absolute; bottom:40%; left:45%; width:15%; height:20%; background: radial-gradient(circle at 30% 50%, rgba(0,0,0,.6) 0%, transparent 70%); transform: rotate(20deg); animation: se-hand 6s ease-in-out infinite alternate; }
@keyframes se-logs { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(1); } }
@keyframes se-flame-l { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.2) translateY(-4px); } 100% { transform: scaleY(0.9) translateY(0); } }
@keyframes se-flame-r { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.3) translateY(-5px); } 100% { transform: scaleY(0.95) translateY(0); } }
@keyframes se-figure { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes se-staff { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes se-hand { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } 100% { transform: rotate(20deg) scale(1); } }

.scn-right-end-dispute {
  background: radial-gradient(ellipse at 50% 40%, #5a2a1a 0%, #2a1a0a 100%), linear-gradient(180deg, #1a0a0a 0%, #3a1a0a 50%, #5a2a1a 100%);
}
.scn-right-end-dispute .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a221a 0%, #2a1210 100%); animation: red-wall 12s ease-in-out infinite; }
.scn-right-end-dispute .fireplace { position:absolute; bottom:15%; left:15%; width:30%; height:50%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 0 30px #1a0a0a; }
.scn-right-end-dispute .fireglow { position:absolute; bottom:20%; left:18%; width:24%; height:30%; background: radial-gradient(ellipse, #d07030 0%, #a05020 40%, transparent 70%); opacity:0.7; animation: red-fireglow 2s ease-in-out infinite alternate; }
.scn-right-end-dispute .figure { position:absolute; bottom:25%; left:55%; width:20px; height:60px; background: linear-gradient(180deg, #1a100a 0%, #0a0806 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: red-figure 6s ease-in-out infinite; }
.scn-right-end-dispute .chair { position:absolute; bottom:20%; left:70%; width:40px; height:50px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; }
.scn-right-end-dispute .book { position:absolute; bottom:30%; left:63%; width:12px; height:16px; background: #5a3a2a; border-radius:2px; transform: rotate(-10deg); animation: red-book 4s ease-in-out infinite; }
.scn-right-end-dispute .window-frame { position:absolute; top:10%; right:10%; width:20%; height:30%; border:4px solid #3a1a0a; border-radius:2px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a08 100%); }
.scn-right-end-dispute .stars { position:absolute; top:12%; right:12%; width:6px; height:6px; background: #ffd080; border-radius:50%; box-shadow: 12px 10px 0 0 #ffd080, 24px -5px 0 0 #ffd080, -6px 15px 0 0 #ffd080; opacity:0.6; animation: red-stars 4s ease-in-out infinite alternate; }
@keyframes red-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes red-fireglow { 0% { opacity:0.5; transform: scaleY(0.9); } 100% { opacity:0.8; transform: scaleY(1.1); } }
@keyframes red-figure { 0% { transform: translateX(0px) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(0px) rotate(0deg); } }
@keyframes red-book { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } }
@keyframes red-stars { 0% { opacity:0.3; } 100% { opacity:0.9; } }

.scn-time-perception {
  background: radial-gradient(ellipse at 50% 60%, #5a2a1a 0%, #2a1a0a 100%), linear-gradient(180deg, #1a0a0a 0%, #3a1a0a 50%, #4a2210 100%);
}
.scn-time-perception .wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a10 0%, #3a2218 50%, #2a1a10 100%); animation: tmp-wall 15s ease-in-out infinite; }
.scn-time-perception .grandfather-clock { position:absolute; bottom:10%; left:40%; width:12%; height:70%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:4% 4% 2% 2% / 8% 8% 4% 4%; box-shadow: 0 0 20px #1a0a0a; }
.scn-time-perception .pendulum { position:absolute; bottom:30%; left:45.5%; width:3%; height:40%; background: #4a2a1a; border-radius:50% 50% 0 0; transform-origin: top center; animation: tmp-pendulum 2s ease-in-out infinite alternate; }
.scn-time-perception .bell { position:absolute; top:25%; left:44%; width:6%; height:8%; background: #5a3a1a; border-radius:50% 50% 20% 20%; box-shadow: 0 0 10px #1a0a0a; animation: tmp-bell 0.5s ease-in-out infinite; }
.scn-time-perception .hourglass { position:absolute; bottom:12%; right:25%; width:6%; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%); border-radius:50% 50% 10% 10% / 60% 60% 30% 30%; animation: tmp-hourglass 8s ease-in-out infinite; }
.scn-time-perception .fireglow { position:absolute; bottom:5%; left:10%; width:20%; height:30%; background: radial-gradient(ellipse, #d07030 0%, #a05020 40%, transparent 70%); opacity:0.6; animation: tmp-fireglow 3s ease-in-out infinite alternate; }
.scn-time-perception .table { position:absolute; bottom:5%; right:20%; width:20%; height:5%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:10% 10% 0 0; box-shadow: 0 0 10px #1a0a0a; }
@keyframes tmp-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes tmp-pendulum { 0% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }
@keyframes tmp-bell { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } }
@keyframes tmp-hourglass { 0% { transform: scaleY(1); opacity:1; } 50% { transform: scaleY(0.8); opacity:0.7; } 100% { transform: scaleY(1); opacity:1; } }
@keyframes tmp-fireglow { 0% { opacity:0.4; } 100% { opacity:0.8; } }

.scn-dr-slop-description {
  background: linear-gradient(180deg, #2a1a2a 0%, #4a2a3a 40%, #3a1a2a 100%), radial-gradient(ellipse at 50% 0%, #5a3a4a 0%, transparent 60%);
}
.scn-dr-slop-description .sky-dusk { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a2a 0%, #4a2a3a 100%); animation: drk-sky 12s ease-in-out infinite alternate; }
.scn-dr-slop-description .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); }
.scn-dr-slop-description .dr-slop-body { position:absolute; bottom:25%; left:45%; width:20%; height:40%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: drk-body 4s ease-in-out infinite; }
.scn-dr-slop-description .dr-slop-belly { position:absolute; bottom:23%; left:43%; width:24%; height:35%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40%; transform-origin: bottom center; animation: drk-belly 4s ease-in-out infinite alternate; }
.scn-dr-slop-description .dr-slop-hat { position:absolute; top:18%; left:46%; width:12%; height:10%; background: #1a0a0a; border-radius:50% 50% 10% 10%; transform: rotate(-5deg); animation: drk-hat 3s ease-in-out infinite; }
.scn-dr-slop-description .dr-slop-coat { position:absolute; bottom:24%; left:44%; width:22%; height:38%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:30% 30% 10% 10%; clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); animation: drk-coat 5s ease-in-out infinite; }
.scn-dr-slop-description .shadow { position:absolute; bottom:0; left:40%; width:30%; height:10%; background: radial-gradient(ellipse, #1a0a0a 0%, transparent 70%); opacity:0.5; animation: drk-shadow 4s ease-in-out infinite; }
@keyframes drk-sky { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes drk-body { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes drk-belly { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.02); } }
@keyframes drk-hat { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } }
@keyframes drk-coat { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes drk-shadow { 0%,100% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.1); } }

.scn-collision {
  background: linear-gradient(180deg, #2a1a2a 0%, #4a2a3a 40%, #3a1a2a 100%), radial-gradient(ellipse at 50% 100%, #5a3a4a 0%, transparent 70%);
}
.scn-collision .sky-dusk { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1a2a 0%, #4a2a3a 100%); animation: col-sky 10s ease-in-out infinite alternate; }
.scn-collision .lane { position:absolute; bottom:15%; left:0; right:0; height:40%; background: linear-gradient(90deg, #2a1a1a 0%, #3a2a1a 50%, #2a1a1a 100%); border-radius:50% 50% 0 0 / 20% 20% 0 0; }
.scn-collision .horse { position:absolute; bottom:20%; left:20%; width:30%; height:35%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:40% 40% 20% 20%; transform-origin: bottom center; animation: col-horse 1.5s ease-in-out infinite; }
.scn-collision .rider { position:absolute; bottom:35%; left:22%; width:15%; height:20%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0606 100%); border-radius:50% 50% 40% 40%; animation: col-rider 1.5s ease-in-out infinite; }
.scn-collision .dr-slop { position:absolute; bottom:18%; right:25%; width:20%; height:30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation: col-dr-slop 2s ease-in-out infinite; }
.scn-collision .dust { position:absolute; bottom:15%; left:15%; width:20%; height:10%; background: radial-gradient(ellipse, #4a3a3a 0%, transparent 70%); opacity:0.3; animation: col-dust 3s ease-in-out infinite; }
.scn-collision .fence { position:absolute; bottom:12%; left:10%; width:5%; height:25%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:10% 10% 10% 10%; box-shadow: 30px 0 0 0 #3a1a0a; animation: col-fence 5s ease-in-out infinite alternate; }
.scn-collision .tree { position:absolute; bottom:25%; right:5%; width:8%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%); border-radius:80% 80% 10% 10% / 40% 40% 10% 10%; }
@keyframes col-sky { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes col-horse { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes col-rider { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes col-dr-slop { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-5deg); } }
@keyframes col-dust { 0%,100% { opacity:0.2; transform: translateY(0); } 50% { opacity:0.5; transform: translateY(-5px); } }
@keyframes col-fence { 0% { box-shadow: 30px 0 0 0 #3a1a0a; } 100% { box-shadow: 40px 0 0 0 #3a1a0a; } }

.scn-corporal-s-opinion {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e2d4b8 50%, #c8b494 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 60%);
}

.scn-corporal-s-opinion .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b7355 0%, #6b5940 100%); border-radius: 0; }
.scn-corporal-s-opinion .wall { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #f0e7d0 0%, #ddd0b0 100%); }
.scn-corporal-s-opinion .window { position:absolute; top:15%; left:60%; width:100px; height:130px; background: linear-gradient(180deg, #b8d4e8 0%, #9ab8d0 100%); box-shadow: inset 0 0 40px rgba(180,210,240,0.5); border: 8px solid #6b5940; border-radius: 4px; }
.scn-corporal-s-opinion .light { position:absolute; top:15%; left:60%; width:100px; height:130px; background: radial-gradient(ellipse at center, #fff8e7 0%, transparent 70%); animation: cso-light 6s ease-in-out infinite alternate; }
.scn-corporal-s-opinion .figure { position:absolute; bottom:28%; left:30%; width:40px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cso-figure 5s ease-in-out infinite; }
.scn-corporal-s-opinion .hat { position:absolute; bottom:78%; left:26%; width:44px; height:16px; background: #2a1a0a; border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: rotate(-10deg); animation: cso-hat 5s ease-in-out infinite; }
.scn-corporal-s-opinion .stick { position:absolute; bottom:28%; left:22%; width:4px; height:80px; background: #5a4a3a; border-radius: 2px; transform-origin: bottom center; transform: rotate(15deg); animation: cso-stick 5s ease-in-out infinite; }
.scn-corporal-s-opinion .shadow { position:absolute; bottom:0; left:20%; width:80px; height:20px; background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(6px); animation: cso-shadow 5s ease-in-out infinite; }

@keyframes cso-light {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes cso-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  30% { transform: translateX(8px) translateY(-2px) rotate(0deg); }
  70% { transform: translateX(-4px) translateY(0) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes cso-hat {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-12deg) translateX(2px); }
  100% { transform: rotate(-8deg) translateX(-1px); }
}
@keyframes cso-stick {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(18deg); }
  100% { transform: rotate(13deg); }
}
@keyframes cso-shadow {
  0% { transform: scaleX(1); opacity:0.15; }
  50% { transform: scaleX(1.2); opacity:0.25; }
  100% { transform: scaleX(0.9); opacity:0.12; }
}

/* --- */

.scn-slop-enters {
  background: 
    linear-gradient(180deg, #f0d8b8 0%, #d4b898 50%, #b89878 100%),
    radial-gradient(ellipse at 50% 40%, #ffeedd 0%, transparent 70%);
}

.scn-slop-enters .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); }
.scn-slop-enters .wall { position:absolute; top:0; left:0; right:0; bottom:25%; background: linear-gradient(90deg, #e0c8a8 0%, #d4b898 30%, #c8a888 70%, #d4b898 100%); }
.scn-slop-enters .door { position:absolute; bottom:25%; left:10%; width:70px; height:180px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.3); animation: se-door 4s ease-in-out infinite alternate; }
.scn-slop-enters .lamp { position:absolute; top:20%; left:35%; width:12px; height:20px; background: radial-gradient(circle, #ffdd88 0%, #ccaa44 70%); border-radius: 50%; box-shadow: 0 0 40px 12px rgba(255,200,80,0.6); animation: se-lamp 2s ease-in-out infinite alternate; }
.scn-slop-enters .slop { position:absolute; bottom:28%; left:8%; width:50px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(1.3); animation: se-slop 2s ease-in-out infinite alternate; }
.scn-slop-enters .father { position:absolute; bottom:28%; right:20%; width:40px; height:100px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: se-father 6s ease-in-out infinite; }
.scn-slop-enters .table { position:absolute; bottom:28%; right:30%; width:80px; height:20px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 4px; }
.scn-slop-enters .chair { position:absolute; bottom:35%; right:18%; width:30px; height:50px; background: #5a4a3a; border-radius: 4px; box-shadow: inset 0 -10px 10px #4a3a2a; }
.scn-slop-enters .shadow { position:absolute; bottom:0; left:5%; width:70px; height:20px; background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(8px); animation: se-shadow 2s ease-in-out infinite alternate; }

@keyframes se-door {
  0% { transform: rotateY(0deg); }
  100% { transform: rotateY(30deg); }
}
@keyframes se-lamp {
  0% { opacity: 0.7; box-shadow: 0 0 30px 8px rgba(255,200,80,0.4); }
  50% { opacity: 1; box-shadow: 0 0 50px 16px rgba(255,200,80,0.7); }
  100% { opacity: 0.8; box-shadow: 0 0 35px 10px rgba(255,200,80,0.5); }
}
@keyframes se-slop {
  0% { transform: scaleX(1.3) translateX(0); }
  50% { transform: scaleX(1.35) translateX(3px) rotate(2deg); }
  100% { transform: scaleX(1.28) translateX(0) rotate(-1deg); }
}
@keyframes se-father {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(2px) rotate(2deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes se-shadow {
  0% { transform: scaleX(1); opacity:0.25; }
  50% { transform: scaleX(1.3); opacity:0.35; }
  100% { transform: scaleX(0.9); opacity:0.2; }
}

/* --- */

.scn-slop-on-phimosis {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 30%, #1a0e00 100%),
    radial-gradient(ellipse at 50% 20%, #6a5a4a 0%, transparent 70%);
}

.scn-slop-on-phimosis .bg { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); z-index:0; }
.scn-slop-on-phimosis .wall { position:absolute; top:0; left:0; right:0; bottom:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); z-index:1; box-shadow: inset 0 10px 30px rgba(0,0,0,0.4); }
.scn-slop-on-phimosis .table { position:absolute; bottom:25%; left:20%; right:20%; height:12px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 2px; z-index:2; }
.scn-slop-on-phimosis .pipe { position:absolute; bottom:30%; left:30%; width:40px; height:8px; background: #5a3a1a; border-radius: 0 4px 4px 0; transform: rotate(20deg); z-index:3; animation: sop-pipe 4s ease-in-out infinite alternate; }
.scn-slop-on-phimosis .toby { position:absolute; bottom:28%; left:15%; width:50px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; z-index:2; animation: sop-toby 3s ease-in-out infinite; }
.scn-slop-on-phimosis .slop { position:absolute; bottom:30%; right:15%; width:55px; height:75px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(1.2); z-index:2; animation: sop-slop 2.5s ease-in-out infinite alternate; }
.scn-slop-on-phimosis .smoke { position:absolute; top:20%; left:30%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,255,240,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: sop-smoke 5s ease-out infinite; }
.scn-slop-on-phimosis .shadow { position:absolute; bottom:0; left:10%; right:10%; height:10px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(10px); z-index:0; }

@keyframes sop-pipe {
  0% { transform: rotate(20deg) translateX(0); }
  50% { transform: rotate(25deg) translateX(2px); }
  100% { transform: rotate(18deg) translateX(-1px); }
}
@keyframes sop-toby {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(3px) rotate(0deg); }
  70% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes sop-slop {
  0% { transform: scaleX(1.2) translateY(0); }
  50% { transform: scaleX(1.25) translateY(-2px) rotate(1deg); }
  100% { transform: scaleX(1.18) translateY(0) rotate(-1deg); }
}
@keyframes sop-smoke {
  0% { opacity: 0.8; transform: translateY(0) scale(1); }
  100% { opacity: 0; transform: translateY(-60px) scale(2); }
}

/* --- */

.scn-limerick-description {
  background: 
    linear-gradient(180deg, #b8c8d8 0%, #8fa8b8 50%, #708898 100%),
    radial-gradient(ellipse at 50% 100%, #5a6a7a 0%, transparent 70%);
}

.scn-limerick-description .sky { position:absolute; top:0; left:0; right:0; bottom:45%; background: linear-gradient(180deg, #d0dce8 0%, #a0b8c8 100%); animation: ld-sky 20s ease-in-out infinite alternate; }
.scn-limerick-description .clouds { position:absolute; top:10%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 20% 50%, rgba(255,255,255,0.5) 0%, transparent 50%), radial-gradient(ellipse at 80% 30%, rgba(255,255,255,0.4) 0%, transparent 40%); filter: blur(8px); animation: ld-clouds 40s linear infinite; }
.scn-limerick-description .wall { position:absolute; bottom:45%; left:20%; right:20%; height:15%; background: linear-gradient(90deg, #5a6a6a 0%, #4a5a5a 50%, #3a4a4a 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -5px 20px rgba(0,0,0,0.3); }
.scn-limerick-description .river { position:absolute; bottom:35%; left:0; right:0; height:10%; background: linear-gradient(90deg, #6a8a9a 0%, #8aabbb 50%, #6a8a9a 100%); border-radius: 20% 80% 0 0 / 100% 100% 0 0; }
.scn-limerick-description .swamp { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 50%, #4a5a3a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-limerick-description .figure { position:absolute; bottom:38%; left:12%; width:20px; height:50px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: ld-figure 8s ease-in-out infinite; }
.scn-limerick-description .flag { position:absolute; bottom:55%; left:22%; width:4px; height:30px; background: #4a3a2a; transform-origin: bottom center; animation: ld-flag 6s ease-in-out infinite alternate; }
.scn-limerick-description .flag::after { content:''; position:absolute; top:0; left:4px; width:20px; height:12px; background: #6a4a3a; border-radius: 0 4px 4px 0; }
.scn-limerick-description .mist { position:absolute; bottom:25%; left:0; right:0; height:20%; background: radial-gradient(ellipse at 30% 50%, rgba(200,210,220,0.4) 0%, transparent 70%); filter: blur(10px); animation: ld-mist 30s ease-in-out infinite alternate; }

@keyframes ld-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ld-clouds {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}
@keyframes ld-figure {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes ld-flag {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(10deg); }
}
@keyframes ld-mist {
  0% { opacity: 0.3; transform: scaleX(0.9); }
  50% { opacity: 0.6; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.95); }
}

.scn-gymnast-gambol { background: linear-gradient(180deg, #fce4b0 0%, #f0d080 40%, #c8a060 100%), radial-gradient(ellipse at 30% 20%, #ffeca0 0%, transparent 60%); }
.scn-gymnast-gambol .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fdf4d8 0%, #fce4b0 100%); animation: gg-sky 12s ease-in-out infinite alternate; }
.scn-gymnast-gambol .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b08050 0%, #8a6a3a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,0.3); animation: gg-ground 6s ease-in-out infinite alternate; }
.scn-gymnast-gambol .figure { position:absolute; bottom:28%; left:50%; width:20px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #8a5a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gg-figure 2.5s ease-in-out infinite; }
.scn-gymnast-gambol .shadow { position:absolute; bottom:30%; left:50%; width:40px; height:8px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%); animation: gg-shadow 2.5s ease-in-out infinite; }
.scn-gymnast-gambol .dust { position:absolute; bottom:30%; left:48%; width:12px; height:12px; background: radial-gradient(circle, #f0d080 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: gg-dust 2s ease-out infinite; }
.scn-gymnast-gambol .beam { position:absolute; bottom:45%; left:30%; width:80px; height:4px; background: linear-gradient(90deg, transparent 0%, #ffe8c0 50%, transparent 100%); opacity:0.6; transform: rotate(-10deg); animation: gg-beam 8s linear infinite; }
@keyframes gg-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes gg-ground { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes gg-figure { 0% { transform: translateX(-50%) rotate(-2deg) } 25% { transform: translateX(-40%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-60%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(2deg) } }
@keyframes gg-shadow { 0% { transform: translateX(-50%) scaleX(1); opacity:0.6 } 25% { transform: translateX(-40%) scaleX(0.8); opacity:0.4 } 50% { transform: translateX(-50%) scaleX(1); opacity:0.6 } 75% { transform: translateX(-60%) scaleX(1.1); opacity:0.7 } 100% { transform: translateX(-50%) scaleX(1); opacity:0.6 } }
@keyframes gg-dust { 0% { transform: scale(0.5); opacity:0.8 } 50% { transform: scale(2) translateY(-20px); opacity:0.5 } 100% { transform: scale(0); opacity:0 } }
@keyframes gg-beam { 0% { transform: rotate(-10deg) translateX(-30px) } 100% { transform: rotate(-10deg) translateX(100vw) } }

.scn-gymnast-thumb-twirl { background: linear-gradient(180deg, #e0c080 0%, #c8a060 40%, #a08040 100%), radial-gradient(circle at 50% 30%, #f0d8a0 0%, transparent 70%); }
.scn-gymnast-thumb-twirl .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f4e4c0 0%, #e0c080 100%); animation: gt-sky 15s linear infinite alternate; }
.scn-gymnast-thumb-twirl .bg-arena { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #9a7a4a 0%, #7a5a2a 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,0.3); }
.scn-gymnast-thumb-twirl .saddle { position:absolute; bottom:25%; left:50%; width:50px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-gymnast-thumb-twirl .horse { position:absolute; bottom:16%; left:44%; width:80px; height:60px; background: linear-gradient(180deg, #a08050 0%, #785a30 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; box-shadow: inset 0 -8px 15px rgba(0,0,0,0.3); animation: gt-horse 4s ease-in-out infinite alternate; }
.scn-gymnast-thumb-twirl .figure { position:absolute; bottom:35%; left:50%; width:18px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #8a5a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center 70%; animation: gt-figure 1.8s ease-in-out infinite; }
.scn-gymnast-thumb-twirl .thumb-glow { position:absolute; bottom:35%; left:50%; width:10px; height:10px; transform:translateX(-50%); background: radial-gradient(circle, #ffeca0 0%, transparent 70%); border-radius:50%; animation: gt-thumb 1.8s ease-in-out infinite; }
.scn-gymnast-thumb-twirl .motion-ring { position:absolute; bottom:35%; left:50%; width:60px; height:60px; transform:translate(-50%, -50%); border:2px solid rgba(200,180,120,0.4); border-radius:50%; animation: gt-ring 1.8s ease-out infinite; }
@keyframes gt-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gt-horse { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes gt-figure { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1) } 25% { transform: translateX(-50%) rotate(15deg) scaleY(0.85) } 50% { transform: translateX(-50%) rotate(-5deg) scaleY(1) } 75% { transform: translateX(-50%) rotate(-15deg) scaleY(0.85) } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1) } }
@keyframes gt-thumb { 0%,100% { opacity:0.5; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.5) } }
@keyframes gt-ring { 0% { transform: translate(-50%, -50%) scale(0.5); opacity:0.8 } 100% { transform: translate(-50%, -50%) scale(2); opacity:0 } }

.scn-uncle-toby-comment { background: linear-gradient(180deg, #c8b088 0%, #a88860 40%, #886840 100%), radial-gradient(ellipse at 70% 50%, #d8c8a0 0%, transparent 60%); }
.scn-uncle-toby-comment .bg-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0d0a8 0%, #c8b088 100%); animation: ut-bg 8s ease-in-out infinite alternate; }
.scn-uncle-toby-comment .wall { position:absolute; bottom:30%; left:10%; right:10%; height:50%; background: linear-gradient(135deg, #b09870 0%, #907858 100%); border-radius: 20px 20px 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.2), 0 0 0 2px #706040; }
.scn-uncle-toby-comment .toby { position:absolute; bottom:35%; left:25%; width:25px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: ut-toby 9s ease-in-out infinite; }
.scn-uncle-toby-comment .yorick { position:absolute; bottom:35%; right:20%; width:20px; height:50px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ut-yorick 12s ease-in-out infinite alternate; }
.scn-uncle-toby-comment .tripet { position:absolute; bottom:50%; left:55%; width:18px; height:45px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: ut-tripet 3s ease-in-out infinite alternate; }
.scn-uncle-toby-comment .horse-head { position:absolute; bottom:38%; left:60%; width:40px; height:35px; background: linear-gradient(180deg, #a08050 0%, #785a30 100%); border-radius: 40% 30% 30% 40%/ 50% 40% 30% 40%; animation: ut-horse 5s ease-in-out infinite; }
.scn-uncle-toby-comment .shadow-tense { position:absolute; bottom:30%; left:0; right:0; height:15%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%); animation: ut-shade 4s ease-in-out infinite alternate; }
@keyframes ut-bg { 0% { opacity:0.8 } 100% { opacity:1 } }
@keyframes ut-toby { 0% { transform: scaleX(-1) translateY(0) rotate(0deg) } 50% { transform: scaleX(-1) translateY(-3px) rotate(2deg) } 100% { transform: scaleX(-1) translateY(0) rotate(0deg) } }
@keyframes ut-yorick { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ut-tripet { 0% { transform: rotate(10deg) translateX(0) } 100% { transform: rotate(20deg) translateX(5px) } }
@keyframes ut-horse { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(0.95) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ut-shade { 0% { opacity:0.3 } 100% { opacity:0.7 } }

.scn-tripet-summersets { background: linear-gradient(180deg, #f0d8a0 0%, #e0c080 40%, #c8a060 100%), radial-gradient(circle at 30% 40%, #fce4b0 0%, transparent 60%); }
.scn-tripet-summersets .bg-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fef4d8 0%, #f0d8a0 100%); animation: ts-bg 10s linear infinite alternate; }
.scn-tripet-summersets .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b09060 0%, #907040 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-tripet-summersets .figure { position:absolute; bottom:35%; left:50%; width:20px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #8a5a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center 80%; animation: ts-figure 0.8s ease-in-out infinite; }
.scn-tripet-summersets .somerset-arc { position:absolute; bottom:45%; left:40%; width:40px; height:40px; border:2px dashed rgba(160,120,60,0.5); border-radius:50%; transform: rotate(30deg); animation: ts-arc 0.8s linear infinite; }
.scn-tripet-summersets .spark-1 { position:absolute; bottom:50%; left:45%; width:6px; height:6px; background:#ffeca0; border-radius:50%; box-shadow: 0 0 10px 3px #ffeca0; animation: ts-spark1 0.4s ease-in-out infinite alternate; }
.scn-tripet-summersets .spark-2 { position:absolute; bottom:55%; left:55%; width:5px; height:5px; background:#ffe8b0; border-radius:50%; box-shadow: 0 0 8px 2px #ffe8b0; animation: ts-spark2 0.6s ease-in-out infinite alternate; }
@keyframes ts-bg { 0% { opacity:0.7 } 100% { opacity:1 } }
@keyframes ts-figure { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1) } 25% { transform: translateX(-50%) rotate(90deg) scaleY(0.7) } 50% { transform: translateX(-50%) rotate(180deg) scaleY(0.9) } 75% { transform: translateX(-50%) rotate(270deg) scaleY(0.7) } 100% { transform: translateX(-50%) rotate(360deg) scaleY(1) } }
@keyframes ts-arc { 0% { transform: rotate(0deg) scale(1); opacity:0.6 } 50% { transform: rotate(180deg) scale(1.2); opacity:0.8 } 100% { transform: rotate(360deg) scale(1); opacity:0.6 } }
@keyframes ts-spark1 { 0% { transform: translateY(0) scale(1); opacity:1 } 100% { transform: translateY(-10px) scale(0.5); opacity:0 } }
@keyframes ts-spark2 { 0% { transform: translateY(0) scale(1); opacity:1 } 100% { transform: translateY(-8px) scale(0.6); opacity:0 } }

.scn-advice-on-reading-and-passion {
  background: linear-gradient(180deg, #1a1410 0%, #2a1f18 40%, #1e1612 100%),
              radial-gradient(ellipse at 30% 50%, #2a1f18 0%, #1a1410 80%);
}
.scn-advice-on-reading-and-passion .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1f18 0%, #1a1410 80%);
  animation: alr-wall 12s ease-in-out infinite alternate;
}
.scn-advice-on-reading-and-passion .bookshelf {
  position: absolute; top: 5%; left: 5%; width: 40%; height: 60%;
  background: linear-gradient(90deg, #4a3028 0%, #3a2018 50%, #4a3028 100%);
  border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,.6);
}
.scn-advice-on-reading-and-passion .desk {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #5a4038 0%, #3a2820 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-advice-on-reading-and-passion .candle {
  position: absolute; bottom: 18%; left: 45%; width: 6px; height: 15%;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a080 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 6px #a08060;
}
.scn-advice-on-reading-and-passion .flame {
  position: absolute; bottom: 32%; left: 45.5%; width: 4px; height: 6%;
  background: radial-gradient(circle, #ffe080 0%, #ffa040 50%, #804020 100%);
  border-radius: 50%; animation: alr-flame 2s ease-in-out infinite alternate;
  box-shadow: 0 0 12px 4px #ffa040, 0 0 24px 8px rgba(255,160,64,.3);
}
.scn-advice-on-reading-and-passion .figure {
  position: absolute; bottom: 10%; left: 62%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: alr-figure 6s ease-in-out infinite;
}
.scn-advice-on-reading-and-passion .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: alr-shadow 6s ease-in-out infinite;
}
@keyframes alr-wall { 0% { opacity: .7 } 50% { opacity: .85 } 100% { opacity: .7 } }
@keyframes alr-flame { 0% { transform: scaleY(.9) translateY(2px); opacity: .8 } 50% { transform: scaleY(1.1) translateY(-1px); opacity: 1 } 100% { transform: scaleY(1) translateY(0); opacity: .9 } }
@keyframes alr-figure { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(0) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes alr-shadow { 0% { transform: scaleX(1); opacity: .6 } 50% { transform: scaleX(1.1); opacity: .8 } 100% { transform: scaleX(1); opacity: .6 } }

.scn-more-advice-diet-and-drink {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1f10 40%, #1a1410 100%),
              radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-more-advice-diet-and-drink .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-more-advice-diet-and-drink .table {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 5%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a3020 100%);
  border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,.4);
}
.scn-more-advice-diet-and-drink .bottle-1 {
  position: absolute; bottom: 20%; left: 30%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #a08060 0%, #806040 50%, #604020 100%);
  border-radius: 30% 30% 10% 10%; animation: diet-bottle1 5s ease-in-out infinite;
}
.scn-more-advice-diet-and-drink .bottle-2 {
  position: absolute; bottom: 20%; left: 50%; width: 6%; height: 22%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 50%, #806040 100%);
  border-radius: 40% 40% 10% 10%; animation: diet-bottle2 7s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-more-advice-diet-and-drink .doctor {
  position: absolute; bottom: 15%; left: 55%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: diet-doctor 4s ease-in-out infinite;
}
.scn-more-advice-diet-and-drink .patient {
  position: absolute; bottom: 15%; 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: diet-patient 6s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-more-advice-diet-and-drink .droplet {
  position: absolute; bottom: 38%; left: 45%; width: 4px; height: 8px;
  background: radial-gradient(circle, #c0a080 0%, #806040 100%);
  border-radius: 50%; animation: diet-droplet 2s ease-in-out infinite;
}
@keyframes diet-bottle1 { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } }
@keyframes diet-bottle2 { 0%,100% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-3px) } }
@keyframes diet-doctor { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes diet-patient { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes diet-droplet { 0% { transform: translateY(0); opacity: 1 } 50% { transform: translateY(10px); opacity: .3 } 100% { transform: translateY(20px); opacity: 0 } }

.scn-preparations-for-attack-morning {
  background: linear-gradient(180deg, #f0c8a0 0%, #e8b080 30%, #c08050 60%, #a06030 100%),
              radial-gradient(ellipse at 70% 30%, #ffd0b0 0%, transparent 60%);
}
.scn-preparations-for-attack-morning .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #ffe0c0 0%, #f0a060 70%);
  animation: prep-sky 15s ease-in-out infinite alternate;
}
.scn-preparations-for-attack-morning .sun {
  position: absolute; top: 20%; left: 70%; width: 12%; height: 12%;
  background: radial-gradient(circle, #fff0c0 0%, #ffc080 30%, #ff8040 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,128,64,.5), 0 0 80px 40px rgba(255,128,64,.2);
  animation: prep-sun 20s ease-in-out infinite;
}
.scn-preparations-for-attack-morning .tent-1 {
  position: absolute; bottom: 20%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #b08050 0%, #a07040 50%, #805030 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: prep-tent1 8s ease-in-out infinite;
}
.scn-preparations-for-attack-morning .tent-2 {
  position: absolute; bottom: 20%; left: 50%; width: 25%; height: 35%;
  background: linear-gradient(135deg, #c09060 0%, #a07040 50%, #805030 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: prep-tent2 10s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-preparations-for-attack-morning .cannon {
  position: absolute; bottom: 22%; left: 35%; width: 10%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-preparations-for-attack-morning .figure-toby {
  position: absolute; bottom: 20%; left: 20%; 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; animation: prep-toby 4s ease-in-out infinite;
}
.scn-preparations-for-attack-morning .figure-corporal {
  position: absolute; bottom: 20%; left: 60%; width: 7%; height: 17%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: prep-corporal 5s ease-in-out infinite;
}
.scn-preparations-for-attack-morning .breeches {
  position: absolute; bottom: 20%; left: 45%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 30% 30% 20% 20%; transform-origin: bottom center;
  animation: prep-breeches 6s ease-in-out infinite;
}
@keyframes prep-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes prep-sun { 0% { transform: scale(.95) translate(0,0); opacity: .9 } 50% { transform: scale(1.05) translate(5px, -5px); opacity: 1 } 100% { transform: scale(.95) translate(-2px,2px); opacity: .9 } }
@keyframes prep-tent1 { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) translateY(-2px) } }
@keyframes prep-tent2 { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) translateY(-1px) } }
@keyframes prep-toby { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes prep-corporal { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(1px) rotate(0) } }
@keyframes prep-breeches { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }

.scn-mothers-keyhole-curiosity {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b0 50%, #c0b090 100%),
              radial-gradient(ellipse at 50% 40%, #fff8f0 0%, transparent 70%);
}
.scn-mothers-keyhole-curiosity .door {
  position: absolute; inset: 5% 10% 5% 10%;
  background: linear-gradient(135deg, #c0a880 0%, #a08860 50%, #806840 100%);
  border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,.3);
  animation: keyh-door 8s ease-in-out infinite;
}
.scn-mothers-keyhole-curiosity .keyhole {
  position: absolute; top: 45%; left: 50%; width: 6%; height: 10%;
  transform: translate(-50%, -50%);
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: inset 0 0 8px rgba(0,0,0,.8);
}
.scn-mothers-keyhole-curiosity .eye {
  position: absolute; top: 47%; left: 50.5%; width: 4%; height: 6%;
  background: radial-gradient(circle, #fff8f0 0%, #d0c0a0 30%, #a08060 100%);
  border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: keyh-eye 4s ease-in-out infinite alternate;
}
.scn-mothers-keyhole-curiosity .mother {
  position: absolute; bottom: 10%; left: 30%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: keyh-mother 6s ease-in-out infinite;
}
.scn-mothers-keyhole-curiosity .hand {
  position: absolute; bottom: 30%; left: 42%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20%; transform-origin: bottom;
  animation: keyh-hand 3s ease-in-out infinite;
}
.scn-mothers-keyhole-curiosity .light {
  position: absolute; top: 40%; left: 45%; width: 10%; height: 20%;
  background: radial-gradient(ellipse, rgba(255,240,200,.4) 0%, transparent 100%);
  animation: keyh-light 5s ease-in-out infinite alternate;
}
@keyframes keyh-door { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.01) translateX(-2px) } }
@keyframes keyh-eye { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } 100% { transform: scaleY(1) } }
@keyframes keyh-mother { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes keyh-hand { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes keyh-light { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }

/* mother-choice */
.scn-mother-choice { background: linear-gradient(180deg, #f5e6ca 0%, #e8d5b8 40%, #c9a76b 100%), radial-gradient(ellipse at 30% 40%, #ffeedd 0%, transparent 60%); }
.scn-mother-choice .window-frame { position:absolute; top:5%; left:15%; width:55%; height:60%; border:8px solid #7a5a3a; border-radius:4px; background:#3a2a1a; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-mother-choice .window-glass { position:absolute; top:10%; left:18%; width:49%; height:50%; background: linear-gradient(135deg, #fff8e0 0%, #ffe0a0 50%, #ffd080 100%); opacity:.3; animation: mc-glass 6s ease-in-out infinite alternate; }
.scn-mother-choice .mother-silhouette { position:absolute; bottom:20%; left:30%; width:20%; height:45%; background: linear-gradient(135deg, #4a3020 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-mother 8s ease-in-out infinite; }
.scn-mother-choice .cradle { position:absolute; bottom:18%; left:55%; width:18%; height:12%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 -2px 8px rgba(0,0,0,.3); animation: mc-cradle 4s ease-in-out infinite alternate; }
.scn-mother-choice .warm-light { position:absolute; top:8%; left:20%; width:50%; height:50%; background: radial-gradient(ellipse, #ffdd99 0%, #ffcc66 40%, transparent 70%); opacity:.4; animation: mc-light 5s ease-in-out infinite alternate; }
.scn-mother-choice .curtain-left { position:absolute; top:5%; left:12%; width:8%; height:55%; background: linear-gradient(180deg, #b88a6a 0%, #8a6030 100%); border-radius:0 30% 30% 0; box-shadow: 2px 0 6px rgba(0,0,0,.2); animation: mc-curtain 12s ease-in-out infinite; }
.scn-mother-choice .curtain-right { position:absolute; top:5%; right:12%; width:8%; height:55%; background: linear-gradient(180deg, #b88a6a 0%, #8a6030 100%); border-radius:30% 0 0 30%; box-shadow: -2px 0 6px rgba(0,0,0,.2); animation: mc-curtain 12s ease-in-out infinite reverse; }
@keyframes mc-glass { 0% { opacity:.2; transform: scale(1); } 50% { opacity:.4; transform: scale(1.02); } 100% { opacity:.25; transform: scale(.98); } }
@keyframes mc-mother { 0%,100% { transform: translateX(0) rotate(0); } 33% { transform: translateX(-3px) rotate(1deg); } 66% { transform: translateX(2px) rotate(-1deg); } }
@keyframes mc-cradle { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes mc-light { 0% { opacity:.3; transform: scale(1) translate(0); } 50% { opacity:.5; transform: scale(1.05) translate(2%, -2%); } 100% { opacity:.35; transform: scale(.95) translate(-1%, 1%); } }
@keyframes mc-curtain { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.03) translateX(-2%); } 100% { transform: scaleY(.97) translateX(2%); } }

/* father-concerns */
.scn-father-concerns { background: linear-gradient(180deg, #1a1a2e 0%, #2c2238 50%, #3a2a44 100%), radial-gradient(ellipse at 50% 60%, #4a3a5e 0%, transparent 70%); }
.scn-father-concerns .wall-shadow { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a14 0%, #1a1a2e 100%); opacity:.6; animation: fc-shadow 8s ease-in-out infinite alternate; }
.scn-father-concerns .chair { position:absolute; bottom:15%; left:30%; width:35%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 8px 0 12px rgba(0,0,0,.5); }
.scn-father-concerns .father-torso { position:absolute; bottom:30%; left:35%; width:20%; height:30%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fc-torso 6s ease-in-out infinite; }
.scn-father-concerns .father-head { position:absolute; bottom:58%; left:38%; width:14%; height:16%; background: linear-gradient(135deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 -4px 8px rgba(0,0,0,.6); animation: fc-head 10s ease-in-out infinite alternate; }
.scn-father-concerns .candle { position:absolute; bottom:20%; left:55%; width:6%; height:15%; background: linear-gradient(180deg, #e0c080 0%, #c8a060 40%, #a07840 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: fc-candle 5s ease-in-out infinite alternate; }
.scn-father-concerns .candle-glow { position:absolute; bottom:30%; left:52%; width:12%; height:15%; background: radial-gradient(ellipse, #ffaa44 0%, #ff8833 30%, transparent 60%); opacity:.6; animation: fc-glow 3s ease-in-out infinite alternate; }
.scn-father-concerns .table { position:absolute; bottom:10%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 -4px 8px rgba(0,0,0,.4); }
@keyframes fc-shadow { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.55; } }
@keyframes fc-torso { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } }
@keyframes fc-head { 0% { transform: rotate(0) translateY(0); } 33% { transform: rotate(-3deg) translateY(-2px); } 66% { transform: rotate(2deg) translateY(1px); } 100% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes fc-candle { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.04) rotate(1deg); } 100% { transform: scaleY(.96) rotate(-1deg); } }
@keyframes fc-glow { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.7; transform: scale(1.15); } 100% { opacity:.55; transform: scale(.9); } }

/* father-political-worry */
.scn-father-political-worry { background: linear-gradient(180deg, #161824 0%, #1c1e30 40%, #282c44 100%), radial-gradient(ellipse at 40% 50%, #2c3048 0%, transparent 70%); }
.scn-father-political-worry .desk { position:absolute; bottom:12%; left:15%; width:70%; height:14%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 8% 8% 20% 20%; box-shadow: 0 -6px 12px rgba(0,0,0,.6); }
.scn-father-political-worry .papers { position:absolute; bottom:22%; left:20%; width:45%; height:6%; background: linear-gradient(135deg, #d4c4a8 0%, #b8a888 40%, #9a8a6a 100%); border-radius: 2px; transform: rotate(-2deg); animation: fpw-papers 8s ease-in-out infinite alternate; }
.scn-father-political-worry .candle { position:absolute; bottom:20%; left:55%; width:5%; height:14%; background: linear-gradient(180deg, #e0c080 0%, #c8a060 40%, #a07840 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: fpw-candle 5s ease-in-out infinite alternate; }
.scn-father-political-worry .father-hand { position:absolute; bottom:28%; left:30%; width:10%; height:6%; background: linear-gradient(135deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom left; animation: fpw-hand 4s ease-in-out infinite; }
.scn-father-political-worry .father-head { position:absolute; bottom:50%; left:35%; width:15%; height:18%; background: linear-gradient(135deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 -4px 8px rgba(0,0,0,.5); animation: fpw-head 12s ease-in-out infinite alternate; }
.scn-father-political-worry .shadow-map { position:absolute; bottom:24%; left:40%; width:20%; height:10%; background: rgba(30,25,40,.4); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; filter: blur(4px); animation: fpw-map 15s linear infinite; }
.scn-father-political-worry .inkwell { position:absolute; bottom:16%; left:25%; width:6%; height:8%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a20 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
@keyframes fpw-papers { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(5px); } 100% { transform: rotate(-1deg) translateX(-3px); } }
@keyframes fpw-candle { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.05) rotate(2deg); } 100% { transform: scaleY(.95) rotate(-1deg); } }
@keyframes fpw-hand { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(5deg); } 50% { transform: translateX(3px) rotate(2deg); } 75% { transform: translateX(10px) rotate(4deg); } }
@keyframes fpw-head { 0% { transform: rotate(0) translateY(0); } 30% { transform: rotate(-4deg) translateY(-3px); } 60% { transform: rotate(2deg) translateY(1px); } 100% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes fpw-map { 0% { transform: translateX(0) scale(1); opacity:.3; } 50% { transform: translateX(-10px) scale(1.1); opacity:.5; } 100% { transform: translateX(10px) scale(.9); opacity:.3; } }

/* father-remedy */
.scn-father-remedy { background: linear-gradient(180deg, #2a2018 0%, #3a3028 40%, #4a4038 100%), radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%); }
.scn-father-remedy .armchair { position:absolute; bottom:10%; left:20%; width:60%; height:35%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 -8px 16px rgba(0,0,0,.4); }
.scn-father-remedy .father-legs { position:absolute; bottom:8%; left:35%; width:30%; height:25%; background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: fr-legs 6s ease-in-out infinite; }
.scn-father-remedy .father-arms { position:absolute; bottom:30%; left:28%; width:44%; height:12%; background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fr-arms 4s ease-in-out infinite alternate; }
.scn-father-remedy .father-head { position:absolute; bottom:58%; left:38%; width:24%; height:20%; background: linear-gradient(135deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 -4px 8px rgba(0,0,0,.5); animation: fr-head 8s ease-in-out infinite; }
.scn-father-remedy .candle { position:absolute; bottom:20%; left:55%; width:5%; height:14%; background: linear-gradient(180deg, #e0c080 0%, #c8a060 40%, #a07840 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: fr-candle 5s ease-in-out infinite alternate; }
.scn-father-remedy .candle-glow { position:absolute; bottom:30%; left:52%; width:12%; height:15%; background: radial-gradient(ellipse, #ffaa44 0%, #ff8833 30%, transparent 60%); opacity:.5; animation: fr-glow 3s ease-in-out infinite alternate; }
.scn-father-remedy .book { position:absolute; bottom:16%; left:20%; width:20%; height:8%; background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 4px 12px 12px 4px; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.3); }
@keyframes fr-legs { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(6px) rotate(3deg); } 60% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes fr-arms { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes fr-head { 0% { transform: rotate(0) translateY(0); } 20% { transform: rotate(-4deg) translateY(-4px); } 40% { transform: rotate(3deg) translateY(2px); } 60% { transform: rotate(-2deg) translateY(-1px); } 80% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes fr-candle { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.06) rotate(2deg); } 100% { transform: scaleY(.94) rotate(-1deg); } }
@keyframes fr-glow { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.6; transform: scale(1.2); } 100% { opacity:.45; transform: scale(.95); } }

/* trim-military-catechism */
.scn-trim-military-catechism {
  background: linear-gradient(180deg, #f5f0e8 0%, #e8dfd0 40%, #d4c9b5 100%),
              radial-gradient(ellipse at 30% 60%, rgba(255,235,200,.4) 0%, transparent 50%);
}
.scn-trim-military-catechism .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #f0e9dd 0%, #d9ceba 100%);
  animation: mtc-wall 20s ease-in-out infinite alternate;
}
.scn-trim-military-catechism .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c4b69e 0%, #a8977a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.1);
}
.scn-trim-military-catechism .uncle-toby {
  position: absolute; bottom: 25%; left: 18%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mtc-toby 6s ease-in-out infinite;
}
.scn-trim-military-catechism .pipe {
  position: absolute; bottom: 52%; left: 17%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 50% 10% 10% 50%;
  transform: rotate(-20deg);
  animation: mtc-pipe 4s ease-in-out infinite;
}
.scn-trim-military-catechism .pipe-smoke {
  position: absolute; bottom: 58%; left: 14%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(200,180,160,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: mtc-smoke 4s ease-out infinite;
}
.scn-trim-military-catechism .corporal {
  position: absolute; bottom: 25%; right: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  animation: mtc-corporal 8s ease-in-out infinite alternate;
}
.scn-trim-military-catechism .corporal-hat {
  position: absolute; bottom: 67%; right: 24%; width: 24px; height: 12px;
  background: #2a2a1a;
  border-radius: 50% 50% 10% 10%;
  transform: rotate(5deg);
  animation: mtc-hat 8s ease-in-out infinite alternate;
}
.scn-trim-military-catechism .window {
  position: absolute; top: 10%; left: 60%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #d0d8e8 0%, #b0b8c8 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,.4);
  animation: mtc-window 12s ease-in-out infinite alternate;
}
@keyframes mtc-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes mtc-toby { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-2deg); } }
@keyframes mtc-pipe { 0% { transform: rotate(-22deg); } 50% { transform: rotate(-18deg) translateY(-2px); } 100% { transform: rotate(-22deg); } }
@keyframes mtc-smoke { 0% { opacity: .8; transform: translateY(0) scale(1); } 100% { opacity: 0; transform: translateY(-30px) scale(2); } }
@keyframes mtc-corporal { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mtc-hat { 0% { transform: rotate(3deg); } 50% { transform: rotate(8deg) translateX(2px); } 100% { transform: rotate(3deg); } }
@keyframes mtc-window { 0% { box-shadow: inset 0 0 10px rgba(255,255,255,.2); } 50% { box-shadow: inset 0 0 30px rgba(255,255,255,.5); } 100% { box-shadow: inset 0 0 15px rgba(255,255,255,.3); } }

/* trim-drill-motions */
.scn-trim-drill-motions {
  background: linear-gradient(180deg, #f5eedd 0%, #e5d8c0 40%, #d4c4a8 100%),
              radial-gradient(ellipse at 70% 40%, rgba(255,245,220,.5) 0%, transparent 50%);
}
.scn-trim-drill-motions .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #efe6d4 0%, #d8ccb4 100%);
}
.scn-trim-drill-motions .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c2b090 0%, #a89070 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.1);
}
.scn-trim-drill-motions .corporal-standing {
  position: absolute; bottom: 20%; left: 50%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform: translateX(-50%);
  animation: mdm-stand 6s ease-in-out infinite alternate;
}
.scn-trim-drill-motions .firelock {
  position: absolute; bottom: 30%; left: 52%; width: 8px; height: 55px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: mdm-firelock 2s ease-in-out infinite;
}
.scn-trim-drill-motions .motion-blur {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 60px;
  background: rgba(240,230,210,.3);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  filter: blur(5px);
  animation: mdm-blur 2s ease-in-out infinite;
}
.scn-trim-drill-motions .shadow {
  position: absolute; bottom: 10%; left: 45%; width: 50px; height: 8px;
  background: rgba(0,0,0,.15);
  border-radius: 50%;
  animation: mdm-shadow 6s ease-in-out infinite alternate;
}
.scn-trim-drill-motions .window-light {
  position: absolute; top: 10%; left: 70%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,240,.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: mdm-light 4s ease-in-out infinite alternate;
}
@keyframes mdm-stand { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes mdm-firelock { 0% { transform: rotate(8deg); } 25% { transform: rotate(25deg) translateX(5px); } 50% { transform: rotate(8deg); } 75% { transform: rotate(30deg) translateX(-5px); } 100% { transform: rotate(8deg); } }
@keyframes mdm-blur { 0% { opacity: .3; transform: translateX(-5px); } 50% { opacity: .6; transform: translateX(5px); } 100% { opacity: .3; transform: translateX(-5px); } }
@keyframes mdm-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.3); } 100% { transform: scaleX(1); } }
@keyframes mdm-light { 0% { opacity: .5; } 50% { opacity: 1; } 100% { opacity: .6; } }

/* trim-honours-parents */
.scn-trim-honours-parents {
  background: linear-gradient(180deg, #f8f2e6 0%, #ebe1cc 40%, #d8cbb0 100%),
              radial-gradient(ellipse at 50% 30%, rgba(255,240,215,.4) 0%, transparent 60%);
}
.scn-trim-honours-parents .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8cbb4 100%);
}
.scn-trim-honours-parents .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c9b89c 0%, #b09878 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.08);
}
.scn-trim-honours-parents .uncle-toby-right {
  position: absolute; bottom: 20%; right: 20%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mhp-uncle 8s ease-in-out infinite alternate;
}
.scn-trim-honours-parents .pipe-wave {
  position: absolute; bottom: 50%; right: 18%; width: 45px; height: 6px;
  background: linear-gradient(90deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 50% 10% 10% 50%;
  transform-origin: right center;
  animation: mhp-pipe 3s ease-in-out infinite;
}
.scn-trim-honours-parents .corporal-bowing {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  animation: mhp-bow 6s ease-in-out infinite alternate;
}
.scn-trim-honours-parents .corporal-hat-bow {
  position: absolute; bottom: 56%; left: 28%; width: 22px; height: 10px;
  background: #2a2a1a;
  border-radius: 50% 50% 10% 10%;
  transform: rotate(-10deg);
  animation: mhp-hat 6s ease-in-out infinite alternate;
}
.scn-trim-honours-parents .window-glow {
  position: absolute; top: 8%; left: 60%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,250,230,.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: mhp-glow 5s ease-in-out infinite alternate;
}
.scn-trim-honours-parents .boots {
  position: absolute; bottom: 5%; left: 25%; width: 20px; height: 15px;
  background: #3a2a1a;
  border-radius: 30% 30% 10% 10%;
  transform: rotate(5deg);
  animation: mhp-boots 6s ease-in-out infinite alternate;
}
@keyframes mhp-uncle { 0% { transform: rotate(-5deg); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-5deg); } }
@keyframes mhp-pipe { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(-15deg); } }
@keyframes mhp-bow { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(20deg) translateY(5px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes mhp-hat { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(0) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes mhp-glow { 0% { opacity: .4; } 50% { opacity: .9; } 100% { opacity: .5; } }
@keyframes mhp-boots { 0% { transform: translateX(0) rotate(3deg); } 50% { transform: translateX(-3px) rotate(7deg); } 100% { transform: translateX(0) rotate(3deg); } }

/* father-s-critique */
.scn-father-s-critique {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 50%);
}
.scn-father-s-critique .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a38 0%, #1a1a28 100%);
  animation: fsc-bg 8s ease-in-out infinite alternate;
}
.scn-father-s-critique .bookshelf {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 8px 8px 0 rgba(0,0,0,.4);
  animation: fsc-shelf 15s ease-in-out infinite alternate;
}
.scn-father-s-critique .books {
  position: absolute; top: 15%; left: 22%; width: 56%; height: 50%;
  background: repeating-linear-gradient(
    90deg,
    #7a5a3a 0%, #7a5a3a 6%,
    #8a6a4a 6%, #8a6a4a 12%,
    #6a4a2a 12%, #6a4a2a 18%,
    #9a7a5a 18%, #9a7a5a 24%
  );
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: fsc-books 12s ease-in-out infinite alternate;
}
.scn-father-s-critique .frame {
  position: absolute; top: 30%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #6a6a7a 0%, #4a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 0 4px #2a2a3a, 0 0 20px rgba(0,0,0,.5);
  animation: fsc-frame 10s ease-in-out infinite alternate;
}
.scn-father-s-critique .figure-shadow {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 30px rgba(0,0,0,.6);
  transform-origin: bottom center;
  animation: fsc-figure 6s ease-in-out infinite alternate;
}
.scn-father-s-critique .sharp-light {
  position: absolute; top: 5%; left: 55%; width: 100px; height: 100px;
  background: radial-gradient(ellipse at 30% 30%, rgba(255,230,150,.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: fsc-light 5s ease-in-out infinite alternate;
}
.scn-father-s-critique .glass-rim {
  position: absolute; top: 35%; left: 55%; width: 20px; height: 15px;
  background: transparent;
  border: 2px solid rgba(180,180,200,.4);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(200,200,255,.2);
  animation: fsc-glass 4s ease-in-out infinite alternate;
}
@keyframes fsc-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes fsc-shelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes fsc-books { 0% { background-position: 0 0; } 100% { background-position: 24px 0; } }
@keyframes fsc-frame { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(3deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes fsc-figure { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes fsc-light { 0% { opacity: .3; transform: scale(1); } 50% { opacity: .6; transform: scale(1.2); } 100% { opacity: .3; transform: scale(1); } }
@keyframes fsc-glass { 0% { border-color: rgba(180,180,200,.3); box-shadow: 0 0 6px rgba(200,200,255,.1); } 50% { border-color: rgba(200,200,250,.6); box-shadow: 0 0 20px rgba(200,200,255,.4); } 100% { border-color: rgba(180,180,200,.3); box-shadow: 0 0 6px rgba(200,200,255,.1); } }

.scn-children-as-uncertain-comfort {
  background: linear-gradient(180deg, #2a2a1e 0%, #1e1a14 40%, #14100a 100%), radial-gradient(ellipse at 50% 40%, #3a3020 0%, transparent 70%);
}
.scn-children-as-uncertain-comfort .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2e24 0%, #2a1e14 100%); animation: ce-wall 8s ease-in-out infinite alternate; }
.scn-children-as-uncertain-comfort .window { position:absolute; top:15%; left:12%; width:28%; height:40%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-children-as-uncertain-comfort .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); box-shadow: inset 0 12px 30px rgba(0,0,0,.5); }
.scn-children-as-uncertain-comfort .mother { position:absolute; bottom:30%; left:35%; width:60px; height:90px; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ce-mother 5s ease-in-out infinite; }
.scn-children-as-uncertain-comfort .child { position:absolute; bottom:32%; left:50%; width:30px; height:50px; background: linear-gradient(180deg, #3a2e1e 0%, #2a1e14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ce-child 4s ease-in-out infinite; }
.scn-children-as-uncertain-comfort .lamp { position:absolute; bottom:40%; left:16%; width:8px; height:12px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(192,128,64,.7), 0 0 60px 20px rgba(192,128,64,.3); animation: ce-lamp 3s ease-in-out infinite alternate; }
@keyframes ce-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ce-mother { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(6px) translateY(0) rotate(2deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(0deg); } }
@keyframes ce-child { 0%,100% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(4px) translateY(0) rotate(1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(-1deg); } }
@keyframes ce-lamp { 0% { box-shadow: 0 0 20px 5px rgba(192,128,64,.5), 0 0 40px 12px rgba(192,128,64,.2); opacity:.8 } 50% { box-shadow: 0 0 35px 10px #ffd080, 0 0 70px 20px rgba(255,208,128,.4); opacity:1 } 100% { box-shadow: 0 0 25px 6px rgba(192,128,64,.6), 0 0 50px 15px rgba(192,128,64,.25); opacity:.85 } }

.scn-the-meaning-of-fiddlestick {
  background: linear-gradient(180deg, #2a241a 0%, #1e1810 50%, #100c08 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-the-meaning-of-fiddlestick .bg-dark { position:absolute; inset:0; background: repeating-linear-gradient(90deg, rgba(0,0,0,.1) 0px, rgba(0,0,0,.1) 2px, transparent 2px, transparent 8px); }
.scn-the-meaning-of-fiddlestick .table { position:absolute; bottom:20%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:6px 6px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-the-meaning-of-fiddlestick .chair { position:absolute; bottom:28%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius:30% 30% 10% 10% / 60% 60% 10% 10%; transform-origin: bottom center; animation: fd-chair 6s ease-in-out infinite; }
.scn-the-meaning-of-fiddlestick .figure { position:absolute; bottom:28%; left:30%; width:50px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fd-figure 3s ease-in-out infinite; }
.scn-the-meaning-of-fiddlestick .fiddle { position:absolute; bottom:35%; left:38%; width:30px; height:12px; background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 50%, #6a4a2a 100%); border-radius:50%; transform: rotate(-15deg); animation: fd-fiddle 2s ease-in-out infinite alternate; }
.scn-the-meaning-of-fiddlestick .notes { position:absolute; top:30%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #c08040 0%, transparent 70%); border-radius:50%; animation: fd-notes 4s ease-in-out infinite; }
.scn-the-meaning-of-fiddlestick .lamp-fd { position:absolute; bottom:50%; left:15%; width:8px; height:10px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(192,128,64,.7); animation: fd-lamp 3s ease-in-out infinite alternate; }
@keyframes fd-chair { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-2px); } }
@keyframes fd-figure { 0%,100% { transform: translateX(0) rotate(-1deg); } 20% { transform: translateX(4px) rotate(2deg); } 40% { transform: translateX(8px) rotate(-1deg); } 60% { transform: translateX(4px) rotate(2deg); } 80% { transform: translateX(0) rotate(-1deg); } }
@keyframes fd-fiddle { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.1); } 100% { transform: rotate(-20deg) scaleX(1); } }
@keyframes fd-notes { 0% { transform: translate(0, 0) scale(0.8); opacity:.3; } 50% { transform: translate(20px, -30px) scale(1.2); opacity:.8; } 100% { transform: translate(40px, -60px) scale(0.6); opacity:0; } }
@keyframes fd-lamp { 0% { box-shadow: 0 0 20px 5px rgba(192,128,64,.5); opacity:.8; } 100% { box-shadow: 0 0 40px 12px rgba(255,208,80,.6); opacity:1; } }

.scn-uncle-toby-reads-siege-of-jericho {
  background: linear-gradient(180deg, #2e2a1e 0%, #1e1a10 50%, #100c08 100%), radial-gradient(ellipse at 50% 50%, #342a18 0%, transparent 70%);
}
.scn-uncle-toby-reads-siege-of-jericho .wall-sj { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2e1e 0%, #2a1e12 100%); animation: sj-wall 10s ease-in-out infinite alternate; }
.scn-uncle-toby-reads-siege-of-jericho .bookshelf { position:absolute; top:5%; left:5%; width:90%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-uncle-toby-reads-siege-of-jericho .armchair { position:absolute; bottom:20%; left:35%; width:80px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: sj-chair 8s ease-in-out infinite; }
.scn-uncle-toby-reads-siege-of-jericho .uncle-toby { position:absolute; bottom:25%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #3a2e1e 0%, #1e1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sj-figure 8s ease-in-out infinite; }
.scn-uncle-toby-reads-siege-of-jericho .book { position:absolute; bottom:27%; left:45%; width:30px; height:20px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%); border-radius:2px; transform: rotate(15deg); animation: sj-book 4s ease-in-out infinite alternate; }
.scn-uncle-toby-reads-siege-of-jericho .candle { position:absolute; bottom:35%; left:55%; width:6px; height:18px; background: linear-gradient(180deg, #e0c080 0%, #c09040 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 20px 6px rgba(192,144,64,.7), 0 0 40px 12px rgba(192,144,64,.3); animation: sj-candle 3s ease-in-out infinite alternate; }
@keyframes sj-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sj-chair { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-2px); } }
@keyframes sj-figure { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(4px) rotate(1deg); } 75% { transform: translateX(2px) rotate(0deg); } }
@keyframes sj-book { 0% { transform: rotate(10deg) scaleX(1); } 50% { transform: rotate(20deg) scaleX(1.05); } 100% { transform: rotate(10deg) scaleX(1); } }
@keyframes sj-candle { 0% { box-shadow: 0 0 15px 4px rgba(192,144,64,.5); opacity:.85; } 50% { box-shadow: 0 0 25px 8px rgba(255,224,128,.7); opacity:1; } 100% { box-shadow: 0 0 18px 5px rgba(192,144,64,.6); opacity:.9; } }

.scn-wadmnan-inquiry-about-wound-location {
  background: linear-gradient(180deg, #2a241c 0%, #1e1812 50%, #100c08 100%), radial-gradient(ellipse at 50% 50%, #342818 0%, transparent 70%);
}
.scn-wadmnan-inquiry-about-wound-location .bg-ww { position:absolute; inset:0; background: repeating-linear-gradient(45deg, rgba(0,0,0,.05) 0px, rgba(0,0,0,.05) 2px, transparent 2px, transparent 6px); }
.scn-wadmnan-inquiry-about-wound-location .table-ww { position:absolute; bottom:20%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:6px 6px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-wadmnan-inquiry-about-wound-location .chair-ww { position:absolute; bottom:28%; right:30%; width:40px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius:30% 30% 10% 10% / 60% 60% 10% 10%; transform-origin: bottom center; animation: ww-chair 6s ease-in-out infinite; }
.scn-wadmnan-inquiry-about-wound-location .mrs-wadman { position:absolute; bottom:28%; left:25%; width:45px; height:75px; background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ww-woman 5s ease-in-out infinite; }
.scn-wadmnan-inquiry-about-wound-location .mrs-wadman::before { content:''; position:absolute; top:20%; left:0; width:20px; height:6px; background:#3a2a1e; border-radius:50%; transform: translate(10px,0) rotate(20deg); animation: ww-arm 5s ease-in-out infinite; }
.scn-wadmnan-inquiry-about-wound-location .uncle-toby-ww { position:absolute; bottom:28%; right:20%; width:40px; height:60px; background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ww-man 6s ease-in-out infinite; }
.scn-wadmnan-inquiry-about-wound-location .lamp-ww { position:absolute; bottom:45%; left:20%; width:8px; height:10px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(192,128,64,.7); animation: ww-lamp 3s ease-in-out infinite alternate; }
@keyframes ww-chair { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes ww-woman { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(6px) rotate(2deg); } 75% { transform: translateX(3px) rotate(0deg); } }
@keyframes ww-arm { 0%,100% { transform: translate(10px,0) rotate(20deg); } 25% { transform: translate(12px,-2px) rotate(40deg); } 50% { transform: translate(14px,0) rotate(20deg); } 75% { transform: translate(12px,-2px) rotate(0deg); } }
@keyframes ww-man { 0%,100% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(4px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(0deg); } }
@keyframes ww-lamp { 0% { box-shadow: 0 0 20px 5px rgba(192,128,64,.5); opacity:.8; } 100% { box-shadow: 0 0 35px 10px rgba(255,208,80,.6); opacity:1; } }

/* yorick-catastrophe */
.scn-yorick-catastrophe {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2438 40%, #3a2e4a 70%, #2a1e2a 100%),
    radial-gradient(ellipse at 50% 30%, #4a3e5a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-yorick-catastrophe .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2438 0%, #1e1a2e 100%); }
.scn-yorick-catastrophe .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2e4a 0%, #1e1a2e 100%); border-radius: 20% 30% 0 0 / 10% 15% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-yorick-catastrophe .table { position:absolute; bottom:28%; left:50%; width:120px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4e3a 0%, #3a2e1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-yorick-catastrophe .candle { position:absolute; bottom:38%; left:50%; width:10px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #d4b880 0%, #8a7a5a 100%); border-radius: 3px; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-yorick-catastrophe .flame { position:absolute; bottom:62%; left:50%; width:14px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse, #ffd060 0%, #ffa040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,160,64,.5), 0 0 40px 15px rgba(255,160,64,.2); animation: yc-flame 1.5s ease-in-out infinite alternate; }
.scn-yorick-catastrophe .figure-left { position:absolute; bottom:22%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #2a1e2a 0%, #0e0a0e 100%); border-radius: 40% 30% 20% 20% / 60% 50% 40% 40%; animation: yc-figure-l 6s ease-in-out infinite; }
.scn-yorick-catastrophe .figure-right { position:absolute; bottom:22%; right:25%; width:50px; height:90px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%); border-radius: 30% 40% 20% 20% / 50% 60% 40% 40%; animation: yc-figure-r 7s ease-in-out infinite; }
.scn-yorick-catastrophe .shadow { position:absolute; bottom:15%; left:20%; right:20%; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: yc-shadow 6s ease-in-out infinite; }
@keyframes yc-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); opacity:.9 } 50% { transform: translateX(-50%) scaleY(1.15) rotate(0); opacity:1 } 100% { transform: translateX(-50%) scaleY(.95) rotate(2deg); opacity:.8 } }
@keyframes yc-figure-l { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(0) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes yc-figure-r { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-1px) rotate(0) } 50% { transform: translateY(-2px) rotate(-1deg) } 75% { transform: translateY(0) rotate(0) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes yc-shadow { 0%,100% { opacity:.6; transform: scaleX(1) } 50% { opacity:.8; transform: scaleX(1.05) } }

/* eugenius-warning */
.scn-eugenius-warning {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2a2a4a 40%, #3a3a5a 70%, #2a2a3a 100%),
    radial-gradient(ellipse at 60% 20%, #4a4a6a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-eugenius-warning .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a4a 0%, #1e1e3a 100%); }
.scn-eugenius-warning .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%); border-radius: 30% 20% 0 0 / 15% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-eugenius-warning .table { position:absolute; bottom:25%; left:55%; width:100px; height:8px; transform:translateX(-50%); background: linear-gradient(180deg, #4a4030 0%, #2a2010 100%); border-radius: 3px; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-eugenius-warning .candle { position:absolute; bottom:33%; left:55%; width:8px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #c4a870 0%, #8a7a5a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-eugenius-warning .flame { position:absolute; bottom:56%; left:55%; width:12px; height:18px; transform:translateX(-50%); background: radial-gradient(ellipse, #ffd060 0%, #ffa040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 18px 6px rgba(255,160,64,.4), 0 0 30px 12px rgba(255,160,64,.15); animation: ew-flame 1.8s ease-in-out infinite alternate; }
.scn-eugenius-warning .eugenius { position:absolute; bottom:18%; right:20%; width:45px; height:85px; background: linear-gradient(180deg, #4a3a3a 0%, #1a0e0e 100%); border-radius: 40% 30% 20% 20% / 60% 50% 40% 40%; animation: ew-fig 8s ease-in-out infinite; }
.scn-eugenius-warning .yorick { position:absolute; bottom:18%; left:20%; width:40px; height:75px; background: linear-gradient(180deg, #3a2a3a 0%, #0e0a0e 100%); border-radius: 30% 40% 20% 20% / 50% 60% 40% 40%; transform-origin: bottom; animation: ew-fig 9s ease-in-out infinite reverse; }
.scn-eugenius-warning .dust { position:absolute; top:20%; left:10%; width:4px; height:4px; background: rgba(200,200,220,.2); border-radius: 50%; filter: blur(1px); box-shadow: 20px 30px 0 rgba(200,200,220,.15), 40px 60px 0 rgba(200,200,220,.1), 60px 20px 0 rgba(200,200,220,.2); animation: ew-dust 20s linear infinite; }
@keyframes ew-flame { 0% { transform: translateX(-50%) scaleY(.9) rotate(-3deg); opacity:.8 } 50% { transform: translateX(-50%) scaleY(1.1) rotate(0); opacity:1 } 100% { transform: translateX(-50%) scaleY(1) rotate(3deg); opacity:.85 } }
@keyframes ew-fig { 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(1deg) } }
@keyframes ew-dust { 0% { transform: translateY(0) } 100% { transform: translateY(-100px) } }

/* yorick-fall */
.scn-yorick-fall {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a3a4a 60%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-yorick-fall .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-yorick-fall .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-yorick-fall .horse { position:absolute; bottom:30%; left:45%; width:80px; height:50px; transform: translate(-50%), rotate(-10deg); transform-origin: bottom center; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 60% 40% 40% / 60% 40% 40% 40%; animation: yf-horse 2s ease-in-out infinite; }
.scn-yorick-fall .rider { position:absolute; bottom:45%; left:42%; width:30px; height:40px; transform: translate(-50%) rotate(15deg); background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%); border-radius: 30% 40% 40% 40% / 50% 60% 40% 40%; animation: yf-rider 2s ease-in-out infinite alternate; }
.scn-yorick-fall .speck { position:absolute; bottom:40%; left:30%; width:3px; height:3px; background: rgba(200,180,160,.3); border-radius: 50%; box-shadow: 10px 20px 0 rgba(200,180,160,.2), 20px 10px 0 rgba(200,180,160,.15), 30px 30px 0 rgba(200,180,160,.1); animation: yf-speck 4s linear infinite; }
.scn-yorick-fall .shadow { position:absolute; bottom:10%; left:40%; right:10%; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 60%); transform: skewX(-20deg); animation: yf-shadow 2s ease-in-out infinite; }
.scn-yorick-fall .motes { position:absolute; top:20%; left:20%; width:100px; height:100px; background: radial-gradient(circle, transparent 30%, rgba(200,180,160,.05) 70%); filter: blur(8px); animation: yf-motes 12s ease-in-out infinite alternate; }
@keyframes yf-horse { 0% { transform: translate(-50%) rotate(-10deg) } 50% { transform: translate(-50%) rotate(-15deg) scaleY(1.05) } 100% { transform: translate(-50%) rotate(-10deg) } }
@keyframes yf-rider { 0% { transform: translate(-50%) rotate(15deg) } 50% { transform: translate(-50%) rotate(20deg) translateY(-5px) } 100% { transform: translate(-50%) rotate(15deg) } }
@keyframes yf-speck { 0% { transform: translateY(0) rotate(0) } 100% { transform: translateY(-50px) rotate(360deg) } }
@keyframes yf-shadow { 0% { opacity:.6; transform: skewX(-20deg) scaleX(1) } 50% { opacity:.8; transform: skewX(-25deg) scaleX(1.05) } 100% { opacity:.6; transform: skewX(-20deg) scaleX(1) } }
@keyframes yf-motes { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.1) } 100% { opacity:.3; transform: scale(1) } }

/* yorick-deathbed */
.scn-yorick-deathbed {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 70%, #2a1a0a 100%),
    radial-gradient(ellipse at 30% 50%, #6a4a2a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-yorick-deathbed .hearth { position:absolute; bottom:10%; left:10%; width:80px; height:100px; background: linear-gradient(180deg, #4a2a0a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-yorick-deathbed .bed { position:absolute; bottom:12%; left:30%; right:10%; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 20% 20% / 30% 30% 30% 30%; box-shadow: 0 -4px 8px rgba(0,0,0,.4); }
.scn-yorick-deathbed .body { position:absolute; bottom:18%; left:35%; width:60px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0e 100%); border-radius: 30% 40% 40% 40% / 40% 50% 50% 40%; transform: rotate(-5deg); animation: yd-body 5s ease-in-out infinite; }
.scn-yorick-deathbed .figure { position:absolute; bottom:12%; right:15%; width:40px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #1a0e0e 100%); border-radius: 40% 30% 20% 20% / 60% 50% 40% 40%; animation: yd-figure 7s ease-in-out infinite; }
.scn-yorick-deathbed .fire { position:absolute; bottom:14%; left:14%; width:20px; height:30px; background: radial-gradient(ellipse, #ffa040 0%, #ff6020 40%, transparent 60%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,160,64,.6), 0 0 60px 20px rgba(255,96,32,.3); animation: yd-fire 1.2s ease-in-out infinite alternate; }
.scn-yorick-deathbed .ember { position:absolute; bottom:24%; left:12%; width:4px; height:4px; background: #ff8020; border-radius: 50%; box-shadow: 0 0 6px 2px #ff8020; animation: yd-ember 0.8s linear infinite; }
.scn-yorick-deathbed .shadow { position:absolute; bottom:0; left:20%; right:20%; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 70%); animation: yd-shadow 7s ease-in-out infinite; }
.scn-yorick-deathbed .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 15% 60%, rgba(255,160,64,.08) 0%, transparent 50%); animation: yd-glow 4s ease-in-out infinite alternate; }
@keyframes yd-body { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes yd-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(0) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes yd-fire { 0% { transform: scaleY(1) rotate(-2deg); opacity:.8 } 50% { transform: scaleY(1.2) rotate(0); opacity:1 } 100% { transform: scaleY(1) rotate(2deg); opacity:.9 } }
@keyframes yd-ember { 0% { transform: translate(0,0) scale(1); opacity:1 } 50% { transform: translate(3px,-5px) scale(0.8); opacity:.6 } 100% { transform: translate(-2px,-10px) scale(0.5); opacity:0 } }
@keyframes yd-shadow { 0%,100% { opacity:.6; transform: scaleX(1) } 50% { opacity:.8; transform: scaleX(1.05) } }
@keyframes yd-glow { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }

.scn-old-model-bridge { background: linear-gradient(180deg, #e6dcc3 0%, #cbb89d 40%, #9b8560 100%), radial-gradient(ellipse at 30% 10%, #fff9e0 0%, transparent 50%); }
.scn-old-model-bridge .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #ddd0b0 0%, #b8a482 60%, #7a684a 100%); }
.scn-old-model-bridge .table { position:absolute; bottom:10%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #9e8b6e 0%, #6b5b44 100%); border-radius: 8px 8px 20px 20px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-old-model-bridge .bridge-model { position:absolute; bottom:28%; left:30%; width:40%; height:12%; background: linear-gradient(135deg, #7a6a50 0%, #b09870 50%, #7a6a50 100%); border-radius: 4px 4px 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: omb-bridge 6s ease-in-out infinite alternate; }
.scn-old-model-bridge .figure-trim { position:absolute; bottom:22%; right:25%; width:20px; height:50px; background: linear-gradient(180deg, #3a2e22 0%, #1e160e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: omb-figure 8s ease-in-out infinite; }
.scn-old-model-bridge .papers { position:absolute; bottom:30%; left:15%; width:80px; height:50px; background: #f0e0c0; border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.2); transform: rotate(-5deg); animation: omb-papers 12s ease-in-out infinite; }
.scn-old-model-bridge .candle { position:absolute; bottom:32%; left:45%; width:8px; height:30px; background: linear-gradient(180deg, #f5e0b0 0%, #c8a060 100%); border-radius: 4px 4px 2px 2px; }
.scn-old-model-bridge .candle-glow { position:absolute; bottom:45%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, #ffb040 40%, transparent 70%); border-radius: 50%; animation: omb-glow 3s ease-in-out infinite alternate; opacity: 0.8; }
@keyframes omb-bridge { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.95) translateY(2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes omb-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 omb-papers { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } }
@keyframes omb-glow { 0% { transform: scale(1); opacity: 0.6; } 100% { transform: scale(1.3); opacity: 1; } }

.scn-bridge-designs { background: linear-gradient(180deg, #dfd5c0 0%, #c4b394 40%, #a08e6e 100%), radial-gradient(ellipse at 50% 20%, #fff9e6 0%, transparent 60%); }
.scn-bridge-designs .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #d9ceb2 0%, #b8a482 60%, #7a684a 100%); }
.scn-bridge-designs .drawing-board { position:absolute; bottom:15%; left:15%; right:35%; height:55%; background: linear-gradient(135deg, #b8a078 0%, #8c7a5a 100%); border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); transform: rotate(-2deg); }
.scn-bridge-designs .blueprint { position:absolute; bottom:20%; left:20%; right:40%; height:45%; background: repeating-linear-gradient(90deg, #2a4060 0px, #2a4060 2px, transparent 2px, transparent 8px), repeating-linear-gradient(0deg, #2a4060 0px, #2a4060 2px, transparent 2px, transparent 8px); background-color: #c0d0e0; border-radius: 2px; box-shadow: inset 0 0 0 2px #506070; animation: bde-blueprint 10s ease-in-out infinite alternate; }
.scn-bridge-designs .compass { position:absolute; bottom:30%; left:25%; width:30px; height:30px; background: radial-gradient(circle, #808080 0%, #606060 50%, #404040 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: bde-compass 4s linear infinite; }
.scn-bridge-designs .ruler { position:absolute; bottom:45%; left:50%; width:80px; height:6px; background: #b09060; border-radius: 2px; transform: rotate(25deg); box-shadow: 0 1px 2px rgba(0,0,0,0.3); }
.scn-bridge-designs .figure-toby { position:absolute; bottom:20%; left:5%; width:22px; height:55px; background: linear-gradient(180deg, #3c3024 0%, #1a150e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bde-toby 7s ease-in-out infinite; }
.scn-bridge-designs .geometry-line { position:absolute; bottom:35%; left:30%; width:100px; height:2px; background: #203040; border-radius: 1px; transform: rotate(-15deg); animation: bde-line 5s ease-in-out infinite alternate; }
@keyframes bde-blueprint { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes bde-compass { 0% { transform: rotate(0deg); } 25% { transform: rotate(90deg); } 50% { transform: rotate(180deg); } 75% { transform: rotate(270deg); } 100% { transform: rotate(360deg); } }
@keyframes bde-toby { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bde-line { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.2); } 100% { transform: rotate(-15deg) scaleX(1); } }

.scn-uncle-toby-parabola { background: linear-gradient(180deg, #e4d9c2 0%, #cbb89d 40%, #9b8560 100%), radial-gradient(ellipse at 60% 30%, #fffae8 0%, transparent 50%); }
.scn-uncle-toby-parabola .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #dbceb2 0%, #b8a482 60%, #7a684a 100%); }
.scn-uncle-toby-parabola .figure-toby { position:absolute; bottom:20%; left:25%; width:22px; height:55px; background: linear-gradient(180deg, #3c3024 0%, #1a150e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: utp-toby 6s ease-in-out infinite; }
.scn-uncle-toby-parabola .parabola-curve { position:absolute; bottom:35%; left:40%; width:120px; height:60px; background: transparent; border: 2px solid #3a4a5a; border-radius: 0 0 50% 50% / 0 0 100% 100%; border-top: none; transform: rotate(10deg); animation: utp-parabola 8s ease-in-out infinite alternate; }
.scn-uncle-toby-parabola .cycloid-curve { position:absolute; bottom:30%; left:45%; width:80px; height:40px; background: transparent; border: 2px dashed #5a6a7a; border-radius: 0 0 50% 50% / 0 0 100% 100%; border-top: none; transform: rotate(-15deg); animation: utp-cycloid 12s ease-in-out infinite alternate; }
.scn-uncle-toby-parabola .table { position:absolute; bottom:10%; left:10%; right:50%; height:20%; background: linear-gradient(180deg, #9e8b6e 0%, #6b5b44 100%); border-radius: 8px 8px 20px 20px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-uncle-toby-parabola .paper-scroll { position:absolute; bottom:22%; left:15%; width:70px; height:40px; background: #f0e0c0; border-radius: 4px; box-shadow: 2px 2px 4px rgba(0,0,0,0.2); transform: rotate(8deg); animation: utp-scroll 9s ease-in-out infinite; }
.scn-uncle-toby-parabola .mug { position:absolute; bottom:25%; left:20%; width:18px; height:20px; background: #8a6a40; border-radius: 4px 4px 6px 6px; box-shadow: -2px 0 4px rgba(0,0,0,0.3); }
@keyframes utp-toby { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(3deg); } 50% { transform: translateX(12px) rotate(2deg); } 75% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes utp-parabola { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.2); } 100% { transform: rotate(10deg) scaleY(1); } }
@keyframes utp-cycloid { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(-20deg) scaleX(0.8); } 100% { transform: rotate(-15deg) scaleX(1); } }
@keyframes utp-scroll { 0%,100% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-5px); } }

.scn-slop-mistaken-for-bridge { background: linear-gradient(180deg, #e0d4be 0%, #c8b89a 40%, #9b8560 100%), radial-gradient(ellipse at 40% 50%, #fff5e0 0%, transparent 60%); }
.scn-slop-mistaken-for-bridge .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #d6cbb2 0%, #b8a482 60%, #7a684a 100%); }
.scn-slop-mistaken-for-bridge .figure-slop { position:absolute; bottom:18%; left:40%; width:24px; height:52px; background: linear-gradient(180deg, #2f2a20 0%, #0f0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: smb-slop 4s ease-in-out infinite alternate; }
.scn-slop-mistaken-for-bridge .figure-toby { position:absolute; bottom:20%; right:30%; width:22px; height:55px; background: linear-gradient(180deg, #3c3024 0%, #1a150e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: smb-toby 5s ease-in-out infinite; }
.scn-slop-mistaken-for-bridge .object-bridge { position:absolute; bottom:30%; left:42%; width:40px; height:15px; background: linear-gradient(135deg, #7a6a50 0%, #b09870 50%, #7a6a50 100%); border-radius: 4px 4px 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.4); transform: rotate(20deg); animation: smb-object 2.5s ease-in-out infinite alternate; }
.scn-slop-mistaken-for-bridge .question-mark { position:absolute; bottom:40%; right:20%; width:20px; height:30px; background: transparent; border: 3px solid #c0a060; border-radius: 50% 50% 0 0; border-bottom: none; transform: rotate(0deg); animation: smb-question 3s ease-in-out infinite; opacity: 0.7; }
.scn-slop-mistaken-for-bridge .question-mark::after { content: ''; position:absolute; bottom: -10px; left: 7px; width: 4px; height: 10px; background: #c0a060; border-radius: 2px; }
.scn-slop-mistaken-for-bridge .sparkle { position:absolute; bottom:35%; left:50%; width:12px; height:12px; background: radial-gradient(circle, #ffd080, transparent); border-radius: 50%; animation: smb-sparkle 1s ease-in-out infinite; }
.scn-slop-mistaken-for-bridge .kitchen-counter { position:absolute; bottom:12%; left:0; right:0; height:15%; background: linear-gradient(180deg, #bca478 0%, #8c7450 100%); border-radius: 4px 4px 0 0; }
.scn-slop-mistaken-for-bridge .door-frame { position:absolute; bottom:0; right:10%; width:80px; height:100%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 0 0 4px #4a3a2a; }
@keyframes smb-slop { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(10px) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes smb-toby { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-8px) rotate(-3deg); } 40% { transform: translateX(-12px) rotate(-5deg); } 60% { transform: translateX(-8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes smb-object { 0% { transform: rotate(20deg) scale(1); } 100% { transform: rotate(30deg) scale(1.1); } }
@keyframes smb-question { 0%,100% { opacity: 0.7; transform: rotate(0deg); } 50% { opacity: 1; transform: rotate(10deg); } }
@keyframes smb-sparkle { 0%,100% { opacity: 0.3; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.5); } }

.scn-mother-takes-snuff { background: linear-gradient(180deg, #f2e6c9 0%, #d9c9a3 50%, #c4b48c 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%); }
.scn-mother-takes-snuff .back-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #e8dcc4 0%, #d4c8a8 100%); }
.scn-mother-takes-snuff .window { position:absolute; top:10%; left:60%; width:80px; height:100px; background: linear-gradient(180deg, #fffce8 0%, #e8dfc8 100%); border:4px solid #a0855a; border-radius:8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(255,255,200,.5), 0 0 30px rgba(255,200,100,.3); }
.scn-mother-takes-snuff .table { position:absolute; bottom:15%; left:25%; width:200px; height:18px; background: linear-gradient(180deg, #b89a6a 0%, #8c7048 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-mother-takes-snuff .snuffbox { position:absolute; bottom:25%; left:44%; width:26px; height:16px; background: linear-gradient(135deg, #c59a6b 0%, #7a5a3a 100%); border-radius:4px; transform:rotate(8deg); animation: mts-box 4s ease-in-out infinite; }
.scn-mother-takes-snuff .mother-body { position:absolute; bottom:18%; left:35%; width:60px; height:100px; background: linear-gradient(180deg, #7a5a3a 0%, #5c3f22 100%); border-radius:30% 30% 40% 40% / 50% 50% 30% 30%; }
.scn-mother-takes-snuff .mother-head { position:absolute; bottom:78%; left:42%; width:30px; height:34px; background: linear-gradient(180deg, #e8d5b8 0%, #c9ac8a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: mts-head 2s ease-in-out infinite; }
.scn-mother-takes-snuff .mother-arm { position:absolute; bottom:55%; left:48%; width:30px; height:8px; background: linear-gradient(180deg, #c9ac8a 0%, #a08060 100%); border-radius:50%; transform-origin: 0% 50%; animation: mts-arm 2.5s ease-in-out infinite; }
.scn-mother-takes-snuff .snuff-puff { position:absolute; bottom:50%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #f5e6c0 0%, transparent 70%); border-radius:50%; animation: mts-puff 3s ease-out infinite; }
@keyframes mts-box { 0%,100% { transform:rotate(8deg) translateY(0); } 50% { transform:rotate(12deg) translateY(-2px); } }
@keyframes mts-head { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(-8deg); } }
@keyframes mts-arm { 0% { transform:rotate(-30deg); } 50% { transform:rotate(-60deg); } 100% { transform:rotate(-30deg); } }
@keyframes mts-puff { 0% { transform:scale(0.3); opacity:.8; } 50% { transform:scale(2); opacity:.3; } 100% { transform:scale(0.5) translateY(-30px); opacity:0; } }

.scn-yorick-opinion-on-love { background: linear-gradient(180deg, #f7edda 0%, #e5d7ba 50%, #d4c19e 100%), radial-gradient(ellipse at 30% 70%, #ffe8b0 0%, transparent 60%); }
.scn-yorick-opinion-on-love .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d9cbb5 0%, #c4b296 100%); }
.scn-yorick-opinion-on-love .bookshelf { position:absolute; top:10%; left:5%; width:20%; height:50%; background: linear-gradient(90deg, #8b6f4e 0%, #7a5e3e 100%); border-radius:0 5px 5px 0; box-shadow: inset 0 0 15px rgba(0,0,0,.3); }
.scn-yorick-opinion-on-love .lectern { position:absolute; bottom:20%; left:40%; width:60px; height:40px; background: linear-gradient(180deg, #a0855a 0%, #7a5e3e 100%); border-radius:6px 6px 0 0; }
.scn-yorick-opinion-on-love .yorick-body { position:absolute; bottom:15%; left:38%; width:50px; height:110px; background: linear-gradient(180deg, #5a3a2a 0%, #3d251a 100%); border-radius:30% 30% 40% 40% / 50% 50% 30% 30%; }
.scn-yorick-opinion-on-love .yorick-head { position:absolute; bottom:80%; left:44%; width:28px; height:30px; background: linear-gradient(180deg, #e0c8a8 0%, #b89878 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: yol-head 2s ease-in-out infinite; }
.scn-yorick-opinion-on-love .yorick-hand { position:absolute; bottom:60%; left:55%; width:20px; height:6px; background: #c4a080; border-radius:50%; transform-origin: 0% 50%; animation: yol-hand 2.5s ease-in-out infinite; }
.scn-yorick-opinion-on-love .candle { position:absolute; bottom:22%; right:20%; width:8px; height:30px; background: linear-gradient(180deg, #f5e6c0 0%, #c9a86a 100%); border-radius:3px; }
.scn-yorick-opinion-on-love .candle-glow { position:absolute; bottom:38%; right:18%; width:40px; height:40px; background: radial-gradient(circle, #ffe680 0%, #ffcc6633 60%, transparent 100%); border-radius:50%; animation: yol-glow 2s ease-in-out infinite alternate; }
@keyframes yol-head { 0%,100% { transform:rotate(-5deg); } 50% { transform:rotate(10deg); } }
@keyframes yol-hand { 0% { transform:rotate(-40deg); } 50% { transform:rotate(-80deg); } 100% { transform:rotate(-40deg); } }
@keyframes yol-glow { 0% { opacity:.6; transform:scale(1); } 100% { opacity:1; transform:scale(1.3); } }

.scn-fathers-continued-discourse { background: linear-gradient(180deg, #e8d5b8 0%, #cfa880 50%, #b08060 100%), radial-gradient(ellipse at 50% 20%, #ffd0a0 0%, transparent 60%); }
.scn-fathers-continued-discourse .room { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #d4b898 0%, #b89070 100%); }
.scn-fathers-continued-discourse .fireplace { position:absolute; bottom:20%; left:10%; width:120px; height:80px; background: linear-gradient(180deg, #6a4a3a 0%, #4a3328 100%); border-radius:30px 30px 0 0; }
.scn-fathers-continued-discourse .chair-left { position:absolute; bottom:15%; left:15%; width:70px; height:60px; background: linear-gradient(180deg, #7a5e3e 0%, #5c422e 100%); border-radius:10px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-fathers-continued-discourse .father { position:absolute; bottom:30%; left:20%; width:40px; height:90px; background: linear-gradient(180deg, #4a3328 0%, #33241a 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; animation: fcd-father 4s ease-in-out infinite; }
.scn-fathers-continued-discourse .chair-right { position:absolute; bottom:15%; right:20%; width:70px; height:60px; background: linear-gradient(180deg, #7a5e3e 0%, #5c422e 100%); border-radius:10px; }
.scn-fathers-continued-discourse .uncle-toby { position:absolute; bottom:30%; right:25%; width:45px; height:85px; background: linear-gradient(180deg, #5a3a2a 0%, #3d251a 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; animation: fcd-toby 4.5s ease-in-out infinite; }
.scn-fathers-continued-discourse .fire { position:absolute; bottom:38%; left:12%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, #ff8833 0%, #cc5500 60%, transparent 100%); border-radius:50%; animation: fcd-fire 1.5s ease-in-out infinite; }
.scn-fathers-continued-discourse .fire-glow { position:absolute; bottom:30%; left:5%; width:200px; height:80px; background: radial-gradient(ellipse, #ffaa55 0%, transparent 80%); border-radius:50%; animation: fcd-glow 2s ease-in-out infinite alternate; }
@keyframes fcd-father { 0%,100% { transform:translateY(0) rotate(-5deg); } 50% { transform:translateY(-5px) rotate(5deg); } }
@keyframes fcd-toby { 0%,100% { transform:translateY(0) rotate(5deg); } 50% { transform:translateY(-3px) rotate(-3deg); } }
@keyframes fcd-fire { 0%,100% { transform:scale(1); opacity:.8; } 50% { transform:scale(1.2); opacity:1; } }
@keyframes fcd-glow { 0% { opacity:.3; } 100% { opacity:.7; } }

.scn-witty-exchanges-on-procreation { background: linear-gradient(180deg, #f5edd6 0%, #e0d4b8 50%, #d0c09a 100%), radial-gradient(ellipse at 50% 0%, #ffffe0 0%, transparent 70%); }
.scn-witty-exchanges-on-procreation .dining-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #d9cbb5 0%, #c4b296 100%); }
.scn-witty-exchanges-on-procreation .table-round { position:absolute; bottom:18%; left:20%; width:250px; height:140px; background: radial-gradient(ellipse at 50% 50%, #b89878 0%, #8c7048 100%); border-radius:50%; box-shadow: 0 8px 20px rgba(0,0,0,.3); }
.scn-witty-exchanges-on-procreation .yorick { position:absolute; bottom:30%; left:25%; width:40px; height:100px; background: linear-gradient(180deg, #5a3a2a 0%, #3d251a 100%); border-radius:30% 30% 40% 40% / 50% 50% 30% 30%; animation: wep-yorick 3s ease-in-out infinite; }
.scn-witty-exchanges-on-procreation .mother { position:absolute; bottom:28%; right:28%; width:38px; height:95px; background: linear-gradient(180deg, #7a5a3a 0%, #5c3f22 100%); border-radius:30% 30% 40% 40% / 50% 50% 30% 30%; animation: wep-mother 3.5s ease-in-out infinite; }
.scn-witty-exchanges-on-procreation .father { position:absolute; bottom:32%; left:48%; width:42px; height:105px; background: linear-gradient(180deg, #4a3328 0%, #33241a 100%); border-radius:30% 30% 40% 40% / 50% 50% 30% 30%; animation: wep-father 4s ease-in-out infinite; }
.scn-witty-exchanges-on-procreation .wine-glasses { position:absolute; bottom:22%; left:35%; width:10px; height:15px; background: linear-gradient(180deg, #e8e0c8 0%, #c0b89a 100%); border-radius:0 0 50% 50%; box-shadow: 0 0 8px rgba(255,255,200,.4); transform:rotate(-10deg); animation: wep-glass 2s ease-in-out infinite; }
.scn-witty-exchanges-on-procreation .plate { position:absolute; bottom:18%; left:42%; width:30px; height:8px; background: radial-gradient(ellipse, #e8e0c8 0%, #c0b89a 100%); border-radius:50%; }
.scn-witty-exchanges-on-procreation .bread { position:absolute; bottom:16%; left:43%; width:20px; height:10px; background: linear-gradient(135deg, #c9a86a 0%, #a08050 100%); border-radius:30% 30% 40% 40%; transform:rotate(5deg); }
@keyframes wep-yorick { 0%,100% { transform:translateY(0) rotate(-5deg); } 50% { transform:translateY(-4px) rotate(8deg); } }
@keyframes wep-mother { 0%,100% { transform:translateY(0) rotate(4deg); } 50% { transform:translateY(-2px) rotate(-6deg); } }
@keyframes wep-father { 0%,100% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-3px) rotate(5deg); } }
@keyframes wep-glass { 0%,100% { transform:rotate(-10deg); } 50% { transform:rotate(-5deg) translateY(-2px); } }

/* uncle-toby-perplexities */
.scn-uncle-toby-perplexities {
  background: linear-gradient(180deg, #1f1a24 0%, #2a2230 50%, #1a1420 100%), radial-gradient(ellipse at 50% 0%, #3a2a3a 0%, transparent 70%);
}
.scn-uncle-toby-perplexities .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2c2432 0%, #1e1822 100%);
  animation: si-tp-wall 14s ease-in-out infinite alternate;
}
.scn-uncle-toby-perplexities .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a141e 0%, #241e2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-uncle-toby-perplexities .desk {
  position: absolute; bottom: 25%; left: 20%; width: 55%; height: 18%;
  background: linear-gradient(160deg, #4a3e3a 0%, #2e241e 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
  transform: skewX(-2deg); animation: si-tp-desk 9s ease-in-out infinite;
}
.scn-uncle-toby-perplexities .figure-perplexed {
  position: absolute; bottom: 30%; left: 40%; width: 24%; height: 45%;
  background: linear-gradient(180deg, #362e38 0%, #1a1620 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: si-tp-figure 6s ease-in-out infinite;
}
.scn-uncle-toby-perplexities .lamp-flicker {
  position: absolute; bottom: 50%; left: 55%; width: 4%; height: 6%;
  background: radial-gradient(circle, #e8c060 0%, #a07838 70%);
  border-radius: 50%; box-shadow: 0 0 24px 8px #c08040, 0 0 50px 15px rgba(192,128,64,.4);
  animation: si-tp-lamp 2s ease-in-out infinite alternate;
}
.scn-uncle-toby-perplexities .shadow-sharp {
  position: absolute; bottom: 25%; left: 18%; width: 60%; height: 20%;
  background: linear-gradient(90deg, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(12px); animation: si-tp-shadow 12s ease-in-out infinite alternate;
}
@keyframes si-tp-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes si-tp-desk { 0%,100% { transform: skewX(-2deg) } 50% { transform: skewX(-1deg) translateY(2px) } }
@keyframes si-tp-figure { 0% { transform: rotate(0deg) } 30% { transform: rotate(-8deg) translateX(-4px) } 60% { transform: rotate(5deg) translateX(3px) } 100% { transform: rotate(0deg) } }
@keyframes si-tp-lamp { 0% { opacity:.7; box-shadow: 0 0 18px 4px #a07030, 0 0 32px 8px rgba(160,112,48,.3) } 50% { opacity:1; box-shadow: 0 0 30px 12px #e8b850, 0 0 60px 20px rgba(232,184,80,.5) } 100% { opacity:.8; box-shadow: 0 0 22px 6px #b88038, 0 0 38px 12px rgba(184,128,56,.35) } }
@keyframes si-tp-shadow { 0% { opacity:.5; transform: translateX(0) } 100% { opacity:.8; transform: translateX(6px) } }

/* namur-siege-difficulty */
.scn-namur-siege-difficulty {
  background: linear-gradient(180deg, #12101a 0%, #1a1422 50%, #0e0c14 100%), radial-gradient(ellipse at 40% 60%, #1a1220 0%, transparent 70%);
}
.scn-namur-siege-difficulty .room-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #1a1624 0%, #0e0c18 100%);
  animation: si-ns-ambient 20s ease-in-out infinite alternate;
}
.scn-namur-siege-difficulty .table-wood {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(160deg, #3a2e2a 0%, #1e1816 100%);
  border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,.7);
  transform: perspective(800px) rotateX(10deg);
}
.scn-namur-siege-difficulty .map-spread {
  position: absolute; bottom: 25%; left: 18%; width: 64%; height: 40%;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4e36 30%, #3a3224 100%);
  border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,.4);
  transform: perspective(600px) rotateX(20deg) rotateY(-5deg);
  animation: si-ns-map 30s ease-in-out infinite alternate;
}
.scn-namur-siege-difficulty .figure-hunched {
  position: absolute; bottom: 18%; left: 35%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #2a2430 0%, #0e0a12 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: si-ns-hunch 8s ease-in-out infinite;
}
.scn-namur-siege-difficulty .candle-glow {
  position: absolute; bottom: 35%; left: 30%; width: 3%; height: 8%;
  background: radial-gradient(circle, #e8b060 0%, #a07838 60%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 10px #a07030, 0 0 60px 20px rgba(160,112,48,.3);
  animation: si-ns-candle 4s ease-in-out infinite alternate;
}
.scn-namur-siege-difficulty .shadow-deep {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, transparent 100%);
  filter: blur(20px); animation: si-ns-shadow 15s ease-in-out infinite;
}
.scn-namur-siege-difficulty .paper-edge {
  position: absolute; bottom: 30%; left: 45%; width: 8%; height: 2%;
  background: #4a4024; border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,.5);
  transform: rotate(12deg); animation: si-ns-paper 10s ease-in-out infinite alternate;
}
@keyframes si-ns-ambient { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes si-ns-map { 0%,100% { transform: perspective(600px) rotateX(20deg) rotateY(-5deg) } 50% { transform: perspective(600px) rotateX(22deg) rotateY(-8deg) translateY(2px) } }
@keyframes si-ns-hunch { 0% { transform: rotate(0deg) } 40% { transform: rotate(-10deg) translateY(4px) } 80% { transform: rotate(6deg) } 100% { transform: rotate(0deg) } }
@keyframes si-ns-candle { 0% { opacity:.7; box-shadow: 0 0 20px 6px #a07030, 0 0 40px 12px rgba(160,112,48,.2) } 50% { opacity:1; box-shadow: 0 0 40px 14px #e8b050, 0 0 70px 24px rgba(232,176,80,.4) } 100% { opacity:.8; box-shadow: 0 0 24px 8px #b08038, 0 0 44px 14px rgba(176,128,56,.3) } }
@keyframes si-ns-shadow { 0% { opacity:.5; transform: translateX(0) } 50% { opacity:.8; transform: translateX(-3px) } 100% { opacity:.6; transform: translateX(2px) } }
@keyframes si-ns-paper { 0% { transform: rotate(12deg) translateY(0) } 100% { transform: rotate(15deg) translateY(-2px) } }

/* map-of-namur */
.scn-map-of-namur {
  background: linear-gradient(180deg, #2a1e16 0%, #3a2a1e 50%, #221810 100%), radial-gradient(ellipse at 60% 40%, #4a3222 0%, transparent 60%);
}
.scn-map-of-namur .desk-warm {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 35%;
  background: linear-gradient(160deg, #5a4234 0%, #3a2a1e 100%);
  border-radius: 8px; box-shadow: 0 10px 20px rgba(0,0,0,.6);
  transform: perspective(800px) rotateX(15deg);
}
.scn-map-of-namur .map-unrolled {
  position: absolute; bottom: 22%; left: 15%; width: 70%; height: 45%;
  background: linear-gradient(135deg, #b8a080 0%, #8a7050 30%, #5a4a34 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.3);
  transform: perspective(600px) rotateX(25deg) rotateY(-3deg);
  animation: si-mn-map 12s ease-in-out infinite alternate;
}
.scn-map-of-namur .hand-pointing {
  position: absolute; bottom: 30%; left: 35%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2e 100%);
  border-radius: 30% 30% 25% 25% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: si-mn-hand 6s ease-in-out infinite;
}
.scn-map-of-namur .lantern-light {
  position: absolute; bottom: 48%; left: 50%; width: 5%; height: 8%;
  background: radial-gradient(circle, #f0d080 0%, #c0a060 60%);
  border-radius: 40%; box-shadow: 0 0 40px 16px #c08840, 0 0 80px 30px rgba(192,136,64,.3);
  animation: si-mn-lantern 5s ease-in-out infinite alternate;
}
.scn-map-of-namur .inkwell {
  position: absolute; bottom: 27%; left: 55%; width: 4%; height: 5%;
  background: #2a1e16; border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.7), inset 0 2px 4px #1a1008;
}
@keyframes si-mn-map { 0%,100% { transform: perspective(600px) rotateX(25deg) rotateY(-3deg) } 50% { transform: perspective(600px) rotateX(28deg) rotateY(-6deg) translateY(2px) } }
@keyframes si-mn-hand { 0% { transform: rotate(0deg) } 30% { transform: rotate(-12deg) translateX(-6px) translateY(2px) } 60% { transform: rotate(8deg) translateX(4px) } 100% { transform: rotate(0deg) } }
@keyframes si-mn-lantern { 0% { opacity:.8; box-shadow: 0 0 30px 10px #b08038, 0 0 60px 20px rgba(176,128,56,.2) } 50% { opacity:1; box-shadow: 0 0 50px 20px #f0c860, 0 0 90px 35px rgba(240,200,96,.35) } 100% { opacity:.85; box-shadow: 0 0 36px 12px #c89040, 0 0 65px 22px rgba(200,144,64,.25) } }

/* critick-defense */
.scn-critick-defense {
  background: linear-gradient(180deg, #2a2420 0%, #3a322c 50%, #1e1a16 100%), radial-gradient(ellipse at 50% 50%, #4a4038 0%, transparent 70%);
}
.scn-critick-defense .stage-back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a322c 0%, #1e1a16 100%);
  animation: si-cd-stage 18s ease-in-out infinite alternate;
}
.scn-critick-defense .author-figure {
  position: absolute; bottom: 25%; left: 20%; width: 22%; height: 55%;
  background: linear-gradient(180deg, #4a3e36 0%, #2a201c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: si-cd-author 4s ease-in-out infinite;
}
.scn-critick-defense .critick-figure {
  position: absolute; bottom: 25%; right: 20%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #3a342e 0%, #1e1a16 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: si-cd-critick 5s ease-in-out infinite;
}
.scn-critick-defense .lectern {
  position: absolute; bottom: 22%; left: 38%; width: 24%; height: 18%;
  background: linear-gradient(160deg, #5a4a3e 0%, #3a2e26 100%);
  border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,.5);
  transform: perspective(600px) rotateX(10deg);
}
.scn-critick-defense .papers-fly {
  position: absolute; bottom: 40%; left: 30%; width: 8%; height: 6%;
  background: #c8b898; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: si-cd-papers 8s ease-in-out infinite;
}
.scn-critick-defense .spotlight-bounce {
  position: absolute; bottom: 35%; left: 25%; width: 50%; height: 40%;
  background: radial-gradient(ellipse at 30% 50%, rgba(255,235,180,.15) 0%, transparent 70%);
  filter: blur(30px); animation: si-cd-spotlight 6s ease-in-out infinite alternate;
}
@keyframes si-cd-stage { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes si-cd-author { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(-6deg) translateX(-3px) } 75% { transform: rotate(8deg) translateX(5px) } }
@keyframes si-cd-critick { 0% { transform: rotate(0deg) } 30% { transform: rotate(10deg) translateX(4px) } 70% { transform: rotate(-8deg) translateX(-3px) } 100% { transform: rotate(0deg) } }
@keyframes si-cd-papers { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-12px) rotate(15deg) scale(1.1) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes si-cd-spotlight { 0% { opacity:.4; transform: translateX(-10%) } 50% { opacity:.8; transform: translateX(8%) } 100% { opacity:.5; transform: translateX(-5%) } }

.scn-parson-resolution {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 30% 80%, #5a3a1a 0%, transparent 60%);
}
.scn-parson-resolution .pr-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  animation: pr-wall 20s ease-in-out infinite alternate;
}
.scn-parson-resolution .pr-floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
}
.scn-parson-resolution .pr-desk {
  position: absolute; bottom:22%; left:35%; width:30%; height:18%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: pr-desk 6s ease-in-out infinite;
}
.scn-parson-resolution .pr-figure {
  position: absolute; bottom:20%; left:50%; width:12%; height:40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%); animation: pr-figure 4s ease-in-out infinite;
}
.scn-parson-resolution .pr-paper {
  position: absolute; bottom:28%; left:42%; width:14%; height:10%;
  background: linear-gradient(135deg, #d0c8a0 0%, #c0b890 100%);
  border-radius: 2px; transform: rotate(-5deg); animation: pr-paper 3s ease-in-out infinite alternate;
}
.scn-parson-resolution .pr-window {
  position: absolute; top:10%; right:15%; width:25%; height:50%;
  background: radial-gradient(ellipse at 50% 50%, #7a6a4a 0%, #2a1a0a 60%);
  border-radius: 8px; border: 4px solid #4a3a2a; overflow: hidden;
}
.scn-parson-resolution .pr-horse {
  position: absolute; top:55%; right:20%; width:15%; height:25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: pr-horse 8s ease-in-out infinite;
}
.scn-parson-resolution .pr-candle {
  position: absolute; bottom:30%; left:38%; width:2%; height:8%;
  background: linear-gradient(180deg, #c08040 0%, #8a6020 100%);
  border-radius: 2px; box-shadow: 0 0 20px 8px #c08040;
  animation: pr-candle 3s ease-in-out infinite alternate;
}
@keyframes pr-wall { 0%{ opacity:.8 } 50%{ opacity:1 } 100%{ opacity:.7 } }
@keyframes pr-desk { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } }
@keyframes pr-figure { 0%{ transform: translateX(-50%) translateY(0) rotate(-1deg) } 50%{ transform: translateX(-48%) translateY(-3px) rotate(1deg) } 100%{ transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes pr-paper { 0%{ transform: rotate(-5deg) translateY(0) } 100%{ transform: rotate(-2deg) translateY(-2px) } }
@keyframes pr-horse { 0%{ transform: scaleX(1) } 50%{ transform: scaleX(-1) } 100%{ transform: scaleX(1) } }
@keyframes pr-candle { 0%{ box-shadow: 0 0 15px 4px #c08040 } 50%{ box-shadow: 0 0 30px 10px #e09050 } 100%{ box-shadow: 0 0 18px 5px #c08040 } }

.scn-parson-fate {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #3a2a2a 100%),
              radial-gradient(ellipse at 20% 60%, #4a2a1a 0%, transparent 70%);
}
.scn-parson-fate .pf-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  animation: pf-wall 15s ease-in-out infinite alternate;
}
.scn-parson-fate .pf-bookshelf {
  position: absolute; bottom:20%; left:5%; width:20%; height:60%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a2a 50%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-parson-fate .pf-figure {
  position: absolute; bottom:15%; left:35%; width:14%; height:50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pf-figure 5s ease-in-out infinite;
}
.scn-parson-fate .pf-book {
  position: absolute; bottom:20%; left:38%; width:10%; height:14%;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px; transform: rotate(10deg);
  animation: pf-book 4s ease-in-out infinite alternate;
}
.scn-parson-fate .pf-candle {
  position: absolute; bottom:32%; left:30%; width:2%; height:10%;
  background: linear-gradient(180deg, #c08040 0%, #8a6020 100%);
  border-radius: 2px;
}
.scn-parson-fate .pf-flame {
  position: absolute; bottom:40%; left:30%; width:2.5%; height:5%;
  background: radial-gradient(circle, #ffd060 0%, #c08040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #c08040;
  animation: pf-flame 2s ease-in-out infinite alternate;
}
@keyframes pf-wall { 0%{ opacity:.7 } 50%{ opacity:1 } 100%{ opacity:.6 } }
@keyframes pf-figure { 0%{ transform: translateX(0) rotate(0) } 50%{ transform: translateX(5px) rotate(2deg) } 100%{ transform: translateX(0) rotate(0) } }
@keyframes pf-book { 0%{ transform: rotate(10deg) translateY(0) } 100%{ transform: rotate(12deg) translateY(-3px) } }
@keyframes pf-flame { 0%{ transform: scaleY(1); opacity:.8 } 50%{ transform: scaleY(1.2); opacity:1 } 100%{ transform: scaleY(.9); opacity:.9 } }

.scn-yorick-name {
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%),
              radial-gradient(ellipse at 70% 30%, #c0b080 0%, transparent 60%);
}
.scn-yorick-name .yn-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
}
.scn-yorick-name .yn-window {
  position: absolute; top:10%; left:10%; width:30%; height:50%;
  background: radial-gradient(ellipse at 50% 50%, #e0d8c0 0%, #a09070 60%);
  border: 6px solid #4a3a1a; border-radius: 8px;
  animation: yn-window 10s ease-in-out infinite alternate;
}
.scn-yorick-name .yn-desk {
  position: absolute; bottom:20%; left:20%; width:60%; height:20%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.6);
}
.scn-yorick-name .yn-vellum {
  position: absolute; bottom:28%; left:35%; width:25%; height:15%;
  background: linear-gradient(135deg, #d0c8a0 0%, #c0b890 100%);
  border-radius: 2px; transform: rotate(-3deg);
  animation: yn-vellum 8s ease-in-out infinite alternate;
}
.scn-yorick-name .yn-inkwell {
  position: absolute; bottom:25%; left:55%; width:5%; height:8%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 50% 50%;
}
.scn-yorick-name .yn-quill {
  position: absolute; bottom:32%; left:56%; width:2%; height:20%;
  background: linear-gradient(180deg, #c0b890 0%, #8a7a5a 100%);
  border-radius: 0 0 50% 50%; transform: rotate(-30deg);
  animation: yn-quill 3s ease-in-out infinite;
}
.scn-yorick-name .yn-hand {
  position: absolute; bottom:28%; left:40%; width:8%; height:10%;
  background: linear-gradient(180deg, #a08868 0%, #7a6040 100%);
  border-radius: 50% 50% 40% 40%;
  animation: yn-hand 4s ease-in-out infinite alternate;
}
@keyframes yn-window { 0%{ opacity:.8 } 50%{ opacity:1 } 100%{ opacity:.7 } }
@keyframes yn-vellum { 0%{ transform: rotate(-3deg) translateY(0) } 100%{ transform: rotate(0deg) translateY(-4px) } }
@keyframes yn-quill { 0%{ transform: rotate(-30deg) translateY(0) } 50%{ transform: rotate(-20deg) translateY(-5px) } 100%{ transform: rotate(-30deg) translateY(0) } }
@keyframes yn-hand { 0%{ transform: translateX(0) rotate(0) } 100%{ transform: translateX(8px) rotate(3deg) } }

.scn-yorick-descent {
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 30%, #8a7a5a 0%, transparent 70%);
}
.scn-yorick-descent .yd-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 50%, #4a3a2a 100%);
}
.scn-yorick-descent .yd-window {
  position: absolute; top:5%; right:15%; width:20%; height:40%;
  background: radial-gradient(ellipse at 50% 50%, #d0c8b0 0%, #a09870 60%);
  border: 4px solid #3a2a1a; border-radius: 6px;
  animation: yd-window 12s ease-in-out infinite alternate;
}
.scn-yorick-descent .yd-table {
  position: absolute; bottom:15%; left:10%; width:80%; height:15%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-yorick-descent .yd-scrolls {
  position: absolute; bottom:20%; left:20%; width:8%; height:18%;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  border-radius: 20% 20% 0 0; transform: rotate(10deg);
  box-shadow: 4px 4px 8px rgba(0,0,0,.4);
  animation: yd-scrolls 6s ease-in-out infinite alternate;
}
.scn-yorick-descent .yd-tree {
  position: absolute; bottom:30%; left:40%; width:20%; height:40%;
  background: 
    linear-gradient(180deg, #5a4a2a 0%, transparent 100%),
    radial-gradient(ellipse at 50% 0%, #7a6a4a 0%, transparent 60%);
  border-radius: 50% 50% 0 0;
  animation: yd-tree 30s linear infinite;
}
.scn-yorick-descent .yd-figure {
  position: absolute; bottom:12%; left:60%; width:12%; height:35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: yd-figure 5s ease-in-out infinite;
}
.scn-yorick-descent .yd-dust {
  position: absolute; top:20%; left:30%; width:4%; height:4%;
  background: radial-gradient(circle, rgba(200,180,140,.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(3px);
  animation: yd-dust 15s linear infinite;
}
@keyframes yd-window { 0%{ opacity:.7 } 50%{ opacity:1 } 100%{ opacity:.6 } }
@keyframes yd-scrolls { 0%{ transform: rotate(10deg) translateY(0) } 100%{ transform: rotate(15deg) translateY(-3px) } }
@keyframes yd-tree { 0%{ opacity:.5 } 50%{ opacity:.8 } 100%{ opacity:.5 } }
@keyframes yd-figure { 0%{ transform: translateY(0) rotate(0) } 50%{ transform: translateY(-4px) rotate(2deg) } 100%{ transform: translateY(0) rotate(0) } }
@keyframes yd-dust { 0%{ transform: translate(0,0); opacity:0 } 20%{ opacity:1 } 80%{ opacity:1 } 100%{ transform: translate(60px,-40px); opacity:0 } }

/* father-piqued-smoke-jack */
.scn-father-piqued-smoke-jack {
  background: linear-gradient(180deg, #3a2010 0%, #2a1810 40%, #1a0e08 100%),
              radial-gradient(ellipse at 30% 90%, #c06020 0%, transparent 60%);
}
.scn-father-piqued-smoke-jack .room-bg {
  position:absolute; inset: 0;
  background: linear-gradient(180deg, #4a3020 0%, #1a0e08 100%);
  opacity: 0.6;
}
.scn-father-piqued-smoke-jack .fireplace {
  position:absolute; bottom: 20%; left: 10%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 50%, #2a1810 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 30px #1a0e08;
}
.scn-father-piqued-smoke-jack .fire-glow {
  position:absolute; bottom: 25%; left: 15%; width: 20%; height: 20%;
  background: radial-gradient(circle, #ff8030 0%, #c05010 40%, transparent 70%);
  animation: fp-glow 2s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 20px #c05010;
}
.scn-father-piqued-smoke-jack .father {
  position:absolute; bottom: 18%; right: 15%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: fp-father 8s ease-in-out infinite;
}
.scn-father-piqued-smoke-jack .smoke-jack {
  position:absolute; bottom: 35%; left: 25%; width: 12%; height: 18%;
  background: linear-gradient(90deg, #6a5040 0%, #3a2a20 100%);
  border-radius: 40%;
  animation: fp-jack 6s linear infinite;
}
.scn-father-piqued-smoke-jack .jack-puff {
  position:absolute; bottom: 45%; left: 28%; width: 8%; height: 8%;
  background: radial-gradient(circle, #c0a080 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(3px);
  animation: fp-puff 12s linear infinite;
}
.scn-father-piqued-smoke-jack .shadow {
  position:absolute; bottom: 10%; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(180deg, transparent 0%, #0a0604 100%);
  opacity: 0.7;
}
@keyframes fp-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes fp-father { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes fp-jack { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.05); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes fp-puff { 0% { transform: translateX(0) translateY(0) scale(1); opacity:0.8; } 25% { transform: translateX(10px) translateY(-15px) scale(1.5); opacity:0.4; } 50% { transform: translateX(20px) translateY(-30px) scale(2); opacity:0.1; } 75% { transform: translateX(30px) translateY(-20px) scale(1.2); opacity:0.3; } 100% { transform: translateX(40px) translateY(0) scale(0.5); opacity:0; } }

/* all-asleep */
.scn-all-asleep {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 40%, #0e0e1e 100%),
              radial-gradient(ellipse at 80% 50%, #3a3a5a 0%, transparent 60%);
}
.scn-all-asleep .room-bg {
  position:absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%);
}
.scn-all-asleep .window-light {
  position:absolute; top: 5%; left: 70%; width: 18%; height: 25%;
  background: radial-gradient(circle, #40406a 0%, transparent 70%);
  box-shadow: 0 0 30px 10px #30305a;
  animation: aa-window 12s ease-in-out infinite alternate;
}
.scn-all-asleep .uncle-toby {
  position:absolute; bottom: 15%; left: 10%; width: 22%; height: 40%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: aa-sleep 8s ease-in-out infinite;
}
.scn-all-asleep .trim {
  position:absolute; bottom: 12%; right: 15%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 20% 20%;
  transform-origin: bottom center;
  animation: aa-work 6s ease-in-out infinite;
}
.scn-all-asleep .jack-boots {
  position:absolute; bottom: 8%; right: 25%; width: 10%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20%;
  animation: aa-boots 10s ease-in-out infinite;
}
.scn-all-asleep .shadow {
  position:absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, #080812 100%);
}
@keyframes aa-window { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes aa-sleep { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(0.98) translateY(1px); } }
@keyframes aa-work { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes aa-boots { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(10deg) translateX(-5px); } 100% { transform: rotate(0deg) translateX(0); } }

/* authors-preface-intro */
.scn-authors-preface-intro {
  background: linear-gradient(180deg, #f5e8d8 0%, #e0d0b0 40%, #d0b898 100%),
              radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 70%);
}
.scn-authors-preface-intro .desk {
  position:absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8a878 0%, #a88858 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px #8a6848;
}
.scn-authors-preface-intro .book {
  position:absolute; bottom: 25%; left: 30%; width: 25%; height: 30%;
  background: linear-gradient(135deg, #c0a060 0%, #a08040 50%, #806030 100%);
  border-radius: 5% 5% 30% 30% / 5% 5% 40% 40%;
  box-shadow: 4px 4px 12px #6a5020;
  animation: ap-book 20s ease-in-out infinite;
}
.scn-authors-preface-intro .quill {
  position:absolute; bottom: 20%; left: 45%; width: 4%; height: 35%;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a060 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: ap-quill 3s ease-in-out infinite alternate;
}
.scn-authors-preface-intro .candle {
  position:absolute; bottom: 35%; left: 12%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c090 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
}
.scn-authors-preface-intro .candle-glow {
  position:absolute; bottom: 38%; left: 10%; width: 15%; height: 20%;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 30%, transparent 60%);
  animation: ap-glow 4s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 10px #e0a040;
}
.scn-authors-preface-intro .hand {
  position:absolute; bottom: 30%; left: 42%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #d0b898 0%, #b89878 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ap-hand 2s ease-in-out infinite alternate;
}
@keyframes ap-book { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes ap-quill { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes ap-glow { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.9; transform: scale(0.95); } }
@keyframes ap-hand { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(0deg) translateX(2px); } 100% { transform: rotate(-8deg) translateX(0); } }

/* wit-and-judgment-debate */
.scn-wit-and-judgment-debate {
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 30%, #c8a878 60%),
              radial-gradient(ellipse at 50% 40%, #fff0d0 0%, transparent 50%);
}
.scn-wit-and-judgment-debate .table {
  position:absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a88858 0%, #886840 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px #6a5020;
}
.scn-wit-and-judgment-debate .figure-a {
  position:absolute; bottom: 20%; left: 15%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wj-fig-a 8s ease-in-out infinite;
}
.scn-wit-and-judgment-debate .figure-b {
  position:absolute; bottom: 20%; left: 40%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wj-fig-b 10s ease-in-out infinite;
}
.scn-wit-and-judgment-debate .figure-c {
  position:absolute; bottom: 20%; left: 65%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wj-fig-c 12s ease-in-out infinite;
}
.scn-wit-and-judgment-debate .documents {
  position:absolute; bottom: 22%; left: 30%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #f0d8b0 0%, #d0b090 100%);
  border-radius: 5%;
  opacity: 0.8;
  animation: wj-docs 15s ease-in-out infinite;
}
.scn-wit-and-judgment-debate .lamp {
  position:absolute; bottom: 40%; left: 48%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 0 20px 5px #c0a060;
  animation: wj-lamp 6s ease-in-out infinite alternate;
}
.scn-wit-and-judgment-debate .lamp-glow {
  position:absolute; bottom: 40%; left: 44%; width: 16%; height: 25%;
  background: radial-gradient(circle, #ffe8a0 0%, #d0a040 30%, transparent 60%);
  animation: wj-lampglow 4s ease-in-out infinite alternate;
}
@keyframes wj-fig-a { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-5px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes wj-fig-b { 0% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-4deg) translateY(3px); } 100% { transform: rotate(3deg) translateY(-1px); } }
@keyframes wj-fig-c { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-8px); } 100% { transform: rotate(-1deg) translateY(2px); } }
@keyframes wj-docs { 0% { transform: translateX(0); opacity:0.8; } 50% { transform: translateX(3px) scale(1.02); opacity:0.95; } 100% { transform: translateX(-2px); opacity:0.8; } }
@keyframes wj-lamp { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.98); } }
@keyframes wj-lampglow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

.scn-uncle-toby-character-hint {
  background: linear-gradient(180deg, #3a2818 0%, #5a3820 30%, #4a2a14 100%),
              radial-gradient(ellipse at 50% 80%, #c87a30 0%, transparent 60%);
}
.scn-uncle-toby-character-hint .rt-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #3a2818 0%, #2a1a0e 100%);
  animation: utc-wall 20s ease-in-out infinite alternate;
}
.scn-uncle-toby-character-hint .rt-fireplace {
  position:absolute; bottom:20%; left:10%; width:35%; height:45%;
  background: linear-gradient(180deg, #6a4030 0%, #3a2010 100%);
  border-radius: 4% 4% 2% 2% / 8% 8% 4% 4%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.7), 0 8px 16px rgba(0,0,0,0.5);
}
.scn-uncle-toby-character-hint .rt-flame {
  position:absolute; bottom:15%; left:20%; width:12%; height:25%;
  background: radial-gradient(ellipse 60% 70% at 50% 100%, #ffa040 0%, #c06020 50%, #802800 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 40px 10px #d07030, 0 0 80px 20px rgba(208,112,48,0.4);
  animation: utc-flame 3s ease-in-out infinite alternate;
}
.scn-uncle-toby-character-hint .rt-toby {
  position:absolute; bottom:22%; right:12%; width:14%; height:28%;
  background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(8deg);
  animation: utc-toby 6s ease-in-out infinite;
}
.scn-uncle-toby-character-hint .rt-pipe {
  position:absolute; bottom:30%; right:20%; width:22%; height:4%;
  background: linear-gradient(90deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: left center;
  animation: utc-pipe 4s ease-in-out infinite alternate;
}
.scn-uncle-toby-character-hint .rt-smoke {
  position:absolute; bottom:45%; right:18%; width:12%; height:8%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.6) 0%, rgba(200,180,160,0) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: utc-smoke 8s linear infinite;
}
@keyframes utc-wall {
  0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 }
}
@keyframes utc-flame {
  0% { transform: scaleY(1) scaleX(1) translateY(0); opacity:0.9 }
  50% { transform: scaleY(1.2) scaleX(0.9) translateY(-5%); opacity:1 }
  100% { transform: scaleY(0.95) scaleX(1.05) translateY(2%); opacity:0.85 }
}
@keyframes utc-toby {
  0% { transform: rotate(8deg) translateY(0) }
  25% { transform: rotate(6deg) translateY(-2%) }
  50% { transform: rotate(10deg) translateY(0) }
  75% { transform: rotate(7deg) translateY(-1%) }
  100% { transform: rotate(8deg) translateY(0) }
}
@keyframes utc-pipe {
  0% { transform: rotate(-30deg) translateX(0) }
  50% { transform: rotate(-26deg) translateX(2%) }
  100% { transform: rotate(-32deg) translateX(-1%) }
}
@keyframes utc-smoke {
  0% { transform: translate(0, 0) scale(1); opacity:0.6 }
  25% { transform: translate(10%, -10%) scale(1.2); opacity:0.4 }
  50% { transform: translate(20%, -20%) scale(1.5); opacity:0.3 }
  75% { transform: translate(30%, -25%) scale(1.8); opacity:0.2 }
  100% { transform: translate(40%, -30%) scale(2); opacity:0 }
}

.scn-climate-character-theory {
  background: linear-gradient(180deg, #4a2a14 0%, #6a3820 40%, #3a1808 100%),
              radial-gradient(ellipse at 40% 70%, #d07030 0%, transparent 50%);
}
.scn-climate-character-theory .cct-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a1810 0%, #1a0e06 100%);
  animation: cct-bg 20s ease-in-out infinite alternate;
}
.scn-climate-character-theory .cct-fire {
  position:absolute; bottom:10%; left:15%; width:18%; height:30%;
  background: radial-gradient(ellipse 60% 70% at 50% 100%, #ffb040 0%, #c06020 50%, #802000 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 50px 15px #d07030, 0 0 100px 30px rgba(208,112,48,0.4);
  animation: cct-fire 2.5s ease-in-out infinite alternate;
}
.scn-climate-character-theory .cct-figure {
  position:absolute; bottom:18%; right:20%; width:15%; height:30%;
  background: linear-gradient(180deg, #1a1a12 0%, #0a0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: cct-figure 8s ease-in-out infinite;
}
.scn-climate-character-theory .cct-thermometer {
  position:absolute; bottom:30%; left:45%; width:8%; height:40%;
  background: linear-gradient(180deg, #c0b8a8 0%, #8a8070 100%);
  border-radius: 40% 40% 10% 10% / 20% 20% 10% 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
}
.scn-climate-character-theory .cct-mercury {
  position:absolute; bottom:30%; left:47%; width:4%; height:35%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: cct-mercury 12s ease-in-out infinite alternate;
}
.scn-climate-character-theory .cct-spark {
  position:absolute; width:6%; height:6%;
  background: radial-gradient(circle, #ffc060 0%, rgba(255,192,96,0) 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-climate-character-theory .cct-spark.a {
  top:25%; left:30%;
  animation: cct-spark 3s ease-in-out infinite;
}
.scn-climate-character-theory .cct-spark.b {
  top:35%; left:28%;
  animation: cct-spark 3s ease-in-out 1.5s infinite;
}
@keyframes cct-bg {
  0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 }
}
@keyframes cct-fire {
  0% { transform: scaleY(1) scaleX(1) translateY(0); opacity:0.9 }
  50% { transform: scaleY(1.3) scaleX(0.9) translateY(-8%); opacity:1 }
  100% { transform: scaleY(0.85) scaleX(1.1) translateY(3%); opacity:0.8 }
}
@keyframes cct-figure {
  0% { transform: rotate(-5deg) translateY(0) }
  25% { transform: rotate(-3deg) translateY(-2%) }
  50% { transform: rotate(-6deg) translateY(0) }
  75% { transform: rotate(-4deg) translateY(-1%) }
  100% { transform: rotate(-5deg) translateY(0) }
}
@keyframes cct-mercury {
  0% { height:35%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); }
  50% { height:45%; background: linear-gradient(180deg, #d07050 0%, #b05828 100%); }
  100% { height:30%; background: linear-gradient(180deg, #a04830 0%, #803818 100%); }
}
@keyframes cct-spark {
  0% { transform: translate(0, 0) scale(0.5); opacity:0; }
  50% { transform: translate(-10%, -20%) scale(1.2); opacity:1; }
  100% { transform: translate(-20%, -40%) scale(0.3); opacity:0; }
}

.scn-aunt-dinah-affair {
  background: linear-gradient(180deg, #3a2818 0%, #5a3820 30%, #2a1808 100%),
              radial-gradient(ellipse at 60% 80%, #d08030 0%, transparent 50%);
}
.scn-aunt-dinah-affair .ada-room {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  animation: ada-room 15s ease-in-out infinite alternate;
}
.scn-aunt-dinah-affair .ada-door {
  position:absolute; left:30%; bottom:20%; width:25%; height:60%;
  background: linear-gradient(90deg, #5a3a20 0%, #4a2a18 100%);
  border-radius: 4% 4% 2% 2% / 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7), 4px 0 10px rgba(0,0,0,0.5);
}
.scn-aunt-dinah-affair .ada-lightbeam {
  position:absolute; left:35%; bottom:20%; width:15%; height:50%;
  background: linear-gradient(0deg, rgba(255,200,120,0.4) 0%, rgba(255,200,120,0) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ada-beam 6s ease-in-out infinite alternate;
}
.scn-aunt-dinah-affair .ada-figure {
  position:absolute; left:38%; bottom:22%; width:12%; height:28%;
  background: linear-gradient(180deg, #1a1a12 0%, #0a0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: ada-figure 4s ease-in-out infinite;
}
.scn-aunt-dinah-affair .ada-fireplace {
  position:absolute; right:10%; bottom:15%; width:30%; height:45%;
  background: linear-gradient(180deg, #6a4030 0%, #3a2010 100%);
  border-radius: 4% 4% 2% 2% / 8% 8% 4% 4%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.7);
}
.scn-aunt-dinah-affair .ada-glow {
  position:absolute; right:18%; bottom:20%; width:14%; height:25%;
  background: radial-gradient(ellipse 60% 70% at 50% 100%, #ffa040 0%, #c06020 50%, transparent 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 40px 15px #d07030, 0 0 80px 30px rgba(208,112,48,0.3);
  animation: ada-glow 3s ease-in-out infinite alternate;
}
@keyframes ada-room {
  0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 }
}
@keyframes ada-beam {
  0% { opacity:0.4; transform: scaleX(1) }
  50% { opacity:0.7; transform: scaleX(1.1) }
  100% { opacity:0.3; transform: scaleX(0.95) }
}
@keyframes ada-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg) }
  25% { transform: translateX(5%) translateY(-1%) rotate(1deg) }
  50% { transform: translateX(10%) translateY(0) rotate(-2deg) }
  75% { transform: translateX(5%) translateY(-1%) rotate(1deg) }
  100% { transform: translateX(0) translateY(0) rotate(-2deg) }
}
@keyframes ada-glow {
  0% { transform: scaleY(1) scaleX(1) translateY(0); opacity:0.85 }
  50% { transform: scaleY(1.15) scaleX(0.9) translateY(-5%); opacity:1 }
  100% { transform: scaleY(0.9) scaleX(1.05) translateY(2%); opacity:0.7 }
}

.scn-uncle-toby-modesty {
  background: linear-gradient(180deg, #3a2818 0%, #5a3820 30%, #2a1808 100%),
              radial-gradient(ellipse at 50% 80%, #c87a30 0%, transparent 50%);
}
.scn-uncle-toby-modesty .utm-wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  animation: utm-wall 20s ease-in-out infinite alternate;
}
.scn-uncle-toby-modesty .utm-fire {
  position:absolute; bottom:10%; left:20%; width:15%; height:30%;
  background: radial-gradient(ellipse 60% 70% at 50% 100%, #ffb040 0%, #c06020 50%, #802000 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 50px 15px #d07030, 0 0 100px 30px rgba(208,112,48,0.4);
  animation: utm-fire 3s ease-in-out infinite alternate;
}
.scn-uncle-toby-modesty .utm-father {
  position:absolute; bottom:20%; right:25%; width:14%; height:28%;
  background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: utm-father 7s ease-in-out infinite;
}
.scn-uncle-toby-modesty .utm-toby {
  position:absolute; bottom:20%; left:30%; width:14%; height:28%;
  background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-4deg);
  animation: utm-toby 7s ease-in-out 0.5s infinite;
}
.scn-uncle-toby-modesty .utm-pipe {
  position:absolute; bottom:28%; left:38%; width:15%; height:3%;
  background: linear-gradient(90deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: right center;
  animation: utm-pipe 5s ease-in-out infinite alternate;
}
.scn-uncle-toby-modesty .utm-shadow {
  position:absolute; bottom:10%; left:10%; width:80%; height:10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: utm-shadow 10s ease-in-out infinite alternate;
}
.scn-uncle-toby-modesty .utm-ember {
  position:absolute; bottom:25%; left:18%; width:4%; height:4%;
  background: radial-gradient(circle, #ffa040 0%, rgba(255,160,64,0) 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: utm-ember 4s ease-in-out infinite;
}
@keyframes utm-wall {
  0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 }
}
@keyframes utm-fire {
  0% { transform: scaleY(1) scaleX(1) translateY(0); opacity:0.9 }
  50% { transform: scaleY(1.2) scaleX(0.9) translateY(-6%); opacity:1 }
  100% { transform: scaleY(0.85) scaleX(1.1) translateY(3%); opacity:0.8 }
}
@keyframes utm-father {
  0% { transform: rotate(5deg) translateY(0) }
  25% { transform: rotate(3deg) translateY(-2%) }
  50% { transform: rotate(6deg) translateY(0) }
  75% { transform: rotate(4deg) translateY(-1%) }
  100% { transform: rotate(5deg) translateY(0) }
}
@keyframes utm-toby {
  0% { transform: rotate(-4deg) translateY(0) }
  25% { transform: rotate(-2deg) translateY(-2%) }
  50% { transform: rotate(-5deg) translateY(0) }
  75% { transform: rotate(-3deg) translateY(-1%) }
  100% { transform: rotate(-4deg) translateY(0) }
}
@keyframes utm-pipe {
  0% { transform: rotate(-20deg) translateX(0) }
  50% { transform: rotate(-16deg) translateX(2%) }
  100% { transform: rotate(-22deg) translateX(-1%) }
}
@keyframes utm-shadow {
  0% { opacity:0.5; transform: scaleX(1) }
  50% { opacity:0.8; transform: scaleX(1.1) }
  100% { opacity:0.4; transform: scaleX(0.95) }
}
@keyframes utm-ember {
  0% { transform: translate(0, 0) scale(0.8); opacity:0.6 }
  50% { transform: translate(10%, -15%) scale(1.2); opacity:1 }
  100% { transform: translate(20%, -30%) scale(0.5); opacity:0 }
}

/* Scene: true-philosophy-whistling */
.scn-true-philosophy-whistling { background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%), radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 70%); }
.scn-true-philosophy-whistling .tpw-back { position:absolute; inset:0; background: linear-gradient(180deg, #3a2518 0%, #1a1008 100%); }
.scn-true-philosophy-whistling .tpw-wall { position:absolute; bottom:55%; left:10%; right:10%; height:45%; background: linear-gradient(135deg, #6a4a2a 0%, #4a3515 100%); border-radius:20% 20% 0 0; }
.scn-true-philosophy-whistling .tpw-chair { position:absolute; bottom:20%; left:20%; width:80px; height:60px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius:30% 30% 10% 10%; transform:rotate(2deg); }
.scn-true-philosophy-whistling .tpw-figure { position:absolute; bottom:28%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a0e 0%, #0a0a05 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: tpw-whistle 1.5s ease-in-out infinite; }
.scn-true-philosophy-whistling .tpw-note1 { position:absolute; bottom:60%; left:40%; width:12px; height:16px; background: radial-gradient(circle, #c8a050 0%, #8a6a30 100%); border-radius:50% 50% 0 50%; transform:rotate(-20deg); animation: tpw-float1 2s ease-in-out infinite; }
.scn-true-philosophy-whistling .tpw-note2 { position:absolute; bottom:65%; left:50%; width:10px; height:14px; background: radial-gradient(circle, #c8a050 0%, #8a6a30 100%); border-radius:50% 50% 0 50%; transform:rotate(10deg); animation: tpw-float2 2.5s ease-in-out infinite 0.3s; }
.scn-true-philosophy-whistling .tpw-lamp { position:absolute; bottom:32%; left:15%; width:14px; height:18px; background: radial-gradient(circle, #f0d080 0%, #c08040 70%); border-radius:50% 50% 20% 20%; box-shadow:0 0 20px 6px #d09040; animation: tpw-glow 3s ease-in-out infinite alternate; }

@keyframes tpw-whistle { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tpw-float1 { 0% { transform: translate(0,0) rotate(-20deg) scale(1); opacity:0.8; } 50% { transform: translate(10px,-15px) rotate(-30deg) scale(1.1); opacity:1; } 100% { transform: translate(0,0) rotate(-20deg) scale(1); opacity:0.8; } }
@keyframes tpw-float2 { 0% { transform: translate(0,0) rotate(10deg) scale(1); opacity:0.7; } 50% { transform: translate(-8px,-20px) rotate(20deg) scale(1.2); opacity:1; } 100% { transform: translate(0,0) rotate(10deg) scale(1); opacity:0.7; } }
@keyframes tpw-glow { 0% { opacity:0.6; box-shadow:0 0 10px 3px #d09040; } 50% { opacity:1; box-shadow:0 0 30px 8px #f0b060; } 100% { opacity:0.8; box-shadow:0 0 15px 5px #d09040; } }

/* Scene: asterisks-transition */
.scn-asterisks-transition { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 80%); }
.scn-asterisks-transition .at-void { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #151530 100%); }
.scn-asterisks-transition .at-cluster1 { position:absolute; top:10%; left:30%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,200,255,0.2) 0%, transparent 70%); filter:blur(3px); animation: at-fall1 10s linear infinite; }
.scn-asterisks-transition .at-cluster2 { position:absolute; top:20%; left:60%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,200,255,0.15) 0%, transparent 80%); filter:blur(2px); animation: at-fall2 12s linear infinite 2s; }
.scn-asterisks-transition .at-cluster3 { position:absolute; top:5%; left:50%; width:100px; height:100px; background: radial-gradient(circle, rgba(200,200,255,0.1) 0%, transparent 70%); filter:blur(4px); animation: at-fall3 15s linear infinite 1s; }
.scn-asterisks-transition .at-spark { position:absolute; top:40%; left:45%; width:8px; height:8px; background: radial-gradient(circle, #c0d0ff 0%, #8090d0 100%); border-radius:50%; box-shadow:0 0 12px 4px #a0b0e0; animation: at-pulse 2s ease-in-out infinite; }
.scn-asterisks-transition .at-glint { position:absolute; top:70%; left:30%; width:6px; height:6px; background: radial-gradient(circle, #d0e0ff 0%, #a0b0f0 100%); border-radius:50%; box-shadow:0 0 10px 3px #b0c0e0; animation: at-pulse 3s ease-in-out infinite 0.5s; }

@keyframes at-fall1 { 0% { transform: translateY(-100%) rotate(20deg); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translateY(120vh) rotate(180deg); opacity:0; } }
@keyframes at-fall2 { 0% { transform: translateY(-100%) rotate(-30deg); opacity:0; } 10% { opacity:0.8; } 90% { opacity:0.8; } 100% { transform: translateY(120vh) rotate(90deg); opacity:0; } }
@keyframes at-fall3 { 0% { transform: translateY(-100%) rotate(10deg); opacity:0; } 10% { opacity:0.6; } 90% { opacity:0.6; } 100% { transform: translateY(120vh) rotate(200deg); opacity:0; } }
@keyframes at-pulse { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.5); opacity:1; } 100% { transform: scale(1); opacity:0.7; } }

/* Scene: wadman-invited-to-see-place */
.scn-wadman-invited-to-see-place { background: linear-gradient(180deg, #2a2028 0%, #1a1218 50%, #0a080a 100%), radial-gradient(ellipse at 50% 60%, #3a2830 0%, transparent 70%); }
.scn-wadman-invited-to-see-place .wm-back { position:absolute; inset:0; background: linear-gradient(180deg, #1c1418 0%, #0a0608 100%); }
.scn-wadman-invited-to-see-place .wm-door { position:absolute; right:10%; bottom:20%; width:60px; height:100px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:5% 0 0 5%; box-shadow:-4px 0 8px rgba(0,0,0,0.5); }
.scn-wadman-invited-to-see-place .wm-figure1 { position:absolute; bottom:15%; left:30%; width:50px; height:80px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: wm-tremble 0.5s ease-in-out infinite; }
.scn-wadman-invited-to-see-place .wm-figure2 { position:absolute; bottom:20%; left:55%; width:55px; height:85px; background: linear-gradient(180deg, #2a2020 0%, #0a0808 100%); border-radius:45% 45% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: wm-point 4s ease-in-out infinite; }
.scn-wadman-invited-to-see-place .wm-hand { position:absolute; bottom:35%; left:52%; width:16px; height:20px; background: radial-gradient(circle at 50% 30%, #8a6060 0%, #4a2828 100%); border-radius:50% 50% 30% 30%; transform:rotate(10deg); animation: wm-hand 2s ease-in-out infinite; }
.scn-wadman-invited-to-see-place .wm-blush { position:absolute; bottom:40%; left:32%; width:20px; height:14px; background: radial-gradient(circle, #702243 0%, transparent 100%); border-radius:50%; opacity:0.6; animation: wm-blush 6s ease-in-out infinite; }
.scn-wadman-invited-to-see-place .wm-shadow { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }

@keyframes wm-tremble { 0% { transform: translateX(0); } 25% { transform: translateX(-1px); } 50% { transform: translateX(1px); } 75% { transform: translateX(-1px); } 100% { transform: translateX(0); } }
@keyframes wm-point { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes wm-hand { 0% { transform: rotate(10deg) translate(0,0); } 50% { transform: rotate(20deg) translate(2px,-2px); } 100% { transform: rotate(10deg) translate(0,0); } }
@keyframes wm-blush { 0% { opacity:0.3; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

/* Scene: sent-for-map */
.scn-sent-for-map { background: linear-gradient(180deg, #1a1a24 0%, #0e0e16 50%, #06060a 100%), radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 80%); }
.scn-sent-for-map .sfm-back { position:absolute; inset:0; background: linear-gradient(180deg, #12121a 0%, #08080c 100%); }
.scn-sent-for-map .sfm-sofa { position:absolute; bottom:15%; left:25%; width:100px; height:50px; background: linear-gradient(180deg, #3a3030 0%, #1a1212 100%); border-radius:20% 20% 5% 5%; box-shadow:0 4px 10px rgba(0,0,0,0.6); }
.scn-sent-for-map .sfm-figure { position:absolute; bottom:20%; left:20%; width:45px; height:75px; background: linear-gradient(180deg, #2a2222 0%, #0e0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sfm-rise 6s ease-in-out infinite; }
.scn-sent-for-map .sfm-door { position:absolute; right:15%; bottom:15%; width:55px; height:90px; background: linear-gradient(180deg, #3a3030 0%, #1a1212 100%); border-radius:5% 5% 0 0; box-shadow:-3px 0 6px rgba(0,0,0,0.5); animation: sfm-open 8s ease-in-out infinite; }
.scn-sent-for-map .sfm-map-roll { position:absolute; bottom:18%; left:45%; width:30px; height:10px; background: linear-gradient(180deg, #a08040 0%, #705020 100%); border-radius:50%; transform:rotate(-15deg); animation: sfm-unroll 10s ease-in-out infinite; }
.scn-sent-for-map .sfm-lamp { position:absolute; bottom:30%; left:10%; width:12px; height:16px; background: radial-gradient(circle, #e0b070 0%, #b08040 70%); border-radius:50% 50% 20% 20%; box-shadow:0 0 15px 4px #c09040; animation: sfm-glow 4s ease-in-out infinite alternate; }

@keyframes sfm-rise { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-10px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-5px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sfm-open { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(0.9); transform-origin: right; } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes sfm-unroll { 0% { transform: translateX(0) rotate(-15deg) scaleX(1); } 50% { transform: translateX(10px) rotate(-10deg) scaleX(1.2); } 100% { transform: translateX(0) rotate(-15deg) scaleX(1); } }
@keyframes sfm-glow { 0% { opacity:0.7; box-shadow:0 0 10px 2px #c09040; } 100% { opacity:1; box-shadow:0 0 25px 6px #e0b070; } }

.scn-father-speech { background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 40%, #2a0a00 100%), radial-gradient(ellipse at 50% 30%, #d06030 0%, transparent 70%); }
.scn-father-speech .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius:0 0 10% 10%; }
.scn-father-speech .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-father-speech .hearth { position:absolute; bottom:30%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: #1a0a00; border-radius:40% 40% 0 0 / 60% 60% 0 0; }
.scn-father-speech .fire { position:absolute; bottom:32%; left:50%; width:60px; height:70px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ff8020 0%, #d04010 50%, transparent 100%); border-radius:50%; animation: fs1-fire 2s ease-in-out infinite alternate; }
.scn-father-speech .mantel { position:absolute; bottom:40%; left:50%; width:140px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:2px; box-shadow: 0 2px 8px rgba(0,0,0,.6); }
.scn-father-speech .figure-father { position:absolute; bottom:30%; left:38%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fs1-figure 5s ease-in-out infinite; }
.scn-father-speech .figure-toby { position:absolute; bottom:30%; right:38%; width:28px; height:55px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fs1-figure 5.2s ease-in-out infinite reverse; }
.scn-father-speech .glow-fire { position:absolute; bottom:30%; left:50%; width:180px; height:120px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, rgba(255,128,32,0.4) 0%, transparent 70%); filter: blur(12px); animation: fs1-glow 3s ease-in-out infinite alternate; }
@keyframes fs1-fire { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); opacity:0.9; } 50% { transform: translateX(-50%) scaleY(1.2) rotate(5deg); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-5deg); opacity:0.8; } }
@keyframes fs1-figure { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 30% { transform: translateX(2px) rotate(2deg) scaleY(1.02); } 70% { transform: translateX(-2px) rotate(-2deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes fs1-glow { 0% { opacity:0.5; transform: translateX(-50%) scale(1); } 50% { opacity:0.8; transform: translateX(-50%) scale(1.1); } 100% { opacity:0.6; transform: translateX(-50%) scale(0.95); } }

.scn-dr-slop-swear { background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 40%, #2a0a00 100%), radial-gradient(ellipse at 50% 40%, #d05020 0%, transparent 80%); }
.scn-dr-slop-swear .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius:0 0 15% 15%; }
.scn-dr-slop-swear .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-dr-slop-swear .fireplace { position:absolute; bottom:25%; left:20%; width:80px; height:50px; background: #1a0a00; border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 -5px 10px rgba(0,0,0,.7); }
.scn-dr-slop-swear .figure-slop { position:absolute; bottom:25%; left:45%; width:40px; height:65px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds2-stomp 0.6s ease-in-out infinite alternate; }
.scn-dr-slop-swear .figure-obadiah { position:absolute; bottom:25%; right:30%; width:25px; height:50px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds2-flee 2s ease-in-out infinite; }
.scn-dr-slop-swear .shadow-slop { position:absolute; bottom:25%; left:45%; width:50px; height:15px; transform:translateX(-5px); background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(4px); animation: ds2-shadow 0.6s ease-in-out infinite alternate; }
.scn-dr-slop-swear .glow-swear { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(255,128,32,0.2) 0%, transparent 60%); animation: ds2-glow 4s ease-in-out infinite alternate; }
@keyframes ds2-stomp { 0% { transform: translateY(0) rotate(-2deg) scaleY(1); } 50% { transform: translateY(-5px) rotate(2deg) scaleY(1.05); } 100% { transform: translateY(0) rotate(-2deg) scaleY(1); } }
@keyframes ds2-shadow { 0% { transform: translateX(-5px) scale(1); opacity:0.5; } 100% { transform: translateX(-5px) scale(0.9); opacity:0.3; } }
@keyframes ds2-flee { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-8px) rotate(-5deg); } 70% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ds2-glow { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-bag-knots { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #c04020 0%, transparent 70%); }
.scn-bag-knots .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:0 0 5% 5%; }
.scn-bag-knots .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-bag-knots .hook { position:absolute; top:10%; left:50%; width:6px; height:40px; transform:translateX(-50%); background: #3a2a1a; border-radius:2px; }
.scn-bag-knots .bag { position:absolute; top:40%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: bk3-sway 4s ease-in-out infinite alternate; }
.scn-bag-knots .knot { position:absolute; top:38%; left:50%; width:20px; height:12px; transform:translateX(-50%); background: #2a1a0a; border-radius:40%; }
.scn-bag-knots .instrument-1 { position:absolute; top:65%; left:44%; width:12px; height:30px; background: linear-gradient(180deg, #a0461a 0%, #7a3010 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; animation: bk3-instrument 3s ease-in-out infinite; }
.scn-bag-knots .instrument-2 { position:absolute; top:70%; left:50%; width:10px; height:25px; background: linear-gradient(180deg, #c8553d 0%, #a04028 100%); border-radius:20%; animation: bk3-instrument 3.2s ease-in-out infinite reverse; }
.scn-bag-knots .instrument-3 { position:absolute; top:68%; right:44%; width:14px; height:28px; background: linear-gradient(180deg, #b87878 0%, #8a5050 100%); border-radius:40% 40% 10% 10% / 60% 60% 20% 20%; animation: bk3-instrument 2.8s ease-in-out infinite; }
.scn-bag-knots .shadow-bag { position:absolute; bottom:20%; left:50%; width:100px; height:20px; transform:translateX(-50%); background: rgba(0,0,0,0.4); border-radius:50%; filter: blur(8px); animation: bk3-shadow 4s ease-in-out infinite alternate; }
@keyframes bk3-sway { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(3deg); } 70% { transform: translateX(-50%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes bk3-instrument { 0% { transform: translateY(0) rotate(0deg) scaleY(1); } 20% { transform: translateY(-4px) rotate(10deg) scaleY(1.05); } 60% { transform: translateY(2px) rotate(-5deg) scaleY(0.95); } 100% { transform: translateY(0) rotate(0deg) scaleY(1); } }
@keyframes bk3-shadow { 0% { transform: translateX(-50%) scale(1); opacity:0.4; } 50% { transform: translateX(-50%) scale(0.9); opacity:0.2; } 100% { transform: translateX(-50%) scale(1.1); opacity:0.5; } }

.scn-hat-band-solution { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 40%, #0a0500 100%), radial-gradient(ellipse at 50% 30%, #d06020 0%, transparent 60%); }
.scn-hat-band-solution .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-hat-band-solution .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-hat-band-solution .windmill-base { position:absolute; bottom:40%; left:30%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:10% 10% 5% 5% / 20% 20% 10% 10%; }
.scn-hat-band-solution .windmill-blade-1, .scn-hat-band-solution .windmill-blade-2, .scn-hat-band-solution .windmill-blade-3 { position:absolute; bottom:70%; left:30%; width:10px; height:60px; transform-origin: bottom center; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius:20% 20% 0 0; }
.scn-hat-band-solution .windmill-blade-1 { animation: hb4-spin 3s linear infinite; }
.scn-hat-band-solution .windmill-blade-2 { animation: hb4-spin 3s linear infinite; transform: rotate(120deg); }
.scn-hat-band-solution .windmill-blade-3 { animation: hb4-spin 3s linear infinite; transform: rotate(240deg); }
.scn-hat-band-solution .figure-obadiah { position:absolute; bottom:40%; left:60%; width:28px; height:55px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hb4-dance 2s ease-in-out infinite; }
.scn-hat-band-solution .wind-line-1 { position:absolute; top:20%; left:10%; width:60px; height:4px; background: linear-gradient(90deg, rgba(255,128,32,0.3) 0%, transparent 100%); border-radius:2px; animation: hb4-wind 8s linear infinite; }
.scn-hat-band-solution .wind-line-2 { position:absolute; top:30%; left:50%; width:80px; height:3px; background: linear-gradient(90deg, rgba(255,128,32,0.2) 0%, transparent 100%); border-radius:2px; animation: hb4-wind 10s linear infinite reverse; }
@keyframes hb4-spin { 0% { transform: rotate(0deg); } 25% { transform: rotate(90deg); } 50% { transform: rotate(180deg); } 75% { transform: rotate(270deg); } 100% { transform: rotate(360deg); } }
@keyframes hb4-dance { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 20% { transform: translateX(3px) rotate(3deg) scaleY(1.03); } 60% { transform: translateX(-3px) rotate(-3deg) scaleY(0.97); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes hb4-wind { 0% { transform: translateX(-100px); opacity:0; } 50% { opacity:0.6; } 100% { transform: translateX(120vw); opacity:0; } }

.scn-ernulphus-form {
  background: linear-gradient(180deg, #3a1e0c 0%, #5a2e16 40%, #2a1208 100%), radial-gradient(ellipse at 60% 80%, #b85a20 0%, transparent 60%);
}
.scn-ernulphus-form .room-walls {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a140a 0%, #4a2208 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.6);
  animation: ef-walls 8s ease-in-out infinite alternate;
}
.scn-ernulphus-form .fireplace {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 30px #5a2a0a;
}
.scn-ernulphus-form .fire-glow {
  position: absolute; bottom: 28%; left: 50%; width: 80px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ff8a30 0%, #d06020 40%, transparent 70%);
  border-radius: 50%;
  animation: ef-glow 1.5s ease-in-out infinite alternate;
  filter: blur(12px);
}
.scn-ernulphus-form .table {
  position: absolute; bottom: 12%; left: 35%; right: 35%; height: 12%;
  background: linear-gradient(180deg, #6a4020 0%, #3a1e0c 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.5);
}
.scn-ernulphus-form .document {
  position: absolute; bottom: 20%; left: 42%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b090 100%);
  border-radius: 2%;
  transform: rotate(-8deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: ef-doc 6s ease-in-out infinite;
}
.scn-ernulphus-form .doctor-figure {
  position: absolute; bottom: 16%; left: 58%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ef-walk 4s ease-in-out infinite;
}
.scn-ernulphus-form .doctor-arm {
  position: absolute; bottom: 30%; left: 65%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  transform: rotate(-20deg);
  transform-origin: top center;
  animation: ef-arm 2.5s ease-in-out infinite alternate;
}
.scn-ernulphus-form .candle {
  position: absolute; bottom: 22%; left: 40%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #e8d090 0%, #a08050 100%);
  border-radius: 10%;
}
.scn-ernulphus-form .candle-flame {
  position: absolute; bottom: 58%; left: 40.5%; width: 8px; height: 14px;
  background: radial-gradient(circle, #ffe080 0%, #ff8a30 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ef-flame 0.6s ease-in-out infinite alternate;
}
@keyframes ef-walls { 0% { opacity: .85; } 50% { opacity: .95; } 100% { opacity: .8; } }
@keyframes ef-glow { 0% { opacity: .6; transform: translateX(-50%) scaleX(1); } 50% { opacity: 1; transform: translateX(-50%) scaleX(1.2); } 100% { opacity: .7; transform: translateX(-50%) scaleX(1); } }
@keyframes ef-doc { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes ef-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(1deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes ef-arm { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-4px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes ef-flame { 0% { opacity: .8; transform: scaleY(1) translateY(0); } 50% { opacity: 1; transform: scaleY(1.3) translateY(-2px); } 100% { opacity: .7; transform: scaleY(1) translateY(0); } }

.scn-excommunication-latin {
  background: linear-gradient(180deg, #1a0a04 0%, #2a1208 50%, #0e0602 100%), radial-gradient(ellipse at 50% 20%, #4a1a0a 0%, transparent 60%);
}
.scn-excommunication-latin .church-arch {
  position: absolute; inset: 0 10% 40%;
  background: linear-gradient(180deg, #2a1808 0%, #1a0e04 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-excommunication-latin .altar {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #4a2a12 0%, #2a1408 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,.5);
}
.scn-excommunication-latin .scroll {
  position: absolute; bottom: 33%; left: 45%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 100%);
  border-radius: 2% 2% 10% 10%;
  transform: rotate(5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: ex-scroll 8s ease-in-out infinite alternate;
}
.scn-excommunication-latin .clergy-figure {
  position: absolute; bottom: 28%; left: 55%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a0e06 0%, #0e0602 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ex-bow 6s ease-in-out infinite;
}
.scn-excommunication-latin .incense-smoke {
  position: absolute; bottom: 55%; left: 48%; width: 30px; height: 50px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ex-smoke 10s ease-in-out infinite;
}
.scn-excommunication-latin .candle-rack {
  position: absolute; bottom: 35%; left: 32%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #a08050 0%, #604020 100%);
  box-shadow: 20px 0 0 0 #a08050, 40px 0 0 0 #a08050;
}
.scn-excommunication-latin .shadow-pillar {
  position: absolute; bottom: 0; left: 15%; width: 30px; height: 70%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.6) 100%);
  border-radius: 4%;
  box-shadow: 20px 0 0 0 rgba(0,0,0,0.2), 40px 0 0 0 rgba(0,0,0,0.2);
  animation: ex-shadow 12s ease-in-out infinite alternate;
}
@keyframes ex-scroll { 0% { transform: rotate(5deg) translateY(0); opacity: .8; } 50% { transform: rotate(3deg) translateY(-3px); opacity: 1; } 100% { transform: rotate(5deg) translateY(0); opacity: .85; } }
@keyframes ex-bow { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ex-smoke { 0% { opacity: .2; transform: scale(1) translateY(0); } 50% { opacity: .5; transform: scale(1.5) translateY(-10px); } 100% { opacity: .1; transform: scale(1) translateY(0); } }
@keyframes ex-shadow { 0% { opacity: .4; } 50% { opacity: .8; } 100% { opacity: .4; } }

.scn-father-reasoning-succession {
  background: linear-gradient(180deg, #f5ecd8 0%, #e8dcc8 50%, #d4c8b0 100%), radial-gradient(ellipse at 70% 30%, #e8e0c8 0%, transparent 60%);
}
.scn-father-reasoning-succession .study-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e0d4b8 0%, #c8b898 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.15);
}
.scn-father-reasoning-succession .bookshelf {
  position: absolute; bottom: 40%; left: 5%; right: 60%; height: 35%;
  background: repeating-linear-gradient(90deg, #8a7a5a 0px, #8a7a5a 8px, #b8a880 8px, #b8a880 16px);
  border-radius: 4%;
  box-shadow: 4px 4px 8px rgba(0,0,0,.2);
}
.scn-father-reasoning-succession .father-chair {
  position: absolute; bottom: 18%; left: 45%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 8% 8%;
  box-shadow: 2px 2px 8px rgba(0,0,0,.3);
}
.scn-father-reasoning-succession .father-silhouette {
  position: absolute; bottom: 30%; left: 47%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a18 0%, #2a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fr-sit 5s ease-in-out infinite;
}
.scn-father-reasoning-succession .father-hand {
  position: absolute; bottom: 38%; left: 60%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #3a2a18 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-30deg);
  transform-origin: top left;
  animation: fr-hand 3s ease-in-out infinite alternate;
}
.scn-father-reasoning-succession .floating-ideas {
  position: absolute; top: 20%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(120,100,60,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fr-ideas 7s ease-in-out infinite;
}
.scn-father-reasoning-succession .window-light {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 80px;
  background: linear-gradient(135deg, rgba(255,255,200,0.4) 0%, rgba(255,255,200,0.05) 100%);
  border-radius: 2%;
  transform: skewX(10deg);
  animation: fr-light 9s ease-in-out infinite alternate;
}
@keyframes fr-sit { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fr-hand { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(4px); } 100% { transform: rotate(-30deg) translateX(0); } }
@keyframes fr-ideas { 0% { opacity: .3; transform: scale(1) translateX(0); } 50% { opacity: .6; transform: scale(1.3) translateX(10px); } 100% { opacity: .2; transform: scale(1) translateX(0); } }
@keyframes fr-light { 0% { opacity: .2; } 50% { opacity: .5; } 100% { opacity: .25; } }

.scn-father-questioning-toby {
  background: linear-gradient(180deg, #e8dcc4 0%, #d8ccb4 50%, #c8bca4 100%), radial-gradient(ellipse at 30% 50%, #f0e8d0 0%, transparent 60%);
}
.scn-father-questioning-toby .parlor-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.1);
}
.scn-father-questioning-toby .table-round {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #6a5a40 0%, #4a3a28 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
}
.scn-father-questioning-toby .toby-sitting {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fq-sit 6s ease-in-out infinite;
}
.scn-father-questioning-toby .father-standing {
  position: absolute; bottom: 22%; left: 58%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: fq-stand 5s ease-in-out infinite alternate;
}
.scn-father-questioning-toby .tea-cup {
  position: absolute; bottom: 30%; left: 47%; width: 18px; height: 14px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: fq-cup 4s ease-in-out infinite;
}
.scn-father-questioning-toby .pipe-smoke {
  position: absolute; bottom: 55%; left: 60%; width: 20px; height: 30px;
  background: radial-gradient(circle, rgba(200,190,170,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: fq-smoke 8s ease-in-out infinite;
}
.scn-father-questioning-toby .window-glare {
  position: absolute; top: 12%; right: 15%; width: 50px; height: 60px;
  background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, rgba(255,255,200,0) 80%);
  border-radius: 2%;
  transform: rotate(10deg);
  animation: fq-glare 7s ease-in-out infinite alternate;
}
@keyframes fq-sit { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fq-stand { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fq-cup { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fq-smoke { 0% { opacity: .1; transform: translateY(0) scale(1); } 50% { opacity: .4; transform: translateY(-10px) scale(1.5); } 100% { opacity: 0; transform: translateY(-20px) scale(2); } }
@keyframes fq-glare { 0% { opacity: .1; } 50% { opacity: .4; } 100% { opacity: .15; } }

.scn-uncle-tobys-reply-to-ass {
  background:
    linear-gradient(180deg, #fae6c8 0%, #e8d4a8 40%, #d4b88a 100%),
    radial-gradient(ellipse at 50% 100%, #c8a87a 0%, transparent 70%);
}
.scn-uncle-tobys-reply-to-ass .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0dbb8 0%, #e6cca0 100%);
  animation: uta-wall 12s ease-in-out infinite alternate;
}
.scn-uncle-tobys-reply-to-ass .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8986a 0%, #9a7e54 100%);
  border-radius: 10% 10% 0 0;
}
.scn-uncle-tobys-reply-to-ass .window {
  position: absolute; top: 15%; left: 60%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 80%, #ffeaa0 0%, #f0d0a0 50%, #d4b080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px rgba(255,220,160,.6);
  animation: uta-window 6s ease-in-out infinite;
}
.scn-uncle-tobys-reply-to-ass .chair {
  position: absolute; bottom: 22%; left: 25%; width: 18%; height: 35%;
  background: linear-gradient(135deg, #8a6a4a 0%, #6a5030 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,.3);
  transform: rotate(-2deg);
}
.scn-uncle-tobys-reply-to-ass .figure-ut {
  position: absolute; bottom: 20%; left: 28%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uta-figure 4s ease-in-out infinite;
}
.scn-uncle-tobys-reply-to-ass .donkey-ear {
  position: absolute; bottom: 40%; left: 15%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  transform: rotate(-15deg);
  animation: uta-ear 2.5s ease-in-out infinite alternate;
}
.scn-uncle-tobys-reply-to-ass .donkey-tail {
  position: absolute; bottom: 30%; left: 10%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a22 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: uta-tail 3s ease-in-out infinite;
}
.scn-uncle-tobys-reply-to-ass .bubble {
  position: absolute; top: 10%; left: 45%; width: 14%; height: 16%;
  background: radial-gradient(circle, rgba(255,255,255,.7) 0%, rgba(255,230,180,.3) 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(255,220,140,.5);
  animation: uta-bubble 5s ease-in-out infinite;
}
@keyframes uta-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes uta-window { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(.98); } }
@keyframes uta-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes uta-ear { 0% { transform: rotate(-20deg) scaleX(1); } 100% { transform: rotate(-10deg) scaleX(1.1); } }
@keyframes uta-tail { 0%,100% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(35deg) scaleY(1.2); } }
@keyframes uta-bubble { 0% { transform: scale(.8) translateY(0); opacity: .6; } 50% { transform: scale(1.1) translateY(-6px); opacity: 1; } 100% { transform: scale(.85) translateY(-2px); opacity: .7; } }

.scn-mother-probes-love {
  background:
    linear-gradient(180deg, #e8e0d0 0%, #d4c8b8 40%, #b8a898 100%),
    radial-gradient(ellipse at 50% 100%, #c4b4a4 0%, transparent 70%);
}
.scn-mother-probes-love .wall-panel {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #ddd4c4 0%, #c8bcac 100%);
  border-bottom: 2px solid #a89478;
  animation: mpl-wall 15s ease infinite;
}
.scn-mother-probes-love .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b09880 0%, #907860 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.15);
}
.scn-mother-probes-love .tea-table {
  position: absolute; bottom: 18%; left: 50%; width: 30%; height: 12%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7058 0%, #6a5438 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
}
.scn-mother-probes-love .figure-mother {
  position: absolute; bottom: 20%; left: 30%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mpl-mother 8s ease-in-out infinite alternate;
}
.scn-mother-probes-love .figure-toby {
  position: absolute; bottom: 20%; left: 56%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mpl-toby 8s ease-in-out infinite alternate;
}
.scn-mother-probes-love .cup {
  position: absolute; bottom: 22%; left: 48%; width: 8%; height: 10%;
  background: radial-gradient(circle, #fff5e0 0%, #e0d0b0 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 6px rgba(0,0,0,.15);
}
.scn-mother-probes-love .steam {
  position: absolute; bottom: 30%; left: 49%; width: 6%; height: 16%;
  background: radial-gradient(ellipse, rgba(255,255,255,.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: mpl-steam 6s ease-in-out infinite;
}
@keyframes mpl-wall { 0%,100% { opacity: .9; } 50% { opacity: 1; } }
@keyframes mpl-mother { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes mpl-toby { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mpl-steam { 0% { transform: translateY(0) scaleY(1); opacity: .3; } 50% { transform: translateY(-12px) scaleY(1.4); opacity: .7; } 100% { transform: translateY(-20px) scaleY(1); opacity: 0; } }

.scn-fathers-theory-two-loves {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #dcc8a0 40%, #c0a87a 100%),
    radial-gradient(ellipse at 50% 100%, #b89868 0%, transparent 70%);
}
.scn-fathers-theory-two-loves .study-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d4b0 0%, #d8c0a0 100%);
  animation: ftl-wall 18s ease-in-out infinite alternate;
}
.scn-fathers-theory-two-loves .bookshelf {
  position: absolute; top: 10%; right: 8%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.4);
}
.scn-fathers-theory-two-loves .fireplace {
  position: absolute; bottom: 22%; left: 12%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2818 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.4);
}
.scn-fathers-theory-two-loves .figure-father {
  position: absolute; bottom: 20%; left: 35%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #4a2e1e 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ftl-father 10s ease-in-out infinite;
}
.scn-fathers-theory-two-loves .figure-brother {
  position: absolute; bottom: 20%; left: 55%; width: 15%; height: 38%;
  background: linear-gradient(180deg, #3a2416 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ftl-brother 10s ease-in-out infinite alternate;
}
.scn-fathers-theory-two-loves .book {
  position: absolute; bottom: 30%; left: 42%; width: 8%; height: 6%;
  background: linear-gradient(135deg, #c8a87a 0%, #a8845a 100%);
  border-radius: 10%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-fathers-theory-two-loves .flame {
  position: absolute; bottom: 10%; left: 16%; width: 6%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #ffb060 0%, #d08030 60%, #a05020 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  filter: blur(3px);
  animation: ftl-flame 2s ease-in-out infinite alternate;
}
@keyframes ftl-wall { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes ftl-father { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ftl-brother { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes ftl-flame { 0% { transform: scaleY(1) translateY(0); opacity: .8; } 50% { transform: scaleY(1.2) translateY(-4px); opacity: 1; } 100% { transform: scaleY(.9) translateY(2px); opacity: .7; } }

.scn-fathers-speech-on-children {
  background:
    linear-gradient(180deg, #f0dcc0 0%, #e0c8a8 40%, #c0a880 100%),
    radial-gradient(ellipse at 50% 100%, #b89870 0%, transparent 70%);
}
.scn-fathers-speech-on-children .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d4b8 0%, #d4bea0 100%);
  animation: fsc-wall 14s ease-in-out infinite alternate;
}
.scn-fathers-speech-on-children .chair-back {
  position: absolute; bottom: 20%; left: 60%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #6a4e32 0%, #4a3420 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,.3);
  transform: rotate(3deg);
}
.scn-fathers-speech-on-children .figure-father-sp {
  position: absolute; bottom: 18%; left: 35%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #4a2e1e 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsc-father 12s ease-in-out infinite;
}
.scn-fathers-speech-on-children .figure-toby-sp {
  position: absolute; bottom: 18%; left: 55%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #3a2416 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsc-toby 12s ease-in-out infinite alternate;
}
.scn-fathers-speech-on-children .small-figure {
  position: absolute; bottom: 14%; left: 42%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: .6;
  animation: fsc-child 8s ease-in-out infinite;
}
.scn-fathers-speech-on-children .hearth-glow {
  position: absolute; bottom: 0; left: 10%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #ffb060 0%, #d09040 40%, transparent 80%);
  filter: blur(12px);
  animation: fsc-hearth 6s ease-in-out infinite alternate;
}
.scn-fathers-speech-on-children .ornament {
  position: absolute; top: 15%; left: 20%; width: 6%; height: 8%;
  background: radial-gradient(circle, #a08060 0%, #5a4028 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(0,0,0,.3);
}
@keyframes fsc-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes fsc-father { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(8px) rotate(2deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fsc-toby { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes fsc-child { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.1); } }
@keyframes fsc-hearth { 0% { opacity: .5; transform: scaleY(.9); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: .6; transform: scaleY(1); } }

.scn-coalition { background: linear-gradient(180deg, #3a2b1e 0%, #4a3a2a 40%, #2a1e14 100%), radial-gradient(ellipse at 50% 30%, #2a1e14 0%, transparent 60%); }
.scn-coalition .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2b1e 100%); animation: coa-fade 10s ease-in-out infinite alternate; }
.scn-coalition .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-coalition .table { position:absolute; bottom:18%; left:30%; width:40%; height:4%; background: #5a4a3a; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: coa-table 12s ease-in-out infinite; }
.scn-coalition .figure-left { position:absolute; bottom:18%; left:20%; width:12%; height:30%; background: linear-gradient(180deg, #3a2b1e 0%, #1a140c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: coa-figure-left 6s ease-in-out infinite alternate; }
.scn-coalition .figure-right { position:absolute; bottom:18%; right:20%; width:12%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: coa-figure-right 6s ease-in-out infinite alternate; }
.scn-coalition .candle { position:absolute; bottom:22%; left:48%; width:3%; height:8%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 4px; }
.scn-coalition .candle-glow { position:absolute; bottom:28%; left:46%; width:8%; height:10%; background: radial-gradient(circle, #ffd070 0%, #b08040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #b08040; animation: coa-glow 3s ease-in-out infinite alternate; }
.scn-coalition .shadow-pool { position:absolute; bottom:12%; left:15%; right:15%; height:8%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%); filter: blur(8px); animation: coa-shadow 9s ease-in-out infinite; }
@keyframes coa-fade { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.65 } }
@keyframes coa-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes coa-figure-left { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2%) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes coa-figure-right { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-2%) rotate(-2deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes coa-glow { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes coa-shadow { 0%,100% { opacity:0.6 } 50% { opacity:0.8 } }

.scn-wish-repeated { background: linear-gradient(180deg, #4a2a1a 0%, #3a2010 40%, #1a0e06 100%), radial-gradient(ellipse at 50% 70%, #2a1408 0%, transparent 70%); }
.scn-wish-repeated .hearth { position:absolute; bottom:15%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #2a1a0c 0%, #1a0e06 100%); border-radius: 12% 12% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.7); }
.scn-wish-repeated .flames { position:absolute; bottom:20%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #ff6600 0%, #ffaa00 30%, #ffd060 60%, transparent 100%); border-radius: 50% 50% 20% 20%; filter: blur(6px); animation: wr-flames 2s ease-in-out infinite alternate; }
.scn-wish-repeated .mantel { position:absolute; bottom:35%; left:25%; width:50%; height:4%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: wr-mantel 8s ease-in-out infinite; }
.scn-wish-repeated .figure-toby { position:absolute; bottom:18%; left:25%; width:14%; height:35%; background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-toby 5s ease-in-out infinite; }
.scn-wish-repeated .figure-slop { position:absolute; bottom:18%; right:25%; width:14%; height:35%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1408 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-slop 5s ease-in-out infinite; }
.scn-wish-repeated .chair-toby { position:absolute; bottom:14%; left:22%; width:20%; height:18%; background: linear-gradient(180deg, #5a3a22 0%, #3a2010 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: wr-chair 7s ease-in-out infinite; }
.scn-wish-repeated .fire-glow { position:absolute; inset:0 0 20% 0; background: radial-gradient(ellipse at 50% 100%, #ffaa00 0%, transparent 60%); opacity:0.3; mix-blend-mode: screen; animation: wr-glow 3s ease-in-out infinite alternate; }
@keyframes wr-flames { 0% { transform: scaleY(0.9) translateY(0) } 50% { transform: scaleY(1.1) translateY(-5%) } 100% { transform: scaleY(0.95) translateY(-2%) } }
@keyframes wr-mantel { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes wr-toby { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3%) rotate(3deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3%) rotate(-3deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes wr-slop { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-3%) rotate(-3deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(3%) rotate(3deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes wr-chair { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes wr-glow { 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.25 } }

.scn-wish-effect { background: linear-gradient(180deg, #3a2010 0%, #2a1408 50%, #1a0a04 100%), radial-gradient(ellipse at 50% 40%, #2a1408 0%, transparent 70%); }
.scn-wish-effect .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a3a22 0%, #3a2010 100%); animation: we-wall 14s ease-in-out infinite alternate; }
.scn-wish-effect .clock { position:absolute; top:10%; left:42%; width:16%; height:20%; background: radial-gradient(circle, #8a7040 0%, #5a4020 100%); border-radius: 50%; border: 3px solid #6a5030; box-shadow: 0 0 12px rgba(0,0,0,0.8); animation: we-clock 12s ease-in-out infinite; }
.scn-wish-effect .figure-slop-puzzled { position:absolute; bottom:18%; left:30%; width:14%; height:35%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1408 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: we-slop 4s ease-in-out infinite; }
.scn-wish-effect .figure-father { position:absolute; bottom:18%; right:30%; width:14%; height:35%; background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: we-father 5s ease-in-out infinite; }
.scn-wish-effect .thought-ring { position:absolute; top:15%; left:28%; width:20%; height:20%; border: 2px dashed #ffd070; border-radius: 50%; animation: we-ring 6s linear infinite; opacity:0.5; }
.scn-wish-effect .question-mark { position:absolute; top:20%; left:35%; width:8%; height:20%; background: linear-gradient(180deg, #ffd070 0%, #b08040 100%); clip-path: polygon(50% 0%, 70% 20%, 60% 40%, 50% 60%, 40% 40%, 30% 20%, 50% 0%, 50% 100%, 40% 100%, 40% 80%, 60% 80%, 60% 100%, 50% 100%, 50% 70%, 55% 70%, 55% 55%, 65% 55%, 65% 70%, 50% 70%); animation: we-question 3s ease-in-out infinite alternate; }
.scn-wish-effect .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); filter: blur(10px); }
@keyframes we-wall { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes we-clock { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes we-slop { 0% { transform: translateX(0) rotate(0) scaleY(1) } 25% { transform: translateX(2%) rotate(3deg) scaleY(1.02) } 50% { transform: translateX(0) rotate(0) scaleY(1) } 75% { transform: translateX(-2%) rotate(-3deg) scaleY(0.98) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }
@keyframes we-father { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(-2%) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes we-ring { 0% { transform: rotate(0deg) scale(0.9) } 50% { transform: rotate(180deg) scale(1.1) } 100% { transform: rotate(360deg) scale(0.9) } }
@keyframes we-question { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5%) scale(1.1) } 100% { transform: translateY(0) scale(0.95) } }

.scn-father-argument { background: linear-gradient(180deg, #2a1a0c 0%, #1a0e06 40%, #0a0602 100%), radial-gradient(ellipse at 50% 60%, #1a0e06 0%, transparent 70%); }
.scn-father-argument .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3018 0%, #2a1a0c 100%); animation: fa-wall 8s ease-in-out infinite alternate; }
.scn-father-argument .table-arg { position:absolute; bottom:18%; left:28%; width:44%; height:5%; background: linear-gradient(180deg, #5a3a22 0%, #3a2010 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.7); animation: fa-table 10s ease-in-out infinite; }
.scn-father-argument .father-standing { position:absolute; bottom:18%; left:32%; width:14%; height:38%; background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fa-father 4s ease-in-out infinite; }
.scn-father-argument .toby-sitting { position:absolute; bottom:15%; right:28%; width:16%; height:30%; background: linear-gradient(180deg, #2a1408 0%, #120a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fa-toby 6s ease-in-out infinite; }
.scn-father-argument .flying-wig { position:absolute; bottom:40%; left:35%; width:12%; height:8%; background: #6a5030; border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: fa-wig 3s ease-in-out infinite; }
.scn-father-argument .handkerchief { position:absolute; bottom:30%; left:40%; width:10%; height:6%; background: #9a7a5a; border-radius: 10% 10% 30% 30%; transform-origin: bottom left; animation: fa-hanky 3s ease-in-out infinite alternate; }
.scn-father-argument .candle-flare { position:absolute; bottom:22%; left:48%; width:6%; height:12%; background: radial-gradient(circle, #ffd070 0%, #b07030 50%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: fa-flare 2s ease-in-out infinite alternate; }
@keyframes fa-wall { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes fa-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes fa-father { 0% { transform: translateX(0) rotate(-2deg) scaleY(1) } 30% { transform: translateX(3%) rotate(3deg) scaleY(1.03) } 60% { transform: translateX(2%) rotate(-1deg) scaleY(0.98) } 100% { transform: translateX(0) rotate(2deg) scaleY(1) } }
@keyframes fa-toby { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-2%) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes fa-wig { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(20%,-30%) rotate(-15deg) } 50% { transform: translate(40%,-50%) rotate(-30deg) } 75% { transform: translate(60%,-30%) rotate(-15deg) } 100% { transform: translate(80%,0) rotate(0deg) } }
@keyframes fa-hanky { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(15deg) scale(1.1) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes fa-flare { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.4) } 100% { opacity:0.7; transform: scale(0.9) } }

/* limerick-camp */
.scn-limerick-camp {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a38 40%, #1a1a28 100%),
              radial-gradient(ellipse at 50% 70%, #4a4a5a 0%, transparent 70%);
}
.scn-limerick-camp .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a38 100%);
  animation: lc-sky 20s ease-in-out infinite alternate;
}
.scn-limerick-camp .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a10 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: lc-ground 12s ease-in-out infinite;
}
.scn-limerick-camp .tent {
  position: absolute; bottom: 20%; left: 25%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #4a4a3a 0%, #2a2a1a 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  transform-origin: bottom center;
  animation: lc-tent 8s ease-in-out infinite alternate;
}
.scn-limerick-camp .figure {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lc-figure 5s ease-in-out infinite;
}
.scn-limerick-camp .puddle {
  position: absolute; bottom: 8%; left: 15%; width: 120px; height: 20px;
  background: radial-gradient(ellipse, #6a6a7a 0%, transparent 70%);
  border-radius: 50%;
  animation: lc-puddle 6s ease-in-out infinite;
}
.scn-limerick-camp .rain.a {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 8px, rgba(255,255,255,0.03) 8px, rgba(255,255,255,0.03) 9px);
  animation: lc-rain-a 0.5s linear infinite;
}
.scn-limerick-camp .rain.b {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(10deg, transparent 0px, transparent 12px, rgba(255,255,255,0.02) 12px, rgba(255,255,255,0.02) 13px);
  animation: lc-rain-b 0.7s linear infinite;
}
@keyframes lc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes lc-ground { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes lc-tent { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes lc-figure { 0%, 100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(0deg); } 75% { transform: translateY(-2px) rotate(1deg); } }
@keyframes lc-puddle { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(1.05) scaleY(0.95); } }
@keyframes lc-rain-a { 0% { transform: translateY(-10px); } 100% { transform: translateY(100px); } }
@keyframes lc-rain-b { 0% { transform: translateY(-20px); } 100% { transform: translateY(120px); } }

/* trim-s-conclusion */
.scn-trim-s-conclusion {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%);
}
.scn-trim-s-conclusion .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  animation: tc-bg 30s ease-in-out infinite alternate;
}
.scn-trim-s-conclusion .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: tc-table 10s ease-in-out infinite;
}
.scn-trim-s-conclusion .candle {
  position: absolute; bottom: 30%; left: 50%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a0a 100%);
  border-radius: 40% 40% 10% 10%;
  transform: translateX(-50%);
  animation: tc-candle 5s ease-in-out infinite;
}
.scn-trim-s-conclusion .figure {
  position: absolute; bottom: 12%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-figure 7s ease-in-out infinite;
}
.scn-trim-s-conclusion .glow {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 80px;
  transform: translate(-50%, 20%);
  background: radial-gradient(circle, #ffb060 0%, #8a5020 40%, transparent 70%);
  border-radius: 50%;
  animation: tc-glow 3s ease-in-out infinite alternate;
}
.scn-trim-s-conclusion .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: tc-shadow 7s ease-in-out infinite;
}
@keyframes tc-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes tc-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes tc-candle { 0%, 100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05) scaleX(0.95); } }
@keyframes tc-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tc-glow { 0% { opacity: 0.7; transform: translate(-50%, 20%) scale(1); } 50% { opacity: 1; transform: translate(-50%, 20%) scale(1.1); } 100% { opacity: 0.8; transform: translate(-50%, 20%) scale(0.9); } }
@keyframes tc-shadow { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(0.8) scaleY(1.2); } }

/* slop-s-ridicule */
.scn-slop-s-ridicule {
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b8a0 40%, #a09080 100%),
              radial-gradient(ellipse at 30% 40%, #f0e8d8 0%, transparent 60%);
}
.scn-slop-s-ridicule .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #b0a090 100%);
  animation: sr-wall 15s ease-in-out infinite alternate;
}
.scn-slop-s-ridicule .window {
  position: absolute; top: 15%; right: 20%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #f0e8d8 0%, #c0b8a0 100%);
  border: 4px solid #8a7a6a;
  border-radius: 4px;
  animation: sr-window 8s ease-in-out infinite;
}
.scn-slop-s-ridicule .desk {
  position: absolute; bottom: 15%; left: 10%; right: 30%; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-slop-s-ridicule .lamp {
  position: absolute; top: 25%; left: 15%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 0%, #fff0d0 0%, #b09070 100%);
  clip-path: polygon(20% 100%, 80% 100%, 50% 0%);
  animation: sr-lamp 4s ease-in-out infinite alternate;
}
.scn-slop-s-ridicule .figure {
  position: absolute; bottom: 16%; left: 45%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sr-figure 3s ease-in-out infinite;
}
.scn-slop-s-ridicule .shadow {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: sr-shadow 3s ease-in-out infinite;
}
@keyframes sr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes sr-window { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes sr-lamp { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.1) scaleX(0.9); } 100% { transform: scaleY(0.95) scaleX(1.05); } }
@keyframes sr-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(3deg); } 60% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sr-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.8) scaleY(1.3); } }

/* time-wasted */
.scn-time-wasted {
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b8a0 50%, #a89880 100%),
              radial-gradient(ellipse at 50% 20%, #f0e8d0 0%, transparent 70%);
}
.scn-time-wasted .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #b0a090 100%);
  animation: tw-bg 25s ease-in-out infinite alternate;
}
.scn-time-wasted .clock-face {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0e8d8 0%, #c0b8a0 100%);
  border-radius: 50%;
  border: 4px solid #6a5a4a;
  animation: tw-clock-face 60s linear infinite;
}
.scn-time-wasted .hour-hand {
  position: absolute; top: 10%; left: 50%; width: 4px; height: 24px;
  transform-origin: bottom center;
  background: #2a1a0a;
  border-radius: 2px;
  animation: tw-hour-hand 43200s linear infinite;
}
.scn-time-wasted .minute-hand {
  position: absolute; top: 10%; left: 50%; width: 3px; height: 34px;
  transform-origin: bottom center;
  background: #4a2a0a;
  border-radius: 2px;
  animation: tw-minute-hand 3600s linear infinite;
}
.scn-time-wasted .books {
  position: absolute; bottom: 20%; left: 10%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 4px 4px 10px rgba(0,0,0,0.3);
  animation: tw-books 12s ease-in-out infinite;
}
.scn-time-wasted .figure {
  position: absolute; bottom: 15%; left: 55%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tw-figure 5s ease-in-out infinite;
}
.scn-time-wasted .quill {
  position: absolute; bottom: 40%; left: 60%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-20deg);
  animation: tw-quill 4s ease-in-out infinite alternate;
}
@keyframes tw-bg { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes tw-clock-face { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes tw-hour-hand { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes tw-minute-hand { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes tw-books { 0%,100% { transform: scale(1); } 50% { transform: scale(0.95); } }
@keyframes tw-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tw-quill { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-25deg) translateY(0); } }

/* Scene 1: need-for-clarity (tense, dim interior) */
.scn-need-for-clarity {
  background: linear-gradient(180deg, #1e1a14 0%, #2a2216 40%, #1c1810 100%), radial-gradient(ellipse at 50% 30%, #3a3120 0%, transparent 70%);
}
.scn-need-for-clarity .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(90deg, #2a2216 0%, #1e1a14 50%, #2a2216 100%); border-bottom: 2px solid #4a3a2a; }
.scn-need-for-clarity .desk { position:absolute; bottom:16%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-need-for-clarity .lamp { position:absolute; bottom:38%; left:42%; width:8px; height:28px; background: linear-gradient(180deg, #6a5a4a, #3a2a1a); border-radius: 2px; transform-origin: top; animation: nfc-lamp 1.5s ease-in-out infinite; }
.scn-need-for-clarity .light-cone { position:absolute; bottom:36%; left:40%; width:20%; height:24%; background: radial-gradient(ellipse 60% 100% at 50% 0%, rgba(200,180,140,.25) 0%, transparent 70%); }
.scn-need-for-clarity .papers { position:absolute; bottom:20%; left:30%; width:25%; height:10%; background: linear-gradient(135deg, #7a6a5a 0%, #9a8a7a 40%, #6a5a4a 100%); border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: nfc-papers 8s ease-in-out infinite alternate; }
.scn-need-for-clarity .figure { position:absolute; bottom:24%; left:48%; width:20px; height:40px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: nfc-figure 6s ease-in-out infinite; }
.scn-need-for-clarity .mist { position:absolute; top:20%; left:10%; right:10%; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(180,170,150,.15) 0%, transparent 70%); filter: blur(12px); animation: nfc-mist 14s ease-in-out infinite alternate; }
.scn-need-for-clarity .glow { position:absolute; bottom:38%; left:42%; width:12px; height:12px; background: radial-gradient(circle, #e0c080 0%, rgba(224,192,128,.3) 60%, transparent 100%); border-radius: 50%; animation: nfc-glow 2s ease-in-out infinite alternate; }
@keyframes nfc-lamp { 0% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.02); } 100% { transform: rotate(-2deg) scaleX(1); } }
@keyframes nfc-papers { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes nfc-figure { 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 nfc-mist { 0% { opacity: 0.3; filter: blur(10px); } 50% { opacity: 0.7; filter: blur(18px); } 100% { opacity: 0.3; filter: blur(10px); } }
@keyframes nfc-glow { 0% { box-shadow: 0 0 8px 2px #c8a860, 0 0 20px 4px rgba(200,168,96,.2); } 50% { box-shadow: 0 0 16px 6px #e0c080, 0 0 40px 12px rgba(224,192,128,.4); } 100% { box-shadow: 0 0 8px 2px #c8a860, 0 0 20px 4px rgba(200,168,96,.2); } }

/* Scene 2: womans-choice-of-husband-ends (funny, dim interior) */
.scn-womans-choice-of-husband-ends {
  background: linear-gradient(180deg, #2c241c 0%, #3c3028 30%, #201c18 100%), radial-gradient(ellipse at 50% 40%, #3a3028 0%, transparent 60%);
}
.scn-womans-choice-of-husband-ends .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-womans-choice-of-husband-ends .bg-panel { position:absolute; top:10%; left:15%; right:15%; height:60%; background: linear-gradient(180deg, #3a3028 0%, #2a241c 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-womans-choice-of-husband-ends .scale { position:absolute; bottom:45%; left:50%; width:40px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 4% 4% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: wch-scale 4s ease-in-out infinite alternate; }
.scn-womans-choice-of-husband-ends .suitor-left { position:absolute; bottom:52%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: wch-sway-left 3s ease-in-out infinite; }
.scn-womans-choice-of-husband-ends .suitor-right { position:absolute; bottom:52%; right:30%; width:20px; height:40px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: wch-sway-right 3.5s ease-in-out infinite; }
.scn-womans-choice-of-husband-ends .hand { position:absolute; bottom:48%; left:48%; width:14px; height:20px; background: radial-gradient(ellipse at 50% 100%, #d0b8a0 0%, #b09880 70%); border-radius: 50% 50% 30% 30%; transform: rotate(-10deg); animation: wch-hand 4s ease-in-out infinite; }
.scn-womans-choice-of-husband-ends .ribbon { position:absolute; bottom:32%; left:40%; right:40%; height:4px; background: linear-gradient(90deg, #a8a090 0%, #c8b8a8 50%, #a8a090 100%); border-radius: 2px; animation: wch-ribbon 6s ease-in-out infinite alternate; }
@keyframes wch-scale { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes wch-sway-left { 0% { transform: rotate(-10deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(-4px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(-8deg) translateX(3px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes wch-sway-right { 0% { transform: rotate(10deg) translateX(0); } 25% { transform: rotate(5deg) translateX(4px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(8deg) translateX(-3px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes wch-hand { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes wch-ribbon { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.2); } 100% { transform: translateY(0) scaleX(1); } }

/* Scene 3: slawkenbergius-pannier-metaphor (funny, dim interior) */
.scn-slawkenbergius-pannier-metaphor {
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 50%, #0e0a06 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-slawkenbergius-pannier-metaphor .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 60% 0 0; }
.scn-slawkenbergius-pannier-metaphor .wall-dark { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1410 0%, #2a2218 100%); }
.scn-slawkenbergius-pannier-metaphor .donkey { position:absolute; bottom:22%; left:35%; width:50px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: spm-donkey 3s ease-in-out infinite; }
.scn-slawkenbergius-pannier-metaphor .pannier { position:absolute; bottom:30%; left:42%; width:30px; height:20px; background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 10% 10% 30% 30%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: spm-pannier 2.5s ease-in-out infinite alternate; }
.scn-slawkenbergius-pannier-metaphor .arm { position:absolute; bottom:32%; left:48%; width:8px; height:30px; background: linear-gradient(180deg, #a09080 0%, #7a6a5a 100%); border-radius: 4px; transform-origin: top center; transform: rotate(20deg); animation: spm-arm 1.8s ease-in-out infinite; }
.scn-slawkenbergius-pannier-metaphor .hand-sc { position:absolute; bottom:22%; left:49%; width:10px; height:14px; background: radial-gradient(ellipse, #b0a090 0%, #7a6a5a 80%); border-radius: 50% 50% 40% 40%; transform: rotate(10deg); animation: spm-hand 2s ease-in-out infinite; }
.scn-slawkenbergius-pannier-metaphor .steam { position:absolute; top:30%; left:45%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(240,230,200,.2) 0%, transparent 70%); filter: blur(6px); animation: spm-steam 5s ease-out infinite; }
@keyframes spm-donkey { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes spm-pannier { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes spm-arm { 0% { transform: rotate(15deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(15deg); } }
@keyframes spm-hand { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-4px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes spm-steam { 0% { opacity: 0; transform: translateY(0) scale(0.8); } 30% { opacity: 0.6; transform: translateY(-10px) scale(1.2); } 60% { opacity: 0.3; transform: translateY(-20px) scale(1.5); } 100% { opacity: 0; transform: translateY(-30px) scale(1.8); } }

/* Scene 4: nature-bungles-married-man (funny, dim interior) */
.scn-nature-bungles-married-man {
  background: linear-gradient(180deg, #2a241e 0%, #3c3228 40%, #1e1812 100%), radial-gradient(ellipse at 50% 50%, #3a3028 0%, transparent 70%);
}
.scn-nature-bungles-married-man .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #2a221c 0%, #1e1812 100%); border-radius: 4%; }
.scn-nature-bungles-married-man .tree { position:absolute; bottom:20%; left:20%; width:30px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6% 6% 10% 10%; transform: rotate(5deg); }
.scn-nature-bungles-married-man .fruit { position:absolute; bottom:60%; left:22%; width:12px; height:12px; background: radial-gradient(circle, #b08060 0%, #6a4a3a 100%); border-radius: 50%; animation: nbm-fruit 3s ease-in-out infinite alternate; }
.scn-nature-bungles-married-man .man-body { position:absolute; bottom:18%; left:50%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform: translateX(-50%); animation: nbm-body 2s ease-in-out infinite; }
.scn-nature-bungles-married-man .man-head { position:absolute; bottom:52%; left:50%; width:18px; height:18px; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50%; transform: translateX(-50%); animation: nbm-head 2.5s ease-in-out infinite; }
.scn-nature-bungles-married-man .man-arm { position:absolute; bottom:30%; left:48%; width:6px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 3px; transform-origin: top center; transform: rotate(-30deg); animation: nbm-arm 1.8s ease-in-out infinite; }
.scn-nature-bungles-married-man .shadow { position:absolute; bottom:10%; left:40%; right:40%; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); animation: nbm-shadow 2s ease-in-out infinite; }
.scn-nature-bungles-married-man .floaties { position:absolute; top:20%; left:30%; width:8px; height:8px; background: rgba(200,180,160,.1); border-radius: 50%; filter: blur(2px); animation: nbm-floaties 10s linear infinite; }
@keyframes nbm-fruit { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(8px) rotate(20deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nbm-body { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-50%) rotate(1deg) scaleY(1.02); } 50% { transform: translateX(-50%) rotate(2deg); } 75% { transform: translateX(-50%) rotate(-1deg) scaleY(0.98); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes nbm-head { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes nbm-arm { 0% { transform: rotate(-40deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-40deg); } }
@keyframes nbm-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.3); opacity: 0.5; } 100% { transform: scaleX(1); } }
@keyframes nbm-floaties { 0% { transform: translateY(0) translateX(0); opacity: 0; } 20% { opacity: 0.6; } 80% { opacity: 0.6; } 100% { transform: translateY(-40px) translateX(20px); opacity: 0; } }

/* double-amour-pattern */
.scn-double-amour-pattern {
  background: linear-gradient(180deg, #f9e8d0 0%, #e3c9a5 50%, #d2b48c 100%), radial-gradient(ellipse at 50% 100%, #d2b48c 0%, transparent 60%);
}
.scn-double-amour-pattern .wall-pattern {
  position: absolute; inset: 0 0 30% 0;
  background: repeating-linear-gradient(45deg, transparent, transparent 12px, rgba(200,80,60,.08) 12px, rgba(200,80,60,.08) 24px);
  opacity: .5;
  animation: da-wp 20s linear infinite;
}
.scn-double-amour-pattern .window {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 150px; transform: translateX(-50%);
  background: linear-gradient(180deg, #b8d0e0 0%, #90b8d0 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.6);
  animation: da-window 6s ease-in-out infinite alternate;
}
.scn-double-amour-pattern .curtain-left {
  position: absolute; top: 10%; left: calc(50% - 60px); width: 40px; height: 150px; transform: translateX(-100%);
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px 20px 20px 4px;
  animation: da-curtain 8s ease-in-out infinite;
}
.scn-double-amour-pattern .curtain-right {
  position: absolute; top: 10%; right: calc(50% - 60px); width: 40px; height: 150px; transform: translateX(100%);
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 20px 4px 4px 20px;
  animation: da-curtain 8s ease-in-out infinite reverse;
}
.scn-double-amour-pattern .chair-left {
  position: absolute; bottom: 28%; left: 25%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 5% 5%;
  animation: da-chair 12s ease-in-out infinite;
}
.scn-double-amour-pattern .chair-right {
  position: absolute; bottom: 28%; right: 25%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 5% 5%;
  animation: da-chair 12s ease-in-out infinite reverse;
}
.scn-double-amour-pattern .figure-left {
  position: absolute; bottom: 24%; left: 28%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-figure 4s ease-in-out infinite;
}
.scn-double-amour-pattern .figure-right {
  position: absolute; bottom: 24%; right: 28%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-figure 4s ease-in-out infinite reverse;
}
.scn-double-amour-pattern .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #b09670 0%, #7a6040 100%);
  border-radius: 20% 20% 0 0;
}
@keyframes da-wp { 0% { background-position: 0 0; } 100% { background-position: 48px 48px; } }
@keyframes da-window { 0% { opacity: .8; transform: translateX(-50%) scaleY(1); } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.02); } 100% { opacity: .85; transform: translateX(-50%) scaleY(1); } }
@keyframes da-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(0); } }
@keyframes da-chair { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes da-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* siege-raised-indignantly */
.scn-siege-raised-indignantly {
  background: linear-gradient(180deg, #2a2826 0%, #1e1c1a 50%, #141210 100%), radial-gradient(ellipse at 50% 30%, #3a3530 0%, transparent 60%);
}
.scn-siege-raised-indignantly .dark-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #33302e 0%, #1e1c1a 100%);
}
.scn-siege-raised-indignantly .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  animation: si-table 20s ease-in-out infinite;
}
.scn-siege-raised-indignantly .map {
  position: absolute; bottom: 24%; left: 28%; right: 28%; height: 8%;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%);
  border-radius: 2px;
  transform: perspective(200px) rotateX(10deg);
  animation: si-map 12s ease-in-out infinite;
}
.scn-siege-raised-indignantly .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 40px; transform: translateX(-50%);
  background: linear-gradient(180deg, #d0b080 0%, #a08060 100%);
  border-radius: 4px 4px 2px 2px;
  animation: si-candle 5s ease-in-out infinite;
}
.scn-siege-raised-indignantly .candle::after {
  content: ''; position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  width: 12px; height: 14px; background: radial-gradient(circle, #ffd060 0%, #ffa030 50%, transparent 100%);
  border-radius: 50%;
  animation: si-flame 3s ease-in-out infinite alternate;
}
.scn-siege-raised-indignantly .commander {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-commander 6s ease-in-out infinite;
}
.scn-siege-raised-indignantly .soldier {
  position: absolute; bottom: 18%; right: 38%; width: 24px; height: 64px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-soldier 4s ease-in-out infinite reverse;
}
.scn-siege-raised-indignantly .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: si-shadow 8s ease-in-out infinite alternate;
}
@keyframes si-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes si-map { 0%,100% { transform: perspective(200px) rotateX(10deg) translateY(0); } 50% { transform: perspective(200px) rotateX(12deg) translateY(-2px); } }
@keyframes si-candle { 0%,100% { opacity: 1; } 50% { opacity: .85; } }
@keyframes si-flame { 0%,100% { transform: translateX(-50%) scaleY(1); opacity: .9; } 50% { transform: translateX(-50%) scaleY(1.2); opacity: 1; } }
@keyframes si-commander { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes si-soldier { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-4deg); } }
@keyframes si-shadow { 0%,100% { opacity: .6; } 50% { opacity: .8; } }

/* trim-bridget-moonlit */
.scn-trim-bridget-moonlit {
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1a2a 50%, #050a15 100%), radial-gradient(ellipse at 50% 0%, #2a4a6a 0%, transparent 60%);
}
.scn-trim-bridget-moonlit .moon-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, #0a1525 100%);
  animation: tb-sky 20s ease-in-out infinite alternate;
}
.scn-trim-bridget-moonlit .moon {
  position: absolute; top: 8%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, #e0e8f0 0%, #c0d0e0 70%);
  border-radius: 50%; box-shadow: 0 0 40px 12px rgba(192,208,224,.5), 0 0 80px 20px rgba(192,208,224,.2);
  animation: tb-moon 15s ease-in-out infinite;
}
.scn-trim-bridget-moonlit .garden-wall {
  position: absolute; bottom: 32%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 10% 10% 0 0;
  animation: tb-wall 10s ease-in-out infinite alternate;
}
.scn-trim-bridget-moonlit .tree-left {
  position: absolute; bottom: 28%; left: 12%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a150a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: tb-tree 12s ease-in-out infinite;
}
.scn-trim-bridget-moonlit .tree-right {
  position: absolute; bottom: 28%; right: 12%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a150a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: tb-tree 12s ease-in-out infinite reverse;
}
.scn-trim-bridget-moonlit .figure-trim {
  position: absolute; bottom: 24%; left: 38%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tb-figure 5s ease-in-out infinite;
}
.scn-trim-bridget-moonlit .figure-bridget {
  position: absolute; bottom: 24%; right: 38%; width: 20px; height: 58px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tb-figure 5s ease-in-out infinite reverse;
}
.scn-trim-bridget-moonlit .glow {
  position: absolute; bottom: 24%; left: 50%; width: 40px; height: 40px; transform: translateX(-50%);
  background: radial-gradient(circle, rgba(200,220,240,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: tb-glow 4s ease-in-out infinite alternate;
}
@keyframes tb-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes tb-moon { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes tb-wall { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes tb-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes tb-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tb-glow { 0% { opacity: .2; transform: translateX(-50%) scale(1); } 100% { opacity: .4; transform: translateX(-50%) scale(1.3); } }

/* drawbridge-broken */
.scn-drawbridge-broken {
  background: linear-gradient(180deg, #1a2030 0%, #0d1520 50%, #050a10 100%), radial-gradient(ellipse at 50% 80%, #2a3a4a 0%, transparent 70%);
}
.scn-drawbridge-broken .night-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1520 100%);
  animation: db-sky 15s ease-in-out infinite alternate;
}
.scn-drawbridge-broken .moon {
  position: absolute; top: 12%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0d8e0 0%, #a0b0c0 70%);
  border-radius: 50%; box-shadow: 0 0 30px 8px rgba(160,176,192,.5), 0 0 60px 15px rgba(160,176,192,.2);
  animation: db-moon 12s ease-in-out infinite;
}
.scn-drawbridge-broken .moat {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1a2a 100%);
  border-radius: 50% 50% 0 0;
  animation: db-moat 8s ease-in-out infinite alternate;
}
.scn-drawbridge-broken .bridge-broken {
  position: absolute; bottom: 28%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  clip-path: polygon(0 0, 30% 100%, 70% 100%, 100% 0);
  animation: db-bridge 6s ease-in-out infinite;
}
.scn-drawbridge-broken .bridge-chain {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 6px;
  background: transparent;
  border-top: 4px dashed #8a7a5a;
  transform: translateY(-20px);
  animation: db-chain 3s ease-in-out infinite alternate;
}
.scn-drawbridge-broken .figure-corporal {
  position: absolute; bottom: 22%; left: 42%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: db-corporal 4s ease-in-out infinite;
}
.scn-drawbridge-broken .figure-uncle {
  position: absolute; bottom: 22%; right: 42%; width: 26px; height: 62px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: db-uncle 5s ease-in-out infinite;
}
.scn-drawbridge-broken .water-ripple {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(100,140,180,.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: db-ripple 3s ease-in-out infinite;
}
@keyframes db-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes db-moon { 0%,100% { transform: scale(1); } 50% { transform: scale(1.03); } }
@keyframes db-moat { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes db-bridge { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes db-chain { 0% { transform: translateY(-20px) rotate(-2deg); } 100% { transform: translateY(-18px) rotate(2deg); } }
@keyframes db-corporal { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-2deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes db-uncle { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(4deg); } }
@keyframes db-ripple { 0%,100% { opacity: .2; transform: scale(1); } 50% { opacity: .4; transform: scale(1.2); } }

.scn-father-confused { background: linear-gradient(180deg, #1c1a2e 0%, #2a2438 40%, #3a2e4a 70%, #1e1628 100%), radial-gradient(ellipse at 50% 20%, #3a2e4a 0%, transparent 70%); }
.scn-father-confused .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2c2440 0%, #1a1428 100%); animation: fc-wall 12s ease-in-out infinite alternate; }
.scn-father-confused .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e1a28 0%, #0e0a14 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-father-confused .desk { position:absolute; bottom:18%; left:50%; width:160px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-father-confused .book { position:absolute; bottom:22%; left:50%; width:80px; height:60px; transform:translateX(-50%) rotate(-5deg); background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: fc-book 6s ease-in-out infinite; }
.scn-father-confused .candle { position:absolute; bottom:28%; left:40%; width:12px; height:30px; background: linear-gradient(180deg, #e8c870 0%, #b89a40 100%); border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 0 20px 8px #e8c870, 0 0 40px 15px rgba(232,200,112,.3); animation: fc-candle 3s ease-in-out infinite alternate; }
.scn-father-confused .figure { position:absolute; bottom:14%; left:35%; width:40px; height:90px; background: linear-gradient(180deg, #1a142a 0%, #0e0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fc-figure 8s ease-in-out infinite; }
.scn-father-confused .shadows { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 70%, rgba(0,0,0,.0) 0%, rgba(0,0,0,.6) 70%); animation: fc-shadows 10s ease-in-out infinite alternate; }
@keyframes fc-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fc-book { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(-5deg) } }
@keyframes fc-candle { 0% { box-shadow: 0 0 15px 5px #e8c870, 0 0 30px 10px rgba(232,200,112,.2); opacity:.8 } 50% { box-shadow: 0 0 30px 12px #f0d080, 0 0 50px 20px rgba(240,208,128,.4); opacity:1 } 100% { box-shadow: 0 0 18px 6px #e8c870, 0 0 35px 12px rgba(232,200,112,.3); opacity:.9 } }
@keyframes fc-figure { 0% { transform: scaleY(1) translateX(0) } 30% { transform: scaleY(1.02) translateX(4px) rotate(2deg) } 60% { transform: scaleY(0.98) translateX(-2px) rotate(-3deg) } 100% { transform: scaleY(1) translateX(0) } }
@keyframes fc-shadows { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.6 } }

.scn-fever-and-radical { background: linear-gradient(180deg, #e8d098 0%, #c8a860 40%, #a08040 100%), radial-gradient(ellipse at 50% 30%, #f0e0b0 0%, transparent 70%); }
.scn-fever-and-radical .tent-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #c8b880 0%, #a89868 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-fever-and-radical .bed { position:absolute; bottom:20%; left:20%; right:20%; height:40px; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.scn-fever-and-radical .figure-lying { position:absolute; bottom:22%; left:35%; width:60px; 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: fr-figure 6s ease-in-out infinite; }
.scn-fever-and-radical .blanket { position:absolute; bottom:19%; left:28%; width:120px; height:20px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%); border-radius: 20px; transform: rotate(5deg); }
.scn-fever-and-radical .fire { position:absolute; bottom:10%; left:15%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 80%, #f08020 0%, #c04010 50%, #8a2008 100%); border-radius: 50% 50% 30% 30%; animation: fr-fire 2s ease-in-out infinite alternate; }
.scn-fever-and-radical .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 15% 30%, rgba(240,128,32,.3) 0%, transparent 60%); animation: fr-glow 4s ease-in-out infinite alternate; }
.scn-fever-and-radical .stick { position:absolute; bottom:12%; left:10%; width:4px; height:50px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 2px; transform: rotate(-20deg); }
@keyframes fr-figure { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) scaleY(1.02) } 100% { transform: scaleX(1) } }
@keyframes fr-fire { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.15) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.95) translateY(1px); opacity:.8 } }
@keyframes fr-glow { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes fr-stick { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-20deg) } }

.scn-corporal-s-firing { background: linear-gradient(180deg, #d8c098 0%, #b89868 50%, #a08850 100%), radial-gradient(ellipse at 50% 40%, #f0c880 0%, transparent 70%); }
.scn-corporal-s-firing .bg-tent { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8a870 0%, #b09868 100%); border-radius: 0 0 20% 20% / 0 0 8% 8%; }
.scn-corporal-s-firing .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #6a4a2a 100%); }
.scn-corporal-s-firing .cannon { position:absolute; bottom:20%; left:55%; width:100px; height:40px; background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform: translateX(-50%); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: cs-cannon 10s ease-in-out infinite; }
.scn-corporal-s-firing .corporal { position:absolute; bottom:22%; left:30%; width:30px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-corporal 3s ease-in-out infinite; }
.scn-corporal-s-firing .musketsmoke { position:absolute; bottom:28%; left:48%; width:60px; height:40px; background: radial-gradient(ellipse, rgba(200,200,200,.4) 0%, rgba(200,200,200,.1) 50%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: cs-smoke 4s ease-in-out infinite alternate; }
.scn-corporal-s-firing .flash { position:absolute; bottom:30%; left:60%; width:20px; height:20px; background: radial-gradient(circle, #fff8e0 0%, #f0d080 50%, transparent 100%); border-radius: 50%; animation: cs-flash 0.4s ease-in-out infinite; }
.scn-corporal-s-firing .sparks { position:absolute; bottom:26%; left:58%; width:8px; height:8px; background: #f0c040; border-radius: 50%; box-shadow: 0 0 10px 2px #f0c040; animation: cs-sparks 0.8s ease-in-out infinite; }
@keyframes cs-cannon { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes cs-corporal { 0% { transform: scaleY(1) } 30% { transform: scaleY(1.05) translateX(-2px) rotate(2deg) } 70% { transform: scaleY(0.95) translateX(2px) rotate(-1deg) } 100% { transform: scaleY(1) } }
@keyframes cs-smoke { 0% { transform: scale(1) translateY(0); opacity:.6 } 50% { transform: scale(1.3) translateY(-10px); opacity:.8 } 100% { transform: scale(0.8) translateY(5px); opacity:.4 } }
@keyframes cs-flash { 0% { opacity:0 } 25% { opacity:1 } 50% { opacity:0 } 75% { opacity:0.8 } 100% { opacity:0 } }
@keyframes cs-sparks { 0% { transform: scale(1) translate(0,0); opacity:1 } 25% { transform: scale(2) translate(10px,-15px); opacity:.8 } 50% { transform: scale(0.5) translate(-5px,10px); opacity:.5 } 75% { transform: scale(1.5) translate(8px,8px); opacity:.7 } 100% { transform: scale(1) translate(0,0); opacity:1 } }

.scn-yorick-interrupts { background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 50%, #c0a880 100%), radial-gradient(ellipse at 70% 40%, #f8f0e0 0%, transparent 70%); }
.scn-yorick-interrupts .room-bright { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e8e0c8 0%, #d0c0a0 100%); border-radius: 0 0 30% 30% / 0 0 15% 15%; }
.scn-yorick-interrupts .table { position:absolute; bottom:18%; left:50%; width:180px; height:25px; transform:translateX(-50%); background: linear-gradient(180deg, #a09068 0%, #807050 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-yorick-interrupts .chairs { position:absolute; bottom:20%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%); border-radius: 8px; transform: rotate(-5deg); }
.scn-yorick-interrupts .figure-yorick { position:absolute; bottom:14%; left:60%; width:35px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yi-yorick 6s ease-in-out infinite; }
.scn-yorick-interrupts .figure-other { position:absolute; bottom:12%; left:25%; width:40px; height:100px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yi-other 8s ease-in-out infinite; }
.scn-yorick-interrupts .hand { position:absolute; bottom:28%; left:45%; width:12px; height:18px; background: linear-gradient(180deg, #c8b090 0%, #a89070 100%); border-radius: 50% 50% 30% 30%; transform: rotate(30deg); animation: yi-hand 4s ease-in-out infinite; }
.scn-yorick-interrupts .shadow-harsh { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.0) 0%, rgba(0,0,0,.4) 50%, rgba(0,0,0,.0) 100%); animation: yi-shadow 12s ease-in-out infinite alternate; }
@keyframes yi-yorick { 0% { transform: scaleY(1) translateX(0) } 30% { transform: scaleY(1.02) translateX(3px) rotate(2deg) } 70% { transform: scaleY(0.98) translateX(-2px) rotate(-1deg) } 100% { transform: scaleY(1) } }
@keyframes yi-other { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) translateY(-3px) } 100% { transform: scaleY(1) } }
@keyframes yi-hand { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-2px) } 100% { transform: rotate(30deg) } }
@keyframes yi-shadow { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

/* Scene: map-carried-downstairs (calm, dim-interior) */
.scn-map-carried-downstairs {
  background: linear-gradient(180deg, #2a2a1e 0%, #1a1a12 50%, #0e0e08 100%),
              radial-gradient(ellipse at 70% 20%, #3a3a2a 0%, transparent 60%);
}
.scn-map-carried-downstairs .wall { position:absolute; inset:0; background: linear-gradient(90deg, #1e1e14 0%, #2a2a1e 50%, #1e1e14 100%); }
.scn-map-carried-downstairs .stairs { position:absolute; bottom:15%; left:20%; width:60%; height:35%; background: linear-gradient(180deg, #2a2a1e 0%, #3a3a2a 50%, #2a2a1e 100%); border-radius:10% 10% 0 0; transform: perspective(400px) rotateX(20deg); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: mcd-stairs 12s ease-in-out infinite alternate; }
.scn-map-carried-downstairs .map-roll { position:absolute; bottom:30%; left:35%; width:40px; height:24px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 50% 50% / 30% 30% 70% 70%; transform: rotate(-20deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: mcd-map 6s ease-in-out infinite; }
.scn-map-carried-downstairs .corporal-silhouette { position:absolute; bottom:20%; left:38%; width:24px; height:50px; background: linear-gradient(180deg, #1a140a 0%, #0a0804 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mcd-corp 8s ease-in-out infinite; }
.scn-map-carried-downstairs .lantern-glow { position:absolute; bottom:35%; left:55%; width:12px; height:16px; background: radial-gradient(circle, #e0b060 0%, #a08040 70%); border-radius:30% 30% 40% 40%; box-shadow: 0 0 20px 6px #b09050, 0 0 40px 12px rgba(176,144,80,.4); animation: mcd-lantern 3s ease-in-out infinite alternate; }
.scn-map-carried-downstairs .shadow-fall { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(0,0,0,.8) 0%, transparent 100%); }
.scn-map-carried-downstairs .dust-mote { position:absolute; top:20%; left:30%; width:6px; height:6px; background: rgba(255,230,180,.3); border-radius:50%; filter: blur(2px); animation: mcd-dust 15s linear infinite; }
@keyframes mcd-stairs { 0% { transform: perspective(400px) rotateX(20deg) translateY(0); } 50% { transform: perspective(400px) rotateX(18deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(22deg) translateY(0); } }
@keyframes mcd-map { 0% { transform: rotate(-20deg) translate(0,0); } 50% { transform: rotate(-18deg) translate(2px,-3px); } 100% { transform: rotate(-22deg) translate(0,0); } }
@keyframes mcd-corp { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(8px) translateY(0) rotate(0); } 75% { transform: translateX(4px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes mcd-lantern { 0% { box-shadow: 0 0 15px 4px #b09050, 0 0 30px 8px rgba(176,144,80,.3); opacity:.8; } 50% { box-shadow: 0 0 30px 10px #d0b070, 0 0 50px 16px rgba(208,176,112,.5); opacity:1; } 100% { box-shadow: 0 0 20px 5px #b09050, 0 0 40px 10px rgba(176,144,80,.4); opacity:.9; } }
@keyframes mcd-dust { 0% { transform: translate(-10px,0) scale(1); opacity:0; } 20% { opacity:1; } 80% { opacity:1; } 100% { transform: translate(30px,-20px) scale(0.5); opacity:0; } }

/* Scene: corporal-points-to-map (funny, dim-interior) */
.scn-corporal-points-to-map {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%),
              radial-gradient(ellipse at 40% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-corporal-points-to-map .bg-warm { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a0e 0%, #3a2a1a 50%, #2a1a0e 100%); }
.scn-corporal-points-to-map .map-table { position:absolute; bottom:10%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:5% 5% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.5); transform: perspective(200px) rotateX(10deg); }
.scn-corporal-points-to-map .map-paper { position:absolute; bottom:16%; left:35%; width:50px; height:60px; background: linear-gradient(180deg, #c8b898 0%, #a08868 100%); border-radius:5%; transform: rotate(2deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: cpm-paper 6s ease-in-out infinite; }
.scn-corporal-points-to-map .corporal-hand { position:absolute; bottom:28%; left:38%; width:8px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; transform: rotate(20deg) translateX(10px); animation: cpm-hand 3s ease-in-out infinite; }
.scn-corporal-points-to-map .bridget-shoulder { position:absolute; bottom:20%; left:52%; width:24px; height:20px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:60% 60% 40% 40% / 80% 80% 20% 20%; transform: rotate(-10deg); animation: cpm-shoulder 4s ease-in-out infinite alternate; }
.scn-corporal-points-to-map .bridget-dress { position:absolute; bottom:10%; left:50%; width:20px; height:25px; background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%); border-radius:30% 30% 20% 20% / 50% 50% 50% 50%; }
.scn-corporal-points-to-map .candle-flicker { position:absolute; bottom:30%; left:25%; width:8px; height:16px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(208,144,80,.3); animation: cpm-candle 2s ease-in-out infinite alternate; }
@keyframes cpm-paper { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes cpm-hand { 0% { transform: rotate(20deg) translateX(10px) translateY(0); } 50% { transform: rotate(25deg) translateX(12px) translateY(-3px); } 100% { transform: rotate(15deg) translateX(8px) translateY(0); } }
@keyframes cpm-shoulder { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes cpm-candle { 0% { box-shadow: 0 0 15px 4px #d09050, 0 0 30px 8px rgba(208,144,80,.3); opacity:.8; } 50% { box-shadow: 0 0 25px 8px #e0a060, 0 0 45px 14px rgba(224,160,96,.5); opacity:1; } 100% { box-shadow: 0 0 18px 5px #d09050, 0 0 35px 10px rgba(208,144,80,.4); opacity:.9; } }

/* Scene: bridgets-manual-test (funny, dim-interior) */
.scn-bridgets-manual-test {
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 50%, #0e0a08 100%),
              radial-gradient(ellipse at 60% 40%, #3a2a20 0%, transparent 60%);
}
.scn-bridgets-manual-test .panel-wood { position:absolute; inset:0; background: linear-gradient(90deg, #1e1612 0%, #2a1e18 50%, #1e1612 100%); }
.scn-bridgets-manual-test .bridget-hand-left { position:absolute; bottom:30%; left:30%; width:50px; height:20px; background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%); border-radius:80% 80% 50% 50% / 60% 60% 40% 40%; transform: rotate(5deg); box-shadow: inset 0 -4px 6px rgba(0,0,0,.3); animation: bmt-hl 8s ease-in-out infinite; }
.scn-bridgets-manual-test .bridget-hand-right { position:absolute; bottom:30%; left:42%; width:20px; height:40px; background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%); border-radius:60% 60% 40% 40% / 80% 80% 20% 20%; transform: rotate(-10deg); box-shadow: inset 0 -4px 6px rgba(0,0,0,.3); animation: bmt-hr 6s ease-in-out infinite; }
.scn-bridgets-manual-test .fingers-slide { position:absolute; bottom:35%; left:35%; width:30px; height:6px; background: linear-gradient(90deg, #8a6a5a 0%, #6a4a3a 100%); border-radius:50%; transform: translateY(0); animation: bmt-fingers 4s ease-in-out infinite; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-bridgets-manual-test .shadow-cast { position:absolute; bottom:0; left:20%; width:60%; height:15%; background: linear-gradient(0deg, rgba(0,0,0,.7) 0%, transparent 100%); }
.scn-bridgets-manual-test .table-edge { position:absolute; bottom:25%; left:10%; width:80%; height:4px; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius:2px; }
.scn-bridgets-manual-test .dust-specks { position:absolute; top:15%; left:10%; width:8px; height:8px; background: rgba(255,230,180,.2); border-radius:50%; filter: blur(1px); animation: bmt-dust 20s linear infinite; }
@keyframes bmt-hl { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(6deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes bmt-hr { 0% { transform: rotate(-10deg) translate(0,0); } 50% { transform: rotate(-8deg) translate(4px,-3px); } 100% { transform: rotate(-12deg) translate(0,0); } }
@keyframes bmt-fingers { 0% { transform: translateY(0) scaleX(1); } 25% { transform: translateY(-3px) scaleX(1.1); } 50% { transform: translateY(0) scaleX(1); } 75% { transform: translateY(-2px) scaleX(1.05); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes bmt-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 20% { opacity:1; } 80% { opacity:1; } 100% { transform: translate(40px,-30px) scale(0.3); opacity:0; } }

/* Scene: bridgets-uncertainty (funny, dim-interior) */
.scn-bridgets-uncertainty {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120e 50%, #0e0a06 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-bridgets-uncertainty .kitchen-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1e1610 0%, #2a1e18 50%, #1e1610 100%); }
.scn-bridgets-uncertainty .rolling-pin { position:absolute; bottom:25%; left:40%; width:60px; height:10px; background: linear-gradient(90deg, #8a7060 0%, #6a5040 100%); border-radius:50% / 100%; transform: rotate(20deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: bu-pin 4s ease-in-out infinite; }
.scn-bridgets-uncertainty .tear-drop { position:absolute; bottom:45%; left:45%; width:8px; height:12px; background: radial-gradient(circle at 40% 30%, #a0d0e0 0%, #8090a0 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; transform: rotate(10deg); box-shadow: 0 0 6px 2px rgba(128,144,160,.4); animation: bu-tear 6s ease-in-out infinite; opacity:0.8; }
.scn-bridgets-uncertainty .bridget-profile { position:absolute; bottom:30%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(-5deg); animation: bu-profile 8s ease-in-out infinite; }
.scn-bridgets-uncertainty .apron-fold { position:absolute; bottom:20%; left:32%; width:22px; height:18px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 50% 50%; transform: rotate(2deg); }
.scn-bridgets-uncertainty .fireplace-glow { position:absolute; bottom:10%; left:60%; width:30px; height:50px; background: radial-gradient(circle at 50% 60%, #d08040 0%, #a06030 50%, transparent 100%); border-radius:50%; filter: blur(8px); animation: bu-fire 5s ease-in-out infinite alternate; }
.scn-bridgets-uncertainty .shadow-dance { position:absolute; bottom:5%; left:20%; width:60%; height:20%; background: linear-gradient(0deg, rgba(0,0,0,.8) 0%, transparent 100%); }
.scn-bridgets-uncertainty .dust-motes { position:absolute; top:15%; left:20%; width:8px; height:8px; background: rgba(255,200,150,.15); border-radius:50%; filter: blur(2px); animation: bu-dust 18s linear infinite; }
@keyframes bu-pin { 0% { transform: rotate(20deg) translate(0,0); } 50% { transform: rotate(15deg) translate(2px,-4px); } 100% { transform: rotate(25deg) translate(0,0); } }
@keyframes bu-tear { 0% { transform: rotate(10deg) translateY(0) scale(1); opacity:0.8; } 25% { transform: rotate(8deg) translateY(-3px) scale(1.1); opacity:1; } 50% { transform: rotate(12deg) translateY(0) scale(1); opacity:0.8; } 75% { transform: rotate(10deg) translateY(-2px) scale(1.05); opacity:0.9; } 100% { transform: rotate(10deg) translateY(0) scale(1); opacity:0.8; } }
@keyframes bu-profile { 0% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(-6deg) translateX(-2px); } 50% { transform: rotate(-4deg) translateX(0); } 75% { transform: rotate(-7deg) translateX(-1px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes bu-fire { 0% { opacity:0.6; transform: scale(0.95); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.95); } }
@keyframes bu-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 20% { opacity:0.5; } 80% { opacity:0.5; } 100% { transform: translate(-30px,-40px) scale(0.3); opacity:0; } }

/* Scene: uncle-toby-baffled */
.scn-uncle-toby-baffled {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #dcc8b0 40%, #b89a7a 100%),
    radial-gradient(ellipse at 30% 70%, #f0e0c8 0%, transparent 60%);
}
.scn-uncle-toby-baffled .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d6c0 0%, #c4a88a 50%, #a08060 100%);
  animation: utb-room 15s ease-in-out infinite alternate;
}
.scn-uncle-toby-baffled .window-light {
  position: absolute; top: 5%; right: 8%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at center, #fff8e8 0%, #f0e0c0 40%, transparent 70%);
  animation: utb-window 6s ease-in-out infinite alternate;
}
.scn-uncle-toby-baffled .father {
  position: absolute; bottom: 15%; left: 20%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #6a4e3a 0%, #3d2a1a 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 30% 50%;
  transform-origin: bottom center;
  animation: utb-father 4s ease-in-out infinite;
}
.scn-uncle-toby-baffled .uncle {
  position: absolute; bottom: 15%; right: 22%; width: 18%; height: 42%;
  background: linear-gradient(180deg, #5a3e2a 0%, #2d1a0a 100%);
  border-radius: 30% 40% 40% 30% / 40% 50% 50% 40%;
  transform-origin: bottom center;
  animation: utb-uncle 3.5s ease-in-out infinite;
}
.scn-uncle-toby-baffled .pipe-father {
  position: absolute; bottom: 38%; left: 28%; width: 8%; height: 4%;
  background: #5a3a22;
  border-radius: 40% 20% 20% 40%;
  transform: rotate(-15deg);
  animation: utb-pipe 2s ease-in-out infinite alternate;
}
.scn-uncle-toby-baffled .pipe-uncle {
  position: absolute; bottom: 36%; right: 33%; width: 10%; height: 4%;
  background: #5a3a22;
  border-radius: 40% 20% 20% 40%;
  transform: rotate(20deg);
  animation: utb-pipe 2.5s ease-in-out infinite alternate;
}
.scn-uncle-toby-baffled .smoke-1 {
  position: absolute; bottom: 40%; left: 30%; width: 6%; height: 12%;
  background: radial-gradient(ellipse at center, rgba(200,180,160,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: utb-smoke 6s ease-in-out infinite;
}
.scn-uncle-toby-baffled .smoke-2 {
  position: absolute; bottom: 38%; right: 35%; width: 5%; height: 10%;
  background: radial-gradient(ellipse at center, rgba(200,180,160,0.4) 0%, transparent 70%);
  filter: blur(3px);
  animation: utb-smoke 7s ease-in-out infinite 1s;
}
@keyframes utb-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes utb-window { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes utb-father { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(1px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes utb-uncle { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(3deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes utb-pipe { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.1); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes utb-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-15px) scale(1.5); opacity: 0.2; } 100% { transform: translateY(-30px) scale(2); opacity: 0; } }

/* Scene: father-on-clocks */
.scn-father-on-clocks {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 40%, #a08870 100%),
    radial-gradient(ellipse at 50% 20%, #f0e8d8 0%, transparent 50%);
}
.scn-father-on-clocks .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #d8c8b0 0%, #b8a088 50%, #d0b898 100%);
  animation: foc-wall 20s ease-in-out infinite alternate;
}
.scn-father-on-clocks .clock-face {
  position: absolute; top: 10%; left: 50%; width: 30%; height: 40%;
  transform: translateX(-50%);
  background: radial-gradient(circle at center, #f0e8d8 30%, #c8b090 70%, #8a7058 100%);
  border-radius: 50%;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
.scn-father-on-clocks .clock-hands {
  position: absolute; top: 10%; left: 50%; width: 30%; height: 40%;
  transform: translateX(-50%);
  background: 
    conic-gradient(from 90deg, transparent 0deg, #3a2a1a 0deg 15deg, transparent 15deg 180deg, #3a2a1a 180deg 195deg, transparent 195deg 360deg);
  border-radius: 50%;
  animation: foc-hands 12s linear infinite;
}
.scn-father-on-clocks .pendulum {
  position: absolute; top: 48%; left: 50%; width: 2%; height: 30%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 20% 20% 80% 80%;
  transform-origin: top center;
  animation: foc-pendulum 2s ease-in-out infinite;
}
.scn-father-on-clocks .father-silhouette {
  position: absolute; bottom: 5%; left: 10%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 40% 40% 30% / 40% 30% 30% 40%;
  transform-origin: bottom center;
  animation: foc-father 7s ease-in-out infinite;
}
.scn-father-on-clocks .desk {
  position: absolute; bottom: 0; left: 5%; width: 35%; height: 15%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-father-on-clocks .inkwell {
  position: absolute; bottom: 10%; left: 25%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 30% 30% 20% 20%;
}
@keyframes foc-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes foc-hands { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes foc-pendulum { 0% { transform: translateX(-50%) rotate(-15deg); } 50% { transform: translateX(-50%) rotate(15deg); } 100% { transform: translateX(-50%) rotate(-15deg); } }
@keyframes foc-father { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Scene: smoke-jack-comparison */
.scn-smoke-jack-comparison {
  background: 
    linear-gradient(180deg, #f5dcc0 0%, #d4b890 50%, #b09070 100%),
    radial-gradient(ellipse at 60% 80%, #e8c8a0 0%, transparent 60%);
}
.scn-smoke-jack-comparison .hearth-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4b890 0%, #b89878 50%, #a08060 100%);
}
.scn-smoke-jack-comparison .fire-glow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 90%, #ffaa44 0%, #cc7722 40%, transparent 70%);
  animation: sjc-fire 3s ease-in-out infinite alternate;
}
.scn-smoke-jack-comparison .smoke-jack {
  position: absolute; bottom: 30%; left: 50%; width: 20%; height: 20%;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: sjc-jack 4s linear infinite;
}
.scn-smoke-jack-comparison .pipe-toby {
  position: absolute; bottom: 25%; left: 55%; width: 12%; height: 5%;
  background: #5a3a22;
  border-radius: 40% 20% 20% 40%;
  transform: rotate(30deg);
  animation: sjc-pipe 2s ease-in-out infinite alternate;
}
.scn-smoke-jack-comparison .smoke-spiral {
  position: absolute; bottom: 45%; left: 45%; width: 8%; height: 20%;
  background: radial-gradient(ellipse at center, rgba(180,150,120,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: sjc-smoke 8s ease-in-out infinite;
}
.scn-smoke-jack-comparison .uncle-profile {
  position: absolute; bottom: 5%; right: 15%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #4a3020 0%, #1a0a00 100%);
  border-radius: 30% 40% 40% 30% / 40% 30% 30% 40%;
  transform-origin: bottom center;
  animation: sjc-uncle 5s ease-in-out infinite;
}
@keyframes sjc-fire { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes sjc-jack { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes sjc-pipe { 0% { transform: rotate(30deg) scaleX(1); } 50% { transform: rotate(25deg) scaleX(1.1); } 100% { transform: rotate(30deg) scaleX(1); } }
@keyframes sjc-smoke { 0% { transform: translateY(0) translateX(0) rotate(0deg); opacity: 0.6; } 50% { transform: translateY(-20px) translateX(10px) rotate(180deg); opacity: 0.3; } 100% { transform: translateY(-40px) translateX(-5px) rotate(360deg); opacity: 0; } }
@keyframes sjc-uncle { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-5px) rotate(2deg); } 66% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* Scene: lost-conjuncture */
.scn-lost-conjuncture {
  background: 
    linear-gradient(180deg, #2a2030 0%, #1a1020 40%, #0f0a18 100%),
    radial-gradient(ellipse at 40% 60%, #3a2a4a 0%, transparent 70%);
}
.scn-lost-conjuncture .dim-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2030 0%, #1a1520 50%, #0f0a18 100%);
  animation: lc-room 20s ease-in-out infinite alternate;
}
.scn-lost-conjuncture .window-dusk {
  position: absolute; top: 8%; left: 5%; width: 25%; height: 35%;
  background: radial-gradient(ellipse at center, #4a6070 0%, #2a3a50 30%, #1a2030 60%, transparent 80%);
  border-radius: 5% 5% 30% 30% / 10% 10% 40% 40%;
  animation: lc-dusk 8s ease-in-out infinite alternate;
}
.scn-lost-conjuncture .father-figure {
  position: absolute; bottom: 20%; left: 18%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 30% 50%;
  transform-origin: bottom center;
  animation: lc-father 9s ease-in-out infinite;
}
.scn-lost-conjuncture .uncle-figure {
  position: absolute; bottom: 22%; right: 20%; width: 18%; height: 38%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 30% 40% 40% 30% / 40% 50% 50% 40%;
  transform-origin: bottom center;
  animation: lc-uncle 9s ease-in-out infinite 0.5s;
}
.scn-lost-conjuncture .table {
  position: absolute; bottom: 8%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-lost-conjuncture .candle {
  position: absolute; bottom: 22%; left: 48%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #f0d090 0%, #c8a060 50%, #806040 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  animation: lc-candle 4s ease-in-out infinite alternate;
}
.scn-lost-conjuncture .shadow-void {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 48% 30%, transparent 50%, #0a0510 100%);
  pointer-events: none;
}
@keyframes lc-room { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes lc-dusk { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes lc-father { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-2px) rotate(-2deg); } 80% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lc-uncle { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-2px) rotate(2deg); } 80% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lc-candle { 0% { transform: scaleY(1) scaleX(1); opacity: 0.8; } 50% { transform: scaleY(1.05) scaleX(0.95); opacity: 1; } 100% { transform: scaleY(0.98) scaleX(1.02); opacity: 0.7; } }

.scn-address-to-critics {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 40%, #d4b886 100%),
    radial-gradient(ellipse at 50% 30%, #fff2d6 0%, transparent 60%),
    linear-gradient(90deg, rgba(180,140,80,0.15) 0%, transparent 50%, rgba(180,140,80,0.1) 100%);
}
.scn-address-to-critics .wall-glow { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #fff5e0 0%, #f0dbb0 60%, transparent 100%); animation: atc-wall 10s ease-in-out infinite alternate; }
.scn-address-to-critics .lectern { position:absolute; bottom:18%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6e4e 0%, #5a4230 100%); border-radius:4% 4% 6% 6%; box-shadow: 0 8px 20px rgba(60,40,20,0.5); }
.scn-address-to-critics .critic-left { position:absolute; bottom:20%; left:20%; width:50px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atc-critic-l 6s ease-in-out infinite; }
.scn-address-to-critics .critic-right { position:absolute; bottom:20%; right:18%; width:50px; height:85px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1510 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atc-critic-r 6s ease-in-out infinite 1.5s; }
.scn-address-to-critics .beard-l { position:absolute; bottom:22%; left:18%; width:30px; height:40px; background: linear-gradient(180deg, #b8a088 0%, #8a7868 100%); border-radius:40% 40% 60% 60% / 30% 30% 70% 70%; filter: blur(1px); animation: atc-beard 8s ease-in-out infinite; }
.scn-address-to-critics .beard-r { position:absolute; bottom:22%; right:16%; width:32px; height:44px; background: linear-gradient(180deg, #a89078 0%, #786858 100%); border-radius:40% 40% 60% 60% / 30% 30% 70% 70%; filter: blur(1px); animation: atc-beard 8s ease-in-out infinite 2s; }
.scn-address-to-critics .scroll { position:absolute; bottom:40%; left:50%; width:50px; height:14px; transform:translateX(-50%); background: linear-gradient(180deg, #f0e0c0 0%, #d4c4a0 100%); border-radius:20% 20% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: atc-scroll 4s ease-in-out infinite; }
.scn-address-to-critics .quill { position:absolute; bottom:42%; left:44%; width:6px; height:18px; background: linear-gradient(180deg, #e8d8c0 0%, #b0a088 100%); border-radius:20% 20% 40% 40%; transform:rotate(-20deg); transform-origin: bottom center; animation: atc-quill 3s ease-in-out infinite; }
.scn-address-to-critics .shadow-strip { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(40,30,20,0.4) 0%, transparent 100%); }
@keyframes atc-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes atc-critic-l { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(4px) rotate(2deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(-3px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes atc-critic-r { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(-4px) rotate(-2deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(5px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes atc-beard { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes atc-scroll { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.1) } 100% { transform:translateX(-50%) scaleY(1) } }
@keyframes atc-quill { 0% { transform:rotate(-20deg) } 50% { transform:rotate(-10deg) } 100% { transform:rotate(-20deg) } }

.scn-wish-for-wit-extravagant {
  background: 
    linear-gradient(180deg, #fef8e8 0%, #f5e0b8 30%, #e8c888 60%, #d4a868 100%),
    radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 50%);
}
.scn-wish-for-wit-extravagant .room-bright { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fff8e8 0%, #f0e0b8 50%, transparent 100%); animation: wfw-bright 8s ease-in-out infinite alternate; }
.scn-wish-for-wit-extravagant .desk { position:absolute; bottom:15%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #b8a080 0%, #786050 100%); border-radius:4% 4% 6% 6%; box-shadow: 0 8px 20px rgba(40,30,20,0.5); }
.scn-wish-for-wit-extravagant .writer { position:absolute; bottom:15%; left:35%; width:55px; height:85px; background: linear-gradient(180deg, #2a2218 0%, #0e0a06 100%); border-radius:45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wfw-writer 4s ease-in-out infinite; }
.scn-wish-for-wit-extravagant .arm-write { position:absolute; bottom:30%; left:33%; width:32px; height:10px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:30% 30% 20% 20%; transform:rotate(-30deg); transform-origin: right center; animation: wfw-arm 3s ease-in-out infinite; }
.scn-wish-for-wit-extravagant .inkpot { position:absolute; bottom:24%; left:24%; width:14px; height:16px; background: #1a1010; border-radius:30% 30% 20% 20%; box-shadow: 0 0 8px 2px rgba(20,10,10,0.5); }
.scn-wish-for-wit-extravagant .burst-1 { position:absolute; top:15%; right:20%; width:80px; height:80px; background: radial-gradient(circle, #ffd080 0%, #f0a040 30%, transparent 70%); border-radius:50%; filter: blur(6px); animation: wfw-burst 5s ease-in-out infinite; }
.scn-wish-for-wit-extravagant .burst-2 { position:absolute; top:10%; left:10%; width:60px; height:60px; background: radial-gradient(circle, #ffe090 0%, #f0b050 30%, transparent 70%); border-radius:50%; filter: blur(8px); animation: wfw-burst 5s ease-in-out infinite 2.5s; }
.scn-wish-for-wit-extravagant .sparkle { position:absolute; top:25%; left:45%; width:10px; height:10px; background: #fff0c0; border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,240,192,0.6); animation: wfw-sparkle 2s ease-in-out infinite; }
@keyframes wfw-bright { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes wfw-writer { 0% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(2px) rotate(1deg) } 50% { transform:translateX(0) rotate(-1deg) } 75% { transform:translateX(-2px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes wfw-arm { 0% { transform:rotate(-30deg) } 50% { transform:rotate(-15deg) } 100% { transform:rotate(-30deg) } }
@keyframes wfw-burst { 0% { transform:scale(0.8); opacity:0.5 } 50% { transform:scale(1.2); opacity:1 } 100% { transform:scale(0.9); opacity:0.6 } }
@keyframes wfw-sparkle { 0% { transform:scale(0); opacity:0 } 50% { transform:scale(1.5); opacity:1 } 100% { transform:scale(0); opacity:0 } }

.scn-judgment-reconciliation {
  background: 
    linear-gradient(180deg, #fef5e8 0%, #f0dfc8 30%, #e0c8a8 60%, #c8a880 100%),
    radial-gradient(ellipse at 50% 40%, #fff8f0 0%, transparent 60%);
}
.scn-judgment-reconciliation .floor-warm { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #c8a880 0%, #d8b898 100%); border-radius:20% 20% 0 0 / 10% 10% 0 0; }
.scn-judgment-reconciliation .figure-a { position:absolute; bottom:18%; left:28%; width:45px; height:75px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jr-figure-a 6s ease-in-out infinite; }
.scn-judgment-reconciliation .figure-b { position:absolute; bottom:18%; right:28%; width:45px; height:75px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jr-figure-b 6s ease-in-out infinite; }
.scn-judgment-reconciliation .hand-clasp { position:absolute; bottom:35%; left:50%; width:20px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: jr-clasp 4s ease-in-out infinite; }
.scn-judgment-reconciliation .glow-ring { position:absolute; bottom:28%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #ffe8c0 0%, #f0c880 40%, transparent 70%); border-radius:50%; filter: blur(10px); animation: jr-glow 5s ease-in-out infinite alternate; }
.scn-judgment-reconciliation .particle-a { position:absolute; bottom:40%; left:35%; width:6px; height:6px; background: #ffe8c0; border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,232,192,0.5); animation: jr-particle 4s ease-in-out infinite; }
.scn-judgment-reconciliation .particle-b { position:absolute; bottom:40%; right:35%; width:6px; height:6px; background: #ffe8c0; border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,232,192,0.5); animation: jr-particle 4s ease-in-out infinite 2s; }
@keyframes jr-figure-a { 0% { transform:translateX(0) } 25% { transform:translateX(6px) } 50% { transform:translateX(0) } 75% { transform:translateX(-2px) } 100% { transform:translateX(0) } }
@keyframes jr-figure-b { 0% { transform:translateX(0) } 25% { transform:translateX(-6px) } 50% { transform:translateX(0) } 75% { transform:translateX(2px) } 100% { transform:translateX(0) } }
@keyframes jr-clasp { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.15) } 100% { transform:translateX(-50%) scaleY(1) } }
@keyframes jr-glow { 0% { opacity:0.4; transform:translateX(-50%) scale(1) } 50% { opacity:0.8; transform:translateX(-50%) scale(1.2) } 100% { opacity:0.5; transform:translateX(-50%) scale(1.05) } }
@keyframes jr-particle { 0% { transform:translateY(0) scale(1); opacity:0 } 50% { transform:translateY(-15px) scale(1.5); opacity:1 } 100% { transform:translateY(-30px) scale(0.8); opacity:0 } }

.scn-quantum-of-wit {
  background: 
    linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 30%, #c8b898 60%, #a89878 100%),
    radial-gradient(ellipse at 50% 20%, #f8f0e0 0%, transparent 50%);
}
.scn-quantum-of-wit .col-back { position:absolute; bottom:0; left:50%; width:120px; height:100%; transform:translateX(-50%); background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 40%, #988878 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 0 40px rgba(80,60,40,0.2); }
.scn-quantum-of-wit .scale-base { position:absolute; bottom:25%; left:50%; width:80px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #b8a080 0%, #887060 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 4px 10px rgba(40,30,20,0.4); }
.scn-quantum-of-wit .pan-left { position:absolute; bottom:20%; left:28%; width:50px; height:14px; background: linear-gradient(180deg, #d0c0a8 0%, #b0a088 100%); border-radius:30% 30% 10% 10%; transform-origin: right center; animation: qw-pan-l 6s ease-in-out infinite; }
.scn-quantum-of-wit .pan-right { position:absolute; bottom:20%; right:28%; width:50px; height:14px; background: linear-gradient(180deg, #d0c0a8 0%, #b0a088 100%); border-radius:30% 30% 10% 10%; transform-origin: left center; animation: qw-pan-r 6s ease-in-out infinite; }
.scn-quantum-of-wit .orb-wit { position:absolute; bottom:32%; left:28%; width:20px; height:20px; background: radial-gradient(circle, #ffe8a0 0%, #e0b060 60%, #c09040 100%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(224,176,96,0.5); animation: qw-orb-w 4s ease-in-out infinite; }
.scn-quantum-of-wit .orb-judge { position:absolute; bottom:32%; right:28%; width:20px; height:20px; background: radial-gradient(circle, #b0d0e8 0%, #7090b0 60%, #5070a0 100%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(112,144,176,0.5); animation: qw-orb-j 4s ease-in-out infinite 1s; }
.scn-quantum-of-wit .beam-hint { position:absolute; bottom:25%; left:50%; width:2px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, transparent 0%, #d0c0a8 50%, transparent 100%); animation: qw-beam 5s ease-in-out infinite; }
.scn-quantum-of-wit .glow-ambient { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, rgba(240,232,216,0.3) 0%, transparent 60%); animation: qw-ambient 8s ease-in-out infinite alternate; }
@keyframes qw-pan-l { 0% { transform:rotate(0) } 25% { transform:rotate(-8deg) } 50% { transform:rotate(0) } 75% { transform:rotate(-4deg) } 100% { transform:rotate(0) } }
@keyframes qw-pan-r { 0% { transform:rotate(0) } 25% { transform:rotate(8deg) } 50% { transform:rotate(0) } 75% { transform:rotate(4deg) } 100% { transform:rotate(0) } }
@keyframes qw-orb-w { 0% { transform:translateY(0) scale(1); opacity:0.9 } 50% { transform:translateY(-6px) scale(1.1); opacity:1 } 100% { transform:translateY(0) scale(1); opacity:0.9 } }
@keyframes qw-orb-j { 0% { transform:translateY(0) scale(1); opacity:0.9 } 50% { transform:translateY(6px) scale(0.9); opacity:1 } 100% { transform:translateY(0) scale(1); opacity:0.9 } }
@keyframes qw-beam { 0% { opacity:0.2 } 50% { opacity:0.6 } 100% { opacity:0.2 } }
@keyframes qw-ambient { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }

.scn-corporals-military-plan {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9c4a0 50%, #b89a70 100%),
    radial-gradient(ellipse at 50% 80%, #e8d8b0 0%, transparent 60%);
}
.scn-corporals-military-plan .cmp-room { position:absolute; inset:0; background: linear-gradient(135deg, #f0e0c0 0%, #d4bc94 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.1); }
.scn-corporals-military-plan .cmp-window { position:absolute; top:10%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #b0d4f0 0%, #d0e8ff 100%); border-radius: 10px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: cmp-light 8s ease-in-out infinite alternate; }
.scn-corporals-military-plan .cmp-table { position:absolute; bottom:20%; left:20%; width:50%; height:20%; background: linear-gradient(180deg, #8b6f4a 0%, #6d5738 100%); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-corporals-military-plan .cmp-map { position:absolute; bottom:22%; left:25%; width:40%; height:14%; background: linear-gradient(135deg, #d4be8c 0%, #c4a87c 50%, #b89a70 100%); border-radius: 4px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
.scn-corporals-military-plan .cmp-corporal { position:absolute; bottom:24%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cmp-gesture 3s ease-in-out infinite; }
.scn-corporals-military-plan .cmp-toby { position:absolute; bottom:24%; right:30%; width:22px; height:48px; background: linear-gradient(180deg, #504030 0%, #403020 50%, #302010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cmp-nod 5s ease-in-out infinite; }
.scn-corporals-military-plan .cmp-pointer { position:absolute; bottom:34%; left:42%; width:4px; height:20px; background: #6d4f2e; border-radius: 2px; transform-origin: bottom center; animation: cmp-point 2s ease-in-out infinite; }
.scn-corporals-military-plan .cmp-chair { position:absolute; bottom:22%; right:25%; width:28px; height:32px; background: linear-gradient(180deg, #7a6040 0%, #5a4530 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
@keyframes cmp-light { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes cmp-gesture { 0% { transform: translateX(0) translateY(0) rotate(-10deg); } 30% { transform: translateX(8px) translateY(-4px) rotate(15deg); } 60% { transform: translateX(-2px) translateY(0) rotate(-5deg); } 100% { transform: translateX(0) translateY(0) rotate(-10deg); } }
@keyframes cmp-nod { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cmp-point { 0% { transform: rotate(-20deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-20deg); } }

.scn-choosing-breeches {
  background:
    linear-gradient(180deg, #f5e0c0 0%, #e0c8a0 40%, #c8a880 100%),
    radial-gradient(ellipse at 50% 90%, #f0d8b0 0%, transparent 60%);
}
.scn-choosing-breeches .cb-room { position:absolute; inset:0; background: linear-gradient(135deg, #f0dcc0 0%, #d8c098 100%); box-shadow: inset 0 0 50px rgba(0,0,0,0.08); }
.scn-choosing-breeches .cb-breeches { position:absolute; top:20%; left:50%; width:50px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #7a3010 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: cb-sway 4s ease-in-out infinite; }
.scn-choosing-breeches .cb-toby { position:absolute; bottom:20%; left:25%; width:24px; height:50px; background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 50%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cb-tilt 6s ease-in-out infinite; }
.scn-choosing-breeches .cb-corporal { position:absolute; bottom:18%; right:30%; width:20px; height:44px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cb-brush 3s ease-in-out infinite; }
.scn-choosing-breeches .cb-sword { position:absolute; bottom:30%; right:20%; width:4px; height:30px; background: #c0c0c0; border-radius: 2px; transform: rotate(15deg); box-shadow: 0 0 6px rgba(255,255,255,0.2); }
.scn-choosing-breeches .cb-chair { position:absolute; bottom:22%; left:20%; width:30px; height:34px; background: linear-gradient(180deg, #8a6a44 0%, #6a4f30 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
@keyframes cb-sway { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes cb-tilt { 0% { transform: rotate(0); } 30% { transform: rotate(5deg); } 60% { transform: rotate(-2deg); } 100% { transform: rotate(0); } }
@keyframes cb-brush { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(10deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-3px) rotate(-10deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-item-montero-cap-preparation {
  background:
    linear-gradient(180deg, #f8e4c8 0%, #e4ccaa 40%, #ccb08a 100%),
    radial-gradient(ellipse at 50% 70%, #f0d8b0 0%, transparent 70%);
}
.scn-item-montero-cap-preparation .mcp-room { position:absolute; inset:0; background: linear-gradient(135deg, #f4dcc0 0%, #dcc4a0 100%); box-shadow: inset 0 0 50px rgba(0,0,0,0.05); }
.scn-item-montero-cap-preparation .mcp-montero { position:absolute; top:10%; left:20%; width:40px; height:28px; background: radial-gradient(ellipse 50% 50% at 50% 50%, #8a6a4a 0%, #6a4f30 60%, #4a3520 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform: rotate(-5deg); animation: mcp-float 7s ease-in-out infinite; }
.scn-item-montero-cap-preparation .mcp-coat { position:absolute; top:12%; left:50%; width:45px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%; box-shadow: 0 6px 10px rgba(0,0,0,0.25); animation: mcp-sway 9s ease-in-out infinite alternate; }
.scn-item-montero-cap-preparation .mcp-razor { position:absolute; top:30%; left:35%; width:4px; height:25px; background: #c0c0c0; border-radius: 2px; transform: rotate(30deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.scn-item-montero-cap-preparation .mcp-mirror { position:absolute; top:25%; right:15%; width:20px; height:24px; background: radial-gradient(circle, #e0f0ff 0%, #b0c8e0 60%, #8090a0 100%); border-radius: 50%; box-shadow: 0 0 12px rgba(255,255,255,0.3); border: 2px solid #8a7a6a; }
.scn-item-montero-cap-preparation .mcp-corporal { position:absolute; bottom:20%; left:40%; width:18px; height:42px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mcp-polish 4s ease-in-out infinite; }
@keyframes mcp-float { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes mcp-sway { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes mcp-polish { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(5deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-uncle-toby-fears-battle {
  background:
    linear-gradient(180deg, #c8b8a0 0%, #a09078 50%, #7a6a58 100%),
    radial-gradient(ellipse at 30% 70%, #b0a088 0%, transparent 60%);
}
.scn-uncle-toby-fears-battle .utb-room { position:absolute; inset:0; background: linear-gradient(135deg, #c0b098 0%, #a09078 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.2); }
.scn-uncle-toby-fears-battle .utb-trench { position:absolute; bottom:10%; left:10%; width:40%; height:20%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 50%, #1a1a0a 100%); border-radius: 0 0 50% 50% / 0 0 80% 80%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-uncle-toby-fears-battle .utb-toby { position:absolute; bottom:25%; left:25%; width:22px; height:50px; background: linear-gradient(180deg, #4a4030 0%, #3a3020 50%, #2a2010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: utb-fear 4s ease-in-out infinite; }
.scn-uncle-toby-fears-battle .utb-corporal { position:absolute; bottom:28%; right:20%; width:20px; height:44px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: utb-gesture 5s ease-in-out infinite; }
.scn-uncle-toby-fears-battle .utb-shadow { position:absolute; bottom:20%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius: 30% 30% 0 0 / 100% 100% 0 0; animation: utb-shift 7s ease-in-out infinite; }
.scn-uncle-toby-fears-battle .utb-map { position:absolute; top:15%; right:10%; width:30%; height:20%; background: linear-gradient(135deg, #c0b088 0%, #a88e6a 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.3); transform: rotate(5deg); }
@keyframes utb-fear { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-4px) rotate(-5deg); } 60% { transform: translateY(2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes utb-gesture { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(8deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-3px) rotate(-8deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes utb-shift { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.05); } 100% { opacity:0.3; transform: scaleX(1); } }

/* Scene: maria-on-bank-description */
.scn-maria-on-bank-description {
  background: linear-gradient(180deg, #d47a3a 0%, #b85e2a 30%, #6a2e1a 70%, #2a1a0e 100%),
              radial-gradient(ellipse at 50% 0%, #f0a060 10%, transparent 40%);
}
.scn-maria-on-bank-description .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e8a050 0%, #d07030 50%, #b05520 100%);
  animation: mb-sky 14s ease-in-out infinite alternate;
}
.scn-maria-on-bank-description .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 50%, #2a3a4a 100%);
  border-radius: 50% 30% 0 0;
  animation: mb-river 8s ease-in-out infinite alternate;
}
.scn-maria-on-bank-description .bank {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 60% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.4);
}
.scn-maria-on-bank-description .figure-maria {
  position: absolute; bottom: 26%; left: 35%;
  width: 28px; height: 50px;
  background: linear-gradient(180deg, #8a6050 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-figure 6s ease-in-out infinite;
}
.scn-maria-on-bank-description .goat {
  position: absolute; bottom: 25%; left: 48%;
  width: 36px; height: 24px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mb-goat 5s ease-in-out infinite alternate;
}
.scn-maria-on-bank-description .postillion {
  position: absolute; bottom: 28%; left: 60%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: mb-post 10s ease-in-out infinite;
}
.scn-maria-on-bank-description .cloud-mb1,
.scn-maria-on-bank-description .cloud-mb2 {
  position: absolute; height: 14px;
  background: linear-gradient(180deg, rgba(255,200,150,0.6), rgba(255,255,200,0.1));
  border-radius: 50%;
  filter: blur(4px);
}
.scn-maria-on-bank-description .cloud-mb1 { top: 8%; left: 10%; width: 70px; animation: mb-drift 40s linear infinite; }
.scn-maria-on-bank-description .cloud-mb2 { top: 14%; right: 8%; width: 50px; animation: mb-drift 50s linear infinite reverse; }

@keyframes mb-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes mb-river { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes mb-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(2deg); } 70% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mb-goat { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(1px) scale(0.97); } 100% { transform: translateY(0) scale(1); } }
@keyframes mb-post { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mb-drift { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

/* Scene: narrator-addresses-maria */
.scn-narrator-addresses-maria {
  background: linear-gradient(180deg, #c86a2a 0%, #a04e1a 40%, #5a2a0e 70%, #1a0a04 100%),
              radial-gradient(ellipse at 50% 70%, #e08030 20%, transparent 60%);
}
.scn-narrator-addresses-maria .bg-dusk {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d08040 0%, #b06030 50%, #803a1a 100%);
  animation: na-sky 12s ease-in-out infinite alternate;
}
.scn-narrator-addresses-maria .chaise {
  position: absolute; bottom: 22%; left: 20%;
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 30% 20% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: na-chaise 8s ease-in-out infinite;
}
.scn-narrator-addresses-maria .figure-maria2 {
  position: absolute; bottom: 26%; left: 42%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #8a6050 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: na-maria 7s ease-in-out infinite;
}
.scn-narrator-addresses-maria .goat2 {
  position: absolute; bottom: 25%; left: 52%;
  width: 34px; height: 22px;
  background: linear-gradient(180deg, #b89870 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: na-goat 6s ease-in-out infinite alternate;
}
.scn-narrator-addresses-maria .narrator {
  position: absolute; bottom: 24%; left: 35%;
  width: 24px; height: 46px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0602 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: na-narrator 5s ease-in-out infinite;
}
.scn-narrator-addresses-maria .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 30% 40% 0 0;
}
.scn-narrator-addresses-maria .dust {
  position: absolute; bottom: 30%; left: 30%;
  width: 40px; height: 20px;
  background: radial-gradient(circle, rgba(200,160,100,0.6) 0%, rgba(200,160,100,0) 70%);
  filter: blur(3px);
  animation: na-dust 4s ease-in-out infinite alternate;
}
.scn-narrator-addresses-maria .grass {
  position: absolute; bottom: 28%; left: 10%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #4a6a2a 0%, #2a4a1a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: na-grass 3s ease-in-out infinite;
}
@keyframes na-sky { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.7; } }
@keyframes na-chaise { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes na-maria { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes na-goat { 0% { transform: scale(0.97) translateY(0); } 50% { transform: scale(1) translateY(1px); } 100% { transform: scale(0.97) translateY(0); } }
@keyframes na-narrator { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(1.5deg); } 70% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes na-dust { 0% { opacity: 0.3; transform: scale(1) translateY(0); } 100% { opacity: 1; transform: scale(1.5) translateY(-10px); } }
@keyframes na-grass { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }

/* Scene: adieu-to-maria */
.scn-adieu-to-maria {
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 40%, #050508 70%, #020206 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a3e 20%, transparent 60%);
}
.scn-adieu-to-maria .bg-dark {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a14 100%);
  animation: am-sky 18s ease-in-out infinite alternate;
}
.scn-adieu-to-maria .figure-silhouette {
  position: absolute; bottom: 18%; left: 45%;
  width: 36px; height: 60px;
  background: #080808;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 2px 2px rgba(0,0,0,0.8);
  animation: am-figure 10s ease-in-out infinite;
}
.scn-adieu-to-maria .pipe {
  position: absolute; bottom: 38%; left: 47%;
  width: 6px; height: 20px;
  background: #2a1a0a;
  border-radius: 50% 50% 10% 10% / 20% 20% 60% 60%;
  transform: rotate(-30deg);
  animation: am-pipe 4s ease-in-out infinite alternate;
}
.scn-adieu-to-maria .glow-pipe {
  position: absolute; bottom: 44%; left: 44%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #ffa040 0%, #ff8020 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(255,128,32,0.6);
  animation: am-glow 3s ease-in-out infinite alternate;
}
.scn-adieu-to-maria .tear {
  position: absolute; bottom: 28%; left: 47%;
  width: 4px; height: 6px;
  background: radial-gradient(circle, #a0c0ff 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(1px);
  animation: am-tear 6s ease-in-out infinite;
}
.scn-adieu-to-maria .branch {
  position: absolute; bottom: 0; left: 0; right: 0; height: 24%;
  background: linear-gradient(180deg, transparent 0%, #0a0602 60%, #050302 100%);
  border-radius: 60% 40% 0 0;
  animation: am-branch 20s ease-in-out infinite alternate;
}
@keyframes am-sky { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes am-figure { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes am-pipe { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-25deg); } 100% { transform: rotate(-30deg); } }
@keyframes am-glow { 0% { opacity: 0.5; box-shadow: 0 0 12px 4px rgba(255,128,32,0.4); } 50% { opacity: 1; box-shadow: 0 0 24px 10px rgba(255,128,32,0.8); } 100% { opacity: 0.6; box-shadow: 0 0 16px 6px rgba(255,128,32,0.5); } }
@keyframes am-tear { 0% { transform: translateY(0) scale(1); opacity: 0.2; } 30% { transform: translateY(-5px) scale(0.8); opacity: 0.8; } 70% { transform: translateY(3px) scale(1.2); opacity: 0.4; } 100% { transform: translateY(0) scale(1); opacity: 0.2; } }
@keyframes am-branch { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }

/* Scene: defense-of-blank-chapters */
.scn-defense-of-blank-chapters {
  background: linear-gradient(180deg, #302010 0%, #1a0e06 40%, #0a0502 80%, #050200 100%),
              radial-gradient(ellipse at 50% 40%, #504030 20%, transparent 70%);
}
.scn-defense-of-blank-chapters .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 30%, #1a0e06 70%, #0a0502 100%);
  border-radius: 0 0 30% 30%;
  animation: db-wall 20s ease-in-out infinite alternate;
}
.scn-defense-of-blank-chapters .lamp {
  position: absolute; top: 8%; left: 45%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #f0c080 0%, #c08040 50%, #703a1a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(240,192,128,0.3);
  animation: db-lamp 6s ease-in-out infinite alternate;
}
.scn-defense-of-blank-chapters .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%;
  height: 14px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
}
.scn-defense-of-blank-chapters .figure-narrator {
  position: absolute; bottom: 28%; left: 45%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0602 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: db-fig 3s ease-in-out infinite;
}
.scn-defense-of-blank-chapters .slipper {
  position: absolute; bottom: 36%; left: 55%;
  width: 20px; height: 12px;
  background: linear-gradient(180deg, #c8a030 0%, #a08020 100%);
  border-radius: 40% 40% 30% 20%;
  transform: rotate(30deg);
  animation: db-slipper 2s ease-in-out infinite;
}
.scn-defense-of-blank-chapters .shadow {
  position: absolute; bottom: 20%; left: 40%; right: 40%;
  height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 70%);
  filter: blur(4px);
  animation: db-shadow 3s ease-in-out infinite alternate;
}
.scn-defense-of-blank-chapters .book {
  position: absolute; bottom: 24%; left: 30%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4px;
  transform: rotate(-10deg);
  animation: db-book 4s ease-in-out infinite alternate;
}
@keyframes db-wall { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.85; } }
@keyframes db-lamp { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 12px 4px rgba(240,192,128,0.3); } 50% { transform: scale(1.05) rotate(3deg); box-shadow: 0 0 24px 10px rgba(240,192,128,0.6); } 100% { transform: scale(0.98) rotate(-2deg); box-shadow: 0 0 16px 6px rgba(240,192,128,0.4); } }
@keyframes db-fig { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(1px) rotate(-1deg); } }
@keyframes db-slipper { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(45deg) translateX(8px) translateY(-4px); } 100% { transform: rotate(30deg) translateX(0); } }
@keyframes db-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 100% { transform: scaleX(1.5); opacity: 0.6; } }
@keyframes db-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }

/* shandean-hypothesis */
.scn-shandean-hypothesis {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 40%, #4a3828 70%, #2a1e14 100%), radial-gradient(ellipse at 40% 30%, #5a3a20 0%, transparent 60%);
}
.scn-shandean-hypothesis .wall {
  position: absolute; inset: 0 0 30% 0;
  background: radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, #1a120a 100%);
  animation: sh-wall 20s ease-in-out infinite alternate;
}
.scn-shandean-hypothesis .shelf {
  position: absolute; bottom: 38%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: sh-shelf 15s ease-in-out infinite;
}
.scn-shandean-hypothesis .book-1 {
  position: absolute; bottom: 40%; left: 20%; width: 8px; height: 12%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a3020 100%);
  border-radius: 1px;
  transform: rotate(-3deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: sh-book1 9s ease-in-out infinite alternate;
}
.scn-shandean-hypothesis .book-2 {
  position: absolute; bottom: 40%; left: 30%; width: 10px; height: 14%;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 1px;
  transform: rotate(2deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: sh-book2 11s ease-in-out infinite alternate;
}
.scn-shandean-hypothesis .book-3 {
  position: absolute; bottom: 40%; left: 45%; width: 7px; height: 10%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%);
  border-radius: 1px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: sh-book3 13s ease-in-out infinite alternate;
}
.scn-shandean-hypothesis .figure {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 40%;
  background: linear-gradient(180deg, #1a120a 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px rgba(0,0,0,0.8);
  animation: sh-figure 7s ease-in-out infinite;
}
.scn-shandean-hypothesis .candle {
  position: absolute; bottom: 22%; left: 55%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #b08060 0%, #806040 100%);
  border-radius: 1px;
  animation: sh-candle 5s ease-in-out infinite;
}
.scn-shandean-hypothesis .glow {
  position: absolute; bottom: 28%; left: 52%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,200,120,0.8) 0%, rgba(255,200,120,0.2) 40%, transparent 70%);
  border-radius: 50%;
  animation: sh-glow 4s ease-in-out infinite alternate;
}
.scn-shandean-hypothesis .shadow {
  position: absolute; bottom: 20%; right: 30%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(6px);
  animation: sh-shadow 12s ease-in-out infinite alternate;
}
@keyframes sh-wall {
  0% { opacity: 0.85; filter: brightness(1); }
  50% { opacity: 0.95; filter: brightness(1.1); }
  100% { opacity: 0.9; filter: brightness(0.95); }
}
@keyframes sh-shelf {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes sh-book1 {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(-1deg); }
  100% { transform: rotate(-4deg); }
}
@keyframes sh-book2 {
  0% { transform: rotate(2deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(3deg); }
}
@keyframes sh-book3 {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(-2deg); }
  100% { transform: rotate(-6deg); }
}
@keyframes sh-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sh-candle {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes sh-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes sh-shadow {
  0% { transform: translateX(0) scale(1); }
  100% { transform: translateX(5px) scale(1.1); }
}

/* hypothesis-assimilation */
.scn-hypothesis-assimilation {
  background: linear-gradient(180deg, #2a2018 0%, #3a2a1e 40%, #4a3424 70%, #2a2018 100%), radial-gradient(ellipse at 50% 40%, #5a3a22 0%, transparent 70%);
}
.scn-hypothesis-assimilation .bg {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, #1a120c 100%);
  animation: ha-bg 18s ease-in-out infinite alternate;
}
.scn-hypothesis-assimilation .table {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: ha-table 14s ease-in-out infinite;
}
.scn-hypothesis-assimilation .man {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-man 8s ease-in-out infinite alternate;
}
.scn-hypothesis-assimilation .idea-1 {
  position: absolute; bottom: 45%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,220,120,0.7) 0%, rgba(255,200,80,0.3) 50%, transparent 100%);
  border-radius: 50%;
  animation: ha-idea1 5s ease-in-out infinite alternate;
}
.scn-hypothesis-assimilation .idea-2 {
  position: absolute; bottom: 50%; left: 55%; width: 16px; height: 16px;
  background: radial-gradient(circle, rgba(255,220,120,0.6) 0%, rgba(255,200,80,0.2) 50%, transparent 100%);
  border-radius: 50%;
  animation: ha-idea2 7s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-hypothesis-assimilation .idea-3 {
  position: absolute; bottom: 55%; left: 45%; width: 14px; height: 14px;
  background: radial-gradient(circle, rgba(255,220,120,0.5) 0%, rgba(255,200,80,0.1) 50%, transparent 100%);
  border-radius: 50%;
  animation: ha-idea3 6s ease-in-out infinite alternate;
  animation-delay: -4s;
}
.scn-hypothesis-assimilation .lamp {
  position: absolute; bottom: 32%; left: 70%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #c09060 0%, #806040 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: ha-lamp 10s ease-in-out infinite;
}
.scn-hypothesis-assimilation .glow {
  position: absolute; bottom: 35%; left: 65%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 60%);
  border-radius: 50%;
  animation: ha-glow 3s ease-in-out infinite alternate;
}
@keyframes ha-bg {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 0.95; filter: brightness(1.05); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes ha-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes ha-man {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ha-idea1 {
  0% { transform: translateY(0) scale(1); opacity: 0.7; }
  50% { transform: translateY(-10px) scale(1.2); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.7; }
}
@keyframes ha-idea2 {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-12px) scale(1.1); opacity: 0.9; }
  100% { transform: translateY(0) scale(1); opacity: 0.6; }
}
@keyframes ha-idea3 {
  0% { transform: translateY(0) scale(1); opacity: 0.5; }
  50% { transform: translateY(-8px) scale(1.3); opacity: 0.8; }
  100% { transform: translateY(0) scale(1); opacity: 0.5; }
}
@keyframes ha-lamp {
  0%,100% { transform: rotate(5deg); }
  50% { transform: rotate(3deg); }
}
@keyframes ha-glow {
  0% { opacity: 0.6; transform: scale(1); }
  100% { opacity: 0.9; transform: scale(1.2); }
}

/* caesarian-section */
.scn-caesarian-section {
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2222 40%, #4a2a2a 70%, #2a1a1a 100%), radial-gradient(ellipse at 50% 60%, #5a3030 0%, transparent 70%);
}
.scn-caesarian-section .deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, #1a1010 100%);
  animation: cs-deep 25s ease-in-out infinite alternate;
}
.scn-caesarian-section .frame {
  position: absolute; inset: 15% 10% 20% 10%;
  background: linear-gradient(135deg, #3a2828 0%, #2a1a1a 50%, #1a1010 100%);
  border-radius: 12px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: cs-frame 20s ease-in-out infinite;
}
.scn-caesarian-section .mother-silhouette {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: cs-mother 10s ease-in-out infinite alternate;
}
.scn-caesarian-section .baby {
  position: absolute; bottom: 30%; left: 42%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: cs-baby 8s ease-in-out infinite alternate;
}
.scn-caesarian-section .light-beam {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 80%);
  transform: rotate(-5deg);
  filter: blur(4px);
  animation: cs-beam 7s ease-in-out infinite alternate;
}
.scn-caesarian-section .sparkle-1 {
  position: absolute; top: 25%; left: 45%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(255,220,140,0.9) 0%, transparent 100%);
  border-radius: 50%;
  animation: cs-sparkle1 3s ease-in-out infinite;
}
.scn-caesarian-section .sparkle-2 {
  position: absolute; top: 35%; left: 55%; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(255,220,140,0.8) 0%, transparent 100%);
  border-radius: 50%;
  animation: cs-sparkle2 4s ease-in-out infinite;
  animation-delay: -1.5s;
}
.scn-caesarian-section .halo {
  position: absolute; top: 20%; left: 38%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,240,200,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: cs-halo 12s ease-in-out infinite alternate;
}
@keyframes cs-deep {
  0% { opacity: 0.8; filter: brightness(1); }
  100% { opacity: 0.95; filter: brightness(0.9); }
}
@keyframes cs-frame {
  0%,100% { transform: scale(1); }
  50% { transform: scale(0.98); }
}
@keyframes cs-mother {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes cs-baby {
  0% { transform: rotate(15deg) translateY(0) scale(1); }
  50% { transform: rotate(10deg) translateY(-3px) scale(1.05); }
  100% { transform: rotate(15deg) translateY(0) scale(1); }
}
@keyframes cs-beam {
  0% { opacity: 0.3; transform: rotate(-5deg); }
  50% { opacity: 0.6; transform: rotate(-8deg); }
  100% { opacity: 0.3; transform: rotate(-5deg); }
}
@keyframes cs-sparkle1 {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.5); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes cs-sparkle2 {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.8); opacity: 1; }
  100% { transform: scale(1); opacity: 0.7; }
}
@keyframes cs-halo {
  0% { opacity: 0.4; transform: scale(1); }
  100% { opacity: 0.7; transform: scale(1.1); }
}

/* hypothesis-application */
.scn-hypothesis-application {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 40%, #4a3422 70%, #2a1e14 100%), radial-gradient(ellipse at 30% 40%, #5a3a20 0%, transparent 70%);
}
.scn-hypothesis-application .wall {
  position: absolute; inset: 0 0 35% 0;
  background: radial-gradient(ellipse at 40% 20%, #3a2a1a 0%, #1a120a 100%);
  animation: hp-wall 22s ease-in-out infinite alternate;
}
.scn-hypothesis-application .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
  animation: hp-floor 18s ease-in-out infinite;
}
.scn-hypothesis-application .father {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hp-father 9s ease-in-out infinite alternate;
}
.scn-hypothesis-application .child {
  position: absolute; bottom: 18%; left: 50%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: hp-child 7s ease-in-out infinite alternate;
}
.scn-hypothesis-application .book-slab {
  position: absolute; bottom: 25%; left: 15%; width: 40px; height: 10px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: hp-book 12s ease-in-out infinite;
}
.scn-hypothesis-application .candle {
  position: absolute; bottom: 28%; left: 65%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #b08060 0%, #806040 100%);
  border-radius: 1px;
  animation: hp-candle 6s ease-in-out infinite;
}
.scn-hypothesis-application .glow {
  position: absolute; bottom: 30%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,200,100,0.5) 0%, transparent 60%);
  border-radius: 50%;
  animation: hp-glow 4s ease-in-out infinite alternate;
}
@keyframes hp-wall {
  0% { opacity: 0.85; filter: brightness(1); }
  50% { opacity: 0.95; filter: brightness(1.05); }
  100% { opacity: 0.9; filter: brightness(0.95); }
}
@keyframes hp-floor {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes hp-father {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hp-child {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes hp-book {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes hp-candle {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.03); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes hp-glow {
  0% { opacity: 0.6; transform: scale(1); }
  100% { opacity: 0.9; transform: scale(1.15); }
}

/* corporal-reacts-to-love */
.scn-corporal-reacts-to-love {
  background: linear-gradient(180deg, #f5e6d0 0%, #e3d0b8 40%, #c9b293 100%),
              radial-gradient(ellipse at 30% 40%, #fff5e6 0%, transparent 60%);
}
.scn-corporal-reacts-to-love .room-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d5bc 0%, #c9b293 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-corporal-reacts-to-love .window {
  position: absolute; top: 12%; left: 15%; width: 28%; height: 40%;
  background: linear-gradient(135deg, #d4e8f0 0%, #b8d0de 100%);
  border: 6px solid #8b7355; border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(255,255,240,0.6);
  animation: cl-window 12s ease-in-out infinite alternate;
}
.scn-corporal-reacts-to-love .table {
  position: absolute; bottom: 20%; left: 30%; width: 45%; height: 12%;
  background: linear-gradient(180deg, #7a5c3a 0%, #5a3e22 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: cl-table 8s ease-in-out infinite;
}
.scn-corporal-reacts-to-love .map {
  position: absolute; bottom: 24%; left: 38%; width: 20%; height: 16%;
  background: linear-gradient(135deg, #d4b896 0%, #b3936e 100%);
  border-radius: 2px; border: 2px solid #6b4f2e;
  transform: rotate(2deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
}
.scn-corporal-reacts-to-love .chair-left {
  position: absolute; bottom: 12%; left: 22%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #5a3e22 0%, #3d2a14 100%);
  border-radius: 40% 40% 30% 30% / 30% 30% 40% 40%;
  transform: rotate(2deg);
}
.scn-corporal-reacts-to-love .chair-right {
  position: absolute; bottom: 12%; right: 18%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #5a3e22 0%, #3d2a14 100%);
  border-radius: 40% 40% 30% 30% / 30% 30% 40% 40%;
  transform: rotate(-2deg);
}
.scn-corporal-reacts-to-love .corporal {
  position: absolute; bottom: 28%; left: 42%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #d4a574 0%, #b8835a 50%, #7a5c3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-corporal 5s ease-in-out infinite;
}
.scn-corporal-reacts-to-love .uncle-toby {
  position: absolute; bottom: 28%; right: 30%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #c9a67b 0%, #a8865e 50%, #6b4f2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-toby 6s ease-in-out infinite;
}
.scn-corporal-reacts-to-love .light-beam {
  position: absolute; top: 12%; left: 18%; width: 20%; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,230,0.4) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: cl-beam 4s ease-in-out infinite alternate;
}
@keyframes cl-window { 0% { opacity:0.9; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:0.85; transform:scaleY(0.98); } }
@keyframes cl-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cl-corporal { 0% { transform: rotate(-2deg) translateX(0); } 25% { transform: rotate(0deg) translateX(4px); } 50% { transform: rotate(3deg) translateX(2px); } 75% { transform: rotate(-1deg) translateX(6px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes cl-toby { 0% { transform: rotate(0deg) translateY(0); } 33% { transform: rotate(-5deg) translateY(-2px); } 66% { transform: rotate(2deg) translateY(0); } 100% { transform: rotate(0deg) translateY(1px); } }
@keyframes cl-beam { 0% { opacity:0.3; transform:scaleX(0.9); } 50% { opacity:0.6; transform:scaleX(1.1); } 100% { opacity:0.4; transform:scaleX(0.95); } }

/* plan-of-attack-discussion */
.scn-plan-of-attack-discussion {
  background: linear-gradient(180deg, #f0dcc0 0%, #dcc4a0 50%, #c0a880 100%),
              radial-gradient(ellipse at 40% 50%, #fff8e0 0%, transparent 60%);
}
.scn-plan-of-attack-discussion .study-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e0ccb0 0%, #c0a880 100%);
  border-radius: 0 0 20% 20% / 0 0 15% 15%;
}
.scn-plan-of-attack-discussion .table-lg {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #6b4f2e 0%, #4a3520 100%);
  border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: pa-table 10s ease-in-out infinite;
}
.scn-plan-of-attack-discussion .map-rolled {
  position: absolute; bottom: 22%; left: 45%; width: 18%; height: 14%;
  background: linear-gradient(135deg, #d4b896 0%, #b3936e 100%);
  border-radius: 4px; border: 2px solid #6b4f2e;
  transform: rotate(-3deg); box-shadow: 2px 3px 8px rgba(0,0,0,0.4);
  animation: pa-map 7s ease-in-out infinite;
}
.scn-plan-of-attack-discussion .candle {
  position: absolute; bottom: 24%; left: 50%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #fff8e0 0%, #d4a574 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.5);
  animation: pa-candle 3s ease-in-out infinite alternate;
}
.scn-plan-of-attack-discussion .corporal-pointing {
  position: absolute; bottom: 26%; left: 32%; width: 12%; height: 34%;
  background: linear-gradient(180deg, #d4a574 0%, #b8835a 50%, #7a5c3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: left 60%;
  animation: pa-point 4s ease-in-out infinite;
}
.scn-plan-of-attack-discussion .uncle-toby-listening {
  position: absolute; bottom: 26%; right: 28%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #c9a67b 0%, #a8865e 50%, #6b4f2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-toby 5s ease-in-out infinite;
}
.scn-plan-of-attack-discussion .chair-corporal {
  position: absolute; bottom: 10%; left: 28%; width: 14%; height: 24%;
  background: linear-gradient(180deg, #5a3e22 0%, #3d2a14 100%);
  border-radius: 40% 40% 30% 30% / 30% 30% 40% 40%;
  transform: rotate(3deg);
}
.scn-plan-of-attack-discussion .chair-toby {
  position: absolute; bottom: 10%; right: 22%; width: 16%; height: 26%;
  background: linear-gradient(180deg, #5a3e22 0%, #3d2a14 100%);
  border-radius: 40% 40% 30% 30% / 30% 30% 40% 40%;
  transform: rotate(-2deg);
}
@keyframes pa-table { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-4px); } }
@keyframes pa-map { 0% { transform:rotate(-3deg) translateY(0); } 33% { transform:rotate(-1deg) translateY(-2px); } 66% { transform:rotate(-4deg) translateY(0); } 100% { transform:rotate(-3deg) translateY(1px); } }
@keyframes pa-candle { 0% { opacity:0.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.05); } 100% { opacity:0.9; transform:scaleY(0.95); } }
@keyframes pa-point { 0% { transform:rotate(-10deg) translateX(0); } 25% { transform:rotate(5deg) translateX(3px); } 50% { transform:rotate(-8deg) translateX(1px); } 75% { transform:rotate(0deg) translateX(5px); } 100% { transform:rotate(-5deg) translateX(0); } }
@keyframes pa-toby { 0% { transform:rotate(0deg) translateY(0); } 30% { transform:rotate(-3deg) translateY(-1px); } 70% { transform:rotate(2deg) translateY(1px); } 100% { transform:rotate(0deg) translateY(0); } }

/* wadman-plots-ahead */
.scn-wadman-plots-ahead {
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 50%, #0d0804 100%),
              radial-gradient(ellipse at 60% 40%, #4a3020 0%, transparent 70%);
}
.scn-wadman-plots-ahead .dark-room {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2818 0%, #1a100a 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
}
.scn-wadman-plots-ahead .small-table {
  position: absolute; bottom: 16%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-wadman-plots-ahead .candle-glow {
  position: absolute; bottom: 20%; left: 50%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #ffd080 0%, #b8743a 60%, #4a3020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 16px rgba(255,180,80,0.6), 0 0 80px 32px rgba(255,140,40,0.3);
  animation: wa-candle 4s ease-in-out infinite alternate;
}
.scn-wadman-plots-ahead .wadman-silhouette {
  position: absolute; bottom: 22%; left: 34%; width: 14%; height: 34%;
  background: #0d0804;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wa-wadman 6s ease-in-out infinite;
}
.scn-wadman-plots-ahead .bridget-silhouette {
  position: absolute; bottom: 22%; right: 30%; width: 14%; height: 34%;
  background: #0d0804;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wa-bridget 7s ease-in-out infinite;
}
.scn-wadman-plots-ahead .letter-prop {
  position: absolute; bottom: 24%; left: 48%; width: 10%; height: 6%;
  background: linear-gradient(135deg, #d4b896 0%, #b3936e 100%);
  border-radius: 2px; border: 1px solid #6b4f2e;
  transform: rotate(8deg); box-shadow: 1px 2px 4px rgba(0,0,0,0.5);
}
.scn-wadman-plots-ahead .shadow-whisper {
  position: absolute; bottom: 28%; left: 42%; width: 16%; height: 20%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%; filter: blur(8px);
  animation: wa-whisper 5s ease-in-out infinite;
}
@keyframes wa-candle { 0% { opacity:0.7; transform:scaleY(0.95); } 50% { opacity:1; transform:scaleY(1.08); } 100% { opacity:0.8; transform:scaleY(1); } }
@keyframes wa-wadman { 0% { transform:translateX(0) rotate(0deg); } 33% { transform:translateX(-4px) rotate(-2deg); } 66% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes wa-bridget { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(3px) rotate(2deg); } 50% { transform:translateX(-2px) rotate(-1deg); } 75% { transform:translateX(5px) rotate(3deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes wa-whisper { 0% { opacity:0.2; transform:scale(0.9); } 50% { opacity:0.5; transform:scale(1.1); } 100% { opacity:0.3; transform:scale(1); } }

/* bridgets-conspiracy */
.scn-bridgets-conspiracy {
  background: linear-gradient(180deg, #14101a 0%, #0c0812 50%, #040208 100%),
              radial-gradient(ellipse at 50% 30%, #2a1e2e 0%, transparent 70%);
}
.scn-bridgets-conspiracy .deep-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1c1626 0%, #0c0812 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-bridgets-conspiracy .bed-frame {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #2a1e2e 0%, #1a1220 100%);
  border-radius: 8px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-bridgets-conspiracy .candle-dim {
  position: absolute; bottom: 25%; left: 48%; width: 5%; height: 12%;
  background: linear-gradient(180deg, #ffc080 0%, #b8683a 50%, #3a2020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,160,80,0.3);
  animation: br-candle 5s ease-in-out infinite alternate;
}
.scn-bridgets-conspiracy .bridget-figure {
  position: absolute; bottom: 24%; left: 30%; width: 12%; height: 30%;
  background: #040208;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-bridget 8s ease-in-out infinite;
}
.scn-bridgets-conspiracy .wadman-figure {
  position: absolute; bottom: 24%; right: 28%; width: 12%; height: 30%;
  background: #040208;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-wadman 9s ease-in-out infinite;
}
.scn-bridgets-conspiracy .conspiracy-shadow {
  position: absolute; bottom: 26%; left: 36%; width: 28%; height: 18%;
  background: rgba(0,0,0,0.4);
  border-radius: 50%; filter: blur(12px);
}
.scn-bridgets-conspiracy .whisper-motion {
  position: absolute; bottom: 30%; left: 44%; width: 12%; height: 8%;
  background: rgba(200,180,160,0.05);
  border-radius: 50%; filter: blur(6px);
  animation: br-whisper 4s ease-in-out infinite;
}
@keyframes br-candle { 0% { opacity:0.6; transform:scaleY(0.9); } 50% { opacity:0.9; transform:scaleY(1.1); } 100% { opacity:0.7; transform:scaleY(0.95); } }
@keyframes br-bridget { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-3px) rotate(-1deg); } 50% { transform:translateX(4px) rotate(2deg); } 75% { transform:translateX(-2px) rotate(0deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes br-wadman { 0% { transform:translateX(0) rotate(0deg); } 33% { transform:translateX(3px) rotate(1deg); } 66% { transform:translateX(-4px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes br-whisper { 0% { opacity:0.1; transform:scale(0.8); } 50% { opacity:0.3; transform:scale(1.2); } 100% { opacity:0.15; transform:scale(0.9); } }

/* father-contrast */
.scn-father-contrast {
  background:
    radial-gradient(ellipse at 30% 70%, #4a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #3a2010 0%, #2a1810 50%, #1a0e08 100%);
}
.scn-father-contrast .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a3020 0%, #3a1e10 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: fc-wall 20s ease-in-out infinite alternate;
}
.scn-father-contrast .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1810 0%, #1a0e08 100%);
  border-radius: 10% 10% 0 0;
}
.scn-father-contrast .fire {
  position: absolute; bottom: 20%; left: 25%; width: 60px; height: 80px;
  background: radial-gradient(circle, #ffa050 0%, #c06030 40%, #8a3018 70%, transparent 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(200,100,40,0.6), 0 0 80px 40px rgba(200,100,40,0.3);
  animation: fc-fire 3s ease-in-out infinite alternate;
}
.scn-father-contrast .father {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 40%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fc-father 6s ease-in-out infinite;
}
.scn-father-contrast .chair {
  position: absolute; bottom: 18%; left: 52%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #5a3020 0%, #3a1e10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 4px 6px rgba(0,0,0,0.4);
  animation: fc-chair 8s ease-in-out infinite;
}
.scn-father-contrast .glow {
  position: absolute; bottom: 10%; left: 20%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,160,80,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: fc-glow 4s ease-in-out infinite alternate;
}
.scn-father-contrast .shadow {
  position: absolute; bottom: 0; left: 40%; width: 100px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: fc-shadow 6s ease-in-out infinite;
}
@keyframes fc-wall { 0% { opacity:.9 } 50% { opacity:.7 } 100% { opacity:.85 } }
@keyframes fc-fire { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.1) scaleX(0.95) } 100% { transform: scaleY(0.95) scaleX(1.05) } }
@keyframes fc-father { 0% { transform: rotate(-2deg) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(2deg) translateY(1px) } 100% { transform: rotate(-2deg) } }
@keyframes fc-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes fc-glow { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes fc-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }

/* hobby-horse-tenderness */
.scn-hobby-horse-tenderness {
  background:
    radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #3a2010 0%, #2a1810 50%, #1a0e08 100%);
}
.scn-hobby-horse-tenderness .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ht-table 10s ease-in-out infinite alternate;
}
.scn-hobby-horse-tenderness .fortress {
  position: absolute; bottom: 23%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(135deg, #7a5a40 0%, #5a3a28 50%, #3a2218 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset 0 4px 6px rgba(0,0,0,0.3);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
  animation: ht-fortress 12s ease-in-out infinite;
}
.scn-hobby-horse-tenderness .uncle {
  position: absolute; bottom: 15%; left: 55%; width: 45px; height: 85px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 40%, #1a0e08 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ht-uncle 5s ease-in-out infinite;
}
.scn-hobby-horse-tenderness .cannon {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #6a4a30 0%, #4a3020 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-15deg);
  animation: ht-cannon 8s ease-in-out infinite alternate;
}
.scn-hobby-horse-tenderness .map {
  position: absolute; bottom: 20%; left: 22%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #b09060 0%, #8a7048 100%);
  border-radius: 2%;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-hobby-horse-tenderness .lantern {
  position: absolute; bottom: 28%; left: 45%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffc080 0%, #b07030 60%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,192,128,0.5);
  animation: ht-lantern 4s ease-in-out infinite alternate;
}
.scn-hobby-horse-tenderness .glow {
  position: absolute; bottom: 20%; left: 35%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,192,128,0.1) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: ht-glow 6s ease-in-out infinite alternate;
}
@keyframes ht-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes ht-fortress { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ht-uncle { 0% { transform: rotate(-3deg) } 25% { transform: rotate(2deg) translateY(-1px) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(3deg) translateY(1px) } 100% { transform: rotate(-3deg) } }
@keyframes ht-cannon { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-20deg) } }
@keyframes ht-lantern { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ht-glow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

/* reconciliation */
.scn-reconciliation {
  background:
    radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #3a2010 0%, #2a1810 50%, #1a0e08 100%);
}
.scn-reconciliation .fireplace {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 50%;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
.scn-reconciliation .fire {
  position: absolute; bottom: 25%; left: 42%; right: 42%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #ffa050 0%, #c06030 40%, #8a3018 70%, transparent 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 15px rgba(200,100,40,0.5);
  animation: rc-fire 3s ease-in-out infinite alternate;
}
.scn-reconciliation .father {
  position: absolute; bottom: 15%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 40%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rc-father 7s ease-in-out infinite;
}
.scn-reconciliation .toby {
  position: absolute; bottom: 15%; right: 20%; width: 45px; height: 85px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 40%, #1a0e08 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: rc-toby 7s ease-in-out infinite reverse;
}
.scn-reconciliation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1810 0%, #1a0e08 100%);
  border-radius: 10% 10% 0 0;
}
.scn-reconciliation .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a3020 0%, #3a1e10 100%);
  border-radius: 0 0 10% 10%;
}
.scn-reconciliation .glow {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 40%;
  background: radial-gradient(ellipse, rgba(255,160,80,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: rc-glow 5s ease-in-out infinite alternate;
}
@keyframes rc-fire { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.1) scaleX(0.95) } 100% { transform: scaleY(0.95) scaleX(1.05) } }
@keyframes rc-father { 0% { transform: rotate(-2deg) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(2deg) translateY(1px) } 100% { transform: rotate(-2deg) } }
@keyframes rc-toby { 0% { transform: rotate(2deg) } 25% { transform: rotate(-1deg) translateY(1px) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(2deg) } }
@keyframes rc-glow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

/* principle-motive */
.scn-principle-motive {
  background:
    radial-gradient(ellipse at 50% 80%, #3a1a10 0%, transparent 60%),
    linear-gradient(180deg, #2a1810 0%, #1a0e08 50%, #0a0604 100%);
}
.scn-principle-motive .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 20%, #4a2a1a 0%, transparent 70%);
  animation: pm-bg 20s ease-in-out infinite alternate;
}
.scn-principle-motive .table {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 6%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pm-table 12s ease-in-out infinite alternate;
}
.scn-principle-motive .father {
  position: absolute; bottom: 15%; left: 15%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e08 40%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pm-father 8s ease-in-out infinite;
}
.scn-principle-motive .toby {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 40%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: pm-toby 8s ease-in-out infinite 2s;
}
.scn-principle-motive .slop {
  position: absolute; bottom: 15%; right: 15%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 40%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pm-slop 8s ease-in-out infinite 4s;
}
.scn-principle-motive .candle {
  position: absolute; bottom: 22%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #c08030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 15px 5px rgba(255,208,128,0.6);
  animation: pm-candle 4s ease-in-out infinite alternate;
}
.scn-principle-motive .glow {
  position: absolute; bottom: 15%; left: 40%; right: 40%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,208,128,0.1) 0%, transparent 70%);
  filter: blur(15px);
  animation: pm-glow 5s ease-in-out infinite alternate;
}
@keyframes pm-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pm-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes pm-father { 0% { transform: rotate(-2deg) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(2deg) translateY(1px) } 100% { transform: rotate(-2deg) } }
@keyframes pm-toby { 0% { transform: rotate(2deg) } 25% { transform: rotate(-1deg) translateY(1px) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(2deg) } }
@keyframes pm-slop { 0% { transform: rotate(-1deg) } 25% { transform: rotate(3deg) translateY(-1px) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-3deg) translateY(1px) } 100% { transform: rotate(-1deg) } }
@keyframes pm-candle { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pm-glow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-item-ramallie-wig-preparation { background: linear-gradient(180deg, #f9e7c3 0%, #e2c9a0 100%), radial-gradient(circle at 80% 20%, #fff4e0 0%, transparent 60%); }
.scn-item-ramallie-wig-preparation .rw-back { position:absolute; inset:0; background: linear-gradient(135deg, #e6d4b0 0%, #c8b590 100%); }
.scn-item-ramallie-wig-preparation .rw-wall { position:absolute; left:10%; top:10%; width:80%; height:50%; background: linear-gradient(180deg, #dcc9a0 0%, #c0a880 100%); border-radius:10px; box-shadow: inset 0 4px 10px rgba(0,0,0,0.1); animation: rw-wall 12s ease-in-out infinite alternate; }
.scn-item-ramallie-wig-preparation .rw-window { position:absolute; right:15%; top:15%; width:18%; height:25%; background: radial-gradient(circle at 70% 30%, #fff7e0 0%, #c8b080 100%); border:6px solid #a08060; border-radius:4px; box-shadow: 0 0 40px 10px rgba(255,247,224,0.3); }
.scn-item-ramallie-wig-preparation .rw-stand { position:absolute; bottom:20%; left:50%; width:60px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a40 0%, #6a4a20 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-item-ramallie-wig-preparation .rw-wig { position:absolute; bottom:50%; left:50%; width:100px; height:80px; transform:translateX(-50%) rotate(-10deg); background: radial-gradient(ellipse at 50% 40%, #f5e0c0 0%, #d0b080 50%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: rw-wig 3s ease-in-out infinite alternate; }
.scn-item-ramallie-wig-preparation .rw-figure { position:absolute; bottom:15%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: rw-fig 5s ease-in-out infinite; }
@keyframes rw-wall { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }
@keyframes rw-wig { 0% { transform:translateX(-50%) rotate(-12deg) scale(1) } 50% { transform:translateX(-50%) rotate(-5deg) scale(1.02) } 100% { transform:translateX(-50%) rotate(-14deg) scale(0.98) } }
@keyframes rw-fig { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-3px) rotate(2deg) } 50% { transform:translateY(0) rotate(0deg) } 75% { transform:translateY(-2px) rotate(-2deg) } 100% { transform:translateY(0) rotate(0deg) } }

.scn-uncle-toby-in-shabby-finery { background: linear-gradient(180deg, #f0d8b0 0%, #d4b080 100%), radial-gradient(ellipse at 50% 100%, #e8c090 0%, transparent 80%); }
.scn-uncle-toby-in-shabby-finery .st-back { position:absolute; inset:0; background: linear-gradient(135deg, #d4c0a0 0%, #b8a080 100%); }
.scn-uncle-toby-in-shabby-finery .st-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 50%, rgba(255,230,180,0.4) 0%, transparent 60%); animation: st-glow 8s ease-in-out infinite alternate; }
.scn-uncle-toby-in-shabby-finery .st-chair { position:absolute; bottom:10%; left:25%; width:100px; height:130px; background: linear-gradient(180deg, #6a4a30 0%, #4a3018 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,0.4); }
.scn-uncle-toby-in-shabby-finery .st-figure { position:absolute; bottom:18%; left:35%; width:40px; height:90px; background: linear-gradient(180deg, #2a1a10 0%, #0a0804 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; animation: st-breathe 6s ease-in-out infinite; }
.scn-uncle-toby-in-shabby-finery .st-coat { position:absolute; bottom:22%; left:33%; width:50px; height:40px; background: linear-gradient(180deg, #705030 0%, #502818 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(5deg); animation: st-coat 10s ease-in-out infinite alternate; }
.scn-uncle-toby-in-shabby-finery .st-light { position:absolute; top:10%; right:20%; width:8%; height:12%; background: radial-gradient(circle, #fff7e0 0%, transparent 100%); box-shadow: 0 0 60px 20px rgba(255,247,224,0.5); }
@keyframes st-glow { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes st-breathe { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes st-coat { 0% { transform:rotate(3deg) translateX(0) } 50% { transform:rotate(6deg) translateX(2px) } 100% { transform:rotate(4deg) translateX(0) } }

.scn-choosing-red-plush-breeches { background: linear-gradient(180deg, #f0dcc0 0%, #d4b890 100%), radial-gradient(circle at 30% 70%, #fce8c0 0%, transparent 60%); }
.scn-choosing-red-plush-breeches .rb-back { position:absolute; inset:0; background: linear-gradient(135deg, #dcc8a0 0%, #c0a880 100%); }
.scn-choosing-red-plush-breeches .rb-table { position:absolute; bottom:15%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #8a6a40 0%, #5a3a18 100%); border-radius:6px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-choosing-red-plush-breeches .rb-breeches { position:absolute; bottom:22%; left:40%; width:70px; height:90px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform: rotate(-5deg); box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: rb-breech 4s ease-in-out infinite alternate; }
.scn-choosing-red-plush-breeches .rb-scissors { position:absolute; bottom:35%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%); border-radius:50% 50% 0 0 / 60% 60% 0 0; transform: rotate(20deg); animation: rb-sciss 2s ease-in-out infinite; }
.scn-choosing-red-plush-breeches .rb-figure { position:absolute; bottom:15%; left:55%; width:35px; height:80px; background: linear-gradient(180deg, #2a1a10 0%, #0a0804 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; animation: rb-fig 3s ease-in-out infinite; }
.scn-choosing-red-plush-breeches .rb-rip { position:absolute; bottom:28%; left:45%; width:10px; height:8px; background: #d0a060; border-radius:50%; box-shadow: 0 0 12px 2px rgba(208,160,96,0.6); animation: rb-rip 3s ease-in-out infinite; }
@keyframes rb-breech { 0% { transform:rotate(-8deg) scaleY(1) } 50% { transform:rotate(-2deg) scaleY(1.05) } 100% { transform:rotate(-10deg) scaleY(0.98) } }
@keyframes rb-sciss { 0% { transform:rotate(15deg) } 50% { transform:rotate(25deg) } 100% { transform:rotate(18deg) } }
@keyframes rb-fig { 0% { transform:translateX(0) } 50% { transform:translateX(10px) } 100% { transform:translateX(0) } }
@keyframes rb-rip { 0% { opacity:0.4 } 50% { opacity:1 } 100% { opacity:0.3 } }

.scn-uncle-toby-fears-women { background: linear-gradient(180deg, #c8d4e0 0%, #a0b0c0 100%), radial-gradient(circle at 20% 80%, #b8c8d8 0%, transparent 70%); }
.scn-uncle-toby-fears-women .tw-back { position:absolute; inset:0; background: linear-gradient(135deg, #b0c0d0 0%, #8090a0 100%); }
.scn-uncle-toby-fears-women .tw-window { position:absolute; left:10%; top:20%; width:20%; height:30%; background: radial-gradient(circle at 50% 40%, #e0e8f0 0%, #a0b0c0 100%); border:8px solid #606870; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.1); }
.scn-uncle-toby-fears-women .tw-toby { position:absolute; bottom:20%; left:30%; width:40px; height:85px; background: linear-gradient(180deg, #2a3028 0%, #101818 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; animation: tw-toby 5s ease-in-out infinite; }
.scn-uncle-toby-fears-women .tw-corp { position:absolute; bottom:20%; left:55%; width:35px; height:80px; background: linear-gradient(180deg, #202828 0%, #081010 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: scaleX(-1); }
.scn-uncle-toby-fears-women .tw-stick { position:absolute; bottom:35%; left:55%; width:4px; height:40px; background: linear-gradient(180deg, #604830 0%, #302010 100%); border-radius:2px; transform: rotate(10deg); transform-origin: bottom; animation: tw-stick 3s ease-in-out infinite alternate; }
.scn-uncle-toby-fears-women .tw-shadow { position:absolute; bottom:0; left:25%; width:50%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%); animation: tw-shadow 4s ease-in-out infinite; }
@keyframes tw-toby { 0% { transform:translateX(0) rotate(0deg) } 30% { transform:translateX(-5px) rotate(-5deg) } 70% { transform:translateX(2px) rotate(3deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes tw-stick { 0% { transform:rotate(5deg) } 50% { transform:rotate(15deg) } 100% { transform:rotate(8deg) } }
@keyframes tw-shadow { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.2) } 100% { transform:scaleX(1) } }

/* Scene: father-astrology-talk */
.scn-father-astrology-talk { background: linear-gradient(180deg, #f5e6c8 0%, #d9b88a 30%, #a67c52 70%, #6a4e2e 100%) , radial-gradient(ellipse at 30% 40%, #ffeac2 0%, transparent 60%); }
.scn-father-astrology-talk .wall { position:absolute; inset:0 0 55% 0; background: linear-gradient(90deg, #eddcc0 0%, #f2e4ca 40%, #c9b28a 100%); }
.scn-father-astrology-talk .floor { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #8b6b4a 0%, #b8956a 50%, #cfa87a 100%); border-radius:20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.2); }
.scn-father-astrology-talk .window { position:absolute; top:15%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #d6e8f0 0%, #b0cee0 100%); border:6px solid #7a5a3a; border-radius:8px; box-shadow: inset 0 0 40px rgba(200,180,140,.3); }
.scn-father-astrology-talk .bookshelf { position:absolute; top:20%; right:8%; width:25%; height:45%; background: linear-gradient(180deg, #5a3a1a 0%, #3f2812 100%); border-radius:4px; box-shadow: 0 8px 16px rgba(0,0,0,.4); }
.scn-father-astrology-talk .bookshelf::after { content:''; position:absolute; inset:10% 10%; background: repeating-linear-gradient(0deg, #b08050 0px, #b08050 4px, transparent 4px, transparent 10px); }
.scn-father-astrology-talk .table { position:absolute; bottom:35%; left:50%; transform:translateX(-60%); width:60%; height:12%; background: linear-gradient(180deg, #c09a70 0%, #9a7a5a 100%); border-radius:10% 10% 5% 5% / 40% 40% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,.3) inset; }
.scn-father-astrology-talk .figure-left { position:absolute; bottom:30%; left:30%; width:10%; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fat-fig-l 6s ease-in-out infinite; }
.scn-father-astrology-talk .figure-right { position:absolute; bottom:30%; right:25%; width:12%; height:38%; background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 35% 35% / 65% 65% 30% 30%; transform-origin: bottom center; animation: fat-fig-r 8s ease-in-out infinite; }
.scn-father-astrology-talk .candle { position:absolute; bottom:42%; left:45%; width:2%; height:8%; background: linear-gradient(180deg, #f0e0b0 0%, #d4a050 100%); border-radius:4px; box-shadow: 0 0 20px 8px #ffdd88; animation: fat-candle 3s ease-in-out infinite alternate; }
.scn-father-astrology-talk .globe { position:absolute; bottom:38%; left:55%; width:8%; height:8%; background: radial-gradient(circle, #3a7a4a 0%, #2a5a3a 50%, #1a3a2a 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(150,180,120,.4); animation: fat-globe 20s linear infinite; }
@keyframes fat-fig-l { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fat-fig-r { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(3px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes fat-candle { 0% { opacity:.8; box-shadow:0 0 15px 5px #ffdd88; } 50% { opacity:1; box-shadow:0 0 30px 12px #ffeaa0; } 100% { opacity:.85; box-shadow:0 0 20px 8px #ffcc66; } }
@keyframes fat-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* Scene: father-theology-quip */
.scn-father-theology-quip { background: linear-gradient(135deg, #fff2d6 0%, #f5e0b8 40%, #d4b080 100%), radial-gradient(ellipse at 60% 20%, #ffe8c0 0%, transparent 50%); }
.scn-father-theology-quip .bg-room { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f8eace 0%, #e2c9a2 100%); border-radius:0 0 20% 20% / 0 0 10% 10%; }
.scn-father-theology-quip .desk { position:absolute; bottom:30%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #b8966a 0%, #8a6a44 100%); border-radius:8% 8% 4% 4% / 30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.25); }
.scn-father-theology-quip .chair { position:absolute; bottom:28%; right:10%; width:15%; height:25%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ftq-chair 4s ease-in-out infinite; }
.scn-father-theology-quip .figure-yorick { position:absolute; bottom:28%; left:20%; width:14%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: ftq-yorick 5s ease-in-out infinite; }
.scn-father-theology-quip .figure-father { position:absolute; bottom:28%; left:45%; width:16%; height:45%; background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 35% 35% / 65% 65% 30% 30%; transform-origin: bottom center; animation: ftq-father 6s ease-in-out infinite; }
.scn-father-theology-quip .quill { position:absolute; bottom:38%; left:25%; width:2%; height:15%; background: linear-gradient(180deg, #f0e0b0 0%, #c0a070 100%); border-radius:4px; transform-origin: bottom left; animation: ftq-quill 0.8s ease-in-out infinite alternate; }
.scn-father-theology-quip .paper { position:absolute; bottom:32%; left:22%; width:12%; height:16%; background: #faf2e0; border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,.1); }
.scn-father-theology-quip .lamp { position:absolute; top:10%; right:15%; width:6%; height:6%; background: radial-gradient(circle, #ffe080 0%, #cc8800 100%); border-radius:50%; box-shadow: 0 0 40px 20px #ffcc44; animation: ftq-lamp 7s ease-in-out infinite alternate; }
@keyframes ftq-chair { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes ftq-yorick { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ftq-father { 0% { transform: translateX(0) rotate(1deg); } 33% { transform: translateX(5px) rotate(-1deg); } 66% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ftq-quill { 0% { transform: rotate(-15deg); } 100% { transform: rotate(15deg); } }
@keyframes ftq-lamp { 0% { opacity:.6; box-shadow:0 0 30px 10px #ffcc44; } 50% { opacity:1; box-shadow:0 0 60px 30px #ffeaa0; } 100% { opacity:.7; box-shadow:0 0 40px 15px #ffcc44; } }

/* Scene: ilus-circumcision */
.scn-ilus-circumcision { background: linear-gradient(180deg, #f0c8a0 0%, #c89060 40%, #8a6040 100%), radial-gradient(ellipse at 50% 100%, #ab7a4a 0%, transparent 70%); }
.scn-ilus-circumcision .sky-warm { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fadca0 0%, #e8b66a 50%, #d49540 100%); }
.scn-ilus-circumcision .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #5a3a1a 0%, #8a6a3a 40%, #b58a4a 100%); }
.scn-ilus-circumcision .army-back { position:absolute; bottom:25%; left:10%; right:10%; height:20%; background: repeating-linear-gradient(90deg, #2a1a0a 0px, #2a1a0a 8px, transparent 8px, transparent 12px); filter: blur(2px); animation: ilc-army 12s ease-in-out infinite alternate; }
.scn-ilus-circumcision .ilus-figure { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:16%; height:45%; background: linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; box-shadow: 0 10px 30px rgba(0,0,0,.5); animation: ilc-ilus 4s ease-in-out infinite; }
.scn-ilus-circumcision .sword { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:2%; height:20%; background: linear-gradient(180deg, #c0a060 0%, #806040 100%); border-radius:3px; transform-origin: 50% 100%; animation: ilc-sword 3s ease-in-out infinite alternate; }
.scn-ilus-circumcision .blood-drops { position:absolute; bottom:35%; left:45%; width:4%; height:4%; background: radial-gradient(circle, #7a2a1a 0%, #5a1a0a 100%); border-radius:50%; box-shadow: 0 0 8px 4px rgba(90,30,10,.5); animation: ilc-blood 2s ease-in-out infinite; }
.scn-ilus-circumcision .banner { position:absolute; top:15%; left:20%; width:15%; height:20%; background: linear-gradient(180deg, #c8553d 0%, #903a2a 100%); border-radius:10% 10% 0 0; transform-origin: bottom center; animation: ilc-banner 8s ease-in-out infinite; }
@keyframes ilc-army { 0% { opacity:.3; transform: scaleY(0.9); } 50% { opacity:.5; transform: scaleY(1); } 100% { opacity:.4; transform: scaleY(0.95); } }
@keyframes ilc-ilus { 0% { transform: translateX(-50%) rotate(-2deg); } 33% { transform: translateX(-45%) rotate(1deg); } 66% { transform: translateX(-55%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ilc-sword { 0% { transform: rotate(0deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(0deg); } }
@keyframes ilc-blood { 0% { transform: translateY(0) scale(1); opacity:.8; } 50% { transform: translateY(-5px) scale(1.2); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.7; } }
@keyframes ilc-banner { 0% { transform: skewX(0deg); } 25% { transform: skewX(5deg); } 50% { transform: skewX(0deg); } 75% { transform: skewX(-5deg); } 100% { transform: skewX(0deg); } }

/* Scene: polemic-divines-debate */
.scn-polemic-divines-debate { background: linear-gradient(135deg, #e8d8b0 0%, #c8b080 40%, #9a7a5a 100%), radial-gradient(ellipse at 40% 50%, #f0d8b0 0%, transparent 60%); }
.scn-polemic-divines-debate .wall-dark { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d4c09a 0%, #b09870 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.1); }
.scn-polemic-divines-debate .floor-slab { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #7a5a3a 0%, #a08060 50%, #c0a080 100%); border-radius:30% 30% 0 0 / 15% 15% 0 0; }
.scn-polemic-divines-debate .table-debate { position:absolute; bottom:30%; left:20%; right:20%; height:14%; background: linear-gradient(180deg, #b08a5a 0%, #8a6a3a 100%); border-radius:6% 6% 3% 3% / 30% 30% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,.3); }
.scn-polemic-divines-debate .divine-left { position:absolute; bottom:28%; left:25%; width:14%; height:42%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pdd-left 7s ease-in-out infinite; }
.scn-polemic-divines-debate .divine-right { position:absolute; bottom:28%; right:20%; width:16%; height:45%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 35% 35% / 65% 65% 30% 30%; transform-origin: bottom center; animation: pdd-right 9s ease-in-out infinite; }
.scn-polemic-divines-debate .book-open { position:absolute; bottom:32%; left:42%; width:12%; height:8%; background: #f2e0c0; border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.2); transform: rotate(-5deg); animation: pdd-book 10s ease-in-out infinite alternate; }
.scn-polemic-divines-debate .candle-pair { position:absolute; bottom:36%; left:40%; width:2%; height:8%; background: linear-gradient(180deg, #f0d8a0 0%, #c09850 100%); border-radius:4px; box-shadow: 0 0 20px 8px #ffdd88; animation: pdd-candle 4s ease-in-out infinite alternate; }
.scn-polemic-divines-debate .shadow-argue { position:absolute; bottom:25%; left:30%; right:30%; height:10%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 70%); animation: pdd-shadow 6s ease-in-out infinite; }
@keyframes pdd-left { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(-6px) rotate(2deg); } 60% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes pdd-right { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(5px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes pdd-book { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes pdd-candle { 0% { opacity:.7; box-shadow:0 0 15px 5px #ffdd88; } 50% { opacity:1; box-shadow:0 0 35px 12px #ffe080; } 100% { opacity:.8; box-shadow:0 0 20px 8px #ffcc66; } }
@keyframes pdd-shadow { 0% { opacity:.5; transform: scaleY(0.8); } 50% { opacity:.7; transform: scaleY(1.2); } 100% { opacity:.5; transform: scaleY(0.8); } }

.scn-character-drawing-methods {
  background:
    linear-gradient(180deg, #3b2f2f 0%, #2a1e1e 40%, #1a1212 100%),
    radial-gradient(ellipse at 50% 100%, #4a3530 0%, transparent 70%);
}
.scn-character-drawing-methods .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a3a33 0%, #2a1e1e 100%);
  filter: blur(2px);
}
.scn-character-drawing-methods .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.5);
  animation: cdm-desk 8s ease-in-out infinite alternate;
}
.scn-character-drawing-methods .candle {
  position: absolute; bottom: 38%; left: 30%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #e8d5b0 0%, #c8b090 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 12px 2px rgba(232,213,176,.3);
}
.scn-character-drawing-methods .flame {
  position: absolute; bottom: 54%; left: 30.2%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd060 0%, #e8a040 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: cdm-flame 1.2s ease-in-out infinite alternate;
  filter: blur(0.5px);
}
.scn-character-drawing-methods .paper {
  position: absolute; bottom: 14%; left: 45%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #f0e8d0 0%, #d8cca0 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,.4);
  animation: cdm-paper 12s ease-in-out infinite;
}
.scn-character-drawing-methods .inkwell {
  position: absolute; bottom: 18%; left: 35%; width: 14px; height: 16px;
  background: radial-gradient(circle at 50% 20%, #3a2a2a 0%, #1a1212 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.6);
}
.scn-character-drawing-methods .hand {
  position: absolute; bottom: 18%; left: 42%; width: 22px; height: 20px;
  background: linear-gradient(180deg, #d4b8a0 0%, #b89880 100%);
  border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 70% 80%;
  animation: cdm-hand 4s ease-in-out infinite;
}
.scn-character-drawing-methods .quill {
  position: absolute; bottom: 24%; left: 44%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #c8b8a0 0%, #8a7a6a 100%);
  border-radius: 0 0 40% 40%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: cdm-quill 4s ease-in-out infinite;
}
@keyframes cdm-desk {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cdm-flame {
  0% { transform: scaleY(1) translateX(0); opacity: .8; }
  30% { transform: scaleY(1.2) translateX(-1px); opacity: 1; }
  60% { transform: scaleY(0.9) translateX(1px); opacity: .7; }
  100% { transform: scaleY(1) translateX(0); opacity: .85; }
}
@keyframes cdm-paper {
  0%, 100% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-2px); }
}
@keyframes cdm-hand {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-1px); }
  50% { transform: rotate(-2deg) translateY(0); }
  75% { transform: rotate(4deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes cdm-quill {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(20deg) translateY(0); }
}

.scn-hobby-horse-character {
  background:
    linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 40%, #1a1210 100%),
    radial-gradient(ellipse at 50% 90%, #8a4a2a 0%, transparent 80%);
}
.scn-hobby-horse-character .hearth {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a12 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-hobby-horse-character .fire {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, #ff8040 0%, #ff6020 30%, transparent 80%);
  filter: blur(8px);
  animation: hhc-fire 2s ease-in-out infinite alternate;
}
.scn-hobby-horse-character .log-1 {
  position: absolute; bottom: 20%; left: 32%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-hobby-horse-character .log-2 {
  position: absolute; bottom: 22%; left: 38%; width: 36px; height: 10px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-hobby-horse-character .hobby-horse {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hhc-horse 3s ease-in-out infinite;
}
.scn-hobby-horse-character .figure {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hhc-figure 4s ease-in-out infinite;
}
.scn-hobby-horse-character .arm {
  position: absolute; bottom: 40%; left: 52%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: hhc-arm 2.5s ease-in-out infinite alternate;
}
.scn-hobby-horse-character .rug {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #6a4a2a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.3);
}
@keyframes hhc-fire {
  0% { transform: scaleX(1) scaleY(1) translateX(0); opacity: .7; }
  50% { transform: scaleX(1.1) scaleY(1.2) translateX(2px); opacity: 1; }
  100% { transform: scaleX(0.95) scaleY(0.9) translateX(-1px); opacity: .8; }
}
@keyframes hhc-horse {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes hhc-figure {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-2px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes hhc-arm {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(10deg); }
}

.scn-namur-wound {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 40%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 10%, #2a2a3e 0%, transparent 80%);
}
.scn-namur-wound .wall-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #12121e 0%, #0a0a12 100%);
  filter: blur(1px);
}
.scn-namur-wound .bed {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1212 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,.6);
  animation: nw-bed 8s ease-in-out infinite alternate;
}
.scn-namur-wound .body {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.3);
}
.scn-namur-wound .bandage {
  position: absolute; bottom: 30%; left: 42%; width: 14%; height: 10%;
  background: linear-gradient(180deg, #d8d0c0 0%, #b8b0a0 100%);
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: nw-bandage 6s ease-in-out infinite;
}
.scn-namur-wound .candle-wick {
  position: absolute; bottom: 38%; left: 15%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #e0c8a8 0%, #c0a888 100%);
  border-radius: 10%;
  box-shadow: 0 0 6px rgba(224,200,168,.2);
}
.scn-namur-wound .flame-dim {
  position: absolute; bottom: 46%; left: 15.3%; width: 8px; height: 12px;
  background: radial-gradient(circle, #806040 0%, #4a3020 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: nw-flame 3s ease-in-out infinite alternate;
  filter: blur(1px);
}
.scn-namur-wound .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a1210 100%);
  border-radius: 2%;
  box-shadow: 0 -2px 10px rgba(0,0,0,.5);
}
.scn-namur-wound .bottle {
  position: absolute; bottom: 24%; left: 20%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.3);
}
@keyframes nw-bed {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes nw-bandage {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.05) translateX(2px); }
  100% { transform: scaleX(1) translateX(0); }
}
@keyframes nw-flame {
  0% { transform: scaleY(0.8) translateX(0); opacity: .4; }
  30% { transform: scaleY(1.1) translateX(-1px); opacity: .6; }
  70% { transform: scaleY(0.9) translateX(1px); opacity: .5; }
  100% { transform: scaleY(1) translateX(0); opacity: .45; }
}

.scn-brotherly-care {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d8cca0 50%, #c0b090 100%),
    radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 70%);
}
.scn-brotherly-care .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8bca8 100%);
  filter: blur(1px);
}
.scn-brotherly-care .window {
  position: absolute; top: 8%; left: 25%; right: 25%; height: 30%;
  background: linear-gradient(180deg, #d8e0f0 0%, #b0c8e0 100%);
  border: 8px solid #c8b898;
  box-shadow: inset 0 0 20px rgba(200,184,152,.5);
}
.scn-brotherly-care .light-ray {
  position: absolute; top: 10%; left: 28%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,248,232,0.4) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: bc-light 10s ease-in-out infinite alternate;
}
.scn-brotherly-care .chair {
  position: absolute; bottom: 15%; left: 30%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 4px 4px 12px rgba(0,0,0,.2);
}
.scn-brotherly-care .figure-sitting {
  position: absolute; bottom: 18%; left: 32%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bc-sit 6s ease-in-out infinite;
}
.scn-brotherly-care .figure-standing {
  position: absolute; bottom: 18%; left: 55%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bc-stand 8s ease-in-out infinite alternate;
}
.scn-brotherly-care .table-cup {
  position: absolute; bottom: 15%; left: 48%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: bc-cup 12s ease-in-out infinite;
}
.scn-brotherly-care .steam {
  position: absolute; bottom: 28%; left: 49%; width: 4%; height: 10%;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: bc-steam 5s ease-in-out infinite;
}
@keyframes bc-light {
  0% { opacity: .5; transform: skewX(-10deg) translateX(0); }
  50% { opacity: .8; transform: skewX(-8deg) translateX(3px); }
  100% { opacity: .6; transform: skewX(-10deg) translateX(0); }
}
@keyframes bc-sit {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-1px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes bc-stand {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(3px) translateY(-2px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes bc-cup {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}
@keyframes bc-steam {
  0% { transform: translateY(0) scaleX(1); opacity: .3; }
  50% { transform: translateY(-10px) scaleX(1.2); opacity: .1; }
  100% { transform: translateY(0) scaleX(1); opacity: .3; }
}

/* sermon-end */
.scn-sermon-end { background: radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, #1a0a0a 70%), linear-gradient(180deg, #2a1a0a 0%, #0e0a06 100%); }
.scn-sermon-end .shadow { position:absolute; inset:20% 10% 0 10%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 60%); border-radius:40% 40% 0 0; animation: se-shadow 6s ease-in-out infinite alternate; }
.scn-sermon-end .fire-glow { position:absolute; bottom:15%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, transparent 60%); border-radius:50%; animation: se-fireglow 4s ease-in-out infinite alternate; }
.scn-sermon-end .chair { position:absolute; bottom:8%; left:50%; width:100px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.7); animation: se-chair 5s ease-in-out infinite; }
.scn-sermon-end .figure { position:absolute; bottom:20%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8); animation: se-breath 6s ease-in-out infinite; }
.scn-sermon-end .book { position:absolute; bottom:22%; left:40%; width:30px; height:20px; background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:2px; transform:rotate(-10deg); box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: se-book 8s ease-in-out infinite; }
.scn-sermon-end .ember { position:absolute; bottom:10%; border-radius:50%; background: radial-gradient(circle, #d08030 0%, #c8553d 50%, transparent 100%); animation: se-ember 3s ease-in-out infinite; }
.scn-sermon-end .ember-a { left:35%; width:12px; height:12px; animation-delay:0s; }
.scn-sermon-end .ember-b { left:45%; width:8px; height:8px; animation-delay:1.2s; }
.scn-sermon-end .ember-c { left:55%; width:9px; height:9px; animation-delay:2.4s; }
@keyframes se-shadow { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes se-fireglow { 0% { transform:scaleY(0.9) translateY(0); opacity:0.8 } 50% { transform:scaleY(1.1) translateY(-5px); opacity:1 } 100% { transform:scaleY(0.95) translateY(2px); opacity:0.85 } }
@keyframes se-chair { 0%,100% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(-1deg) } }
@keyframes se-breath { 0%,100% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.03) translateY(-2px) } }
@keyframes se-book { 0%,100% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(-8deg) translateY(-2px) } }
@keyframes se-ember { 0% { opacity:0.4; transform:translateY(0) scale(1) } 25% { opacity:0.9; transform:translateY(-20px) scale(1.4) } 50% { opacity:1; transform:translateY(-35px) scale(1.8) } 75% { opacity:0.6; transform:translateY(-25px) scale(1.2) } 100% { opacity:0.3; transform:translateY(-40px) scale(0.8) } }

/* sermon-conclusion-resumed */
.scn-sermon-conclusion-resumed { background: radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, #1a0a0a 70%), linear-gradient(180deg, #2a1a0a 0%, #0e0a06 100%); }
.scn-sermon-conclusion-resumed .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a0a 100%); border-radius:0 0 20% 20%; animation: cr-wall 12s ease-in-out infinite alternate; }
.scn-sermon-conclusion-resumed .window { position:absolute; top:15%; right:20%; width:80px; height:100px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0a06 100%); border:4px solid #4a3020; border-radius:10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: cr-window 8s ease-in-out infinite; }
.scn-sermon-conclusion-resumed .lectern { position:absolute; bottom:10%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 10px 20px rgba(0,0,0,0.6); animation: cr-lectern 6s ease-in-out infinite; }
.scn-sermon-conclusion-resumed .book { position:absolute; bottom:18%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: linear-gradient(135deg, #7a5a3a 0%, #5a3a2a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.7); animation: cr-book 8s ease-in-out infinite; }
.scn-sermon-conclusion-resumed .candle { position:absolute; bottom:12%; right:30%; width:16px; height:40px; background: linear-gradient(180deg, #e0c0a0 0%, #b08060 100%); border-radius:4px; box-shadow: 0 0 10px rgba(200,100,50,0.5); animation: cr-candle 4s ease-in-out infinite; }
.scn-sermon-conclusion-resumed .flame { position:absolute; bottom:30%; right:30%; width:12px; height:20px; margin-left:-6px; margin-bottom:-20px; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #c8553d 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px #c8553d; animation: cr-flame 2s ease-in-out infinite alternate; }
.scn-sermon-conclusion-resumed .shadow { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); animation: cr-shadow 7s ease-in-out infinite; }
@keyframes cr-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cr-window { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } }
@keyframes cr-lectern { 0%,100% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(0.5deg) } }
@keyframes cr-book { 0%,100% { transform:translateX(-50%) rotate(-2deg) } 50% { transform:translateX(-50%) rotate(0deg) } }
@keyframes cr-candle { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes cr-flame { 0% { transform:scaleY(0.9) translateY(0); opacity:0.8 } 50% { transform:scaleY(1.3) translateY(-5px); opacity:1 } 100% { transform:scaleY(1) translateY(-2px); opacity:0.9 } }
@keyframes cr-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

/* sermon-morality */
.scn-sermon-morality { background: radial-gradient(ellipse at 40% 50%, #4a2a1a 0%, #1a0a0a 70%), linear-gradient(180deg, #2a1a0a 0%, #0e0a06 100%); }
.scn-sermon-morality .bg-shelf { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:0 0 30% 30%; animation: mo-shelf 10s ease-in-out infinite alternate; }
.scn-sermon-morality .figure { position:absolute; bottom:5%; left:40%; width:70px; height:120px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 10px 20px rgba(0,0,0,0.8); animation: mo-figure 6s ease-in-out infinite; }
.scn-sermon-morality .arm { position:absolute; bottom:20%; left:38%; width:80px; height:20px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:50% 30% 30% 50% / 100% 50% 50% 100%; transform-origin: right center; transform:rotate(-30deg); animation: mo-arm 4s ease-in-out infinite; }
.scn-sermon-morality .hand { position:absolute; bottom:20%; left:38%; width:30px; height:25px; margin-left:70px; transform:translateY(-5px); background: radial-gradient(circle at 50% 50%, #5a3a2a 0%, #3a2a1a 100%); border-radius:40% 50% 30% 40%; box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: mo-hand 4s ease-in-out infinite; }
.scn-sermon-morality .firelight { position:absolute; bottom:0; left:10%; width:80%; height:40%; background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, transparent 70%); opacity:0.5; animation: mo-firelight 5s ease-in-out infinite alternate; }
.scn-sermon-morality .book { position:absolute; bottom:15%; right:25%; width:50px; height:30px; background: linear-gradient(135deg, #7a5a3a 0%, #5a3a2a 100%); border-radius:3px; transform:rotate(15deg); box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: mo-book 9s ease-in-out infinite; }
.scn-sermon-morality .table { position:absolute; bottom:0; left:50%; width:150px; height:15px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4px; animation: mo-table 7s ease-in-out infinite; }
@keyframes mo-shelf { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mo-figure { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes mo-arm { 0% { transform:rotate(-30deg) } 25% { transform:rotate(-20deg) } 50% { transform:rotate(-35deg) } 75% { transform:rotate(-15deg) } 100% { transform:rotate(-30deg) } }
@keyframes mo-hand { 0% { transform:translateY(-5px) rotate(0deg) } 50% { transform:translateY(-2px) rotate(10deg) } 100% { transform:translateY(-5px) rotate(0deg) } }
@keyframes mo-firelight { 0% { opacity:0.4; transform:scale(1) } 50% { opacity:0.6; transform:scale(1.05) } 100% { opacity:0.45; transform:scale(0.98) } }
@keyframes mo-book { 0%,100% { transform:rotate(15deg) } 50% { transform:rotate(12deg) } }
@keyframes mo-table { 0%,100% { transform:translateX(-50%) } 50% { transform:translateX(-50%) scaleX(0.98) } }

/* sermon-inquisition */
.scn-sermon-inquisition { background: radial-gradient(ellipse at 50% 80%, #2a0a0a 0%, #0a0a0a 70%), linear-gradient(180deg, #1a0a0a 0%, #050303 100%); }
.scn-sermon-inquisition .abyss { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.9) 0%, transparent 40%, rgba(0,0,0,0.9) 100%); animation: in-abyss 8s ease-in-out infinite alternate; }
.scn-sermon-inquisition .fire { position:absolute; bottom:0; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 0%, #702243 0%, #2a0a0a 60%, transparent 100%); border-radius:50% 50% 0 0; animation: in-fire 5s ease-in-out infinite alternate; }
.scn-sermon-inquisition .sword { position:absolute; top:10%; left:50%; width:12px; height:50%; transform:translateX(-50%); background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 50%, #4a4a4a 100%); border-radius:4px 4px 2px 2px; box-shadow: 0 0 8px rgba(100,50,50,0.5); animation: in-sword 3s ease-in-out infinite; }
.scn-sermon-inquisition .hands { position:absolute; top:35%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,0.7); animation: in-hands 3s ease-in-out infinite; }
.scn-sermon-inquisition .flame-burst { position:absolute; bottom:15%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, #702243 40%, transparent 100%); border-radius:50%; animation: in-burst 4s ease-in-out infinite alternate; }
.scn-sermon-inquisition .spark { position:absolute; bottom:20%; border-radius:50%; background: radial-gradient(circle, #d08030 0%, transparent 80%); animation: in-spark 2.5s ease-in-out infinite; }
.scn-sermon-inquisition .spark-a { left:45%; width:10px; height:10px; animation-delay:0s; }
.scn-sermon-inquisition .spark-b { left:48%; width:6px; height:6px; animation-delay:0.8s; }
.scn-sermon-inquisition .spark-c { left:52%; width:7px; height:7px; animation-delay:1.6s; }
@keyframes in-abyss { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes in-fire { 0% { transform:scaleY(0.9) translateY(2px); opacity:0.7 } 50% { transform:scaleY(1.1) translateY(-5px); opacity:1 } 100% { transform:scaleY(0.95) translateY(0); opacity:0.8 } }
@keyframes in-sword { 0%,100% { transform:translateX(-50%) rotate(0deg) } 25% { transform:translateX(-50%) rotate(5deg) translateY(-2px) } 50% { transform:translateX(-50%) rotate(-3deg) } 75% { transform:translateX(-50%) rotate(2deg) } }
@keyframes in-hands { 0%,100% { transform:translateX(-50%) } 50% { transform:translateX(-50%) translateY(-5px) } }
@keyframes in-burst { 0% { transform:translateX(-50%) scaleY(0.8); opacity:0.6 } 50% { transform:translateX(-50%) scaleY(1.2); opacity:1 } 100% { transform:translateX(-50%) scaleY(0.9); opacity:0.7 } }
@keyframes in-spark { 0% { opacity:0.2; transform:translateY(0) scale(0.5) } 25% { opacity:0.9; transform:translateY(-30px) scale(1.5) } 50% { opacity:1; transform:translateY(-60px) scale(2) } 75% { opacity:0.5; transform:translateY(-40px) scale(1.2) } 100% { opacity:0.1; transform:translateY(-80px) scale(0.3) } }

/* uncle-toby-misunderstands - funny bright interior */
.scn-uncle-toby-misunderstands {
  background:
    linear-gradient(180deg, #f5edd6 0%, #e8d5b0 60%, #d4b88a 100%),
    radial-gradient(ellipse at 80% 20%, #ffe8b0 0%, transparent 50%);
}
.scn-uncle-toby-misunderstands .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e4cc 0%, #d9c6a3 80%, #c4ae83 100%);
  animation: utm-pulse 12s ease-in-out infinite alternate;
}
.scn-uncle-toby-misunderstands .table {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 40px;
  background: linear-gradient(180deg, #a67c52 0%, #7a5a3a 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: utm-table 8s ease-in-out infinite;
}
.scn-uncle-toby-misunderstands .map {
  position: absolute; bottom: 32%; left: 28%; width: 60px; height: 45px;
  background: linear-gradient(135deg, #d6b88a 0%, #b89868 100%);
  border-radius: 6%; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(-5deg); animation: utm-map 10s ease-in-out infinite alternate;
}
.scn-uncle-toby-misunderstands .figure-uncle {
  position: absolute; bottom: 20%; left: 25%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #b7a080 0%, #8e785c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: utm-walk 3s ease-in-out infinite;
}
.scn-uncle-toby-misunderstands .figure-corporal {
  position: absolute; bottom: 20%; right: 25%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #9a8a6a 0%, #72634b 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: utm-walk 3.5s ease-in-out infinite reverse;
}
.scn-uncle-toby-misunderstands .cannon {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 8% 8% 30% 30%; box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  transform: rotate(10deg); animation: utm-cannon 6s ease-in-out infinite;
}
.scn-uncle-toby-misunderstands .window {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #d4e8ff 0%, #b0d0f0 100%);
  border-radius: 4%; border: 4px solid #8a7a6a; box-shadow: inset 0 0 20px rgba(255,255,240,0.6);
  animation: utm-window 8s ease-in-out infinite alternate;
}
.scn-uncle-toby-misunderstands .curtain-curtain {
  position: absolute; top: 8%; right: 8%; width: 16px; height: 104px;
  background: linear-gradient(180deg, #d6a878 0%, #b89060 100%);
  border-radius: 4% 20% 20% 4%; animation: utm-curtain 5s ease-in-out infinite;
}
@keyframes utm-pulse { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes utm-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes utm-map { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.02); } 100% { transform: rotate(-7deg) scale(0.98); } }
@keyframes utm-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes utm-cannon { 0%,100% { transform: rotate(10deg); } 50% { transform: rotate(14deg); } }
@keyframes utm-window { 0% { background: #d4e8ff; } 50% { background: #e0f0ff; box-shadow: 0 0 30px rgba(255,255,230,0.7); } 100% { background: #c0d8f0; } }
@keyframes utm-curtain { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } }

/* father-resumes - calm bright interior */
.scn-father-resumes {
  background:
    linear-gradient(180deg, #f0ead0 0%, #e0d4b8 40%, #c8bc9c 100%),
    radial-gradient(ellipse at 30% 70%, #fff5e0 0%, transparent 60%);
}
.scn-father-resumes .study-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8dfc6 0%, #d4c9ad 80%, #c0b594 100%);
  animation: fr-glow 15s ease-in-out infinite alternate;
}
.scn-father-resumes .bookshelf {
  position: absolute; top: 5%; left: 5%; width: 30%; height: 70%;
  background: linear-gradient(90deg, #7a6a5a 0%, #5a4a3a 6%, #7a6a5a 10%, #5a4a3a 16%, #7a6a5a 20%);
  border-radius: 2%; box-shadow: 2px 0 10px rgba(0,0,0,0.2);
  animation: fr-shelf 20s ease-in-out infinite alternate;
}
.scn-father-resumes .desk {
  position: absolute; bottom: 20%; left: 45%; right: 10%; height: 50px;
  background: linear-gradient(180deg, #b09878 0%, #8a7050 100%);
  border-radius: 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-father-resumes .chair {
  position: absolute; bottom: 24%; left: 50%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #9a8870 0%, #7a6a5a 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  transform: translateX(-50%); animation: fr-chair 8s ease-in-out infinite;
}
.scn-father-resumes .figure-father {
  position: absolute; bottom: 28%; left: 52%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #c0a888 0%, #9a846a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-5deg); animation: fr-read 6s ease-in-out infinite;
}
.scn-father-resumes .lamp {
  position: absolute; bottom: 40%; left: 40%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #c0a050 0%, #806030 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 8px #ffd080;
  animation: fr-lamp 4s ease-in-out infinite alternate;
}
.scn-father-resumes .book-open {
  position: absolute; bottom: 32%; left: 48%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a880 100%);
  border-radius: 8%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(10deg); animation: fr-book 12s ease-in-out infinite;
}
@keyframes fr-glow { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fr-shelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes fr-chair { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-48%) rotate(-2deg); } }
@keyframes fr-read { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-6deg); } }
@keyframes fr-lamp { 0% { box-shadow: 0 0 20px 4px #ffd080; } 50% { box-shadow: 0 0 40px 12px #ffd080; } 100% { box-shadow: 0 0 25px 6px #ffd080; } }
@keyframes fr-book { 0% { transform: rotate(10deg); } 50% { transform: rotate(15deg) scale(1.02); } 100% { transform: rotate(8deg); } }

/* uncle-toby-eye-search - funny bright interior */
.scn-uncle-toby-eye-search {
  background:
    linear-gradient(180deg, #f7f0da 0%, #e8dcc2 50%, #d4c8aa 100%),
    radial-gradient(ellipse at 60% 30%, #fff8e8 0%, transparent 60%);
}
.scn-uncle-toby-eye-search .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #efe4cc 0%, #dccfb3 100%);
  animation: utes-pulse 14s ease-in-out infinite alternate;
}
.scn-uncle-toby-eye-search .sofa {
  position: absolute; bottom: 20%; left: 20%; right: 40%; height: 50px;
  background: linear-gradient(180deg, #b09878 0%, #8a7050 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,0.2);
  animation: utes-sofa 10s ease-in-out infinite;
}
.scn-uncle-toby-eye-search .figure-toby-sitting {
  position: absolute; bottom: 22%; left: 28%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #a89070 0%, #7a6a52 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: utes-sit 5s ease-in-out infinite;
}
.scn-uncle-toby-eye-search .eye-orb {
  position: absolute; top: 30%; left: 55%; width: 24px; height: 24px;
  background: radial-gradient(circle, #ffd080 0%, #b89050 70%);
  border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,208,128,0.6), 0 0 60px 16px rgba(255,208,128,0.3);
  animation: utes-eye 3s ease-in-out infinite alternate;
}
.scn-uncle-toby-eye-search .armchair {
  position: absolute; bottom: 22%; right: 15%; width: 40px; height: 44px;
  background: linear-gradient(180deg, #9a8870 0%, #7a6a5a 100%);
  border-radius: 15% 15% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: utes-armchair 9s ease-in-out infinite;
}
.scn-uncle-toby-eye-search .rug {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 20px;
  background: linear-gradient(90deg, #c85868 0%, #a04850 25%, #805040 50%, #a04850 75%, #c85868 100%);
  border-radius: 20%; opacity: 0.7;
  animation: utes-rug 12s linear infinite alternate;
}
.scn-uncle-toby-eye-search .window {
  position: absolute; top: 8%; right: 8%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #d0e0f5 0%, #b0c8e8 100%);
  border-radius: 4%; border: 3px solid #8a7a6a; box-shadow: inset 0 0 10px rgba(255,255,240,0.5);
  animation: utes-window 10s ease-in-out infinite alternate;
}
.scn-uncle-toby-eye-search .curtain {
  position: absolute; top: 6%; right: 6%; width: 14px; height: 94px;
  background: linear-gradient(180deg, #d6b090 0%, #b89070 100%);
  border-radius: 4% 20% 20% 4%; animation: utes-curtain 6s ease-in-out infinite;
}
@keyframes utes-pulse { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes utes-sofa { 0%,100% { transform: scale(1); } 50% { transform: scale(0.98) translateY(-2px); } }
@keyframes utes-sit { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes utes-eye { 0% { box-shadow: 0 0 20px 4px rgba(255,208,128,0.5); transform: scale(1); } 50% { box-shadow: 0 0 50px 12px rgba(255,208,128,0.8); transform: scale(1.2); } 100% { box-shadow: 0 0 30px 6px rgba(255,208,128,0.6); transform: scale(0.95); } }
@keyframes utes-armchair { 0%,100% { transform: rotate(0); } 50% { transform: rotate(-3deg); } }
@keyframes utes-rug { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } }
@keyframes utes-window { 0% { background: #d0e0f5; } 50% { background: #e0f0ff; box-shadow: 0 0 20px rgba(255,255,230,0.6); } 100% { background: #c0d0e8; } }
@keyframes utes-curtain { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } }

/* eye-cannon-comparison - warm bright interior */
.scn-eye-cannon-comparison {
  background:
    linear-gradient(180deg, #faecd0 0%, #ecd6b8 50%, #d8c0a0 100%),
    radial-gradient(ellipse at 70% 40%, #ffefd0 0%, transparent 60%);
}
.scn-eye-cannon-comparison .studio-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f2e2c6 0%, #dcc8a8 80%, #c8b490 100%);
  animation: ecc-glow 16s ease-in-out infinite alternate;
}
.scn-eye-cannon-comparison .cannon-large {
  position: absolute; bottom: 15%; left: 10%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%; box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  transform: rotate(-5deg); animation: ecc-cannon 8s ease-in-out infinite;
}
.scn-eye-cannon-comparison .eye-shape {
  position: absolute; top: 25%; left: 60%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #ffe0a0 0%, #d8b080 60%, #a08050 100%);
  border-radius: 50%; box-shadow: 0 0 40px 12px rgba(255,224,160,0.5);
  animation: ecc-eye 4s ease-in-out infinite alternate;
}
.scn-eye-cannon-comparison .figure-observer {
  position: absolute; bottom: 20%; right: 20%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #b09878 0%, #8a7050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: ecc-observe 7s ease-in-out infinite;
}
.scn-eye-cannon-comparison .table-prop {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%); width: 60px; height: 20px;
  background: linear-gradient(180deg, #9a8870 0%, #7a6a5a 100%);
  border-radius: 6%; box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: ecc-table 10s ease-in-out infinite;
}
.scn-eye-cannon-comparison .light-beam {
  position: absolute; top: 20%; left: 40%; width: 6px; height: 80px;
  background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, transparent 100%);
  transform: rotate(15deg); filter: blur(2px);
  animation: ecc-beam 3s ease-in-out infinite alternate;
}
.scn-eye-cannon-comparison .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #b8a888 0%, #9a8870 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.2);
}
@keyframes ecc-glow { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ecc-cannon { 0%,100% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } }
@keyframes ecc-eye { 0% { box-shadow: 0 0 20px 6px rgba(255,224,160,0.4); transform: scale(1); } 50% { box-shadow: 0 0 60px 18px rgba(255,224,160,0.7); transform: scale(1.1); } 100% { box-shadow: 0 0 30px 8px rgba(255,224,160,0.5); transform: scale(0.95); } }
@keyframes ecc-observe { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ecc-table { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-48%) scale(0.98); } }
@keyframes ecc-beam { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }

.scn-father-character {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%),
              radial-gradient(ellipse at 30% 60%, #c08040 0%, transparent 60%);
}
.scn-father-character .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  animation: fa-wall 20s ease-in-out infinite alternate;
}
.scn-father-character .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-father-character .lamp {
  position: absolute; bottom: 50%; left: 25%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a, #5a3a1a);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,.6);
  animation: fa-lamp 2s ease-in-out infinite alternate;
}
.scn-father-character .chair {
  position: absolute; bottom: 30%; left: 45%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #5a4a3a, #3a2a1a);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  animation: fa-chair 5s ease-in-out infinite;
}
.scn-father-character .figure {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fa-figure 3s ease-in-out infinite;
}
.scn-father-character .figure::before {
  content: ''; position: absolute; top: -10px; left: 50%; width: 20px; height: 15px;
  background: #6a4a3a; border-radius: 50%; transform: translateX(-50%);
  animation: fa-head 3s ease-in-out infinite;
}
.scn-father-character .scale {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 20px;
  background: #6a5a3a; border-radius: 50% 50% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: fa-scale 6s ease-in-out infinite alternate;
}
.scn-father-character .curtain {
  position: absolute; top: 0; right: 0; width: 60px; height: 100%;
  background: linear-gradient(90deg, transparent, #5a3a2a);
  border-radius: 0 0 0 40%;
  animation: fa-curtain 12s ease-in-out infinite alternate;
}
@keyframes fa-wall { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes fa-lamp { 0% { box-shadow: 0 0 20px 6px rgba(192,128,64,.5) } 50% { box-shadow: 0 0 50px 18px rgba(255,200,100,.8) } 100% { box-shadow: 0 0 25px 8px rgba(192,128,64,.6) } }
@keyframes fa-chair { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes fa-figure { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(1px) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes fa-head { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-5deg) } }
@keyframes fa-scale { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes fa-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(5px) } }

.scn-father-hypothesis-reminder {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 60%, #c08040 0%, transparent 70%);
}
.scn-father-hypothesis-reminder .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a2a 30%, #3a2a1a 70%);
}
.scn-father-hypothesis-reminder .desk {
  position: absolute; bottom: 20%; left: 30%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.6);
  animation: fh-desk 15s ease-in-out infinite alternate;
}
.scn-father-hypothesis-reminder .figure {
  position: absolute; bottom: 35%; left: 40%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fh-figure 4s ease-in-out infinite;
}
.scn-father-hypothesis-reminder .figure::before {
  content: ''; position: absolute; top: -8px; left: 50%; width: 16px; height: 12px;
  background: #5a4a3a; border-radius: 50%; transform: translateX(-50%);
  animation: fh-head 4s ease-in-out infinite;
}
.scn-father-hypothesis-reminder .candle {
  position: absolute; bottom: 40%; left: 60%; width: 10px; height: 25px;
  background: linear-gradient(180deg, #d0a060, #a07030);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(255,180,80,.5);
  animation: fh-candle 2s ease-in-out infinite alternate;
}
.scn-father-hypothesis-reminder .candle::after {
  content: ''; position: absolute; top: -6px; left: 50%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%; transform: translateX(-50%);
}
.scn-father-hypothesis-reminder .note {
  position: absolute; bottom: 35%; left: 55%; width: 25px; height: 15px;
  background: #d0c0a0; border-radius: 5%;
  transform: rotate(-10deg);
  animation: fh-note 6s ease-in-out infinite;
}
.scn-father-hypothesis-reminder .hand {
  position: absolute; bottom: 38%; left: 50%; width: 12px; height: 20px;
  background: #4a3a2a; border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: fh-hand 4s ease-in-out infinite;
}
@keyframes fh-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fh-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes fh-head { 0% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(-3deg) } }
@keyframes fh-candle { 0% { box-shadow: 0 0 12px 3px rgba(255,180,80,.4) } 50% { box-shadow: 0 0 30px 10px rgba(255,200,100,.7) } 100% { box-shadow: 0 0 15px 4px rgba(255,180,80,.5) } }
@keyframes fh-note { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes fh-hand { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-3px) } 100% { transform: rotate(0deg) translateY(0) } }

.scn-father-axioms {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 50%, #b08040 0%, transparent 70%);
}
.scn-father-axioms .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 40%, #2a1a0a 80%);
}
.scn-father-axioms .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 15px rgba(0,0,0,.5);
}
.scn-father-axioms .figure {
  position: absolute; bottom: 35%; left: 50%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fx-figure 5s ease-in-out infinite;
}
.scn-father-axioms .figure::before {
  content: ''; position: absolute; top: -10px; left: 50%; width: 18px; height: 14px;
  background: #5a4a3a; border-radius: 50%; transform: translateX(-50%);
  animation: fx-head 5s ease-in-out infinite;
}
.scn-father-axioms .lamp {
  position: absolute; bottom: 40%; left: 30%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #8a6a3a, #5a3a1a);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 25px 8px rgba(192,128,64,.5);
  animation: fx-lamp 3s ease-in-out infinite alternate;
}
.scn-father-axioms .books {
  position: absolute; bottom: 22%; left: 40%; width: 80px; height: 25px;
  background: linear-gradient(90deg, #6a5a3a 0%, #5a4a2a 50%, #7a6a4a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: fx-books 20s ease-in-out infinite alternate;
}
.scn-father-axioms .quill {
  position: absolute; bottom: 28%; left: 60%; width: 5px; height: 30px;
  background: linear-gradient(180deg, #c0b0a0, #8a7a6a);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(20deg);
  animation: fx-quill 6s ease-in-out infinite;
}
.scn-father-axioms .inkwell {
  position: absolute; bottom: 25%; left: 58%; width: 12px; height: 14px;
  background: #3a2a1a; border-radius: 50% 50% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(255,255,255,.1);
}
@keyframes fx-figure { 0% { transform: translateY(0) rotate(-1deg) } 33% { transform: translateY(-2px) rotate(1deg) } 66% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes fx-head { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-4deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes fx-lamp { 0% { box-shadow: 0 0 15px 5px rgba(192,128,64,.4) } 50% { box-shadow: 0 0 40px 15px rgba(255,200,100,.7) } 100% { box-shadow: 0 0 20px 6px rgba(192,128,64,.5) } }
@keyframes fx-books { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fx-quill { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-4px) } 100% { transform: rotate(20deg) translateY(0) } }

.scn-soul-location {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 40%, #c08040 0%, transparent 60%);
}
.scn-soul-location .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 50%, #2a1a0a 100%);
}
.scn-soul-location .figure {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sl-figure 4s ease-in-out infinite;
}
.scn-soul-location .figure::before {
  content: ''; position: absolute; top: -15px; left: 50%; width: 22px; height: 18px;
  background: #5a4a3a; border-radius: 50%; transform: translateX(-50%);
}
.scn-soul-location .orb {
  position: absolute; bottom: 65%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(255,200,100,.6);
  animation: sl-orb 3s ease-in-out infinite alternate;
}
.scn-soul-location .candle {
  position: absolute; bottom: 35%; left: 30%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #d0a060, #a07030);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 15px 5px rgba(255,180,80,.4);
  animation: sl-candle 2.5s ease-in-out infinite alternate;
}
.scn-soul-location .candle::after {
  content: ''; position: absolute; top: -5px; left: 50%; width: 5px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%; transform: translateX(-50%);
}
.scn-soul-location .table {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.5);
}
.scn-soul-location .shadow {
  position: absolute; bottom: 0; left: 40%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: sl-shadow 6s ease-in-out infinite;
}
@keyframes sl-figure { 0% { transform: translateY(0) } 33% { transform: translateY(-2px) } 66% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes sl-orb { 0% { transform: scale(1) translate(-50%, 0) rotate(0deg); opacity: .8 } 50% { transform: scale(1.1) translate(-50%, -5px) rotate(10deg); opacity: 1 } 100% { transform: scale(0.95) translate(-50%, 0) rotate(-5deg); opacity: .9 } }
@keyframes sl-candle { 0% { box-shadow: 0 0 10px 3px rgba(255,180,80,.3) } 50% { box-shadow: 0 0 25px 8px rgba(255,200,100,.6) } 100% { box-shadow: 0 0 12px 4px rgba(255,180,80,.4) } }
@keyframes sl-shadow { 0% { opacity: .3; transform: scaleX(1) } 50% { opacity: .5; transform: scaleX(1.1) } 100% { opacity: .3; transform: scaleX(1) } }

/* digression-arrived (funny, dim-interior) */
.scn-digression-arrived {
  background: linear-gradient(180deg, #2a1e0e 0%, #3a2a14 40%, #4a3a1a 70%, #2a1e0e 100%),
              radial-gradient(ellipse at 50% 60%, #5a4a2a 0%, transparent 60%);
}
.scn-digression-arrived .bg { position:absolute; inset:0; background: repeating-linear-gradient(45deg, rgba(0,0,0,0.08) 0px, rgba(0,0,0,0.08) 4px, transparent 4px, transparent 8px); animation: da-shimmer 6s ease-in-out infinite alternate; }
.scn-digression-arrived .desk { position:absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 -6px 20px rgba(0,0,0,0.6); }
.scn-digression-arrived .chair { position:absolute; bottom:30%; left:50%; width:40px; height:60px; background: linear-gradient(180deg, #4a2a0a 0%, #2a1808 100%); border-radius: 30% 30% 10% 10%; transform: translateX(-50%) skewX(2deg); }
.scn-digression-arrived .writer { position:absolute; bottom:35%; left:48%; width:28px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da-writer 4s ease-in-out infinite; }
.scn-digression-arrived .candle { position:absolute; bottom:32%; left:70%; width:8px; height:20px; background: linear-gradient(180deg, #d4a040 0%, #a07020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 6px #d4a040, 0 0 24px 12px rgba(212,160,64,0.4); animation: da-candleglow 2s ease-in-out infinite alternate; }
.scn-digression-arrived .hourglass { position:absolute; bottom:28%; left:25%; width:20px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0; transform: skewX(-3deg); animation: da-hourglass 8s ease-in-out infinite; }
.scn-digression-arrived .book { position:absolute; bottom:12%; left:35%; width:50px; height:8px; background: linear-gradient(90deg, #7a5a3a, #5a3a1a, #4a2a0a); border-radius: 2px; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5)); transform: rotate(-2deg); }
@keyframes da-shimmer { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes da-writer { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 25% { transform: translateX(-48%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0); } 75% { transform: translateX(-52%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes da-candleglow { 0% { box-shadow: 0 0 8px 3px #c09030, 0 0 16px 6px rgba(192,144,48,0.5); } 50% { box-shadow: 0 0 16px 6px #e0b050, 0 0 30px 12px rgba(224,176,80,0.6); } 100% { box-shadow: 0 0 10px 4px #c09030, 0 0 20px 8px rgba(192,144,48,0.5); } }
@keyframes da-hourglass { 0% { transform: skewX(-3deg) scaleY(1); } 50% { transform: skewX(3deg) scaleY(0.95); } 100% { transform: skewX(-3deg) scaleY(1); } }

/* marching-to-wadman-door (tense, sunlit) */
.scn-marching-to-wadman-door {
  background: linear-gradient(180deg, #87CEEB 0%, #a0d8ef 30%, #f0e68c 60%, #8B7355 100%),
              radial-gradient(ellipse at 70% 20%, #ffd700 0%, transparent 40%);
}
.scn-marching-to-wadman-door .bg { position:absolute; inset:0; background: linear-gradient(0deg, #f5deb3 0%, #ffefd5 100%); opacity:0.3; }
.scn-marching-to-wadman-door .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8B7355 0%, #6B5B45 100%); border-radius: 30% 0 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); }
.scn-marching-to-wadman-door .house { position:absolute; bottom:35%; left:20%; width:200px; height:160px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 10% 10% 4% 4%; box-shadow: 5px 5px 20px rgba(0,0,0,0.4); }
.scn-marching-to-wadman-door .door { position:absolute; bottom:35%; left:30%; width:50px; height:90px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 10% 10% 0 0; border: 2px solid #3a2210; transform: rotate(3deg); }
.scn-marching-to-wadman-door .window { position:absolute; bottom:55%; left:22%; width:30px; height:30px; background: linear-gradient(180deg, #add8e6 0%, #b0e0e6 100%); border-radius: 10%; border: 2px solid #5a3a1a; box-shadow: inset 0 0 10px #87CEEB; }
.scn-marching-to-wadman-door .path { position:absolute; bottom:0; left:25%; right:55%; height:12%; background: linear-gradient(90deg, #a08060, #c0a080, #a08060); border-radius: 0 0 20% 20%; }
.scn-marching-to-wadman-door .figure-toby { position:absolute; bottom:10%; left:35%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mw-walk-toby 3s ease-in-out infinite; }
.scn-marching-to-wadman-door .figure-trim { position:absolute; bottom:10%; left:43%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mw-walk-trim 3s ease-in-out infinite 1.5s; }
@keyframes mw-walk-toby { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-2deg); } 75% { transform: translateX(15px) rotate(2deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes mw-walk-trim { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(12px) rotate(-2deg); } 100% { transform: translateX(16px) rotate(0deg); } }

/* corporal-knocks (tense, sunlit) */
.scn-corporal-knocks {
  background: linear-gradient(180deg, #87CEEB 0%, #a0d8ef 40%, #f0e68c 80%, #8B7355 100%),
              radial-gradient(ellipse at 60% 30%, #ffd700 0%, transparent 50%);
}
.scn-corporal-knocks .bg { position:absolute; inset:0; background: linear-gradient(90deg, #d2b48c 0%, #c0a080 100%); }
.scn-corporal-knocks .door-frame { position:absolute; bottom:10%; left:5%; right:5%; height:80%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); }
.scn-corporal-knocks .knocker { position:absolute; bottom:55%; left:38%; width:40px; height:30px; background: radial-gradient(circle at 50% 30%, #a07020 0%, #6a4a1a 100%); border-radius: 40% 40% 20% 20%; transform-origin: top center; animation: ck-knock 0.8s ease-in-out infinite alternate; }
.scn-corporal-knocks .hand { position:absolute; bottom:58%; left:42%; width:20px; height:15px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 50% 50% 40% 40%; transform: rotate(30deg); transform-origin: bottom center; animation: ck-hand 0.8s ease-in-out infinite alternate; }
.scn-corporal-knocks .shadow { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); border-radius: 30% 30% 0 0; animation: ck-shadow 2s ease-in-out infinite alternate; }
.scn-corporal-knocks .whistle { position:absolute; bottom:70%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #ffd700 0%, transparent 100%); border-radius: 50%; animation: ck-whistle 1s ease-in-out infinite; }
@keyframes ck-knock { 0% { transform: rotate(0deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(0deg); } }
@keyframes ck-hand { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-5px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes ck-shadow { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.2; } }
@keyframes ck-whistle { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(2); } 100% { opacity:0.7; transform: scale(1); } }

/* narrator-debt-digression (funny, dim-interior) */
.scn-narrator-debt-digression {
  background: linear-gradient(180deg, #2a1e0e 0%, #3a2a14 40%, #4a3a1a 70%, #2a1e0e 100%),
              radial-gradient(ellipse at 30% 50%, #5a4a2a 0%, transparent 60%);
}
.scn-narrator-debt-digression .bg { position:absolute; inset:0; background: repeating-linear-gradient(-45deg, rgba(0,0,0,0.05) 0px, rgba(0,0,0,0.05) 6px, transparent 6px, transparent 12px); animation: nd-shimmer 10s ease-in-out infinite alternate; }
.scn-narrator-debt-digression .table { position:absolute; bottom:15%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 10% 10% 2% 2%; box-shadow: 0 -4px 15px rgba(0,0,0,0.5); }
.scn-narrator-debt-digression .fabric { position:absolute; bottom:25%; left:20%; width:60%; height:12%; background: linear-gradient(90deg, #8a6a3a, #6a4a2a, #5a3a1a); border-radius: 30% 30% 10% 10%; transform: skewY(2deg); animation: nd-fabric 6s ease-in-out infinite; }
.scn-narrator-debt-digression .scissors { position:absolute; bottom:28%; left:40%; width:30px; height:10px; background: linear-gradient(90deg, #6a5a3a, #4a3a1a); border-radius: 40%; transform: rotate(15deg); transform-origin: right center; animation: nd-scissors 4s ease-in-out infinite; }
.scn-narrator-debt-digression .tailor { position:absolute; bottom:35%; left:55%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-tailor 5s ease-in-out infinite; }
.scn-narrator-debt-digression .candle { position:absolute; bottom:27%; left:70%; width:8px; height:22px; background: linear-gradient(180deg, #d4a040 0%, #a07020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px 4px #d4a040, 0 0 20px 8px rgba(212,160,64,0.4); animation: nd-candleglow 2.5s ease-in-out infinite alternate; }
.scn-narrator-debt-digression .door-latch { position:absolute; bottom:20%; left:10%; width:14px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 20% 20% 0 0; transform: rotate(-5deg); animation: nd-latch 3s ease-in-out infinite; }
@keyframes nd-shimmer { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.2; } }
@keyframes nd-fabric { 0% { transform: skewY(2deg) translateY(0); } 50% { transform: skewY(-2deg) translateY(-2px); } 100% { transform: skewY(2deg) translateY(0); } }
@keyframes nd-scissors { 0% { transform: rotate(15deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(15deg); } }
@keyframes nd-tailor { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-48%) rotate(3deg); } 50% { transform: translateX(-50%) rotate(0); } 75% { transform: translateX(-52%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes nd-candleglow { 0% { box-shadow: 0 0 6px 2px #c09030, 0 0 12px 4px rgba(192,144,48,0.5); } 50% { box-shadow: 0 0 14px 5px #e0b050, 0 0 28px 10px rgba(224,176,80,0.6); } 100% { box-shadow: 0 0 8px 3px #c09030, 0 0 16px 6px rgba(192,144,48,0.5); } }
@keyframes nd-latch { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(0.95); } 100% { transform: rotate(-5deg) scaleY(1); } }

/* dedication-sale */
.scn-dedication-sale {
  background:
    linear-gradient(180deg, #2b1a0e 0%, #4a3520 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 60%, #5a3a1a 0%, transparent 60%);
}
.scn-dedication-sale .bg-deep { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a0f08 0%, transparent 100%); animation: ds-pulse 12s ease-in-out infinite alternate; }
.scn-dedication-sale .bg-mid { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2518 0%, #2a1a10 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; animation: ds-sway 8s ease-in-out infinite; }
.scn-dedication-sale .desk { position:absolute; bottom:20%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #5a3a20 0%, #3a2a10 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-dedication-sale .scroll { position:absolute; bottom:28%; left:35%; width:12%; height:8%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: rotate(-10deg); animation: ds-unroll 9s ease-in-out infinite; }
.scn-dedication-sale .figure { position:absolute; bottom:22%; left:45%; width:14%; height:25%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds-bow 5s ease-in-out infinite; }
.scn-dedication-sale .lamp { position:absolute; bottom:45%; right:25%; width:8%; height:12%; background: linear-gradient(180deg, #8a6a30 0%, #5a4a20 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 6px #c08030; animation: ds-flicker 2s ease-in-out infinite; }
.scn-dedication-sale .glow { position:absolute; bottom:40%; right:22%; width:18%; height:20%; background: radial-gradient(circle, #ffd070 0%, transparent 70%); opacity: .6; animation: ds-pulse-glow 4s ease-in-out infinite; pointer-events: none; }
.scn-dedication-sale .cat { position:absolute; bottom:18%; left:22%; width:8%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ds-sit 7s ease-in-out infinite; }
@keyframes ds-pulse { 0%,100% { opacity:.5 } 50% { opacity:1 } }
@keyframes ds-sway { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes ds-unroll { 0%,100% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-5deg) scaleX(1.1) } }
@keyframes ds-bow { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(10px) rotate(5deg) } 50% { transform: translateX(0) rotate(-5deg) } 75% { transform: translateX(-12px) rotate(3deg) } }
@keyframes ds-flicker { 0%,100% { opacity:.8; box-shadow: 0 0 15px 4px #c08030 } 50% { opacity:1; box-shadow: 0 0 25px 8px #e0a040 } }
@keyframes ds-pulse-glow { 0%,100% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.2) } }
@keyframes ds-sit { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.8) } }

/* parson-horse-story */
.scn-parson-horse-story {
  background:
    linear-gradient(180deg, #7a9a7a 0%, #4a6a4a 40%, #2a3a2a 100%),
    radial-gradient(ellipse at 50% 30%, #a0c0a0 0%, transparent 70%);
}
.scn-parson-horse-story .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0d0b0 0%, #6a8a6a 100%); animation: phs-sky 15s ease-in-out infinite alternate; }
.scn-parson-horse-story .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #5a7a4a 0%, #2a4a2a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-parson-horse-story .horse { position:absolute; bottom:25%; left:40%; width:25%; height:30%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: phs-trot 4s ease-in-out infinite; }
.scn-parson-horse-story .parson { position:absolute; bottom:45%; left:43%; width:10%; height:15%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; animation: phs-bounce 3s ease-in-out infinite; }
.scn-parson-horse-story .tree { position:absolute; bottom:30%; left:10%; width:12%; height:40%; background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%); border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; animation: phs-sway 10s ease-in-out infinite; }
.scn-parson-horse-story .fence { position:absolute; bottom:20%; left:0; right:0; height:4%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 8px, transparent 8px, transparent 12px); animation: phs-fence 20s linear infinite; }
.scn-parson-horse-story .window-light { position:absolute; top:10%; right:15%; width:15%; height:10%; background: radial-gradient(circle, #ffe0a0 0%, transparent 70%); opacity:.4; animation: phs-window 6s ease-in-out infinite; }
@keyframes phs-sky { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes phs-trot { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(6px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-6px) rotate(-2deg) } }
@keyframes phs-bounce { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes phs-sway { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes phs-fence { 0% { background-position: 0 0 } 100% { background-position: -40px 0 } }
@keyframes phs-window { 0%,100% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.2) } }

/* parson-horse-description */
.scn-parson-horse-description {
  background:
    linear-gradient(180deg, #8a8a6a 0%, #6a6a4a 40%, #4a4a2a 100%),
    radial-gradient(ellipse at 50% 50%, #aaa88a 0%, transparent 70%);
}
.scn-parson-horse-description .bg-window { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0b090 0%, #6a6a50 100%); animation: phd-sun 14s ease-in-out infinite alternate; }
.scn-parson-horse-description .horse-body { position:absolute; bottom:20%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: phd-canter 5s ease-in-out infinite; }
.scn-parson-horse-description .parson-silhouette { position:absolute; bottom:45%; left:40%; width:12%; height:18%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; animation: phd-rock 3s ease-in-out infinite; }
.scn-parson-horse-description .saddle { position:absolute; bottom:38%; left:42%; width:14%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-parson-horse-description .hat { position:absolute; bottom:58%; left:43%; width:8%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%; transform: rotate(-5deg); animation: phd-tilt 4s ease-in-out infinite; }
.scn-parson-horse-description .motion-line { position:absolute; bottom:35%; left:32%; width:6%; height:2%; background: #8a8a6a; border-radius: 50%; opacity:.4; animation: phd-dash 3s linear infinite; }
.scn-parson-horse-description .motion-line2 { position:absolute; bottom:30%; right:30%; width:8%; height:2%; background: #8a8a6a; border-radius: 50%; opacity:.3; animation: phd-dash 4s linear infinite 1s; }
@keyframes phd-sun { 0%,100% { opacity:.6 } 50% { opacity:1 } }
@keyframes phd-canter { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(3deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-8px) rotate(-3deg) } }
@keyframes phd-rock { 0%,100% { transform: rotate(0) } 50% { transform: rotate(10deg) } }
@keyframes phd-tilt { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes phd-dash { 0% { opacity:.4; transform: translateX(0) } 50% { opacity:.8; transform: translateX(-20px) } 100% { opacity:.4; transform: translateX(0) } }

/* parson-horse-accoutrements */
.scn-parson-horse-accoutrements {
  background:
    linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #1a120a 100%),
    radial-gradient(ellipse at 50% 40%, #4a2a1a 0%, transparent 60%);
}
.scn-parson-horse-accoutrements .bg-stable { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a120a 0%, #2a1a10 100%); animation: pha-shadow 15s ease-in-out infinite alternate; }
.scn-parson-horse-accoutrements .horse-neck { position:absolute; bottom:25%; left:20%; width:20%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform: rotate(10deg); }
.scn-parson-horse-accoutrements .saddle-close { position:absolute; bottom:40%; left:25%; width:25%; height:15%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5), inset 0 2px 4px #6a5a3a; animation: pha-polish 8s ease-in-out infinite; }
.scn-parson-horse-accoutrements .harness { position:absolute; bottom:35%; left:35%; width:15%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 0 2px #8a6a3a; animation: pha-leather 6s ease-in-out infinite; }
.scn-parson-horse-accoutrements .blanket { position:absolute; bottom:30%; left:22%; width:30%; height:18%; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; border: 2px solid #4a6a4a; animation: pha-blanket 10s ease-in-out infinite; }
.scn-parson-horse-accoutrements .lantern { position:absolute; bottom:50%; right:20%; width:10%; height:15%; background: linear-gradient(180deg, #8a6a30 0%, #5a4a20 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 6px #c08030; animation: pha-lantern 3s ease-in-out infinite; }
.scn-parson-horse-accoutrements .glow-close { position:absolute; bottom:45%; right:17%; width:18%; height:22%; background: radial-gradient(circle, #ffd070 0%, transparent 60%); opacity:.5; animation: pha-glow-pulse 4s ease-in-out infinite; pointer-events: none; }
@keyframes pha-shadow { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes pha-polish { 0%,100% { box-shadow: 0 4px 8px rgba(0,0,0,.5), inset 0 2px 4px #6a5a3a } 50% { box-shadow: 0 6px 12px rgba(0,0,0,.7), inset 0 3px 6px #8a7a5a } }
@keyframes pha-leather { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pha-blanket { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes pha-lantern { 0%,100% { opacity:.8; box-shadow: 0 0 15px 4px #c08030 } 50% { opacity:1; box-shadow: 0 0 25px 8px #e0a040 } }
@keyframes pha-glow-pulse { 0%,100% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.3) } }

/* yorick-travel-anecdote: funny, dim interior – tavern with travelers */
.scn-yorick-travel-anecdote {
  background: 
    radial-gradient(ellipse at 50% 40%, #4a3520 0%, transparent 50%),
    linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%);
}
.scn-yorick-travel-anecdote .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  animation: yt1-wall 20s ease-in-out infinite alternate;
}
.scn-yorick-travel-anecdote .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
}
.scn-yorick-travel-anecdote .table {
  position: absolute; bottom: 28%; left: 50%; width: 35%; height: 8%;
  transform: translateX(-50%) perspective(200px) rotateX(10deg);
  background: linear-gradient(135deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 4px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.6);
  animation: yt1-table 6s ease-in-out infinite;
}
.scn-yorick-travel-anecdote .tankard {
  position: absolute; bottom: 32%; left: 44%; width: 7%; height: 10%;
  background: radial-gradient(circle at 30% 20%, #c0a070 0%, #806040 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: yt1-tankard 4s ease-in-out infinite alternate;
}
.scn-yorick-travel-anecdote .candle {
  position: absolute; bottom: 34%; left: 48%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #e0c080 0%, #c08050 100%);
  border-radius: 20%;
  filter: blur(1px);
  box-shadow: 0 0 12px 6px rgba(224,192,128,0.4);
  animation: yt1-candle 3s ease-in-out infinite alternate;
}
.scn-yorick-travel-anecdote .figure-left {
  position: absolute; bottom: 25%; left: 30%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yt1-figL 8s ease-in-out infinite;
}
.scn-yorick-travel-anecdote .figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yt1-figR 9s ease-in-out infinite;
}
.scn-yorick-travel-anecdote .map {
  position: absolute; bottom: 30%; left: 38%; width: 20%; height: 12%;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 4%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: yt1-map 12s ease-in-out infinite alternate;
}
@keyframes yt1-wall { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.7 } }
@keyframes yt1-table { 0%, 100% { transform: translateX(-50%) perspective(200px) rotateX(10deg) translateY(0); } 50% { transform: translateX(-50%) perspective(200px) rotateX(10deg) translateY(-2px); } }
@keyframes yt1-tankard { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg) translateX(-1px); } 75% { transform: rotate(-5deg) translateX(1px); } 100% { transform: rotate(0deg); } }
@keyframes yt1-candle { 0% { opacity: 0.8; transform: scaleY(1) translateY(0); } 50% { opacity: 1; transform: scaleY(1.05) translateY(-1px); } 100% { opacity: 0.85; transform: scaleY(0.95) translateY(1px); } }
@keyframes yt1-figL { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(2deg) translateY(-1px); } 75% { transform: translateX(-1px) rotate(-3deg) translateY(1px); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes yt1-figR { 0% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(-2px) rotate(-2deg) translateY(1px); } 70% { transform: translateX(1px) rotate(3deg) translateY(-1px); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes yt1-map { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(0.98) rotate(-2deg); } }

/* yorick-character: warm, dim interior – study or library */
.scn-yorick-character {
  background:
    radial-gradient(ellipse at 60% 50%, #5a3a20 0%, transparent 60%),
    linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%);
}
.scn-yorick-character .bg-bookshelf {
  position: absolute; inset: 0 0 50% 0;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 20px, #2a1a0e 20px, #2a1a0e 40px);
  border-bottom: 4px solid #5a3a20;
  animation: yc2-shelf 30s linear infinite;
}
.scn-yorick-character .desk {
  position: absolute; bottom: 28%; left: 50%; width: 50%; height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-yorick-character .book-open {
  position: absolute; bottom: 32%; left: 42%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #c8a070 0%, #a08050 100%);
  border-radius: 4%;
  transform: perspective(300px) rotateX(30deg);
  animation: yc2-book 10s ease-in-out infinite alternate;
}
.scn-yorick-character .candle-stick {
  position: absolute; bottom: 34%; left: 58%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #e0c080 0%, #c08040 100%);
  border-radius: 20%;
  box-shadow: 0 0 16px 8px rgba(224,192,128,0.3);
  animation: yc2-candle 4s ease-in-out infinite alternate;
}
.scn-yorick-character .figure-speaker {
  position: absolute; bottom: 25%; left: 35%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yc2-speak 7s ease-in-out infinite;
}
.scn-yorick-character .hand-gesture {
  position: absolute; bottom: 42%; left: 47%; width: 6%; height: 10%;
  background: radial-gradient(circle, #5a3a20 0%, transparent 100%);
  border-radius: 50%;
  transform-origin: bottom left;
  animation: yc2-hand 5s ease-in-out infinite alternate;
}
.scn-yorick-character .shadow-desk {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: yc2-shadow 8s ease-in-out infinite alternate;
}
@keyframes yc2-shelf { 0% { background-position: 0 0; } 100% { background-position: -40px 0; } }
@keyframes yc2-book { 0% { transform: perspective(300px) rotateX(30deg) rotateY(0); } 50% { transform: perspective(300px) rotateX(30deg) rotateY(5deg); } 100% { transform: perspective(300px) rotateX(30deg) rotateY(-5deg); } }
@keyframes yc2-candle { 0% { opacity: 0.75; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.03); } 100% { opacity: 0.8; transform: scaleY(0.97); } }
@keyframes yc2-speak { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(3px) rotate(2deg) translateY(-1px); } 70% { transform: translateX(-2px) rotate(-3deg) translateY(1px); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes yc2-hand { 0% { transform: rotate(0deg) translate(0,0); } 50% { transform: rotate(15deg) translate(2px,-2px); } 100% { transform: rotate(-10deg) translate(-1px,1px); } }
@keyframes yc2-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

/* yorick-gravity-wit: funny, dim interior – theatrical stage with two figures */
.scn-yorick-gravity-wit {
  background:
    radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 50%),
    linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%);
}
.scn-yorick-gravity-wit .bg-curtain {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(90deg, #5a3a2a 0%, transparent 20%, transparent 80%, #5a3a2a 100%);
  animation: yg3-curtain 15s ease-in-out infinite alternate;
}
.scn-yorick-gravity-wit .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-yorick-gravity-wit .gravity-figure {
  position: absolute; bottom: 30%; left: 24%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: yg3-grav 8s ease-in-out infinite;
}
.scn-yorick-gravity-wit .yorick-figure {
  position: absolute; bottom: 28%; right: 22%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yg3-yor 6s ease-in-out infinite;
}
.scn-yorick-gravity-wit .bubble-thought {
  position: absolute; bottom: 55%; right: 30%; width: 10%; height: 10%;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: yg3-bubble 4s ease-in-out infinite alternate;
}
.scn-yorick-gravity-wit .scale-tilt {
  position: absolute; bottom: 40%; left: 50%; width: 20%; height: 6%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: yg3-scale 7s ease-in-out infinite alternate;
}
.scn-yorick-gravity-wit .confetti {
  position: absolute; top: 10%; left: 0; width: 100%; height: 100%;
  background:
    radial-gradient(circle at 20% 30%, #c8a070 2px, transparent 2px),
    radial-gradient(circle at 70% 80%, #a08050 2px, transparent 2px),
    radial-gradient(circle at 40% 50%, #e0c080 2px, transparent 2px);
  background-size: 60px 60px;
  animation: yg3-confetti 12s linear infinite;
}
@keyframes yg3-curtain { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes yg3-grav { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 25% { transform: translateX(-4px) rotate(-5deg) scaleY(0.9); } 75% { transform: translateX(4px) rotate(5deg) scaleY(1.1); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes yg3-yor { 0% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(-3px) rotate(-4deg) translateY(2px); } 70% { transform: translateX(3px) rotate(4deg) translateY(-2px); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes yg3-bubble { 0% { transform: scale(0.5) translate(0, 0); opacity: 0.3; } 50% { transform: scale(1.2) translate(5px, -10px); opacity: 0.7; } 100% { transform: scale(0.8) translate(-2px, -5px); opacity: 0.4; } }
@keyframes yg3-scale { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes yg3-confetti { 0% { background-position: 0 0; } 100% { background-position: 60px 60px; } }

/* yorick-indiscretion: warm, dim interior – a young man by a window */
.scn-yorick-indiscretion {
  background:
    radial-gradient(ellipse at 30% 60%, #5a3a20 0%, transparent 60%),
    linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%);
}
.scn-yorick-indiscretion .bg-window {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 45%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 100%);
  border: 4px solid #5a3a20;
  border-radius: 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: yi4-window 20s ease-in-out infinite alternate;
}
.scn-yorick-indiscretion .sill {
  position: absolute; bottom: 48%; left: 18%; width: 64%; height: 4%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.scn-yorick-indiscretion .figure-young {
  position: absolute; bottom: 22%; left: 50%; width: 14%; height: 38%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yi4-young 9s ease-in-out infinite;
}
.scn-yorick-indiscretion .flower {
  position: absolute; bottom: 30%; left: 46%; width: 4%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #c8a070 0%, #a08050 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,160,112,0.3);
  animation: yi4-flower 5s ease-in-out infinite alternate;
}
.scn-yorick-indiscretion .letter-sheet {
  position: absolute; bottom: 28%; left: 38%; width: 10%; height: 6%;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 2%;
  transform: rotate(-5deg);
  animation: yi4-letter 8s ease-in-out infinite alternate;
}
.scn-yorick-indiscretion .candle-dim {
  position: absolute; bottom: 38%; left: 72%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #d0b080 0%, #b09060 100%);
  border-radius: 20%;
  filter: blur(1px);
  box-shadow: 0 0 10px 4px rgba(208,176,128,0.4);
  animation: yi4-candle 4s ease-in-out infinite alternate;
}
.scn-yorick-indiscretion .moth {
  position: absolute; top: 15%; left: 60%; width: 3%; height: 3%;
  background: radial-gradient(circle, #c8a870 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: yi4-moth 6s ease-in-out infinite alternate;
}
@keyframes yi4-window { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes yi4-young { 0% { transform: translateX(-50%) rotate(0deg) translateY(0); } 25% { transform: translateX(-48%) rotate(2deg) translateY(-2px); } 75% { transform: translateX(-52%) rotate(-2deg) translateY(2px); } 100% { transform: translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes yi4-flower { 0% { transform: rotate(0deg) scale(1); opacity: 0.7; } 50% { transform: rotate(10deg) scale(1.05); opacity: 1; } 100% { transform: rotate(-5deg) scale(0.95); opacity: 0.8; } }
@keyframes yi4-letter { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-8deg) translateY(2px); } }
@keyframes yi4-candle { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.04); } 100% { opacity: 0.7; transform: scaleY(0.96); } }
@keyframes yi4-moth { 0% { transform: translate(0, 0) rotate(0); } 25% { transform: translate(10px, -20px) rotate(30deg); } 75% { transform: translate(-5px, -10px) rotate(-20deg); } 100% { transform: translate(0, 0) rotate(0); } }

/* ===== noise-above ===== */
.scn-noise-above {
  background: linear-gradient(180deg, #3a1e12 0%, #5c2f1e 30%, #2a1008 70%, #1a0804 100%),
              radial-gradient(ellipse at 50% 100%, #c85b2a 0%, transparent 60%);
}
.scn-noise-above .room-bg   { position:absolute; inset:0; background: linear-gradient(180deg, #2a150a 0%, #4a2518 40%, #1a0804 100%); }
.scn-noise-above .hearth    { position:absolute; bottom:10%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse, #e87a3a 0%, #b84a1a 50%, #4a1a0a 100%); border-radius:50%; box-shadow:0 0 80px 30px rgba(200,90,40,0.5); animation: na-hearth 4s ease-in-out infinite; }
.scn-noise-above .chair-left{ position:absolute; bottom:12%; left:30%; width:50px; height:70px; background: linear-gradient(90deg, #2a1508, #3a1c0c); border-radius:10% 10% 20% 20%; transform:rotate(2deg); }
.scn-noise-above .chair-right{position:absolute; bottom:10%; right:30%; width:50px; height:70px; background: linear-gradient(90deg, #3a1c0c, #2a1508); border-radius:10% 10% 20% 20%; transform:rotate(-3deg); }
.scn-noise-above .fig-left  { position:absolute; bottom:18%; left:33%; width:30px; height:60px; background: linear-gradient(180deg, #1a0a04 0%, #2a1008 50%, #1a0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: na-fig-left 6s ease-in-out infinite; }
.scn-noise-above .fig-right { position:absolute; bottom:16%; right:33%; width:30px; height:58px; background: linear-gradient(180deg, #1a0a04 0%, #2a1008 50%, #1a0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: na-fig-right 6s ease-in-out infinite reverse; }
.scn-noise-above .noise-ripple{position:absolute; top:5%; left:50%; width:60px; height:60px; transform:translateX(-50%); background:radial-gradient(circle, rgba(200,180,140,0.3) 0%, transparent 70%); border-radius:50%; animation: na-ripple 3s ease-out infinite; }
.scn-noise-above .shadow-floor{position:absolute; bottom:0; left:0; right:0; height:15%; background:linear-gradient(180deg, transparent, rgba(0,0,0,0.6)); }
@keyframes na-hearth { 0% { opacity:0.8; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.02); } 100% { opacity:0.85; transform:translateX(-50%) scale(0.98); } }
@keyframes na-fig-left { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(-4px) rotate(-3deg); } 60% { transform:translateX(2px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes na-fig-right { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(4px) rotate(3deg); } 60% { transform:translateX(-2px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes na-ripple { 0% { opacity:0.6; transform:translateX(-50%) scale(0.5); } 50% { opacity:0.2; transform:translateX(-50%) scale(1.5); } 100% { opacity:0; transform:translateX(-50%) scale(2.5); } }

/* ===== father-complaint ===== */
.scn-father-complaint {
  background: linear-gradient(135deg, #3a1e12 0%, #5a2c1a 50%, #2a1008 100%),
              radial-gradient(ellipse at 70% 60%, #c85b2a 0%, transparent 50%);
}
.scn-father-complaint .room-bg   { position:absolute; inset:0; background: linear-gradient(180deg, #2a150a 0%, #4a2518 50%, #1a0804 100%); }
.scn-father-complaint .door      { position:absolute; right:5%; bottom:20%; width:40px; height:120px; background: linear-gradient(90deg, #3a1c0c, #2a1508); border-radius:4% 0 0 4%; box-shadow: inset 0 0 10px #1a0a04; }
.scn-father-complaint .fireplace { position:absolute; bottom:10%; left:50%; width:100px; height:90px; transform:translateX(-50%); background: radial-gradient(ellipse, #d46a2a 0%, #a0401a 50%, #2a0a04 100%); border-radius:20% 20% 10% 10%; box-shadow:0 0 60px 20px rgba(200,80,30,0.4); animation: fc-fire 4s ease-in-out infinite; }
.scn-father-complaint .chair-uncle{position:absolute; bottom:14%; left:25%; width:45px; height:65px; background: linear-gradient(90deg, #2a1508, #3a1c0c); border-radius:10% 10% 20% 20%; }
.scn-father-complaint .chair-father{position:absolute; bottom:12%; right:20%; width:50px; height:70px; background: linear-gradient(90deg, #3a1c0c, #2a1508); border-radius:10% 10% 20% 20%; }
.scn-father-complaint .fig-uncle { position:absolute; bottom:20%; left:27%; width:28px; height:55px; background: linear-gradient(180deg, #1a0a04 0%, #2a1008 50%, #1a0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: fc-uncle 8s ease-in-out infinite; }
.scn-father-complaint .fig-father{ position:absolute; bottom:18%; right:22%; width:30px; height:60px; background: linear-gradient(180deg, #1a0a04 0%, #3a1508 50%, #1a0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: fc-father 6s ease-in-out infinite; }
.scn-father-complaint .table     { position:absolute; bottom:10%; left:40%; width:60px; height:20px; background: linear-gradient(180deg, #2a1508, #1a0a04); border-radius:10%; transform:rotate(1deg); }
@keyframes fc-fire { 0% { opacity:0.85; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.03); } 100% { opacity:0.9; transform:translateX(-50%) scale(0.97); } }
@keyframes fc-uncle { 0% { transform:translateX(0) rotate(1deg); } 30% { transform:translateX(3px) rotate(-2deg); } 60% { transform:translateX(-2px) rotate(3deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes fc-father { 0% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(-5px) rotate(2deg); } 50% { transform:translateX(2px) rotate(-3deg); } 75% { transform:translateX(-3px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }

/* ===== aposiopesis ===== */
.scn-aposiopesis {
  background: linear-gradient(135deg, #4a2518 0%, #6a3520 40%, #2a1008 100%),
              radial-gradient(ellipse at 50% 80%, #d46a2a 0%, transparent 60%);
}
.scn-aposiopesis .room-bg   { position:absolute; inset:0; background: linear-gradient(180deg, #2a150a 0%, #4a2518 50%, #1a0804 100%); }
.scn-aposiopesis .chair-father{position:absolute; bottom:12%; left:20%; width:55px; height:75px; background: linear-gradient(90deg, #2a1508, #3a1c0c); border-radius:10% 10% 20% 20%; transform:rotate(5deg); }
.scn-aposiopesis .fig-father{ position:absolute; bottom:18%; left:22%; width:32px; height:62px; background: linear-gradient(180deg, #1a0a04 0%, #2a1008 50%, #1a0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ap-fig 4s ease-in-out infinite; }
.scn-aposiopesis .pipe      { position:absolute; bottom:30%; left:40%; width:6px; height:60px; background: linear-gradient(180deg, #3a1c0c, #2a1508); border-radius:40% 40% 10% 10%; transform:rotate(-30deg); transform-origin:bottom center; animation: ap-pipe 3s ease-in-out infinite; }
.scn-aposiopesis .pipe-snap { position:absolute; bottom:42%; left:42%; width:10px; height:8px; background: radial-gradient(circle, #aa5a2a, #4a1a0a); border-radius:50%; box-shadow:0 0 10px #aa5a2a; animation: ap-snap 0.8s ease-out infinite; }
.scn-aposiopesis .spark1    { position:absolute; bottom:44%; left:38%; width:4px; height:4px; background: #f0a040; border-radius:50%; box-shadow:0 0 8px #f0a040; animation: ap-spark1 1.2s ease-out infinite; }
.scn-aposiopesis .spark2    { position:absolute; bottom:40%; left:48%; width:3px; height:3px; background: #e08030; border-radius:50%; box-shadow:0 0 6px #e08030; animation: ap-spark2 1.5s ease-out infinite; }
@keyframes ap-fig { 0% { transform:translateX(0) rotate(-1deg); } 20% { transform:translateX(5px) rotate(3deg); } 40% { transform:translateX(-2px) rotate(-2deg); } 60% { transform:translateX(-5px) rotate(2deg); } 80% { transform:translateX(2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ap-pipe { 0% { transform:rotate(-30deg) scaleY(1); } 25% { transform:rotate(-25deg) scaleY(0.9); } 50% { transform:rotate(-35deg) scaleY(1.05); } 75% { transform:rotate(-20deg) scaleY(1); } 100% { transform:rotate(-30deg) scaleY(1); } }
@keyframes ap-snap { 0% { opacity:1; transform:scale(1); } 100% { opacity:0; transform:scale(2.5); } }
@keyframes ap-spark1 { 0% { opacity:0; transform:translate(0,0); } 20% { opacity:1; } 100% { opacity:0; transform:translate(-20px, -30px); } }
@keyframes ap-spark2 { 0% { opacity:0; transform:translate(0,0); } 30% { opacity:1; } 100% { opacity:0; transform:translate(25px, -20px); } }

/* ===== father-anger ===== */
.scn-father-anger {
  background: linear-gradient(135deg, #3a1e12 0%, #5a2c1a 50%, #1a0804 100%),
              radial-gradient(ellipse at 40% 70%, #c85b2a 0%, transparent 50%);
}
.scn-father-anger .room-bg   { position:absolute; inset:0; background: linear-gradient(180deg, #2a150a 0%, #4a2518 60%, #1a0804 100%); }
.scn-father-anger .chair-father{position:absolute; bottom:10%; left:25%; width:55px; height:80px; background: linear-gradient(90deg, #2a1508, #3a1c0c); border-radius:10% 10% 20% 20%; transform:rotate(-8deg); }
.scn-father-anger .fig-father{ position:absolute; bottom:16%; left:28%; width:35px; height:70px; background: linear-gradient(180deg, #1a0a04 0%, #3a1508 50%, #1a0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: fa-fig 3s ease-in-out infinite; }
.scn-father-anger .pipe-left { position:absolute; bottom:32%; left:20%; width:6px; height:28px; background: linear-gradient(180deg, #3a1c0c, #2a1508); border-radius:10% 10% 40% 40%; transform:rotate(25deg); animation: fa-pipe-left 1.5s ease-in-out infinite alternate; }
.scn-father-anger .pipe-right{ position:absolute; bottom:44%; left:45%; width:6px; height:30px; background: linear-gradient(180deg, #3a1c0c, #2a1508); border-radius:40% 40% 10% 10%; transform:rotate(-40deg); animation: fa-pipe-right 1.8s ease-in-out infinite alternate; }
.scn-father-anger .motion-trail{position:absolute; bottom:40%; left:15%; width:40px; height:4px; background: linear-gradient(90deg, rgba(200,120,40,0.3), transparent); border-radius:50%; filter:blur(2px); animation: fa-trail 2s ease-out infinite; }
.scn-father-anger .fireplace { position:absolute; bottom:5%; right:15%; width:80px; height:100px; background: radial-gradient(ellipse, #d46a2a 0%, #a0401a 50%, #2a0a04 100%); border-radius:20% 20% 10% 10%; box-shadow:0 0 50px 15px rgba(200,80,30,0.4); animation: fa-fire 4s ease-in-out infinite; }
@keyframes fa-fig { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(10px) rotate(-5deg); } 50% { transform:translateX(0) rotate(3deg); } 75% { transform:translateX(-8px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes fa-pipe-left { 0% { transform:rotate(25deg) translateX(0); } 100% { transform:rotate(45deg) translateX(15px); } }
@keyframes fa-pipe-right { 0% { transform:rotate(-40deg) translateX(0); } 100% { transform:rotate(-60deg) translateX(-20px); } }
@keyframes fa-trail { 0% { opacity:0.6; transform:scaleX(0.5); } 100% { opacity:0; transform:scaleX(1.5); } }
@keyframes fa-fire { 0% { opacity:0.9; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.85; transform:scale(0.98); } }

/* scene: author-rant-begatting */
.scn-author-rant-begatting {
  background: 
    linear-gradient(180deg, #2e1f0e 0%, #4a3520 40%, #3a2a18 100%),
    radial-gradient(ellipse at 50% 60%, #5a4028 0%, transparent 70%);
}
.scn-author-rant-begatting .bed {
  position: absolute;
  bottom: 10%;
  left: 10%;
  width: 80%;
  height: 40%;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 10% 10%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
  animation: arb-bed 12s ease-in-out infinite alternate;
}
.scn-author-rant-begatting .figure-man {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: arb-man 4s ease-in-out infinite;
}
.scn-author-rant-begatting .figure-woman {
  position: absolute;
  bottom: 28%;
  right: 30%;
  width: 36px;
  height: 66px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: arb-woman 5s ease-in-out infinite alternate;
}
.scn-author-rant-begatting .clock {
  position: absolute;
  top: 20%;
  right: 15%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #c8a060 0%, #8a6a40 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,160,96,0.4);
  animation: arb-clock 3s ease-in-out infinite;
}
.scn-author-rant-begatting .lamp {
  position: absolute;
  top: 25%;
  left: 20%;
  width: 12px;
  height: 18px;
  background: radial-gradient(circle, #f0d080 0%, #c8a050 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 24px 8px rgba(240,208,128,0.5);
  animation: arb-lamp 4s ease-in-out infinite alternate;
}
.scn-author-rant-begatting .curtain-l {
  position: absolute;
  top: 0;
  left: 0;
  width: 20%;
  height: 100%;
  background: linear-gradient(90deg, #4a3020 0%, transparent 100%);
  animation: arb-curtain 15s ease-in-out infinite alternate;
}
.scn-author-rant-begatting .curtain-r {
  position: absolute;
  top: 0;
  right: 0;
  width: 20%;
  height: 100%;
  background: linear-gradient(270deg, #4a3020 0%, transparent 100%);
  animation: arb-curtain-r 15s ease-in-out infinite alternate;
}
.scn-author-rant-begatting .homunculus-glow {
  position: absolute;
  bottom: 38%;
  left: 42%;
  width: 16px;
  height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #c89050 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.6);
  animation: arb-homunculus 2s ease-in-out infinite alternate;
}
@keyframes arb-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes arb-man { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes arb-woman { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes arb-clock { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(0.98) rotate(1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes arb-lamp { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: 0.7; transform: translateY(0); } }
@keyframes arb-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes arb-curtain-r { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes arb-homunculus { 0% { transform: scale(0.8); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.6; } }

/* scene: clock-interruption */
.scn-clock-interruption {
  background: 
    linear-gradient(180deg, #1a1828 0%, #2a2840 50%, #1a1828 100%),
    radial-gradient(ellipse at 70% 50%, #2a2840 0%, transparent 80%);
}
.scn-clock-interruption .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1e1c30 0%, #3a3850 100%);
  opacity: 0.3;
  animation: cli-wall 8s ease-in-out infinite alternate;
}
.scn-clock-interruption .clock-face {
  position: absolute;
  top: 18%;
  right: 20%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #b0a080 0%, #8a7a60 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(176,160,128,0.3);
  animation: cli-face 3s ease-in-out infinite;
}
.scn-clock-interruption .pendulum {
  position: absolute;
  top: 30%;
  right: 28%;
  width: 6px;
  height: 40px;
  background: linear-gradient(180deg, #b0a080 0%, #6a5a40 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: top center;
  animation: cli-pendulum 1.5s ease-in-out infinite;
}
.scn-clock-interruption .man-silhouette {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 45px;
  height: 80px;
  background: #0e0c1a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cli-man 0.5s ease-in-out infinite alternate;
}
.scn-clock-interruption .woman-silhouette {
  position: absolute;
  bottom: 20%;
  right: 35%;
  width: 40px;
  height: 75px;
  background: #1a1830;
  border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: cli-woman 0.8s ease-in-out infinite alternate;
}
.scn-clock-interruption .chair {
  position: absolute;
  bottom: 12%;
  left: 38%;
  width: 50px;
  height: 60px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1814 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  animation: cli-chair 6s ease-in-out infinite alternate;
}
.scn-clock-interruption .shadow-tremble {
  position: absolute;
  bottom: 0;
  left: 20%;
  width: 60%;
  height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a0810 100%);
  animation: cli-shadow 0.3s ease-in-out infinite;
}
@keyframes cli-wall { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }
@keyframes cli-face { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 20px 8px rgba(176,160,128,0.2); } 50% { transform: scale(1.02) rotate(2deg); box-shadow: 0 0 40px 15px rgba(176,160,128,0.5); } 100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 20px 8px rgba(176,160,128,0.2); } }
@keyframes cli-pendulum { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-20deg); } }
@keyframes cli-man { 0% { transform: translateX(0) rotate(-3deg); } 100% { transform: translateX(2px) rotate(3deg); } }
@keyframes cli-woman { 0% { transform: translateX(0) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes cli-chair { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes cli-shadow { 0% { transform: scaleY(1); opacity: 0.3; } 50% { transform: scaleY(1.1); opacity: 0.5; } 100% { transform: scaleY(1); opacity: 0.3; } }

/* scene: homunculus-explanation */
.scn-homunculus-explanation {
  background: 
    linear-gradient(180deg, #2a1a10 0%, #4a3020 40%, #2a1a10 100%),
    radial-gradient(ellipse at 30% 70%, #5a3820 0%, transparent 70%);
}
.scn-homunculus-explanation .bg-chamber {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #3a2820 0%, transparent 60%);
  animation: hex-chamber 10s ease-in-out infinite alternate;
}
.scn-homunculus-explanation .homunculus-body {
  position: absolute;
  bottom: 35%;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #e8c088 0%, #c89860 100%);
  border-radius: 60% 60% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(232,192,136,0.5);
  animation: hex-body 3s ease-in-out infinite alternate;
}
.scn-homunculus-explanation .homunculus-head {
  position: absolute;
  bottom: 55%;
  left: 50%;
  transform: translateX(-50%);
  width: 22px;
  height: 22px;
  background: radial-gradient(circle, #f0d8b0 0%, #d8b890 80%);
  border-radius: 50%;
  box-shadow: 0 0 15px 4px rgba(240,216,176,0.4);
  animation: hex-head 2s ease-in-out infinite alternate;
}
.scn-homunculus-explanation .spirit {
  position: absolute;
  width: 10px;
  height: 10px;
  background: radial-gradient(circle, #ffe8b0 0%, #e8c070 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,232,176,0.6);
  animation: hex-spirit 5s ease-in-out infinite;
}
.scn-homunculus-explanation .spirit-a {
  top: 30%;
  left: 20%;
  animation-duration: 6s;
  animation-delay: -1s;
}
.scn-homunculus-explanation .spirit-b {
  top: 45%;
  right: 25%;
  animation-duration: 7s;
  animation-delay: -3s;
}
.scn-homunculus-explanation .spirit-c {
  top: 20%;
  left: 60%;
  animation-duration: 8s;
  animation-delay: -5s;
}
.scn-homunculus-explanation .warm-glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: hex-glow 4s ease-in-out infinite alternate;
}
@keyframes hex-chamber { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hex-body { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes hex-head { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes hex-spirit { 0% { transform: translate(0, 0) scale(0.8); opacity: 0.5; } 25% { transform: translate(20px, -30px) scale(1.2); opacity: 1; } 50% { transform: translate(40px, -10px) scale(0.9); opacity: 0.7; } 75% { transform: translate(10px, 20px) scale(1.1); opacity: 0.8; } 100% { transform: translate(0, 0) scale(0.8); opacity: 0.5; } }
@keyframes hex-glow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* scene: homunculus-perils */
.scn-homunculus-perils {
  background: 
    linear-gradient(180deg, #0a0810 0%, #1a1020 50%, #0a0810 100%),
    radial-gradient(ellipse at 30% 80%, #1a1020 0%, transparent 80%);
}
.scn-homunculus-perils .bg-void {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 60%, #15102a 0%, #0a0810 100%);
  animation: hep-void 15s ease-in-out infinite alternate;
}
.scn-homunculus-perils .path-ground {
  position: absolute;
  bottom: 20%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a1422 0%, #0a0810 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  animation: hep-ground 8s ease-in-out infinite alternate;
}
.scn-homunculus-perils .homunculus-tiny {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 16px;
  height: 24px;
  background: linear-gradient(180deg, #d8b888 0%, #a08058 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 10px 3px rgba(216,184,136,0.4);
  animation: hep-tiny 4s ease-in-out infinite;
}
.scn-homunculus-perils .shadow-creep {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 120px;
  height: 40px;
  background: linear-gradient(180deg, transparent 0%, #06040a 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: hep-creep 6s ease-in-out infinite alternate;
}
.scn-homunculus-perils .obstacle {
  position: absolute;
  bottom: 22%;
  right: 20%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  animation: hep-obstacle 10s ease-in-out infinite;
}
.scn-homunculus-perils .spark {
  position: absolute;
  bottom: 35%;
  left: 25%;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, #ffe0a0 0%, #d8a060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,224,160,0.5);
  animation: hep-spark 1.5s ease-in-out infinite alternate;
}
.scn-homunculus-perils .fog {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(20,15,30,0.4) 0%, transparent 70%);
  animation: hep-fog 20s ease-in-out infinite alternate;
}
@keyframes hep-void { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes hep-ground { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(0.95); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes hep-tiny { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(0) translateY(0) rotate(5deg); } 75% { transform: translateX(-5px) translateY(-2px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-5deg); } }
@keyframes hep-creep { 0% { transform: scaleX(0.8); opacity: 0.2; } 50% { transform: scaleX(1.2); opacity: 0.5; } 100% { transform: scaleX(0.8); opacity: 0.2; } }
@keyframes hep-obstacle { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.95); } 100% { transform: translateY(0) scale(1); } }
@keyframes hep-spark { 0% { transform: scale(0.5); opacity: 0.3; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(0.5); opacity: 0.3; } }
@keyframes hep-fog { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

/* father-tristrapaedia – calm bright interior study */
.scn-father-tristrapaedia {
  background: linear-gradient(180deg, #f2e8d0 0%, #d4c4a6 40%, #c2b094 100%),
              radial-gradient(ellipse at 70% 20%, #fff8e8 0%, transparent 60%);
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.scn-father-tristrapaedia .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 100%);
}
.scn-father-tristrapaedia .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8b6f4a 0%, #6b5030 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.3);
}
.scn-father-tristrapaedia .window {
  position: absolute; top: 10%; left: 60%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #b6d4f0 0%, #a0c4e8 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 20px #d0e4ff;
  animation: ft-window 6s ease-in-out infinite alternate;
}
.scn-father-tristrapaedia .desk {
  position: absolute; bottom: 35%; left: 25%; width: 50%; height: 18%;
  background: linear-gradient(180deg, #a08060 0%, #7a5e3e 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
}
.scn-father-tristrapaedia .book {
  position: absolute; bottom: 46%; left: 40%; width: 20%; height: 12%;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 50%, #7a3a18 100%);
  border-radius: 2px 8px 2px 8px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: ft-book 5s ease-in-out infinite;
}
.scn-father-tristrapaedia .lamp {
  position: absolute; bottom: 48%; left: 72%; width: 8%; height: 16%;
  background: radial-gradient(circle at 50% 20%, #ffe690 0%, #d4b060 70%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,230,144,.4);
  animation: ft-lamp 4s ease-in-out infinite alternate;
}
.scn-father-tristrapaedia .father {
  position: absolute; bottom: 15%; left: 32%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #3a2e24 0%, #1e1610 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ft-father 7s ease-in-out infinite;
}
@keyframes ft-window { 0% { opacity: .7; box-shadow: inset 0 0 10px #b8d8ff; } 50% { opacity: 1; box-shadow: inset 0 0 30px #c0e0ff; } 100% { opacity: .8; box-shadow: inset 0 0 15px #b0d0f0; } }
@keyframes ft-book { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg) scale(1.02); } }
@keyframes ft-lamp { 0% { opacity: .6; box-shadow: 0 0 20px 5px rgba(255,230,144,.3); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,230,144,.5); } 100% { opacity: .8; box-shadow: 0 0 25px 8px rgba(255,230,144,.35); } }
@keyframes ft-father { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* father-proposes-reading – calm bright interior with group */
.scn-father-proposes-reading {
  background: linear-gradient(180deg, #efe3d0 0%, #d6c6a8 30%, #c0b090 100%),
              radial-gradient(ellipse at 50% 40%, #ffe8c0 0%, transparent 70%);
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.scn-father-proposes-reading .room-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b498 100%);
}
.scn-father-proposes-reading .table {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 14%;
  background: linear-gradient(180deg, #9a7a58 0%, #7a5a38 100%);
  border-radius: 6px;
  box-shadow: 0 8px 16px rgba(0,0,0,.25);
}
.scn-father-proposes-reading .chair-a {
  position: absolute; bottom: 12%; left: 22%; width: 16%; height: 26%;
  background: linear-gradient(180deg, #5a4830 0%, #3a2a18 100%);
  border-radius: 20% 20% 10% 10%;
  animation: fpr-chair 10s ease-in-out infinite;
}
.scn-father-proposes-reading .chair-b {
  position: absolute; bottom: 10%; left: 42%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #6a5538 0%, #4a3720 100%);
  border-radius: 20% 20% 10% 10%;
  animation: fpr-chair 12s ease-in-out infinite reverse;
}
.scn-father-proposes-reading .chair-c {
  position: absolute; bottom: 14%; right: 22%; width: 14%; height: 24%;
  background: linear-gradient(180deg, #5a4830 0%, #3a2a18 100%);
  border-radius: 20% 20% 10% 10%;
  animation: fpr-chair 9s ease-in-out infinite;
}
.scn-father-proposes-reading .figure-a {
  position: absolute; bottom: 30%; left: 24%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #2e2218 0%, #161008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: fpr-fig 6s ease-in-out infinite;
}
.scn-father-proposes-reading .figure-b {
  position: absolute; bottom: 30%; left: 44%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a2a1c 0%, #1e1208 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: fpr-fig 8s ease-in-out infinite reverse;
}
.scn-father-proposes-reading .figure-c {
  position: absolute; bottom: 30%; right: 24%; width: 10%; height: 26%;
  background: linear-gradient(180deg, #2e2218 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: fpr-fig 7s ease-in-out infinite;
}
.scn-father-proposes-reading .book-open {
  position: absolute; bottom: 42%; left: 46%; width: 18%; height: 8%;
  background: linear-gradient(135deg, #b87878 0%, #8a5a5a 100%);
  border-radius: 2px 10px 2px 10px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: fpr-book 5s ease-in-out infinite alternate;
}
@keyframes fpr-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes fpr-fig { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fpr-book { 0% { opacity: .8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: .9; transform: scale(1); } }

/* corporal-relish – warm bright interior with two figures and map */
.scn-corporal-relish {
  background: linear-gradient(180deg, #e8d4b8 0%, #d0bc9e 40%, #bba88a 100%),
              radial-gradient(ellipse at 30% 50%, #f0dcc0 0%, transparent 60%);
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.scn-corporal-relish .wall-warm {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d4c0a8 0%, #b8a488 100%);
}
.scn-corporal-relish .floor-wood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #907050 0%, #705030 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.25);
}
.scn-corporal-relish .armchair {
  position: absolute; bottom: 20%; left: 15%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #805e3e 0%, #5a3e26 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 4px 6px 12px rgba(0,0,0,.3);
}
.scn-corporal-relish .fig-corporal {
  position: absolute; bottom: 28%; left: 18%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1208 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: cr-fig1 6s ease-in-out infinite;
}
.scn-corporal-relish .fig-yorick {
  position: absolute; bottom: 25%; right: 20%; width: 14%; height: 34%;
  background: linear-gradient(180deg, #2e2216 0%, #140e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: cr-fig2 8s ease-in-out infinite reverse;
}
.scn-corporal-relish .map-table {
  position: absolute; bottom: 15%; left: 40%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #b09070 0%, #907050 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
}
.scn-corporal-relish .mug {
  position: absolute; bottom: 22%; left: 52%; width: 6%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #d4b060 0%, #a08040 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: cr-mug 4s ease-in-out infinite alternate;
}
@keyframes cr-fig1 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cr-fig2 { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(-1deg); } 40% { transform: translateY(0) rotate(0deg); } 60% { transform: translateY(-1px) rotate(1deg); } 80% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cr-mug { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg); } }

/* prelude-to-reading – firelit warm interior */
.scn-prelude-to-reading {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e10 30%, #1a1208 100%),
              radial-gradient(ellipse at 50% 70%, #603818 0%, transparent 60%);
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.scn-prelude-to-reading .back-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
}
.scn-prelude-to-reading .hearth {
  position: absolute; bottom: 0; left: 50%; width: 50%; height: 65%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a22 0%, #3a2210 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.6);
}
.scn-prelude-to-reading .fire {
  position: absolute; bottom: 10%; left: 50%; width: 30%; height: 35%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #ff8830 0%, #cc5500 30%, #803800 60%, transparent 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 60px 20px rgba(255,136,48,.5), 0 0 120px 40px rgba(200,80,0,.3);
  animation: ptor-fire 3s ease-in-out infinite alternate;
}
.scn-prelude-to-reading .mantel {
  position: absolute; bottom: 42%; left: 35%; width: 30%; height: 6%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-prelude-to-reading .chair-father {
  position: absolute; bottom: 18%; left: 15%; width: 22%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 4px 6px 12px rgba(0,0,0,.4);
}
.scn-prelude-to-reading .father-pipe {
  position: absolute; bottom: 30%; left: 18%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #1e1610 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ptor-father 7s ease-in-out infinite;
}
.scn-prelude-to-reading .yorick-chair {
  position: absolute; bottom: 20%; right: 20%; width: 18%; height: 28%;
  background: linear-gradient(180deg, #5a3c22 0%, #3a2410 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 2px 4px 8px rgba(0,0,0,.4);
}
.scn-prelude-to-reading .candle {
  position: absolute; bottom: 48%; left: 45%; width: 4%; height: 12%;
  background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #e0a050 50%, #a06020 100%);
  border-radius: 2px 2px 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,.6);
  animation: ptor-candle 4s ease-in-out infinite alternate;
}
.scn-prelude-to-reading .trim-fig {
  position: absolute; bottom: 10%; left: 45%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #1e1610 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ptor-trim 5s ease-in-out infinite;
}
@keyframes ptor-fire { 0% { transform: translateX(-50%) scale(1); opacity: .8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(.95); opacity: .9; } }
@keyframes ptor-father { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ptor-candle { 0% { opacity: .7; box-shadow: 0 0 15px 4px rgba(255,208,128,.4); } 50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(255,208,128,.6); } 100% { opacity: .8; box-shadow: 0 0 20px 6px rgba(255,208,128,.5); } }
@keyframes ptor-trim { 0% { transform: translateY(0); } 30% { transform: translateY(-3px); } 60% { transform: translateY(0); } 100% { transform: translateY(0); } }

/* father-filmer-opinion - interior cutaway, warm dim */
.scn-father-filmer-opinion {
  background: linear-gradient(180deg, #2a1f1a 0%, #3d2b22 40%, #4e382a 70%, #2f221b 100%),
              radial-gradient(ellipse at 35% 60%, #7a5a40 0%, transparent 60%);
}
.scn-father-filmer-opinion .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1f1a 0%, #3d2b22 50%, #2a1f1a 100%);
  animation: ffo-wall 18s ease-in-out infinite alternate;
}
.scn-father-filmer-opinion .window-glow {
  position: absolute; top: 8%; right: 10%; width: 40px; height: 60px;
  background: radial-gradient(circle at 50% 50%, #7a5a40 0%, #3d2b22 70%, transparent 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 40px 20px rgba(122,90,64,0.4);
  animation: ffo-window 5s ease-in-out infinite alternate;
}
.scn-father-filmer-opinion .bookshelf {
  position: absolute; bottom: 35%; left: 5%; width: 20%; height: 40%;
  background: linear-gradient(90deg, #4e382a 0%, #3d2b22 100%);
  border-radius: 2px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-father-filmer-opinion .desk {
  position: absolute; bottom: 18%; left: 25%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-father-filmer-opinion .candle {
  position: absolute; bottom: 30%; left: 45%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c8a070 0%, #7a5a40 100%);
  border-radius: 4px 4px 1px 1px;
  box-shadow: 0 0 20px 8px #c8a070;
  animation: ffo-candle 3s ease-in-out infinite alternate;
}
.scn-father-filmer-opinion .father {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1f1510 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ffo-father 6s ease-in-out infinite;
}
.scn-father-filmer-opinion .book {
  position: absolute; bottom: 28%; left: 42%; width: 12px; height: 8px;
  background: #5a4030;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ffo-book 4s ease-in-out infinite alternate;
}
.scn-father-filmer-opinion .dust-a {
  position: absolute; top: 20%; left: 10%; width: 6px; height: 6px;
  background: rgba(200,160,112,0.4); border-radius: 50%;
  filter: blur(2px);
  animation: ffo-dust 20s linear infinite;
}
.scn-father-filmer-opinion .dust-b {
  position: absolute; top: 30%; right: 20%; width: 4px; height: 4px;
  background: rgba(200,160,112,0.3); border-radius: 50%;
  filter: blur(2px);
  animation: ffo-dust 25s linear infinite reverse;
}
@keyframes ffo-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ffo-window { 0% { box-shadow:0 0 30px 15px rgba(122,90,64,0.3) } 50% { box-shadow:0 0 50px 25px rgba(122,90,64,0.5) } 100% { box-shadow:0 0 35px 20px rgba(122,90,64,0.35) } }
@keyframes ffo-candle { 0%,100% { transform:translateY(0) scaleY(1); opacity:0.9 } 50% { transform:translateY(-2px) scaleY(1.05); opacity:1 } }
@keyframes ffo-father { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(2px) rotate(1deg) } 50% { transform:translateX(0) rotate(2deg) } 75% { transform:translateX(-1px) rotate(-1deg) } 100% { transform:translateX(0) rotate(-2deg) } }
@keyframes ffo-book { 0% { transform:rotate(-5deg) translateY(0) } 100% { transform:rotate(5deg) translateY(-2px) } }
@keyframes ffo-dust { 0% { transform:translateX(0) translateY(0); opacity:0 } 20% { opacity:0.5 } 80% { opacity:0.3 } 100% { transform:translateX(50px) translateY(-30px); opacity:0 } }

/* author-caveat - funny, dim interior, close-up */
.scn-author-caveat {
  background: linear-gradient(180deg, #3a2e28 0%, #5a4438 40%, #4a382e 70%, #2f241e 100%),
              radial-gradient(circle at 60% 40%, #c8a070 0%, transparent 50%);
}
.scn-author-caveat .backdrop {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2e28 0%, #5a4438 50%, #3a2e28 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: ac-back 20s ease-in-out infinite alternate;
}
.scn-author-caveat .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #6a5040 0%, #4a382e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-author-caveat .reader {
  position: absolute; bottom: 20%; left: 30%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #1f1510 0%, #0d0907 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-reader 4s ease-in-out infinite;
}
.scn-author-caveat .hand {
  position: absolute; bottom: 30%; left: 38%; width: 10px; height: 14px;
  background: #1f1510;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: ac-hand 3s ease-in-out infinite alternate;
}
.scn-author-caveat .book-bounce {
  position: absolute; bottom: 25%; left: 15%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #c8a070 0%, #8a6040 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ac-book 2s ease-in-out infinite;
}
.scn-author-caveat .particle-a {
  position: absolute; top: 10%; left: 20%; width: 4px; height: 4px;
  background: rgba(200,160,112,0.5); border-radius: 50%; filter: blur(1px);
  animation: ac-particle 12s linear infinite;
}
.scn-author-caveat .particle-b {
  position: absolute; top: 15%; right: 30%; width: 5px; height: 5px;
  background: rgba(200,160,112,0.4); border-radius: 50%; filter: blur(1px);
  animation: ac-particle 15s linear infinite reverse;
}
@keyframes ac-back { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ac-reader { 0% { transform:translateX(0) rotate(-3deg) } 25% { transform:translateX(3px) rotate(1deg) } 50% { transform:translateX(6px) rotate(3deg) } 75% { transform:translateX(3px) rotate(-1deg) } 100% { transform:translateX(0) rotate(-3deg) } }
@keyframes ac-hand { 0% { transform:rotate(-10deg) translateX(0) } 50% { transform:rotate(10deg) translateX(2px) } 100% { transform:rotate(-5deg) translateX(0) } }
@keyframes ac-book { 0% { transform:translateY(0) rotate(-8deg) } 30% { transform:translateY(-8px) rotate(-4deg) } 60% { transform:translateY(-4px) rotate(8deg) } 100% { transform:translateY(0) rotate(-8deg) } }
@keyframes ac-particle { 0% { transform:translateX(0) translateY(0); opacity:0 } 20% { opacity:0.6 } 80% { opacity:0.3 } 100% { transform:translateX(40px) translateY(-60px); opacity:0 } }

/* father-names-opinion - interior, diagram, warm dim */
.scn-father-names-opinion {
  background: linear-gradient(180deg, #2a201b 0%, #3d3028 40%, #4e3a2e 70%, #2f241e 100%),
              radial-gradient(ellipse at 50% 50%, #6a5040 0%, transparent 50%);
}
.scn-father-names-opinion .bg-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a201b 0%, #3d3028 50%, #2a201b 100%);
  animation: fno-bg 20s ease-in-out infinite alternate;
}
.scn-father-names-opinion .desk-alt {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #5a4438 0%, #3a2e28 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-father-names-opinion .father-point {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1f1510 0%, #0f0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fno-father 7s ease-in-out infinite;
}
.scn-father-names-opinion .diagram {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c8a070 0%, transparent 100%);
  border: 1px solid #6a5040;
  border-radius: 50%;
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  box-shadow: 0 0 20px 4px rgba(200,160,112,0.4);
  animation: fno-diagram 10s ease-in-out infinite alternate;
}
.scn-father-names-opinion .candle-alt {
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #c8a070 0%, #7a5a40 100%);
  border-radius: 4px 4px 1px 1px;
  box-shadow: 0 0 15px 5px #c8a070;
  animation: fno-candle 4s ease-in-out infinite alternate;
}
.scn-father-names-opinion .glow-spot {
  position: absolute; top: 20%; left: 35%; width: 100px; height: 100px;
  background: radial-gradient(circle at 50% 50%, rgba(200,160,112,0.15) 0%, transparent 70%);
  animation: fno-glow 6s ease-in-out infinite alternate;
}
.scn-father-names-opinion .dust-c {
  position: absolute; top: 25%; left: 10%; width: 3px; height: 3px;
  background: rgba(200,160,112,0.3); border-radius: 50%; filter: blur(1px);
  animation: fno-dust 30s linear infinite;
}
@keyframes fno-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fno-father { 0% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(3px) rotate(2deg) } 50% { transform:translateX(0) rotate(3deg) } 75% { transform:translateX(-2px) rotate(0deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes fno-diagram { 0% { transform:rotate(0deg) scale(1); opacity:0.7 } 50% { transform:rotate(180deg) scale(1.05); opacity:1 } 100% { transform:rotate(360deg) scale(0.95); opacity:0.7 } }
@keyframes fno-candle { 0%,100% { transform:translateY(0) scaleY(1); opacity:0.9 } 50% { transform:translateY(-2px) scaleY(1.1); opacity:1 } }
@keyframes fno-glow { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes fno-dust { 0% { transform:translateX(0) translateY(0); opacity:0 } 20% { opacity:0.4 } 80% { opacity:0.2 } 100% { transform:translateX(30px) translateY(-40px); opacity:0 } }

/* father-names-argument - two figures, warm dim */
.scn-father-names-argument {
  background: linear-gradient(180deg, #2a201b 0%, #3d3028 35%, #4e3a2e 65%, #2f241e 100%),
              radial-gradient(ellipse at 50% 60%, #8a6040 0%, transparent 60%);
}
.scn-father-names-argument .bg-warmer {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2e28 0%, #4e3a2e 50%, #3a2e28 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  animation: fna-bg 18s ease-in-out infinite alternate;
}
.scn-father-names-argument .table-center {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #5a4438 0%, #3a2e28 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-father-names-argument .figure-left {
  position: absolute; bottom: 18%; left: 20%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1f1510 0%, #0d0907 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fna-left 3s ease-in-out infinite alternate;
}
.scn-father-names-argument .figure-right {
  position: absolute; bottom: 18%; right: 20%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1f1510 0%, #0d0907 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fna-right 3.5s ease-in-out infinite alternate;
}
.scn-father-names-argument .shadow-left {
  position: absolute; bottom: 15%; left: 18%; width: 30px; height: 10px;
  background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(3px);
  animation: fna-shadow 3s ease-in-out infinite alternate;
}
.scn-father-names-argument .shadow-right {
  position: absolute; bottom: 15%; right: 18%; width: 30px; height: 10px;
  background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(3px);
  animation: fna-shadow 3.5s ease-in-out infinite alternate;
}
.scn-father-names-argument .candle-argue {
  position: absolute; bottom: 22%; left: 48%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #c8a070 0%, #7a5a40 100%);
  border-radius: 3px 3px 1px 1px;
  box-shadow: 0 0 15px 5px #c8a070;
  animation: fna-candle 3s ease-in-out infinite alternate;
}
.scn-father-names-argument .flame {
  position: absolute; bottom: 36%; left: 48.5%; width: 4px; height: 8px;
  background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #c8a070 50%, transparent 100%);
  border-radius: 50%;
  animation: fna-flame 1.5s ease-in-out infinite alternate;
}
@keyframes fna-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fna-left { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(-5px) rotate(-8deg) } 100% { transform:translateX(0) rotate(-2deg) } }
@keyframes fna-right { 0% { transform:translateX(0) rotate(2deg) } 50% { transform:translateX(5px) rotate(8deg) } 100% { transform:translateX(0) rotate(2deg) } }
@keyframes fna-shadow { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.2) } 100% { transform:scaleX(1) } }
@keyframes fna-candle { 0%,100% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-1px) scaleY(1.05) } }
@keyframes fna-flame { 0% { transform:scaleY(1) translateY(0); opacity:0.8 } 50% { transform:scaleY(1.3) translateY(-2px); opacity:1 } 100% { transform:scaleY(0.9) translateY(0); opacity:0.7 } }

.scn-dr-slop-fall {
  background: linear-gradient(180deg, #4a2e4e 0%, #6b4a5a 35%, #a87a5a 70%, #c99a6a 100%),
              radial-gradient(ellipse at 50% 100%, #c99a6a 0%, transparent 70%);
}
.scn-dr-slop-fall .dusk-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a1e3e 0%, transparent 100%);
  animation: sfall-sky 10s ease-in-out infinite alternate;
}
.scn-dr-slop-fall .hill {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a3a 0%, #3a2a2a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.5);
  animation: sfall-hill 14s ease-in-out infinite;
}
.scn-dr-slop-fall .figure-tumble {
  position: absolute; bottom: 40%; left: 45%;
  width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 40% 50% / 60% 40% 60% 40%;
  transform-origin: center bottom;
  animation: sfall-tumble 2s ease-in-out infinite;
}
.scn-dr-slop-fall .whip {
  position: absolute; bottom: 48%; left: 52%;
  width: 30px; height: 3px;
  background: #5a4a3a;
  border-radius: 2px;
  transform-origin: left center;
  animation: sfall-whip 2.5s ease-in-out infinite;
}
.scn-dr-slop-fall .dust-puff {
  position: absolute; bottom: 25%; left: 42%;
  width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(180,140,100,0.4) 0%, rgba(180,140,100,0) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sfall-dust 3s ease-in-out infinite;
}
.scn-dr-slop-fall .cross-sign {
  position: absolute; bottom: 50%; left: 48%;
  width: 8px; height: 14px;
  background: transparent;
  border: 2px solid rgba(200,180,140,0.6);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: sfall-cross 2s ease-in-out infinite;
}
@keyframes sfall-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sfall-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sfall-tumble { 0% { transform: translate(0,0) rotate(0deg) scaleY(1); } 25% { transform: translate(10px,-8px) rotate(-15deg) scaleY(0.9); } 50% { transform: translate(20px,0) rotate(-5deg) scaleY(1); } 75% { transform: translate(30px,-5px) rotate(10deg) scaleY(0.95); } 100% { transform: translate(40px,0) rotate(0deg) scaleY(1); } }
@keyframes sfall-whip { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(20deg) translateX(5px); } 50% { transform: rotate(-10deg) translateX(-5px); } 75% { transform: rotate(15deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes sfall-dust { 0% { transform: scale(0.8); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 0.3; } 100% { transform: scale(0.8); opacity: 0.6; } }
@keyframes sfall-cross { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.1); } 100% { transform: rotate(15deg) scale(1); } }

.scn-dr-slop-appearance {
  background: linear-gradient(180deg, #2a1a1a 0%, #4a2a2a 40%, #6a3a2a 80%, #8a4a3a 100%),
              radial-gradient(ellipse at 60% 80%, #a85a3a 0%, transparent 60%);
}
.scn-dr-slop-appearance .parlour-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-bottom: 4px solid #5a3a2a;
  animation: sapp-wall 12s ease-in-out infinite alternate;
}
.scn-dr-slop-appearance .hearth {
  position: absolute; bottom: 20%; left: 15%;
  width: 30%; height: 25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-dr-slop-appearance .fire-glow {
  position: absolute; bottom: 28%; left: 20%;
  width: 10%; height: 15%;
  background: radial-gradient(ellipse, #d08040 0%, #b06030 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sapp-glow 3s ease-in-out infinite alternate;
}
.scn-dr-slop-appearance .figure-father {
  position: absolute; bottom: 22%; left: 25%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 45% 40% 45% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: sapp-sit 8s ease-in-out infinite;
}
.scn-dr-slop-appearance .figure-toby {
  position: absolute; bottom: 22%; left: 38%;
  width: 28px; height: 52px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 45% 50% 45% 40% / 55% 60% 40% 45%;
  transform-origin: bottom center;
  animation: sapp-sit 8s ease-in-out infinite 1s;
}
.scn-dr-slop-appearance .figure-slop {
  position: absolute; bottom: 20%; right: 20%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 40% 40% 50% / 60% 40% 60% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: sapp-enter 4s ease-in-out infinite;
}
.scn-dr-slop-appearance .arch-door {
  position: absolute; bottom: 20%; right: 15%;
  width: 18%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.5);
}
@keyframes sapp-wall { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes sapp-glow { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes sapp-sit { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sapp-enter { 0% { transform: translateX(0) rotate(-10deg) scale(1); } 25% { transform: translateX(-8px) rotate(-5deg) scale(1.05); } 50% { transform: translateX(-16px) rotate(0deg) scale(1); } 75% { transform: translateX(-8px) rotate(5deg) scale(0.95); } 100% { transform: translateX(0) rotate(-10deg) scale(1); } }

.scn-dr-slop-explanation {
  background: linear-gradient(180deg, #3a1a1a 0%, #5a2a1a 50%, #7a3a2a 100%),
              radial-gradient(ellipse at 30% 50%, #b06030 0%, transparent 60%);
}
.scn-dr-slop-explanation .close-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  animation: sexp-wall 15s ease-in-out infinite alternate;
}
.scn-dr-slop-explanation .slop-figure {
  position: absolute; bottom: 25%; left: 50%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 45% 50% 40% 45% / 55% 45% 60% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: sexp-gesture 4s ease-in-out infinite;
}
.scn-dr-slop-explanation .table-top {
  position: absolute; bottom: 20%; left: 35%;
  width: 30%; height: 15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-dr-slop-explanation .open-book {
  position: absolute; bottom: 26%; left: 42%;
  width: 18%; height: 10%;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: sexp-book 6s ease-in-out infinite alternate;
}
.scn-dr-slop-explanation .tall-candle {
  position: absolute; bottom: 30%; left: 38%;
  width: 6px; height: 25px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a080 100%);
  border-radius: 3px 3px 2px 2px;
  box-shadow: -2px 0 4px rgba(0,0,0,0.3);
  animation: sexp-candle 8s ease-in-out infinite;
}
.scn-dr-slop-explanation .candle-halo {
  position: absolute; bottom: 53%; left: 38%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #d08040 0%, #b06030 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: sexp-halo 3s ease-in-out infinite alternate;
}
@keyframes sexp-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sexp-gesture { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 25% { transform: translateX(-45%) rotate(10deg) scaleY(1.05); } 50% { transform: translateX(-50%) rotate(-5deg) scaleY(0.95); } 75% { transform: translateX(-55%) rotate(15deg) scaleY(1.02); } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes sexp-book { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.03) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes sexp-candle { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sexp-halo { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.6; } }

.scn-writing-as-conversation {
  background: linear-gradient(180deg, #1a1818 0%, #2a2218 50%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 70%);
}
.scn-writing-as-conversation .dim-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a1a 0%, transparent 100%);
  animation: wcon-bg 20s ease-in-out infinite alternate;
}
.scn-writing-as-conversation .desk-plane {
  position: absolute; bottom: 10%; left: 10%;
  width: 80%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  transform: perspective(600px) rotateX(20deg);
}
.scn-writing-as-conversation .parchment {
  position: absolute; bottom: 25%; left: 25%;
  width: 50%; height: 30%;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 4%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: wcon-paper 8s ease-in-out infinite;
}
.scn-writing-as-conversation .quill-pen {
  position: absolute; bottom: 40%; left: 50%;
  width: 40px; height: 4px;
  background: #4a3a2a;
  border-radius: 2px;
  transform-origin: left center;
  animation: wcon-quill 3s ease-in-out infinite;
}
.scn-writing-as-conversation .ink-well {
  position: absolute; bottom: 22%; left: 20%;
  width: 16px; height: 14px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5);
}
.scn-writing-as-conversation .desk-candle {
  position: absolute; bottom: 28%; left: 15%;
  width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a080 100%);
  border-radius: 3px;
  box-shadow: -2px 0 4px rgba(0,0,0,0.4);
  animation: wcon-candle 6s ease-in-out infinite;
}
.scn-writing-as-conversation .candle-light {
  position: absolute; bottom: 48%; left: 15%;
  width: 24px; height: 24px;
  background: radial-gradient(circle, #d08040 0%, #b06030 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: wcon-glow 4s ease-in-out infinite alternate;
}
.scn-writing-as-conversation .curtain-fold {
  position: absolute; top: 0; right: 0;
  width: 20%; height: 100%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 0 40%;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.7);
  animation: wcon-curtain 15s ease-in-out infinite alternate;
}
@keyframes wcon-bg { 0% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes wcon-paper { 0% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.02) rotate(2deg); } 50% { transform: scale(1) rotate(0deg); } 75% { transform: scale(0.98) rotate(-2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes wcon-quill { 0% { transform: translate(0,0) rotate(0deg); } 20% { transform: translate(10px,-5px) rotate(10deg); } 40% { transform: translate(20px,0) rotate(0deg); } 60% { transform: translate(30px,-3px) rotate(-5deg); } 80% { transform: translate(40px,0) rotate(0deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes wcon-candle { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wcon-glow { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.5; } }
@keyframes wcon-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }

.scn-polar-climates-wit { background: linear-gradient(180deg, #1e2d3d 0%, #2a3b4e 30%, #3a4f63 60%, #4a6175 100%), radial-gradient(ellipse at 50% 0%, #3a6b8a 0%, transparent 60%); }
.scn-polar-climates-wit .sky-ice { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2a3f52 0%, #4a6580 40%, #6a859a 70%, #7a95aa 100%); animation: pcw-glow 14s ease-in-out infinite alternate; }
.scn-polar-climates-wit .horizon-mist { position:absolute; bottom:50%; left:0; right:0; height:18%; background: linear-gradient(180deg, rgba(120,150,170,.4) 0%, rgba(80,110,130,.2) 50%, transparent 100%); filter: blur(12px); animation: pcw-mist 22s ease-in-out infinite alternate; }
.scn-polar-climates-wit .snow-field { position:absolute; bottom:10%; left:0; right:0; height:45%; background: linear-gradient(180deg, #c8d8e0 0%, #b0c8d0 30%, #a0b8c0 60%, #90a8b0 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; box-shadow: inset 0 8px 30px rgba(0,0,0,.15); }
.scn-polar-climates-wit .ice-shelf { position:absolute; bottom:22%; left:15%; right:30%; height:18%; background: linear-gradient(180deg, #d0e0e8 0%, #b8d0d8 40%, #a0b8c0 100%); border-radius: 30% 10% 20% 10% / 60% 20% 30% 40%; transform: skewX(-8deg); box-shadow: inset 0 4px 20px rgba(0,0,0,.1); }
.scn-polar-climates-wit .figure-trekker { position:absolute; bottom:18%; left:35%; width:14px; height:32px; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 50%, #1a2a3a 100%); border-radius: 45% 45% 40% 40% / 50% 50% 35% 35%; transform-origin: bottom center; animation: pcw-walk 5s ease-in-out infinite; }
.scn-polar-climates-wit .sled { position:absolute; bottom:16%; left:32%; width:28px; height:8px; background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 100%); border-radius: 10% 10% 40% 40%; transform: rotate(-2deg); animation: pcw-sled 5s ease-in-out infinite; }
.scn-polar-climates-wit .aurora { position:absolute; top:8%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, rgba(80,200,160,.15) 0%, rgba(60,180,200,.1) 30%, rgba(40,160,100,.05) 60%, transparent 100%); filter: blur(20px); border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%; animation: pcw-aurora 18s ease-in-out infinite alternate; }
.scn-polar-climates-wit .snow-particle { position:absolute; top:5%; left:20%; width:4px; height:4px; background: rgba(200,220,230,.6); border-radius: 50%; filter: blur(1px); animation: pcw-snow 12s linear infinite; }
@keyframes pcw-glow { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes pcw-mist { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.05); } 100% { transform: translateY(2px) scaleX(.97); } }
@keyframes pcw-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes pcw-sled { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(10px) rotate(1deg); } }
@keyframes pcw-aurora { 0% { transform: translateX(-5%) scaleY(1); } 50% { transform: translateX(3%) scaleY(1.2); } 100% { transform: translateX(-2%) scaleY(.9); } }
@keyframes pcw-snow { 0% { transform: translateX(0) translateY(0) rotate(0); opacity: 1; } 25% { transform: translateX(6px) translateY(18vh) rotate(90deg); opacity: .6; } 50% { transform: translateX(12px) translateY(36vh) rotate(180deg); opacity: .3; } 75% { transform: translateX(8px) translateY(54vh) rotate(270deg); opacity: .1; } 100% { transform: translateX(4px) translateY(72vh) rotate(360deg); opacity: 0; } }

.scn-temperate-zones-better { background: linear-gradient(180deg, #5a6a5a 0%, #6a7a5a 30%, #7a8a6a 60%, #8a9a7a 100%), radial-gradient(ellipse at 50% 0%, #8aaa7a 0%, transparent 70%); }
.scn-temperate-zones-better .sky-soft { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8a9a8a 0%, #9aaa9a 30%, #aabaaa 60%, #bacaba 100%); animation: tzb-sky 16s ease-in-out infinite alternate; }
.scn-temperate-zones-better .distant-hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 50%, #4a5a3a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.15); animation: tzb-hills 20s ease-in-out infinite alternate; }
.scn-temperate-zones-better .meadow { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8aaa7a 0%, #6a8a5a 30%, #5a7a4a 60%, #4a6a3a 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; }
.scn-temperate-zones-better .cottage { position:absolute; bottom:24%; left:25%; width:80px; height:60px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 6px 16px rgba(0,0,0,.2); transform: scale(.95); }
.scn-temperate-zones-better .window-glimmer { position:absolute; bottom:28%; left:28%; width:16px; height:20px; background: radial-gradient(circle, #e8d8a0 0%, #c8b880 60%); border-radius: 10% 10% 8% 8%; box-shadow: 0 0 20px 4px rgba(200,184,128,.5); animation: tzb-glow 4s ease-in-out infinite alternate; }
.scn-temperate-zones-better .tree-calm { position:absolute; bottom:30%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 50%, #3a4a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: tzb-tree 8s ease-in-out infinite; }
.scn-temperate-zones-better .path-winding { position:absolute; bottom:8%; left:20%; right:30%; height:14%; background: linear-gradient(180deg, #9aaa8a 0%, #8a9a7a 40%, #7a8a6a 100%); border-radius: 40% 20% 30% 10% / 50% 30% 20% 40%; transform: skewX(-5deg); }
.scn-temperate-zones-better .bird-flock { position:absolute; top:12%; right:10%; width:40px; height:20px; background: radial-gradient(circle at 20% 50%, rgba(60,50,40,.4) 0%, transparent 60%), radial-gradient(circle at 60% 50%, rgba(60,50,40,.3) 0%, transparent 50%), radial-gradient(circle at 90% 50%, rgba(60,50,40,.35) 0%, transparent 55%); filter: blur(3px); animation: tzb-birds 12s ease-in-out infinite alternate; }
@keyframes tzb-sky { 0% { opacity: .75; } 50% { opacity: .95; } 100% { opacity: .8; } }
@keyframes tzb-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes tzb-glow { 0% { box-shadow: 0 0 14px 3px rgba(200,184,128,.4); opacity:.85; } 50% { box-shadow: 0 0 28px 8px rgba(220,200,140,.6); opacity:1; } 100% { box-shadow: 0 0 18px 4px rgba(200,184,128,.45); opacity:.9; } }
@keyframes tzb-tree { 0%,100% { transform: scale(.95) rotate(-1deg); } 50% { transform: scale(1) rotate(1deg); } }
@keyframes tzb-birds { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(15px) translateY(-5px) rotate(2deg); } 100% { transform: translateX(30px) translateY(0) rotate(-1deg); } }

.scn-english-wit-judgment { background: linear-gradient(180deg, #6a4a3a 0%, #8a5a3a 30%, #a06a4a 60%, #8a5a3a 100%), radial-gradient(ellipse at 50% 100%, #b07a5a 0%, transparent 70%); }
.scn-english-wit-judgment .wall-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a6a4a 0%, #7a5a3a 40%, #6a4a2a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.2); }
.scn-english-wit-judgment .floor-dark { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.4); }
.scn-english-wit-judgment .table-broad { position:absolute; bottom:20%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 50%, #3a1a0a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 20px rgba(0,0,0,.3); }
.scn-english-wit-judgment .candle-flame { position:absolute; bottom:36%; left:40%; width:8px; height:16px; background: radial-gradient(circle at 50% 30%, #ffe8a0 0%, #ffd060 30%, #e8a030 60%, #b06020 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 24px 8px rgba(255,208,96,.6), 0 0 48px 16px rgba(200,120,40,.3); animation: ewj-flame 2s ease-in-out infinite alternate; }
.scn-english-wit-judgment .figure-orator { position:absolute; bottom:24%; left:45%; width:20px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 45% 45% 40% 40% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ewj-orate 4s ease-in-out infinite; }
.scn-english-wit-judgment .chair-back { position:absolute; bottom:24%; left:52%; width:18px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.2); }
.scn-english-wit-judgment .map-roll { position:absolute; bottom:26%; left:25%; width:40px; height:14px; background: linear-gradient(180deg, #b09870 0%, #a08860 40%, #907850 100%); border-radius: 10% 10% 30% 30%; transform: rotate(-15deg); box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.scn-english-wit-judgment .glass-reflect { position:absolute; bottom:38%; left:32%; width:10px; height:14px; background: linear-gradient(135deg, rgba(255,255,240,.5) 0%, rgba(255,255,240,.1) 50%, transparent 100%); border-radius: 10% 10% 8% 8%; transform: rotate(10deg); animation: ewj-glass 3s ease-in-out infinite alternate; }
@keyframes ewj-flame { 0% { transform: scaleY(1) rotate(-1deg); opacity:.9; } 50% { transform: scaleY(1.15) rotate(2deg); opacity:1; } 100% { transform: scaleY(.95) rotate(-2deg); opacity:.85; } }
@keyframes ewj-orate { 0% { transform: translateX(0) rotate(-3deg); } 30% { transform: translateX(6px) rotate(2deg); } 60% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ewj-glass { 0% { opacity: .3; transform: rotate(5deg) scale(.95); } 50% { opacity: .7; transform: rotate(15deg) scale(1.05); } 100% { opacity: .4; transform: rotate(8deg) scale(.98); } }

.scn-irregular-supply { background: linear-gradient(180deg, #5a4a3a 0%, #6a5a4a 30%, #7a6a5a 60%, #6a5a4a 100%), radial-gradient(ellipse at 60% 30%, #8a7a6a 0%, transparent 60%); }
.scn-irregular-supply .wall-mottled { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #7a6a5a 0%, #8a7a6a 25%, #6a5a4a 50%, #8a7a6a 75%, #7a6a5a 100%); box-shadow: inset 0 0 50px rgba(0,0,0,.15); }
.scn-irregular-supply .floor-checker { position:absolute; bottom:0; left:0; right:0; height:32%; background: repeating-linear-gradient(45deg, #4a3a2a 0px, #4a3a2a 12px, #5a4a3a 12px, #5a4a3a 24px); box-shadow: inset 0 20px 40px rgba(0,0,0,.3); animation: is-floor 10s linear infinite; }
.scn-irregular-supply .hearth-fire { position:absolute; bottom:20%; left:15%; width:60px; height:50px; background: radial-gradient(ellipse at 50% 70%, #e8a030 0%, #c07020 40%, #8a4010 70%, #4a2010 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 40px 12px rgba(200,120,30,.5), 0 0 80px 30px rgba(150,80,20,.2); animation: is-fire 3s ease-in-out infinite alternate; }
.scn-irregular-supply .kettle-steam { position:absolute; bottom:32%; left:18%; width:20px; height:30px; background: radial-gradient(circle at 50% 30%, rgba(200,200,180,.15) 0%, transparent 70%); filter: blur(8px); animation: is-steam 6s ease-in-out infinite; }
.scn-irregular-supply .figure-writer { position:absolute; bottom:22%; left:45%; width:18px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 45% 45% 40% 40% / 50% 50% 35% 35%; transform-origin: bottom center; animation: is-write 5s ease-in-out infinite; }
.scn-irregular-supply .quill-tilt { position:absolute; bottom:32%; left:43%; width:4px; height:24px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 60%, #4a3a1a 100%); border-radius: 10% 10% 20% 20%; transform: rotate(30deg); transform-origin: bottom center; animation: is-quill 3s ease-in-out infinite alternate; }
.scn-irregular-supply .ink-splash { position:absolute; bottom:18%; left:40%; width:14px; height:10px; background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 60%); border-radius: 40% 30% 50% 20% / 30% 40% 20% 50%; animation: is-ink 4s ease-in-out infinite; }
.scn-irregular-supply .candle-drip { position:absolute; bottom:32%; right:25%; width:18px; height:30px; background: linear-gradient(180deg, #e0c8a0 0%, #c0a080 40%, #a08060 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; box-shadow: 0 0 12px 4px rgba(200,160,120,.3); animation: is-drip 5s ease-in-out infinite; }
.scn-irregular-supply .shadow-jitter { position:absolute; bottom:0; left:0; right:0; height:100%; background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,.2) 0%, transparent 60%); animation: is-shadow 8s ease-in-out infinite alternate; }
@keyframes is-floor { 0% { background-position: 0 0; } 100% { background-position: 48px 48px; } }
@keyframes is-fire { 0% { transform: scale(.95) rotate(-2deg); box-shadow: 0 0 30px 8px rgba(200,120,30,.4); } 50% { transform: scale(1.08) rotate(3deg); box-shadow: 0 0 50px 16px rgba(200,120,30,.6); } 100% { transform: scale(.97) rotate(-1deg); box-shadow: 0 0 35px 10px rgba(200,120,30,.45); } }
@keyframes is-steam { 0% { transform: translateY(0) scaleX(1); opacity: .4; } 50% { transform: translateY(-20px) scaleX(1.5); opacity: .1; } 100% { transform: translateY(0) scaleX(1); opacity: .3; } }
@keyframes is-write { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(4px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes is-quill { 0% { transform: rotate(25deg) scaleY(1); } 50% { transform: rotate(40deg) scaleY(1.05); } 100% { transform: rotate(28deg) scaleY(.98); } }
@keyframes is-ink { 0%,100% { transform: scale(1) rotate(0); } 50% { transform: scale(1.1) rotate(15deg); } }
@keyframes is-drip { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(4px) scaleY(.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes is-shadow { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .2; } }

.scn-locke-deceived { background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #b8a88a 100%), radial-gradient(ellipse at 70% 30%, #ffe8b0 0%, transparent 60%); }
.scn-locke-deceived .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #f0ddb8 0%, #d8c8a8 50%, #c0b098 100%); box-shadow: inset 0 0 60px rgba(160,140,100,.3); }
.scn-locke-deceived .window-frame { position:absolute; top:8%; left:68%; width:80px; height:110px; border:6px solid #6a5a4a; border-radius:4px 4px 0 0; background: linear-gradient(180deg, #c8d8e8 0%, #e8f0f8 100%); box-shadow: 0 0 30px rgba(200,220,240,.4); animation: ld-glow 6s ease-in-out infinite alternate; }
.scn-locke-deceived .window-light { position:absolute; top:8%; left:68%; width:80px; height:110px; background: radial-gradient(ellipse at 50% 30%, rgba(255,255,200,.6) 0%, transparent 70%); animation: ld-shimmer 5s ease-in-out infinite; }
.scn-locke-deceived .bookshelf { position:absolute; bottom:20%; left:6%; width:120px; height:200px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-locke-deceived .bookshelf::before { content:''; position:absolute; top:20%; left:10%; width:80%; height:8%; background:#8a7a6a; box-shadow: 0 30px 0 #8a7a6a, 0 60px 0 #8a7a6a, 0 90px 0 #8a7a6a; border-radius:2px; }
.scn-locke-deceived .figure-locke { position:absolute; bottom:22%; left:38%; width:50px; height:120px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 40% 40%; transform-origin: bottom center; animation: ld-turn 8s ease-in-out infinite alternate; }
.scn-locke-deceived .figure-locke::after { content:''; position:absolute; top:-15%; left:20%; width:30px; height:35px; background: linear-gradient(180deg, #c8b098 0%, #b8a088 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-locke-deceived .hand-ear { position:absolute; bottom:48%; left:44%; width:16px; height:22px; background: linear-gradient(180deg, #d4c0a8 0%, #b8a088 100%); border-radius: 40% 60% 30% 50%; transform-origin: 50% 80%; animation: ld-cup 3s ease-in-out infinite; }
.scn-locke-deceived .sound-wave { position:absolute; bottom:55%; left:52%; width:12px; height:12px; border:2px solid rgba(200,180,140,.5); border-radius:50%; animation: ld-wave 4s ease-out infinite; }
.scn-locke-deceived .sound-wave.b { left:56%; animation-delay:1.5s; width:16px; height:16px; }
.scn-locke-deceived .shadow-fall { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(60,40,20,.15) 70%, rgba(40,30,20,.25) 100%); }
@keyframes ld-glow { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes ld-shimmer { 0%,100% { opacity:.5 } 30% { opacity:.8 } 70% { opacity:.4 } }
@keyframes ld-turn { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-6px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ld-cup { 0%,100% { transform: rotate(0) scale(1) } 50% { transform: rotate(15deg) scale(1.1) } }
@keyframes ld-wave { 0% { opacity:0; transform: scale(0.5) } 20% { opacity:.6 } 80% { opacity:.3; transform: scale(2.5) } 100% { opacity:0; transform: scale(3) } }

.scn-magna-charta-stupidity { background: linear-gradient(135deg, #f0e4c8 0%, #d8c8a8 50%, #c0b090 100%), radial-gradient(ellipse at 50% 80%, #e8dcc0 0%, transparent 60%); }
.scn-magna-charta-stupidity .hall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #ece0c8 0%, #dcccb0 50%, #c8b898 100%); box-shadow: inset 0 0 80px rgba(160,140,100,.2); }
.scn-magna-charta-stupidity .parchment { position:absolute; bottom:24%; left:30%; width:180px; height:140px; background: linear-gradient(135deg, #f5eed8 0%, #e8dcc0 50%, #d8c8a8 100%); border-radius:4px 8px 6px 4px; box-shadow: 0 4px 20px rgba(80,60,40,.3), inset 0 2px 10px rgba(200,180,140,.5); transform: rotate(-2deg); transform-origin: bottom center; animation: mc-sway 10s ease-in-out infinite; }
.scn-magna-charta-stupidity .parchment::after { content:''; position:absolute; top:8%; left:6%; width:88%; height:84%; border:1px solid rgba(160,140,100,.3); border-radius:2px; }
.scn-magna-charta-stupidity .parchment-text { position:absolute; bottom:30%; left:34%; width:140px; height:90px; background: repeating-linear-gradient(180deg, transparent 0px, transparent 8px, rgba(120,90,60,.15) 8px, rgba(120,90,60,.15) 9px); mask-image: linear-gradient(180deg, #000 0%, #000 100%); -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 100%); animation: mc-fade 5s ease-in-out infinite alternate; }
.scn-magna-charta-stupidity .figure-clerk { position:absolute; bottom:18%; left:56%; width:44px; height:110px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 40% 40%; transform-origin: bottom center; animation: mc-stomp 4s ease-in-out infinite; }
.scn-magna-charta-stupidity .figure-clerk::after { content:''; position:absolute; top:-12%; left:15%; width:32px; height:38px; background: linear-gradient(180deg, #d8c0a8 0%, #c0a890 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-magna-charta-stupidity .figure-arm { position:absolute; bottom:50%; left:62%; width:30px; height:12px; background: linear-gradient(90deg, #d8c0a8 0%, #c0a890 100%); border-radius: 30% 50% 30% 40%; transform-origin: 0% 50%; animation: mc-point 2.5s ease-in-out infinite alternate; }
.scn-magna-charta-stupidity .stamp-seal { position:absolute; bottom:22%; left:52%; width:24px; height:24px; background: radial-gradient(circle, #c04040 0%, #8a2020 60%, #5a1010 100%); border-radius:50%; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: mc-seal 6s ease-in-out infinite; }
.scn-magna-charta-stupidity .ink-splash { position:absolute; bottom:20%; left:46%; width:50px; height:40px; background: radial-gradient(ellipse at 40% 60%, #2a1a0a 0%, transparent 60%); filter: blur(3px); animation: mc-splash 8s ease-in-out infinite; }
@keyframes mc-sway { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes mc-fade { 0%,100% { opacity:.6 } 50% { opacity:1 } }
@keyframes mc-stomp { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(8px) translateY(-2px) rotate(1deg) } }
@keyframes mc-point { 0% { transform: rotate(10deg) scaleX(1) } 100% { transform: rotate(45deg) scaleX(1.1) } }
@keyframes mc-seal { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes mc-splash { 0%,100% { transform: scale(1) rotate(0); opacity:.4 } 50% { transform: scale(1.3) rotate(10deg); opacity:.7 } }

.scn-door-hinge-neglect { background: linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 50%, #c0b090 100%), radial-gradient(ellipse at 60% 50%, #ffe0b0 0%, transparent 70%); }
.scn-door-hinge-neglect .parlour-bg { position:absolute; inset:0; background: linear-gradient(135deg, #ece0c8 0%, #d8ccb0 50%, #c8b898 100%); box-shadow: inset 0 0 60px rgba(160,140,100,.2); }
.scn-door-hinge-neglect .door-panel { position:absolute; bottom:0; left:20%; width:120px; height:320px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 60%, #5a4a3a 100%); border-radius:6px 6px 0 0; box-shadow: -4px 0 20px rgba(0,0,0,.2), inset 0 0 40px rgba(0,0,0,.1); transform-origin: left center; animation: dh-sag 6s ease-in-out infinite alternate; }
.scn-door-hinge-neglect .door-panel::after { content:''; position:absolute; top:20%; left:20%; width:60%; height:25%; border:2px solid rgba(200,180,140,.3); border-radius:4px; }
.scn-door-hinge-neglect .door-hinge { position:absolute; top:32%; left:18%; width:12px; height:16px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform-origin: top center; animation: dh-swing 3s ease-in-out infinite; }
.scn-door-hinge-neglect .door-hinge::after { content:''; position:absolute; top:50%; left:50%; width:4px; height:4px; background:#8a6a5a; border-radius:50%; transform:translate(-50%,-50%); }
.scn-door-hinge-neglect .door-crack { position:absolute; top:30%; left:20%; width:2px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 100%); box-shadow: 0 0 4px rgba(0,0,0,.3); animation: dh-crack 4s ease-in-out infinite; }
.scn-door-hinge-neglect .figure-father { position:absolute; bottom:18%; left:55%; width:50px; height:120px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 30% 30% 40% 40%; transform-origin: bottom center; animation: dh-pace 5s ease-in-out infinite; }
.scn-door-hinge-neglect .figure-father::after { content:''; position:absolute; top:-14%; left:18%; width:32px; height:36px; background: linear-gradient(180deg, #d8c0a8 0%, #c0a890 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-door-hinge-neglect .figure-hand { position:absolute; bottom:48%; left:64%; width:18px; height:10px; background: linear-gradient(90deg, #d8c0a8 0%, #c0a890 100%); border-radius: 40% 50% 30% 40%; transform-origin: 0% 50%; animation: dh-gesture 2s ease-in-out infinite alternate; }
.scn-door-hinge-neglect .speech-puff { position:absolute; top:30%; left:58%; width:40px; height:30px; background: radial-gradient(ellipse at 30% 50%, rgba(240,220,180,.6) 0%, transparent 70%); filter: blur(4px); animation: dh-puff 3s ease-in-out infinite; }
.scn-door-hinge-neglect .dust-mote { position:absolute; width:4px; height:4px; background: rgba(200,180,140,.4); border-radius:50%; filter: blur(1px); animation: dh-drift 15s linear infinite; }
.scn-door-hinge-neglect .dust-mote.a { top:20%; left:40%; animation-delay:0s; }
.scn-door-hinge-neglect .dust-mote.b { top:45%; left:25%; animation-delay:5s; width:3px; height:3px; }
@keyframes dh-sag { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes dh-swing { 0%,100% { transform: rotate(0) } 50% { transform: rotate(10deg) } }
@keyframes dh-crack { 0%,100% { opacity:.5; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.5) } }
@keyframes dh-pace { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(10px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(20px) translateY(0) rotate(-1deg) } 75% { transform: translateX(30px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(40px) translateY(0) rotate(0) } }
@keyframes dh-gesture { 0% { transform: rotate(-10deg) scaleX(1) } 100% { transform: rotate(30deg) scaleX(1.2) } }
@keyframes dh-puff { 0%,100% { transform: scale(.8); opacity:.4 } 50% { transform: scale(1.3); opacity:.8 } }
@keyframes dh-drift { 0% { transform: translateY(0) translateX(0) } 100% { transform: translateY(-120px) translateX(40px); opacity:0 } }

.scn-resolve-to-mend { background: linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 50%, #c0b090 100%), radial-gradient(ellipse at 40% 60%, #ffd8a0 0%, transparent 60%); }
.scn-resolve-to-mend .workshop-bg { position:absolute; inset:0; background: linear-gradient(135deg, #ece0c8 0%, #d8ccb0 50%, #c8b898 100%); box-shadow: inset 0 0 80px rgba(160,140,100,.25); }
.scn-resolve-to-mend .workbench { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:6px 6px 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.2), inset 0 0 40px rgba(0,0,0,.1); }
.scn-resolve-to-mend .hammer { position:absolute; bottom:34%; left:28%; width:60px; height:18px; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 40%, #6a5a4a 100%); border-radius:4px; transform-origin: 30% 50%; animation: rm-pound 2s ease-in-out infinite; }
.scn-resolve-to-mend .hammer::after { content:''; position:absolute; left:-8px; top:-4px; width:22px; height:22px; background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius:30% 30% 40% 40% / 40% 40% 30% 30%; }
.scn-resolve-to-mend .oil-can { position:absolute; bottom:32%; left:48%; width:20px; height:28px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
.scn-resolve-to-mend .oil-can::after { content:''; position:absolute; top:-6px; left:40%; width:4px; height:8px; background:#5a4a3a; border-radius:2px; }
.scn-resolve-to-mend .figure-mender { position:absolute; bottom:18%; left:52%; width:50px; height:120px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 30% 30% 40% 40%; transform-origin: bottom center; animation: rm-stand 4s ease-in-out infinite alternate; }
.scn-resolve-to-mend .figure-mender::after { content:''; position:absolute; top:-14%; left:18%; width:32px; height:36px; background: linear-gradient(180deg, #d8c0a8 0%, #c0a890 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-resolve-to-mend .figure-arm { position:absolute; bottom:50%; left:45%; width:28px; height:12px; background: linear-gradient(90deg, #d8c0a8 0%, #c0a890 100%); border-radius: 40% 60% 30% 40%; transform-origin: 100% 50%; animation: rm-reach 3s ease-in-out infinite alternate; }
.scn-resolve-to-mend .hinge-new { position:absolute; top:34%; left:22%; width:14px; height:20px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 10px rgba(200,180,100,.3); animation: rm-gleam 4s ease-in-out infinite; }
.scn-resolve-to-mend .sparkle { position:absolute; top:32%; left:24%; width:8px; height:8px; background: radial-gradient(circle, #ffe8c0 0%, transparent 70%); border-radius:50%; animation: rm-spark 3s ease-in-out infinite; }
@keyframes rm-pound { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(0deg) } }
@keyframes rm-stand { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes rm-reach { 0% { transform: rotate(-30deg) } 100% { transform: rotate(10deg) } }
@keyframes rm-gleam { 0%,100% { opacity:.6; box-shadow: 0 0 8px rgba(200,180,100,.2) } 50% { opacity:1; box-shadow: 0 0 20px rgba(200,180,100,.6) } }
@keyframes rm-spark { 0%,100% { transform: scale(.5); opacity:.3 } 50% { transform: scale(1.5); opacity:.8 } }

.scn-needing-hetrogeneous-matter {
  background: 
    linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 50%, #4a3a2a 100%),
    radial-gradient(ellipse at 70% 40%, #5a4a3a 0%, transparent 70%);
}
.scn-needing-hetrogeneous-matter .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, transparent 100%);
  animation: hm-wall 12s ease-in-out infinite alternate;
}
.scn-needing-hetrogeneous-matter .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #6a5030 0%, #3a2810 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.6);
}
.scn-needing-hetrogeneous-matter .papers {
  position: absolute; bottom: 40%; width: 28%; height: 12%;
  background: linear-gradient(135deg, #e8dcc0 0%, #c8b898 100%);
  border-radius: 6%;
  box-shadow: 2px 3px 6px rgba(0,0,0,.4);
}
.scn-needing-hetrogeneous-matter .pile-a {
  left: 15%; bottom: 38%; transform: rotate(-6deg);
  animation: hm-paper 6s ease-in-out infinite;
}
.scn-needing-hetrogeneous-matter .pile-b {
  left: 28%; bottom: 35%; width: 22%; height: 10%;
  transform: rotate(8deg);
  animation: hm-paper 7s ease-in-out infinite reverse;
}
.scn-needing-hetrogeneous-matter .candle {
  position: absolute; bottom: 40%; left: 55%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 6px rgba(200,168,112,.5);
  animation: hm-candle 8s ease-in-out infinite;
}
.scn-needing-hetrogeneous-matter .flame {
  position: absolute; bottom: 72%; left: 55%; width: 12px; height: 20px;
  margin-left: -2px;
  background: radial-gradient(circle at 50% 100%, #ffd060 0%, #ff8020 60%, transparent 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(255,128,32,.5), 0 0 40px 16px rgba(255,128,32,.3);
  animation: hm-flame 1.5s ease-in-out infinite alternate;
}
.scn-needing-hetrogeneous-matter .hand {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 30px;
  margin-left: 20px;
  background: linear-gradient(180deg, #d4b896 0%, #b09870 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hm-hand 4s ease-in-out infinite;
}
.scn-needing-hetrogeneous-matter .inkwell {
  position: absolute; bottom: 40%; left: 45%; width: 14px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: hm-ink 10s ease-in-out infinite;
}
@keyframes hm-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes hm-paper { 0% { transform: rotate(-6deg) translateY(0) } 25% { transform: rotate(-4deg) translateY(-2px) } 50% { transform: rotate(-7deg) translateY(0) } 75% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-6deg) translateY(0) } }
@keyframes hm-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes hm-flame { 0% { transform: scaleY(1) scaleX(1) } 30% { transform: scaleY(1.15) scaleX(.9) } 60% { transform: scaleY(.9) scaleX(1.1) } 100% { transform: scaleY(1.05) scaleX(.95) } }
@keyframes hm-hand { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-5deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hm-ink { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-prayers-and-virtues {
  background:
    linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a3a 0%, transparent 60%);
}
.scn-prayers-and-virtues .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-prayers-and-virtues .kneeler {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-prayers-and-virtues .figure {
  position: absolute; bottom: 22%; left: 42%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pv-figure 5s ease-in-out infinite alternate;
}
.scn-prayers-and-virtues .hands {
  position: absolute; bottom: 36%; left: 44%; width: 12px; height: 12px;
  background: #d4b896;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(2px);
  box-shadow: 0 0 4px rgba(0,0,0,.3);
  animation: pv-hands 3s ease-in-out infinite;
}
.scn-prayers-and-virtues .candle-pv {
  position: absolute; bottom: 24%; left: 32%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #dcc8a0 0%, #b8a070 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 0 8px rgba(200,160,100,.4);
  animation: pv-candle 8s ease-in-out infinite;
}
.scn-prayers-and-virtues .halo-pv {
  position: absolute; top: 10%; left: 38%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,224,160,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: pv-halo 6s ease-in-out infinite alternate;
}
.scn-prayers-and-virtues .shadow-pv {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 4px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: pv-shadow 5s ease-in-out infinite;
}
@keyframes pv-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes pv-hands { 0%,100% { transform: translateX(2px) translateY(0) } 50% { transform: translateX(0) translateY(-2px) } }
@keyframes pv-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }
@keyframes pv-halo { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .8; transform: scale(1.2) } 100% { opacity: .6; transform: scale(1.1) } }
@keyframes pv-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } }

.scn-true-genius-of-envy-free {
  background:
    linear-gradient(180deg, #f8edcc 0%, #e8d8a8 50%, #d0c090 100%),
    radial-gradient(ellipse at 80% 40%, #fff8e0 0%, transparent 70%);
}
.scn-true-genius-of-envy-free .sky-tg {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8d0e8 0%, #e0e8f0 100%);
  animation: tg-sky 20s ease-in-out infinite alternate;
}
.scn-true-genius-of-envy-free .window-tg {
  position: absolute; top: 8%; left: 55%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #c8d8e8 0%, #e8f0f8 100%);
  border: 4px solid #8a7a5a;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(255,255,255,.4), 0 4px 12px rgba(0,0,0,.2);
  animation: tg-window 14s ease-in-out infinite;
}
.scn-true-genius-of-envy-free .desk-tg {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.3);
}
.scn-true-genius-of-envy-free .book-tg {
  position: absolute; bottom: 28%; left: 30%; width: 50px; height: 36px;
  background: linear-gradient(135deg, #8a5a3a 0%, #5a3a1a 100%);
  border-radius: 4%;
  box-shadow: 2px 3px 6px rgba(0,0,0,.5);
  transform: rotate(-3deg);
  animation: tg-book 8s ease-in-out infinite;
}
.scn-true-genius-of-envy-free .quill-tg {
  position: absolute; bottom: 30%; left: 42%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a0 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: tg-quill 3s ease-in-out infinite alternate;
}
.scn-true-genius-of-envy-free .bust-tg {
  position: absolute; bottom: 24%; left: 18%; width: 30px; height: 44px;
  background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: tg-bust 10s ease-in-out infinite;
}
.scn-true-genius-of-envy-free .rays-tg {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,255,200,.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: tg-rays 6s ease-in-out infinite alternate;
}
.scn-true-genius-of-envy-free .sparkle-tg {
  position: absolute; top: 12%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,248,224,.6);
  animation: tg-sparkle 2s ease-in-out infinite;
}
@keyframes tg-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes tg-window { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes tg-book { 0%,100% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } }
@keyframes tg-quill { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes tg-bust { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tg-rays { 0% { opacity: .3; transform: scale(1) } 50% { opacity: .7; transform: scale(1.3) } 100% { opacity: .5; transform: scale(1.1) } }
@keyframes tg-sparkle { 0%,100% { opacity: 1; transform: scale(1) } 50% { opacity: .4; transform: scale(.6) } }

.scn-remedy-for-stupidity-shaving {
  background:
    linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 50%, #0a0a0a 100%),
    radial-gradient(ellipse at 60% 50%, #3a3a3a 0%, transparent 70%);
}
.scn-remedy-for-stupidity-shaving .wall-rs {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%);
  animation: rs-wall 15s ease-in-out infinite alternate;
}
.scn-remedy-for-stupidity-shaving .mirror-rs {
  position: absolute; top: 15%; left: 35%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #b8c8d8 0%, #8898a8 100%);
  border: 4px solid #6a5a4a;
  border-radius: 50% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6), inset 0 0 20px rgba(255,255,255,.3);
  animation: rs-mirror 8s ease-in-out infinite;
}
.scn-remedy-for-stupidity-shaving .razor-rs {
  position: absolute; top: 28%; left: 28%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #d0c8b0 0%, #a09880 100%);
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  transform: rotate(20deg);
  animation: rs-razor 4s ease-in-out infinite alternate;
}
.scn-remedy-for-stupidity-shaving .lather-rs {
  position: absolute; top: 22%; left: 45%; width: 20px; height: 16px;
  background: radial-gradient(circle, #f0f0f0 0%, #c0c0c0 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(255,255,255,.2);
  animation: rs-lather 6s ease-in-out infinite;
}
.scn-remedy-for-stupidity-shaving .face-rs {
  position: absolute; top: 25%; left: 55%; width: 22px; height: 28px;
  background: linear-gradient(180deg, #c8a898 0%, #a08070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: rs-face 5s ease-in-out infinite;
}
.scn-remedy-for-stupidity-shaving .chair-rs {
  position: absolute; bottom: 12%; left: 50%; width: 40px; height: 35px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: rs-chair 9s ease-in-out infinite;
}
.scn-remedy-for-stupidity-shaving .towel-rs {
  position: absolute; bottom: 28%; left: 42%; width: 16px; height: 12px;
  background: linear-gradient(135deg, #e8d8c8 0%, #c0b0a0 100%);
  border-radius: 20%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: rs-towel 5s ease-in-out infinite alternate;
}
.scn-remedy-for-stupidity-shaving .candle-rs {
  position: absolute; bottom: 30%; left: 30%; width: 5px; height: 24px;
  background: linear-gradient(180deg, #dcc8a0 0%, #b8a070 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 0 8px rgba(200,160,100,.5);
  animation: rs-candle 7s ease-in-out infinite;
}
@keyframes rs-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes rs-mirror { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes rs-razor { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(20deg) } }
@keyframes rs-lather { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes rs-face { 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 rs-chair { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes rs-towel { 0% { transform: rotate(-15deg) } 100% { transform: rotate(-10deg) } }
@keyframes rs-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }

/* scene: bridge-for-nose */
.scn-bridge-for-nose {
  background: linear-gradient(180deg, #f5e6d3 0%, #d9c2a3 40%, #b8956a 100%),
    radial-gradient(ellipse at 70% 20%, #fff7e6 0%, transparent 60%);
  animation: bn-bg 12s ease-in-out infinite alternate;
}
.scn-bridge-for-nose .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #c9b28b 0%, #decbb0 50%, #c9b28b 100%);
  animation: bn-wall 8s ease-in-out infinite;
}
.scn-bridge-for-nose .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5a40 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.3);
}
.scn-bridge-for-nose .bridge {
  position: absolute; bottom: 38%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(90deg, #6b4f3a 0%, #8b6b4f 50%, #6b4f3a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  transform-origin: left center;
  animation: bn-bridge 4s ease-in-out infinite alternate;
}
.scn-bridge-for-nose .nose {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 20px;
  background: radial-gradient(ellipse, #d9a07a 0%, #b87a52 70%, #8a5a3a 100%);
  border-radius: 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(200,150,100,.4);
  animation: bn-nose 3s ease-in-out infinite alternate;
}
.scn-bridge-for-nose .figure {
  position: absolute; bottom: 30%; left: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bn-figure 5s ease-in-out infinite;
}
.scn-bridge-for-nose .forceps {
  position: absolute; bottom: 35%; left: 25%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #a08060 0%, #c0a080 50%, #a08060 100%);
  border-radius: 4px; transform: rotate(-15deg);
  animation: bn-forceps 3s ease-in-out infinite alternate;
}
.scn-bridge-for-nose .lightbeam {
  position: absolute; top: 0; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, rgba(255,230,180,.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: bn-beam 6s ease-in-out infinite alternate;
}
@keyframes bn-bg { 0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes bn-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes bn-bridge { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes bn-nose { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05, 0.95); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes bn-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes bn-forceps { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(3px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes bn-beam { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.2); } 100% { opacity: 0.4; transform: scaleY(1); } }

/* scene: cloud-over-father */
.scn-cloud-over-father {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0e0e1e 100%),
    radial-gradient(ellipse at 50% 0%, #3a3a5e 0%, transparent 70%);
}
.scn-cloud-over-father .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1e32 0%, #121226 100%);
  animation: cof-wall 15s ease-in-out infinite alternate;
}
.scn-cloud-over-father .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a24 0%, #0a0a12 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-cloud-over-father .father {
  position: absolute; bottom: 26%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cof-father 6s ease-in-out infinite alternate;
}
.scn-cloud-over-father .cloud {
  position: absolute; top: 10%; left: 30%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(100,100,140,.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: cof-cloud 20s ease-in-out infinite alternate;
}
.scn-cloud-over-father .shadow {
  position: absolute; bottom: 26%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 6px;
  background: rgba(0,0,0,.4); border-radius: 50%;
  animation: cof-shadow 6s ease-in-out infinite alternate;
}
.scn-cloud-over-father .window {
  position: absolute; top: 18%; right: 12%; width: 30px; height: 40px;
  background: rgba(150,150,200,.15); border: 2px solid rgba(255,255,255,.05);
  border-radius: 4px;
}
.scn-cloud-over-father .lamp {
  position: absolute; bottom: 30%; left: 15%; width: 8px; height: 12px;
  background: radial-gradient(circle, #c0a070 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(192,160,112,.3);
  animation: cof-lamp 3s ease-in-out infinite alternate;
}
@keyframes cof-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes cof-father { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes cof-cloud { 0% { transform: translateX(0) scale(1); opacity: 0.5; } 50% { transform: translateX(20px) scale(1.1); opacity: 0.7; } 100% { transform: translateX(-10px) scale(0.95); opacity: 0.4; } }
@keyframes cof-shadow { 0% { opacity: 0.6; transform: translateX(-50%) scale(1); } 50% { opacity: 0.8; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.6; transform: translateX(-50%) scale(1); } }
@keyframes cof-lamp { 0% { opacity: 0.7; box-shadow: 0 0 12px 4px rgba(192,160,112,.2); } 50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(192,160,112,.4); } 100% { opacity: 0.7; box-shadow: 0 0 14px 5px rgba(192,160,112,.25); } }

/* scene: father-prostrate */
.scn-father-prostrate {
  background: linear-gradient(180deg, #1c1c2a 0%, #12121a 50%, #080810 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%);
}
.scn-father-prostrate .bed {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #2a2a36 0%, #1a1a24 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.5);
}
.scn-father-prostrate .father {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: fp-father 5s ease-in-out infinite;
}
.scn-father-prostrate .pillow {
  position: absolute; bottom: 48%; left: 20%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-father-prostrate .blanket {
  position: absolute; bottom: 30%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%);
  border-radius: 4px;
  animation: fp-blanket 8s ease-in-out infinite alternate;
}
.scn-father-prostrate .chair {
  position: absolute; bottom: 20%; left: 5%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2a32 0%, #12121a 100%);
  border-radius: 4px 4px 0 0;
}
.scn-father-prostrate .lamp {
  position: absolute; bottom: 50%; left: 70%; width: 6px; height: 16px;
  background: radial-gradient(circle, #806050 0%, transparent 70%);
  border-radius: 2px;
  box-shadow: 0 0 10px 3px rgba(128,96,80,.3);
  animation: fp-lamp 4s ease-in-out infinite alternate;
}
.scn-father-prostrate .window {
  position: absolute; top: 15%; left: 5%; width: 30px; height: 50px;
  background: rgba(80,80,120,.1);
  border: 1px solid rgba(255,255,255,.03);
}
@keyframes fp-father { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fp-blanket { 0% { opacity: 0.8; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: 0.85; transform: translateY(0); } }
@keyframes fp-lamp { 0% { opacity: 0.6; box-shadow: 0 0 8px 2px rgba(128,96,80,.2); } 50% { opacity: 0.9; box-shadow: 0 0 14px 5px rgba(128,96,80,.35); } 100% { opacity: 0.6; box-shadow: 0 0 10px 3px rgba(128,96,80,.22); } }

/* scene: uncle-toby-in-chair */
.scn-uncle-toby-in-chair {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 40%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%);
}
.scn-uncle-toby-in-chair .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2e1e12 0%, #1e1208 100%);
  animation: ut-wall 10s ease-in-out infinite alternate;
}
.scn-uncle-toby-in-chair .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a0e 0%, #120a04 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-uncle-toby-in-chair .armchair {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
}
.scn-uncle-toby-in-chair .uncle-toby {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ut-figure 6s ease-in-out infinite alternate;
}
.scn-uncle-toby-in-chair .pipe {
  position: absolute; bottom: 42%; left: 52%; width: 40px; height: 4px;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 100%);
  border-radius: 2px; transform: rotate(10deg);
  animation: ut-pipe 4s ease-in-out infinite alternate;
}
.scn-uncle-toby-in-chair .smoke {
  position: absolute; bottom: 46%; left: 58%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(180,160,140,.3) 0%, transparent 70%);
  filter: blur(3px);
  animation: ut-smoke 5s ease-out infinite;
}
.scn-uncle-toby-in-chair .lamp {
  position: absolute; top: 15%; right: 20%; width: 10px; height: 14px;
  background: radial-gradient(circle, #d0a060 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(208,160,96,.3);
  animation: ut-lamp 3s ease-in-out infinite alternate;
}
@keyframes ut-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ut-figure { 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 ut-pipe { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes ut-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-20px) scale(2); opacity: 0.3; } 100% { transform: translateY(-40px) scale(3); opacity: 0; } }
@keyframes ut-lamp { 0% { opacity: 0.6; box-shadow: 0 0 16px 5px rgba(208,160,96,.2); } 50% { opacity: 0.9; box-shadow: 0 0 30px 10px rgba(208,160,96,.4); } 100% { opacity: 0.7; box-shadow: 0 0 20px 6px rgba(208,160,96,.25); } }

.scn-fathers-ass-metaphor {
  background: linear-gradient(180deg, #f5e6ca 0%, #e3c9a0 40%, #c7a87a 100%),
              radial-gradient(circle at 30% 20%, #fff6e0 0%, transparent 70%);
}
.scn-fathers-ass-metaphor .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #f8eed8 0%, #dccab0 100%);
  border-bottom: 4px solid #b3905e;
}
.scn-fathers-ass-metaphor .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #8a6d4b 0%, #a5835f 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.15);
}
.scn-fathers-ass-metaphor .window {
  position: absolute; top: 15%; left: 15%; width: 25%; height: 40%;
  background: radial-gradient(circle at 50% 50%, #fffbe8 0%, #d4e4ff 70%);
  border: 6px solid #a07346;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.5);
  animation: fam-window 6s ease-in-out infinite alternate;
}
.scn-fathers-ass-metaphor .shelf {
  position: absolute; bottom: 35%; left: 40%; right: 5%; height: 6px;
  background: #8b6a44;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}
.scn-fathers-ass-metaphor .fig-left {
  position: absolute; bottom: 28%; left: 22%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2c1e12 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fam-figleft 4s ease-in-out infinite;
}
.scn-fathers-ass-metaphor .fig-right {
  position: absolute; bottom: 28%; right: 18%; width: 65px; height: 110px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 32% 32% 38% 38% / 48% 48% 42% 42%;
  transform-origin: bottom center;
  animation: fam-figright 5s ease-in-out infinite;
}
.scn-fathers-ass-metaphor .donkey-fig {
  position: absolute; bottom: 30%; left: 48%; width: 70px; height: 50px;
  background: radial-gradient(ellipse at 30% 40%, #8a7a6a 0%, #5a4a3a 80%);
  border-radius: 40% 60% 50% 50% / 50% 60% 40% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: fam-donkey 2.5s ease-in-out infinite;
}
.scn-fathers-ass-metaphor .bubble {
  position: absolute; top: 12%; right: 30%; width: 40px; height: 30px;
  background: rgba(255,255,240,0.6);
  border-radius: 50% 50% 50% 5% / 50% 50% 50% 10%;
  filter: blur(2px);
  animation: fam-bubble 7s ease-in-out infinite alternate;
}
@keyframes fam-window {
  0%   { opacity: 0.7; transform: translateY(0); }
  50%  { opacity: 1;   transform: translateY(-2px); }
  100% { opacity: 0.8; transform: translateY(0); }
}
@keyframes fam-figleft {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25%  { transform: translateX(4px) rotate(2deg); }
  50%  { transform: translateX(0) rotate(-1deg); }
  75%  { transform: translateX(-3px) rotate(1deg); }
}
@keyframes fam-figright {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg); }
  30%  { transform: translateX(2px) translateY(-2px) rotate(1deg); }
  60%  { transform: translateX(-2px) translateY(0) rotate(-1deg); }
}
@keyframes fam-donkey {
  0%,100% { transform: translateX(0) rotate(0deg); }
  20%  { transform: translateX(3px) rotate(3deg); }
  40%  { transform: translateX(-2px) rotate(-2deg); }
  60%  { transform: translateX(4px) rotate(1deg); }
  80%  { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes fam-bubble {
  0%   { transform: scale(0.5) translateY(0); opacity: 0.3; }
  50%  { transform: scale(1.2) translateY(-8px); opacity: 0.8; }
  100% { transform: scale(0.8) translateY(-4px); opacity: 0.5; }
}

.scn-hobby-horse-vs-ass {
  background: linear-gradient(180deg, #fff9e6 0%, #ecdcc0 50%, #c7ad8a 100%),
              radial-gradient(circle at 20% 30%, #fff5d0 0%, transparent 70%);
}
.scn-hobby-horse-vs-ass .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #9c7d5a 0%, #b69973 100%);
  border-top: 3px solid #8a6b48;
}
.scn-hobby-horse-vs-ass .wall-panel {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e6d8c4 0%, #d4c0a8 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.05);
}
.scn-hobby-horse-vs-ass .hobby-horse {
  position: absolute; bottom: 20%; left: 18%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #c07030 0%, #9a5a20 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hha-hobby 2s ease-in-out infinite;
}
.scn-hobby-horse-vs-ass .ass-donkey {
  position: absolute; bottom: 22%; right: 18%; width: 90px; height: 90px;
  background: radial-gradient(ellipse at 40% 30%, #8a7a6a 0%, #5a4a3a 80%);
  border-radius: 45% 55% 50% 50% / 55% 60% 40% 35%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: hha-ass 3.5s ease-in-out infinite;
}
.scn-hobby-horse-vs-ass .stick-handle {
  position: absolute; bottom: 30%; left: 22%; width: 60px; height: 6px;
  background: #6b4220;
  border-radius: 3px;
  transform: rotate(-15deg);
  transform-origin: right center;
  animation: hha-stick 2s ease-in-out infinite;
}
.scn-hobby-horse-vs-ass .shadow-h {
  position: absolute; bottom: 18%; left: 15%; width: 120px; height: 20px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(4px);
  animation: hha-shad 2s ease-in-out infinite;
}
.scn-hobby-horse-vs-ass .shadow-a {
  position: absolute; bottom: 20%; right: 15%; width: 130px; height: 22px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(5px);
  animation: hha-shad 3.5s ease-in-out infinite;
}
.scn-hobby-horse-vs-ass .sparkle {
  position: absolute; top: 25%; left: 40%; width: 8px; height: 8px;
  background: #ffe58a;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,229,138,0.8);
  animation: hha-spark 1.5s ease-in-out infinite alternate;
}
@keyframes hha-hobby {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  25%  { transform: translateY(-6px) rotate(0deg); }
  50%  { transform: translateY(0) rotate(3deg); }
  75%  { transform: translateY(-4px) rotate(-1deg); }
}
@keyframes hha-ass {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg); }
  30%  { transform: translateX(3px) translateY(-3px) rotate(2deg); }
  60%  { transform: translateX(-2px) translateY(0) rotate(-2deg); }
}
@keyframes hha-stick {
  0%,100% { transform: rotate(-15deg); }
  50%  { transform: rotate(-25deg); }
}
@keyframes hha-shad {
  0%,100% { transform: scaleX(1); opacity: 0.7; }
  50%  { transform: scaleX(0.8); opacity: 1; }
}
@keyframes hha-spark {
  0%   { transform: scale(1); opacity: 0.6; }
  100% { transform: scale(2); opacity: 1; }
}

.scn-fathers-ass-is-concupiscent {
  background: linear-gradient(180deg, #d9cbb0 0%, #b89f80 40%, #8a7358 100%),
              radial-gradient(circle at 50% 60%, #e8d8c0 0%, transparent 70%);
}
.scn-fathers-ass-is-concupiscent .bg-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #f0e4d0 0%, #dccab0 100%);
  opacity: 0.6;
}
.scn-fathers-ass-is-concupiscent .shadow-arch {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.35) 0%, transparent 70%);
  filter: blur(10px);
}
.scn-fathers-ass-is-concupiscent .ass-body {
  position: absolute; bottom: 25%; left: 40%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2c1e12 100%);
  border-radius: 40% 60% 50% 50% / 55% 60% 40% 35%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.5);
  animation: fac-body 3s ease-in-out infinite;
}
.scn-fathers-ass-is-concupiscent .ass-tail {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 8px;
  background: #5a4a3a;
  border-radius: 4px;
  transform-origin: left center;
  animation: fac-tail 2s ease-in-out infinite;
}
.scn-fathers-ass-is-concupiscent .ass-eye {
  position: absolute; bottom: 45%; left: 42%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ff6640 0%, #c8301a 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,102,64,0.5);
  animation: fac-eye 1.2s ease-in-out infinite alternate;
}
.scn-fathers-ass-is-concupiscent .chain-left {
  position: absolute; bottom: 22%; left: 28%; width: 40px; height: 4px;
  background: #8a7a6a;
  border-radius: 2px;
  animation: fac-chain 2.5s ease-in-out infinite;
}
.scn-fathers-ass-is-concupiscent .chain-right {
  position: absolute; bottom: 22%; right: 28%; width: 40px; height: 4px;
  background: #8a7a6a;
  border-radius: 2px;
  animation: fac-chain 2.5s ease-in-out infinite reverse;
}
.scn-fathers-ass-is-concupiscent .wisp {
  position: absolute; bottom: 50%; left: 48%; width: 20px; height: 20px;
  background: rgba(200,100,60,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: fac-wisp 4s ease-in-out infinite alternate;
}
@keyframes fac-body {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25%  { transform: translateY(-2px) rotate(2deg); }
  50%  { transform: translateY(0) rotate(-1deg); }
  75%  { transform: translateY(-1px) rotate(1deg); }
}
@keyframes fac-tail {
  0%   { transform: rotate(-10deg) translateX(0); }
  50%  { transform: rotate(10deg) translateX(8px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes fac-eye {
  0%   { transform: scale(1); opacity: 0.6; }
  100% { transform: scale(1.5); opacity: 1; }
}
@keyframes fac-chain {
  0%,100% { transform: translateY(0); opacity: 1; }
  50%  { transform: translateY(2px); opacity: 0.5; }
}
@keyframes fac-wisp {
  0%   { transform: translate(0, 0) scale(1); opacity: 0; }
  50%  { transform: translate(6px, -8px) scale(2); opacity: 0.6; }
  100% { transform: translate(0, 0) scale(1); opacity: 0; }
}

.scn-fathers-inquiry-about-ass {
  background: linear-gradient(180deg, #fcf3e0 0%, #efe0c8 50%, #d4bea0 100%),
              radial-gradient(circle at 70% 30%, #fffbe0 0%, transparent 60%);
}
.scn-fathers-inquiry-about-ass .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #f0e4d0 0%, #dccab0 100%);
}
.scn-fathers-inquiry-about-ass .bed-post {
  position: absolute; bottom: 25%; left: 15%; width: 12px; height: 120px;
  background: #6b4220;
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
}
.scn-fathers-inquiry-about-ass .fig-toby {
  position: absolute; bottom: 25%; left: 30%; width: 70px; height: 110px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2c1e12 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fia-toby 3s ease-in-out infinite;
}
.scn-fathers-inquiry-about-ass .fig-father {
  position: absolute; bottom: 28%; right: 22%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0e08 100%);
  border-radius: 32% 32% 38% 38% / 48% 48% 42% 42%;
  transform-origin: bottom center;
  animation: fia-father 4s ease-in-out infinite;
}
.scn-fathers-inquiry-about-ass .blister {
  position: absolute; bottom: 32%; left: 40%; width: 20px; height: 18px;
  background: radial-gradient(circle, #ffccaa 0%, #e8a080 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(232,160,128,0.5);
  animation: fia-blister 1.5s ease-in-out infinite alternate;
}
.scn-fathers-inquiry-about-ass .hand-spot {
  position: absolute; bottom: 30%; left: 36%; width: 14px; height: 20px;
  background: #5a4a3a;
  border-radius: 40% 40% 50% 50%;
  transform: rotate(-10deg);
  animation: fia-hand 2s ease-in-out infinite;
}
.scn-fathers-inquiry-about-ass .ass-silhouette {
  position: absolute; bottom: 18%; right: 10%; width: 80px; height: 70px;
  background: rgba(0,0,0,0.1);
  border-radius: 40% 60% 50% 50% / 55% 60% 40% 35%;
  filter: blur(8px);
  animation: fia-sil 5s ease-in-out infinite;
}
.scn-fathers-inquiry-about-ass .chair {
  position: absolute; bottom: 22%; left: 8%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #8a6b48 0%, #5a4028 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 2px 0 10px rgba(0,0,0,0.2);
}
@keyframes fia-toby {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30%  { transform: translateX(3px) rotate(2deg); }
  60%  { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes fia-father {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25%  { transform: translateX(-3px) rotate(1deg); }
  50%  { transform: translateX(2px) rotate(-2deg); }
  75%  { transform: translateX(-1px) rotate(1deg); }
}
@keyframes fia-blister {
  0%   { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.3); opacity: 1; }
}
@keyframes fia-hand {
  0%,100% { transform: rotate(-10deg) translateX(0); }
  50%  { transform: rotate(-5deg) translateX(3px); }
}
@keyframes fia-sil {
  0%,100% { transform: translateX(0) scale(1); opacity: 0.5; }
  50%  { transform: translateX(4px) scale(1.05); opacity: 0.8; }
}

/* --- scene: item-moorish-girl-with-feathers --- */
.scn-item-moorish-girl-with-feathers {
  background: linear-gradient(135deg, #e8d5b0 0%, #c9a87c 60%), radial-gradient(ellipse at 30% 40%, #f0e0c0 0%, transparent 70%);
}
.scn-item-moorish-girl-with-feathers .bg-room {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 60%, #dcc29e 0%, #b8946a 100%);
  animation: mgf-room 12s ease-in-out infinite alternate;
}
.scn-item-moorish-girl-with-feathers .window {
  position: absolute; top: 5%; left: 8%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #fdf8e8 0%, #f5e8c8 100%);
  border-radius: 4px; box-shadow: inset 0 0 40px rgba(255,230,180,0.4);
  animation: mgf-window 5s ease-in-out infinite alternate;
}
.scn-item-moorish-girl-with-feathers .girl {
  position: absolute; bottom: 15%; left: 35%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #4a3728 0%, #2e1f14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mgf-girl 4s ease-in-out infinite alternate;
}
.scn-item-moorish-girl-with-feathers .cane {
  position: absolute; bottom: 20%; left: 48%; width: 2%; height: 40%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3d2e18 100%);
  border-radius: 2px; transform: rotate(15deg);
  animation: mgf-cane 6s ease-in-out infinite;
}
.scn-item-moorish-girl-with-feathers .feathers {
  position: absolute; bottom: 58%; left: 49.5%; width: 6%; height: 10%;
  background: radial-gradient(ellipse at 60% 40%, #ffffff 0%, #e0d8c8 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: mgf-feathers 3s ease-in-out infinite alternate;
}
.scn-item-moorish-girl-with-feathers .fly-a {
  position: absolute; bottom: 50%; left: 55%; width: 0.6%; height: 0.6%;
  background: #2a2018; border-radius: 50%;
  animation: mgf-fly 2.5s ease-in-out infinite;
}
.scn-item-moorish-girl-with-feathers .fly-b {
  position: absolute; bottom: 45%; left: 65%; width: 0.8%; height: 0.8%;
  background: #2a2018; border-radius: 50%;
  animation: mgf-fly 3s ease-in-out infinite;
  animation-delay: -0.8s;
}
.scn-item-moorish-girl-with-feathers .fly-c {
  position: absolute; bottom: 55%; left: 40%; width: 0.5%; height: 0.5%;
  background: #2a2018; border-radius: 50%;
  animation: mgf-fly 2.2s ease-in-out infinite;
  animation-delay: -1.5s;
}
@keyframes mgf-room { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mgf-window { 0% { opacity: 0.7; box-shadow: inset 0 0 30px rgba(255,230,180,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 60px rgba(255,230,180,0.6); } 100% { opacity: 0.8; box-shadow: inset 0 0 40px rgba(255,230,180,0.4); } }
@keyframes mgf-girl { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1%) scaleY(1.005); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes mgf-cane { 0% { transform: rotate(12deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(14deg); } }
@keyframes mgf-feathers { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(8deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes mgf-fly { 0% { transform: translate(0, 0) scale(1); opacity: 0.7; } 25% { transform: translate(2%, -3%) scale(1.2); opacity: 1; } 50% { transform: translate(4%, -1%) scale(0.9); opacity: 0.8; } 75% { transform: translate(1%, -5%) scale(1.1); opacity: 1; } 100% { transform: translate(0, 0) scale(1); opacity: 0.7; } }

/* --- scene: debate-on-negrp-soul --- */
.scn-debate-on-negrp-soul {
  background: linear-gradient(135deg, #c8a87c 0%, #a08060 100%), radial-gradient(ellipse at 50% 20%, #e0c8a0 0%, transparent 60%);
}
.scn-debate-on-negrp-soul .bg-chamber {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 50%, #dbb78c 0%, #b09064 100%);
  animation: dns-chamber 15s ease-in-out infinite alternate;
}
.scn-debate-on-negrp-soul .table {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #7a6040 0%, #4c381e 100%);
  border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}
.scn-debate-on-negrp-soul .uncle-toby {
  position: absolute; bottom: 32%; left: 25%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2c1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dns-toby 6s ease-in-out infinite alternate;
}
.scn-debate-on-negrp-soul .corporal {
  position: absolute; bottom: 32%; right: 25%; width: 13%; height: 38%;
  background: linear-gradient(180deg, #4a382a 0%, #2e1f14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dns-corporal 4s ease-in-out infinite alternate;
}
.scn-debate-on-negrp-soul .candle {
  position: absolute; bottom: 35%; left: 50%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #f0d080 0%, #a08040 100%);
  border-radius: 2px; transform: translateX(-50%);
  animation: dns-candle 2s ease-in-out infinite alternate;
}
.scn-debate-on-negrp-soul .candle-glow {
  position: absolute; bottom: 38%; left: 50%; width: 12%; height: 12%;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 100%);
  border-radius: 50%; transform: translate(-50%, 0);
  animation: dns-glow 3s ease-in-out infinite alternate;
}
.scn-debate-on-negrp-soul .shadow-toby {
  position: absolute; bottom: 20%; left: 18%; width: 16%; height: 8%;
  background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(4px);
  animation: dns-shadow 6s ease-in-out infinite alternate;
}
.scn-debate-on-negrp-soul .shadow-corp {
  position: absolute; bottom: 20%; right: 18%; width: 14%; height: 8%;
  background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(4px);
  animation: dns-shadow 4s ease-in-out infinite alternate reverse;
}
@keyframes dns-chamber { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes dns-toby { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(1%) rotate(2deg); } 100% { transform: translateX(-1%) rotate(-1deg); } }
@keyframes dns-corporal { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-1%) rotate(-2deg); } 100% { transform: translateX(1%) rotate(1deg); } }
@keyframes dns-candle { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.9; } 50% { transform: translateX(-50%) scaleY(1.05); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.95; } }
@keyframes dns-glow { 0% { transform: translate(-50%, 0) scale(1); opacity: 0.6; } 50% { transform: translate(-50%, -2%) scale(1.2); opacity: 0.8; } 100% { transform: translate(-50%, 0) scale(0.9); opacity: 0.5; } }
@keyframes dns-shadow { 0% { transform: scaleX(1); opacity: 0.2; } 50% { transform: scaleX(1.1); opacity: 0.3; } 100% { transform: scaleX(0.9); opacity: 0.15; } }

/* --- scene: corporal-recovers-his-tale --- */
.scn-corporal-recovers-his-tale {
  background: linear-gradient(180deg, #c8a87c 0%, #a08060 100%), radial-gradient(ellipse at 40% 60%, #e0c8a0 0%, transparent 50%);
}
.scn-corporal-recovers-his-tale .bg-study {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, #dbb78c 0%, #b09064 100%);
  animation: crt-study 10s ease-in-out infinite alternate;
}
.scn-corporal-recovers-his-tale .book {
  position: absolute; bottom: 20%; left: 20%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #7a6040 0%, #4c381e 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: rotate(-2deg);
}
.scn-corporal-recovers-his-tale .page-left {
  position: absolute; bottom: 22%; left: 21%; width: 18%; height: 21%;
  background: linear-gradient(135deg, #f0e0c0 0%, #dcc8a0 100%);
  border-radius: 2px; transform: rotate(-2deg);
  animation: crt-page 8s ease-in-out infinite alternate;
}
.scn-corporal-recovers-his-tale .page-right {
  position: absolute; bottom: 22%; right: 21%; width: 18%; height: 21%;
  background: linear-gradient(45deg, #f0e0c0 0%, #dcc8a0 100%);
  border-radius: 2px; transform: rotate(2deg);
  animation: crt-page 8s ease-in-out infinite alternate-reverse;
}
.scn-corporal-recovers-his-tale .corporal-head {
  position: absolute; bottom: 35%; left: 45%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #4a382a 0%, #2e1f14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crt-head 5s ease-in-out infinite alternate;
}
.scn-corporal-recovers-his-tale .corporal-hand {
  position: absolute; bottom: 28%; left: 38%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #4a382a 0%, #2e1f14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(20deg);
  animation: crt-hand 3s ease-in-out infinite alternate;
}
.scn-corporal-recovers-his-tale .quill {
  position: absolute; bottom: 30%; left: 36%; width: 1.5%; height: 14%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a880 100%);
  border-radius: 2px; transform: rotate(15deg);
  animation: crt-quill 4s ease-in-out infinite alternate;
}
.scn-corporal-recovers-his-tale .inkwell {
  position: absolute; bottom: 18%; left: 17%; width: 5%; height: 6%;
  background: radial-gradient(circle, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
@keyframes crt-study { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes crt-page { 0% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(0.98); } 100% { transform: rotate(2deg) scaleX(1); } }
@keyframes crt-head { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2%) rotate(-1deg); } 100% { transform: translateY(1%) rotate(1deg); } }
@keyframes crt-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2%); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes crt-quill { 0% { transform: rotate(12deg) scaleY(1); } 50% { transform: rotate(18deg) scaleY(1.05); } 100% { transform: rotate(15deg) scaleY(0.95); } }

/* --- scene: tom-courts-widow-over-sausages --- */
.scn-tom-courts-widow-over-sausages {
  background: linear-gradient(135deg, #e8d5b0 0%, #c9a87c 100%), radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 60%);
}
.scn-tom-courts-widow-over-sausages .bg-tavern {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 50%, #dcc29e 0%, #b8946a 100%);
  animation: tcw-tavern 15s ease-in-out infinite alternate;
}
.scn-tom-courts-widow-over-sausages .table-oval {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #7a6040 0%, #4c381e 100%);
  border-radius: 50% / 80%; box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
.scn-tom-courts-widow-over-sausages .tom {
  position: absolute; bottom: 30%; left: 25%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #4a382a 0%, #2e1f14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tcw-tom 3s ease-in-out infinite alternate;
}
.scn-tom-courts-widow-over-sausages .widow {
  position: absolute; bottom: 30%; right: 25%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2c1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tcw-widow 4s ease-in-out infinite alternate;
}
.scn-tom-courts-widow-over-sausages .sausage-1 {
  position: absolute; bottom: 22%; left: 38%; width: 6%; height: 3%;
  background: linear-gradient(90deg, #a04020 0%, #c06030 50%, #a04020 100%);
  border-radius: 50%; transform: rotate(-20deg);
  animation: tcw-sausage 2s ease-in-out infinite;
}
.scn-tom-courts-widow-over-sausages .sausage-2 {
  position: absolute; bottom: 20%; left: 45%; width: 5%; height: 3%;
  background: linear-gradient(90deg, #a04020 0%, #c06030 50%, #a04020 100%);
  border-radius: 50%; transform: rotate(10deg);
  animation: tcw-sausage 2.5s ease-in-out infinite;
  animation-delay: -0.5s;
}
.scn-tom-courts-widow-over-sausages .sausage-3 {
  position: absolute; bottom: 23%; left: 52%; width: 5.5%; height: 3%;
  background: linear-gradient(90deg, #a04020 0%, #c06030 50%, #a04020 100%);
  border-radius: 50%; transform: rotate(-5deg);
  animation: tcw-sausage 3s ease-in-out infinite;
  animation-delay: -1s;
}
.scn-tom-courts-widow-over-sausages .plate {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 3%;
  background: radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, #dcc8a0 100%);
  border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.scn-tom-courts-widow-over-sausages .wine {
  position: absolute; bottom: 19%; left: 63%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #8a2a1a 0%, #5a1a0a 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
@keyframes tcw-tavern { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes tcw-tom { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(2%) rotate(-2deg) scaleY(1.02); } 100% { transform: translateX(-1%) rotate(1deg) scaleY(0.98); } }
@keyframes tcw-widow { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2%) rotate(3deg); } 100% { transform: translateX(1%) rotate(-2deg); } }
@keyframes tcw-sausage { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2%); } 100% { transform: rotate(-20deg) translateY(0); } }

/* sermon-plagiarism – dark, dim-interior cathedral */
.scn-sermon-plagiarism {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2a3e 40%, #1e1c2a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3850 0%, #1a1a2e 70%);
}
.scn-sermon-plagiarism .bg-arch {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2840 0%, transparent 50%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0; animation: sp-archpulse 12s ease-in-out infinite alternate;
}
.scn-sermon-plagiarism .pulpit {
  position: absolute; bottom: 20%; left: 50%; width: 70px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
}
.scn-sermon-plagiarism .preacher {
  position: absolute; bottom: 32%; left: 50%; width: 24px; height: 50px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: sp-preach 6s ease-in-out infinite;
}
.scn-sermon-plagiarism .bible {
  position: absolute; bottom: 28%; left: 50%; width: 14px; height: 18px; transform: translateX(10px);
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a10 100%); border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.5);
}
.scn-sermon-plagiarism .candle {
  position: absolute; bottom: 28%; left: 44%; width: 6px; height: 20px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #8a6820 100%); border-radius: 40%;
  box-shadow: 0 -8px 30px 8px rgba(200,160,96,.4);
  animation: sp-candle 3s ease-in-out infinite alternate;
}
.scn-sermon-plagiarism .pew-left {
  position: absolute; bottom: 10%; left: 8%; width: 25%; height: 30px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 4px 4px 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-sermon-plagiarism .pew-right {
  position: absolute; bottom: 10%; right: 8%; width: 25%; height: 30px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 4px 4px 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-sermon-plagiarism .shadow-column {
  position: absolute; top: 0; bottom: 20%; left: 30%; width: 6%;
  background: rgba(0,0,0,.4); filter: blur(6px); animation: sp-shadowy 8s ease-in-out infinite alternate;
}
@keyframes sp-archpulse { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes sp-preach { 0% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes sp-candle { 0% { opacity: .8; box-shadow: 0 -8px 20px 6px rgba(200,160,96,.3); } 50% { opacity: 1; box-shadow: 0 -8px 40px 12px rgba(200,160,96,.6); } 100% { opacity: .85; box-shadow: 0 -8px 25px 8px rgba(200,160,96,.35); } }
@keyframes sp-shadowy { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .35; } }

/* obadiah-return – warm, firelit room */
.scn-obadiah-return {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #4a3020 40%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 60%, #6a4a30 0%, #2a1a10 80%);
}
.scn-obadiah-return .room-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3520 0%, transparent 60%);
  border-radius: 0; animation: or-wallglow 10s ease-in-out infinite alternate;
}
.scn-obadiah-return .hearth {
  position: absolute; bottom: 10%; left: 50%; width: 80px; height: 50px; transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1008 0%, #2a1a10 100%); border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.7);
}
.scn-obadiah-return .fire {
  position: absolute; bottom: 14%; left: 50%; width: 50px; height: 40px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #e08030 0%, #c06020 40%, #8a4010 70%, transparent 100%);
  border-radius: 50%; filter: blur(4px); animation: or-fire 2s ease-in-out infinite alternate;
}
.scn-obadiah-return .obadiah {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 60px; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: or-walk 4s ease-in-out infinite;
}
.scn-obadiah-return .green-bag {
  position: absolute; bottom: 22%; left: 26%; width: 28px; height: 20px; transform: rotate(10deg);
  background: linear-gradient(135deg, #3a5a2a 0%, #2a4a1a 100%); border-radius: 40% 20% 40% 20%;
  box-shadow: 2px 4px 8px rgba(0,0,0,.5); animation: or-bag 3s ease-in-out infinite alternate;
}
.scn-obadiah-return .instruments {
  position: absolute; bottom: 28%; left: 24%; width: 8px; height: 8px; background: radial-gradient(circle, #c8a040 0%, #a08030 60%);
  border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,160,64,.5); animation: or-jingle 1.5s ease-in-out infinite;
}
.scn-obadiah-return .chair {
  position: absolute; bottom: 12%; right: 18%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%); border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-obadiah-return .floor-shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  filter: blur(8px); animation: or-shadow 6s ease-in-out infinite alternate;
}
@keyframes or-wallglow { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes or-fire { 0% { transform: translateX(-50%) scaleY(1) translateY(0); } 50% { transform: translateX(-50%) scaleY(1.1) translateY(-3px); } 100% { transform: translateX(-50%) scaleY(.95) translateY(0); } }
@keyframes or-walk { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-40%) translateY(-1px) rotate(0); } 50% { transform: translateX(-30%) rotate(2deg); } 75% { transform: translateX(-40%) translateY(-1px) rotate(0); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes or-bag { 0% { transform: rotate(8deg) scale(1); } 50% { transform: rotate(12deg) scale(1.05); } 100% { transform: rotate(8deg) scale(1); } }
@keyframes or-jingle { 0% { opacity: .7; transform: translate(0,0) scale(1); } 25% { opacity: 1; transform: translate(3px,-2px) scale(1.2); } 50% { opacity: .8; transform: translate(-2px,1px) scale(.9); } 75% { opacity: 1; transform: translate(2px,2px) scale(1.1); } 100% { opacity: .7; transform: translate(0,0) scale(1); } }
@keyframes or-shadow { 0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .55; } }

/* father-slop-dispute – tense, firelit */
.scn-father-slop-dispute {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2214 40%, #1a0e06 100%),
    radial-gradient(ellipse at 40% 70%, #5a3a20 0%, #1a0e06 80%);
}
.scn-father-slop-dispute .room-corner {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2214 0%, transparent 50%);
  animation: fs-corner 8s ease-in-out infinite alternate;
}
.scn-father-slop-dispute .fireplace {
  position: absolute; bottom: 12%; left: 8%; width: 70px; height: 60px;
  background: linear-gradient(180deg, #1a0e06 0%, #2a1a0e 100%); border-radius: 20% 20% 8% 8%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
}
.scn-father-slop-dispute .fire-tense {
  position: absolute; bottom: 18%; left: 8%; width: 50px; height: 40px; transform: translateX(10px);
  background: radial-gradient(ellipse at 50% 100%, #c06020 0%, #a04010 40%, #702a08 70%, transparent 100%);
  border-radius: 50%; filter: blur(5px); animation: fs-fire 1.2s ease-in-out infinite alternate;
}
.scn-father-slop-dispute .father-figure {
  position: absolute; bottom: 15%; left: 40%; width: 28px; height: 55px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2214 0%, #1a0e06 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: fs-father 3s ease-in-out infinite;
}
.scn-father-slop-dispute .slop-figure {
  position: absolute; bottom: 15%; left: 60%; width: 26px; height: 52px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: fs-slop 2.5s ease-in-out infinite;
}
.scn-father-slop-dispute .table {
  position: absolute; bottom: 10%; left: 45%; width: 50px; height: 20px; transform: translateX(-10%);
  background: linear-gradient(180deg, #4a2a12 0%, #2a1a0e 100%); border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-father-slop-dispute .candle-stick {
  position: absolute; bottom: 18%; left: 50%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #c8a040 0%, #a08030 100%); border-radius: 30%;
  box-shadow: 0 -6px 20px 6px rgba(200,160,64,.4);
  animation: fs-candle 2s ease-in-out infinite alternate;
}
.scn-father-slop-dispute .shadow-stripe {
  position: absolute; top: 0; bottom: 15%; left: 50%; width: 2%;
  background: rgba(0,0,0,.6); filter: blur(8px); animation: fs-stripe 5s ease-in-out infinite alternate;
}
@keyframes fs-corner { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes fs-fire { 0% { transform: translateX(10px) scaleY(1) translateY(0); } 50% { transform: translateX(10px) scaleY(1.15) translateY(-4px); } 100% { transform: translateX(10px) scaleY(.9) translateY(0); } }
@keyframes fs-father { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-52%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes fs-slop { 0% { transform: translateX(-50%) rotate(0); } 30% { transform: translateX(-48%) rotate(-2deg); } 60% { transform: translateX(-52%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes fs-candle { 0% { opacity: .8; box-shadow: 0 -6px 15px 4px rgba(200,160,64,.3); } 50% { opacity: 1; box-shadow: 0 -6px 30px 10px rgba(200,160,64,.6); } 100% { opacity: .85; box-shadow: 0 -6px 20px 6px rgba(200,160,64,.35); } }
@keyframes fs-stripe { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .35; } }

/* digression-reminder – funny, dim-interior stage */
.scn-digression-reminder {
  background:
    linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 40%, #1e0e1e 100%),
    radial-gradient(ellipse at 50% 40%, #4a3a4a 0%, #1e0e1e 80%);
}
.scn-digression-reminder .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a101a 0%, #0e060e 100%); border-radius: 0;
  animation: dr-floor 10s ease-in-out infinite alternate;
}
.scn-digression-reminder .curtain-left {
  position: absolute; top: 0; bottom: 15%; left: 0; width: 45%;
  background: linear-gradient(135deg, #5a3a4a 0%, #3a1a2a 60%, #2a0e1a 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0; animation: dr-close-left 5s ease-in-out infinite alternate;
}
.scn-digression-reminder .curtain-right {
  position: absolute; top: 0; bottom: 15%; right: 0; width: 45%;
  background: linear-gradient(225deg, #5a3a4a 0%, #3a1a2a 60%, #2a0e1a 100%);
  border-radius: 40% 0 0 40% / 60% 0 0 60%; animation: dr-close-right 5s ease-in-out infinite alternate;
}
.scn-digression-reminder .curtain-rod {
  position: absolute; top: 8%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, #6a5a5a 0%, #8a7a7a 50%, #6a5a5a 100%);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-digression-reminder .hand-peek {
  position: absolute; top: 30%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #a08060 0%, #7a5a40 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center; animation: dr-peek 4s ease-in-out infinite;
}
.scn-digression-reminder .spotlight {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,200,150,.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px); animation: dr-spot 6s ease-in-out infinite alternate;
}
.scn-digression-reminder .note-card {
  position: absolute; bottom: 40%; left: 55%; width: 30px; height: 20px; transform: rotate(15deg);
  background: linear-gradient(135deg, #c8b880 0%, #a89860 100%); border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: dr-card 7s ease-in-out infinite;
}
@keyframes dr-floor { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes dr-close-left { 0% { transform: translateX(0); } 25% { transform: translateX(-5%); } 50% { transform: translateX(0); } 75% { transform: translateX(-3%); } 100% { transform: translateX(0); } }
@keyframes dr-close-right { 0% { transform: translateX(0); } 25% { transform: translateX(5%); } 50% { transform: translateX(0); } 75% { transform: translateX(3%); } 100% { transform: translateX(0); } }
@keyframes dr-peek { 0% { transform: rotate(0) scale(1); } 20% { transform: rotate(-10deg) scale(1.1); } 40% { transform: rotate(0) scale(1); } 60% { transform: rotate(8deg) scale(1.05); } 80% { transform: rotate(-5deg) scale(1); } 100% { transform: rotate(0) scale(1); } }
@keyframes dr-spot { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.2); } 100% { opacity: .6; transform: scale(.9); } }
@keyframes dr-card { 0% { transform: rotate(15deg) translate(0,0); } 25% { transform: rotate(20deg) translate(5px,-3px); } 50% { transform: rotate(12deg) translate(-2px,2px); } 75% { transform: rotate(18deg) translate(3px,-1px); } 100% { transform: rotate(15deg) translate(0,0); } }

/* reader-rebuke */
.scn-reader-rebuke {
  background: linear-gradient(180deg, #2b211b 0%, #3d2d24 40%, #4a382e 100%), radial-gradient(ellipse at 50% 100%, #5a4538 0%, transparent 70%);
}
.scn-reader-rebuke .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #3a2d26 0%, #4c3d34 50%, #3a2d26 100%); }
.scn-reader-rebuke .bookshelf { position:absolute; left:5%; top:10%; width:20%; height:55%; background: linear-gradient(180deg, #4a3a30 0%, #2a1f18 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-reader-rebuke .bookshelf::before { content:''; position:absolute; top:20%; left:10%; width:80%; height:5px; background:#5a4a3e; border-radius:2px; box-shadow: 0 30px 0 #4a3a30, 0 60px 0 #5a4a3e; }
.scn-reader-rebuke .candle { position:absolute; bottom:30%; left:40%; width:10px; height:40px; background: linear-gradient(180deg, #d4b48a 0%, #b8946a 100%); border-radius:3px; transform-origin: bottom center; animation: rr-candle 4s ease-in-out infinite; }
.scn-reader-rebuke .candle-glow { position:absolute; bottom:35%; left:40%; width:40px; height:40px; margin-left:-15px; background: radial-gradient(circle, #f5d090 0%, #e8b060 30%, transparent 70%); border-radius:50%; filter: blur(8px); animation: rr-glow 2s ease-in-out infinite alternate; }
.scn-reader-rebuke .reader { position:absolute; bottom:15%; left:55%; width:40px; height:70px; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rr-reader 6s ease-in-out infinite; }
.scn-reader-rebuke .book { position:absolute; bottom:20%; left:55%; width:30px; height:20px; background: linear-gradient(180deg, #6a5a48 0%, #4a3a2a 100%); border-radius:2px; transform-origin: left center; rotate: -10deg; animation: rr-book 3s ease-in-out infinite; }
.scn-reader-rebuke .scolder { position:absolute; bottom:15%; right:15%; width:35px; height:65px; background: linear-gradient(180deg, #3a2e26 0%, #2a1e16 100%); border-radius:35% 35% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rr-scolder 5s ease-in-out infinite; }
.scn-reader-rebuke .scolder-arm { position:absolute; bottom:45%; right:25%; width:35px; height:8px; background: linear-gradient(90deg, #3a2e26 0%, #1e1610 100%); border-radius:4px; transform-origin: left center; animation: rr-arm 4s ease-in-out infinite; }
.scn-reader-rebuke .scolder-gesture { position:absolute; bottom:50%; right:16%; width:10px; height:10px; background: radial-gradient(circle, #5a4a3e 0%, #2a1e16 100%); border-radius:50%; transform-origin: center; animation: rr-gesture 2s ease-in-out infinite; }

@keyframes rr-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes rr-glow { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes rr-reader { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(0) translateY(-1px); } 50% { transform: rotate(1deg) translateY(1px); } 75% { transform: rotate(0) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes rr-book { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-8deg) scaleX(1.02); } 100% { transform: rotate(-10deg) scaleX(1); } }
@keyframes rr-scolder { 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 rr-arm { 0% { transform: rotate(-40deg) scaleX(1); } 50% { transform: rotate(-30deg) scaleX(1.05); } 100% { transform: rotate(-40deg) scaleX(1); } }
@keyframes rr-gesture { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(3px,-2px) scale(1.2); } 100% { transform: translate(0,0) scale(1); } }

/* sorbonne-question */
.scn-sorbonne-question {
  background: linear-gradient(180deg, #2b231c 0%, #3a2e24 45%, #4c3e32 100%), radial-gradient(ellipse at 50% 0%, #5a4a3a 0%, transparent 70%);
}
.scn-sorbonne-question .bg-panel { position:absolute; inset:0 20% 0 20%; background: linear-gradient(180deg, #3a2e24 0%, #2a1e18 100%); border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-sorbonne-question .desk { position:absolute; bottom:20%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%); border-radius:4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-sorbonne-question .paper-stack { position:absolute; bottom:25%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #d4c8b0 0%, #b8a88e 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-sorbonne-question .quill { position:absolute; bottom:30%; left:45%; width:40px; height:6px; background: linear-gradient(90deg, #b0a090 0%, #8a7a6a 100%); border-radius:2px; transform: rotate(-20deg); transform-origin: right center; animation: sq-quill 3s ease-in-out infinite; }
.scn-sorbonne-question .inkwell { position:absolute; bottom:23%; left:40%; width:14px; height:16px; background: radial-gradient(circle at 50% 30%, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-sorbonne-question .candle-desk { position:absolute; bottom:32%; left:60%; width:8px; height:30px; background: linear-gradient(180deg, #d4b48a 0%, #b8946a 100%); border-radius:3px; transform-origin: bottom center; animation: sq-candle 5s ease-in-out infinite; }
.scn-sorbonne-question .lit-area { position:absolute; bottom:20%; left:50%; width:80px; height:80px; margin-left:-40px; background: radial-gradient(circle, #f0c870 0%, #d4a050 30%, transparent 70%); border-radius:50%; filter: blur(12px); animation: sq-glow 4s ease-in-out infinite alternate; }
.scn-sorbonne-question .figure-doctor { position:absolute; bottom:20%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sq-doctor 8s ease-in-out infinite; }
.scn-sorbonne-question .figure-patient { position:absolute; bottom:20%; right:25%; width:28px; height:55px; background: linear-gradient(180deg, #3a2e26 0%, #2a1e16 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sq-patient 10s ease-in-out infinite; }

@keyframes sq-quill { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-1px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes sq-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes sq-glow { 0% { opacity:0.7; transform: scale(0.95); } 50% { opacity:0.9; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes sq-doctor { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sq-patient { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }

/* sorbonne-decision */
.scn-sorbonne-decision {
  background: linear-gradient(180deg, #221b16 0%, #332a22 50%, #4a3a2e 100%), radial-gradient(ellipse at 50% 100%, #5a483a 0%, transparent 80%);
}
.scn-sorbonne-decision .wall-panel { position:absolute; inset:0 10% 0 10%; background: linear-gradient(180deg, #3a2e26 0%, #2a1e18 100%); border-radius:6px; box-shadow: inset 0 0 40px rgba(0,0,0,.7); }
.scn-sorbonne-decision .table { position:absolute; bottom:15%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #4a3a30 0%, #3a2a20 100%); border-radius:4px 4px 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-sorbonne-decision .document-scroll { position:absolute; bottom:22%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #d4c4a8 0%, #b8a88a 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-sorbonne-decision .seal-wax { position:absolute; bottom:24%; left:55%; width:12px; height:10px; background: radial-gradient(circle, #a86040 0%, #804828 100%); border-radius:50%; box-shadow: 0 0 6px #804828; animation: sd-wax 6s ease-in-out infinite; }
.scn-sorbonne-decision .candle-decision { position:absolute; bottom:28%; left:20%; width:8px; height:28px; background: linear-gradient(180deg, #d4b48a 0%, #b8946a 100%); border-radius:3px; transform-origin: bottom center; animation: sd-candle 5s ease-in-out infinite; }
.scn-sorbonne-decision .glow-ring { position:absolute; bottom:28%; left:20%; width:40px; height:40px; margin-left:-16px; background: radial-gradient(circle, #f0c870 0%, #d4a050 30%, transparent 70%); border-radius:50%; filter: blur(10px); animation: sd-glow 3s ease-in-out infinite alternate; }
.scn-sorbonne-decision .hand-signing { position:absolute; bottom:27%; left:40%; width:20px; height:30px; background: linear-gradient(180deg, #c8b8a8 0%, #a09080 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: sd-hand 4s ease-in-out infinite; }
.scn-sorbonne-decision .hourglass { position:absolute; bottom:20%; right:20%; width:16px; height:30px; background: transparent; border-left: 4px solid #6a5a4a; border-right: 4px solid #6a5a4a; border-top: none; border-bottom: none; border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,.3); animation: sd-glass 12s linear infinite; }
.scn-sorbonne-decision .hourglass::after { content:''; position:absolute; top:50%; left:50%; width:4px; height:4px; margin:-2px; background: radial-gradient(circle, #d4c4a8 0%, #b8a88a 100%); border-radius:50%; animation: sd-sand 6s ease-in-out infinite; }

@keyframes sd-wax { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes sd-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes sd-glow { 0% { opacity:0.7; transform: scale(0.95); } 50% { opacity:0.9; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes sd-hand { 0% { transform: rotate(0) translateY(0); } 25% { transform: rotate(-5deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(-1px); } 75% { transform: rotate(-3deg) translateY(0); } 100% { transform: rotate(0) translateY(0); } }
@keyframes sd-glass { 0% { transform: rotate(0); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes sd-sand { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(6px) scale(0.5); } 100% { transform: translateY(0) scale(1); } }

/* shandy-comment */
.scn-shandy-comment {
  background: linear-gradient(180deg, #2a211a 0%, #3d3026 50%, #4e3e32 100%), radial-gradient(ellipse at 50% 20%, #5a4838 0%, transparent 80%);
}
.scn-shandy-comment .bg-wainscot { position:absolute; inset:0 15% 0 15%; background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%); border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-shandy-comment .chair { position:absolute; bottom:15%; left:30%; width:50px; height:40px; background: linear-gradient(180deg, #5a4a3e 0%, #3a2a1e 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-shandy-comment .figure-shandy { position:absolute; bottom:18%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sc-shandy 6s ease-in-out infinite; }
.scn-shandy-comment .letter { position:absolute; bottom:28%; left:48%; width:25px; height:18px; background: linear-gradient(180deg, #d4c0a8 0%, #b8a48a 100%); border-radius:2px; transform: rotate(10deg); transform-origin: left center; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: sc-letter 4s ease-in-out infinite; }
.scn-shandy-comment .envelope-seal { position:absolute; bottom:28%; left:51%; width:6px; height:6px; background: radial-gradient(circle, #c87040 0%, #a85830 100%); border-radius:50%; box-shadow: 0 0 4px #a85830; animation: sc-seal 3s ease-in-out infinite; }
.scn-shandy-comment .candle-shandy { position:absolute; bottom:30%; left:20%; width:8px; height:25px; background: linear-gradient(180deg, #d4b48a 0%, #b8946a 100%); border-radius:3px; transform-origin: bottom center; animation: sc-candle 4s ease-in-out infinite; }
.scn-shandy-comment .shadow-dance { position:absolute; bottom:15%; left:30%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); filter: blur(6px); animation: sc-shadow 7s ease-in-out infinite; }
.scn-shandy-comment .bow-ribbon { position:absolute; bottom:25%; left:60%; width:12px; height:4px; background: linear-gradient(90deg, #b0a090 0%, #8a7a6a 100%); border-radius:4px; transform: rotate(-15deg); animation: sc-bow 2s ease-in-out infinite; }
.scn-shandy-comment .quill-star { position:absolute; bottom:30%; left:55%; width:30px; height:6px; background: linear-gradient(90deg, #b0a090 0%, #90806a 100%); border-radius:2px; transform: rotate(-25deg); transform-origin: right center; animation: sc-quill 5s ease-in-out infinite; }

@keyframes sc-shandy { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sc-letter { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes sc-seal { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }
@keyframes sc-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes sc-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(3px) scale(1.1); } 100% { transform: translateX(0) scale(1); } }
@keyframes sc-bow { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(-12deg) scaleX(1.2); } 100% { transform: rotate(-15deg) scaleX(1); } }
@keyframes sc-quill { 0% { transform: rotate(-25deg) translateY(0); } 50% { transform: rotate(-22deg) translateY(-1px); } 100% { transform: rotate(-25deg) translateY(0); } }

/* one block per scene id. Append to style.css. */
.scn-halting-before-wadman-door { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F5F5DC 100%), radial-gradient(ellipse at 30% 20%, rgba(255,255,200,0.4) 0%, transparent 70%); }

.scn-halting-before-wadman-door { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F5F5DC 100%), radial-gradient(ellipse at 30% 20%, rgba(255,255,200,0.4) 0%, transparent 70%); }

.scn-halting-before-wadman-door .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #D2B48C 0%, #C19A6B 60%, #A0522D 100%); }

.scn-halting-before-wadman-door .door-frame { position: absolute; bottom: 20%; left: 50%; width: 120px; height: 180px; transform: translateX(-50%); background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%); border-radius: 4px; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5); }

.scn-halting-before-wadman-door .door { position: absolute; bottom: 20%; left: 50%; width: 100px; height: 160px; transform: translateX(-50%); background: linear-gradient(180deg, #A0522D 0%, #7B3F00 100%); border-radius: 2px; box-shadow: 0 6px 16px rgba(0,0,0,0.6); animation: hbwd-close 6s ease-in-out infinite alternate; }

.scn-halting-before-wadman-door .knocker { position: absolute; bottom: 50%; left: 50%; width: 12px; height: 20px; transform: translateX(-50%); background: radial-gradient(circle, #CD853F 0%, #8B4513 80%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 8px 2px #CD853F; animation: hbwd-knock 4s ease-in-out infinite; }

.scn-halting-before-wadman-door .shadow-doorway { position: absolute; bottom: 18%; left: 45%; width: 130px; height: 200px; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 70%); transform: skewX(-5deg); filter: blur(6px); }

.scn-halting-before-wadman-door .figure-toby { position: absolute; bottom: 15%; left: 30%; width: 50px; height: 110px; background: linear-gradient(135deg, #2F4F4F 0%, #1B2A2A 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: hbwd-walk 5s ease-in-out infinite; }

.scn-halting-before-wadman-door .figure-trim { position: absolute; bottom: 15%; left: 45%; width: 46px; height: 105px; background: linear-gradient(135deg, #3B3B3B 0%, #202020 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: hbwd-walk 5s ease-in-out infinite reverse; }

.scn-halting-before-wadman-door .stick { position: absolute; bottom: 55%; left: 48%; width: 4px; height: 40px; background: #5C4033; border-radius: 2px; transform: rotate(20deg); transform-origin: bottom; animation: hbwd-stick 3s ease-in-out infinite; }

.scn-halting-before-wadman-door .sunbeam { position: absolute; top: 0; left: 20%; width: 200px; height: 100%; background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, rgba(255,255,200,0) 100%); transform: rotate(30deg); filter: blur(15px); animation: hbwd-sun 12s ease-in-out infinite alternate; }

@keyframes hbwd-close { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(0.98); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes hbwd-knock { 0% { transform: translateX(-50%) translateY(0); } 25% { transform: translateX(-50%) translateY(-4px); } 50% { transform: translateX(-50%) translateY(0); } 75% { transform: translateX(-50%) translateY(-4px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes hbwd-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes hbwd-stick { 0% { transform: rotate(15deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(15deg); } }
@keyframes hbwd-sun { 0% { opacity: 0.6; transform: rotate(25deg); } 50% { opacity: 1; transform: rotate(35deg); } 100% { opacity: 0.7; transform: rotate(25deg); } }

.scn-liberty-vs-confinement { background: linear-gradient(180deg, #2C3E50 0%, #1A252F 50%, #0F171E 100%), radial-gradient(ellipse at 80% 30%, rgba(255,200,100,0.15) 0%, transparent 60%); }

.scn-liberty-vs-confinement .cell-wall { position: absolute; inset: 0; background: linear-gradient(0deg, #2E3B4E 0%, #1C2833 100%); }

.scn-liberty-vs-confinement .bars { position: absolute; top: 0; left: 30%; width: 8px; height: 100%; background: #3D4A5A; box-shadow: 20px 0 0 #3D4A5A, 40px 0 0 #3D4A5A, 60px 0 0 #3D4A5A, 80px 0 0 #3D4A5A, 100px 0 0 #3D4A5A; animation: lvc-bars 8s ease-in-out infinite alternate; }

.scn-liberty-vs-confinement .sunlight-shaft { position: absolute; top: 0; left: 25%; width: 160px; height: 100%; background: linear-gradient(180deg, rgba(255,220,120,0.3) 0%, rgba(255,220,120,0) 100%); transform: skewX(-10deg); filter: blur(10px); animation: lvc-shaft 10s ease-in-out infinite; }

.scn-liberty-vs-confinement .figure-trim-liberty { position: absolute; bottom: 20%; left: 50%; width: 50px; height: 110px; background: linear-gradient(180deg, #3B3B3B 0%, #202020 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; animation: lvc-trim 5s ease-in-out infinite; }

.scn-liberty-vs-confinement .stick-flourish { position: absolute; bottom: 55%; left: 55%; width: 4px; height: 50px; background: #8B7355; border-radius: 2px; transform-origin: bottom; animation: lvc-flourish 3s ease-in-out infinite; }

.scn-liberty-vs-confinement .shadow-chains { position: absolute; bottom: 10%; left: 35%; width: 80px; height: 6px; background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(4px); animation: lvc-chains 7s ease-in-out infinite alternate; }

.scn-liberty-vs-confinement .figure-toby-musing { position: absolute; bottom: 20%; right: 20%; width: 48px; height: 100px; background: linear-gradient(180deg, #2F4F4F 0%, #1B2A2A 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform: rotate(-5deg); transform-origin: bottom; animation: lvc-toby 6s ease-in-out infinite; }

.scn-liberty-vs-confinement .dust-mot { position: absolute; top: 30%; left: 40%; width: 4px; height: 4px; background: rgba(255,255,200,0.6); border-radius: 50%; filter: blur(1px); animation: lvc-dust 15s linear infinite; }

@keyframes lvc-bars { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes lvc-shaft { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-8deg) translateX(10px); } 100% { transform: skewX(-10deg) translateX(0); } }
@keyframes lvc-trim { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-5px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes lvc-flourish { 0% { transform: rotate(-20deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-20deg); } }
@keyframes lvc-chains { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(1); } }
@keyframes lvc-toby { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(0deg) translateX(-5px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes lvc-dust { 0% { transform: translate(0, 0); opacity: 0; } 50% { opacity: 1; } 100% { transform: translate(50px, -80px); opacity: 0; } }

.scn-corporals-brother-tom-story-begins { background: linear-gradient(180deg, #F5DEB3 0%, #EEDFCC 40%, #D2B48C 100%), radial-gradient(ellipse at 50% 80%, rgba(255,165,0,0.2) 0%, transparent 60%); }

.scn-corporals-brother-tom-story-begins .scene-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #C19A6B 0%, #A0522D 100%); }

.scn-corporals-brother-tom-story-begins .wall-warm { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #E8D5B7 0%, #DCC29E 100%); }

.scn-corporals-brother-tom-story-begins .bench { position: absolute; bottom: 25%; left: 30%; width: 80px; height: 20px; background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }

.scn-corporals-brother-tom-story-begins .figure-tom-easy { position: absolute; bottom: 28%; left: 35%; width: 45px; height: 90px; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: cbt-lounge 6s ease-in-out infinite; }

.scn-corporals-brother-tom-story-begins .sausage-shop-sign { position: absolute; top: 20%; right: 20%; width: 60px; height: 40px; background: linear-gradient(180deg, #DEB887 0%, #BC8F8F 100%); border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: cbt-sign 10s ease-in-out infinite; }

.scn-corporals-brother-tom-story-begins .sausage-shape { position: absolute; top: 22%; right: 25%; width: 30px; height: 15px; background: #C8553D; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: cbt-sausage 4s ease-in-out infinite; }

.scn-corporals-brother-tom-story-begins .sun-rays { position: absolute; top: 0; left: 10%; width: 120px; height: 100%; background: linear-gradient(180deg, rgba(255,200,100,0.15) 0%, rgba(255,200,100,0) 100%); transform: rotate(-15deg); filter: blur(12px); animation: cbt-sun 15s linear infinite; }

.scn-corporals-brother-tom-story-begins .shadow-lazy { position: absolute; bottom: 10%; left: 30%; width: 100px; height: 10px; background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(6px); animation: cbt-shadow 6s ease-in-out infinite alternate; }

@keyframes cbt-lounge { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cbt-sign { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes cbt-sausage { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.05); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes cbt-sun { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(20px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes cbt-shadow { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(5px); } 100% { transform: scaleX(1) translateX(0); } }

.scn-toms-cheerful-approach { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F5DEB3 100%), radial-gradient(ellipse at 50% 0%, rgba(255,200,100,0.3) 0%, transparent 70%); }

.scn-toms-cheerful-approach .street { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #C19A6B 0%, #A0522D 100%); }

.scn-toms-cheerful-approach .building-bg { position: absolute; top: 0; left: 0; right: 0; bottom: 25%; background: linear-gradient(180deg, #E8D5B7 0%, #DCC29E 100%); }

.scn-toms-cheerful-approach .figure-tom { position: absolute; bottom: 20%; left: 40%; width: 50px; height: 110px; background: linear-gradient(180deg, #F5F5DC 0%, #E8D5B7 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: tca-walk 4s ease-in-out infinite; }

.scn-toms-cheerful-approach .hat { position: absolute; bottom: 75%; left: 44%; width: 30px; height: 12px; background: #8B4513; border-radius: 50% 50% 0 0; transform: rotate(8deg); transform-origin: bottom; animation: tca-hat 4s ease-in-out infinite; }

.scn-toms-cheerful-approach .stick-swing { position: absolute; bottom: 45%; left: 48%; width: 3px; height: 45px; background: #5C4033; border-radius: 2px; transform-origin: bottom; animation: tca-stick 3s ease-in-out infinite; }

.scn-toms-cheerful-approach .smile-shadow { position: absolute; bottom: 40%; left: 42%; width: 14px; height: 6px; background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(3px); transform: rotate(5deg); animation: tca-smile 4s ease-in-out infinite; }

.scn-toms-cheerful-approach .passing-servants { position: absolute; bottom: 18%; left: 70%; width: 40px; height: 80px; background: linear-gradient(180deg, #3B3B3B 0%, #202020 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; opacity: 0.6; animation: tca-servants 6s ease-in-out infinite; }

.scn-toms-cheerful-approach .sun-sparkle { position: absolute; top: 25%; left: 30%; width: 8px; height: 8px; background: white; border-radius: 50%; box-shadow: 0 0 10px 4px rgba(255,255,200,0.8); animation: tca-sparkle 2s ease-in-out infinite; }

@keyframes tca-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(10px) translateY(-3px) rotate(3deg); } 50% { transform: translateX(20px) translateY(0) rotate(-1deg); } 75% { transform: translateX(30px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(40px) translateY(0) rotate(0); } }
@keyframes tca-hat { 0% { transform: rotate(8deg) translateY(0); } 25% { transform: rotate(12deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes tca-stick { 0% { transform: rotate(-25deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(-25deg); } }
@keyframes tca-smile { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(10deg) scale(1.2); } 100% { transform: rotate(5deg) scale(1); } }
@keyframes tca-servants { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-10px) scaleX(0.9); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes tca-sparkle { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0.3; transform: scale(1); } }

.scn-fathers-breaks-out {
  background:
    linear-gradient(135deg, #f5e6c8 0%, #d4b68a 30%, #8a6e4a 70%, #3a2a1a 100%),
    radial-gradient(circle at 70% 20%, #fff8e0 0%, transparent 60%);
}
.scn-fathers-breaks-out .sun-wall { position:absolute; inset:0; background: linear-gradient(180deg, #fff4d0 0%, #e8d0a0 40%, transparent 100%); animation: fb-sun 8s ease-in-out infinite alternate; }
.scn-fathers-breaks-out .window-frame { position:absolute; top:8%; left:60%; width:30%; height:55%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 0 0 6px #7a5a4a; animation: fb-window 12s ease-in-out infinite; }
.scn-fathers-breaks-out .door-broken { position:absolute; bottom:15%; left:55%; width:18%; height:50%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; transform: rotate(15deg) translateX(-10px); transform-origin: bottom left; animation: fb-door 4s ease-in-out infinite; }
.scn-fathers-breaks-out .figure-burst { position:absolute; bottom:18%; left:50%; width:12%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(10deg); animation: fb-figure 0.8s ease-in-out infinite alternate; }
.scn-fathers-breaks-out .light-beam { position:absolute; top:10%; left:45%; width:40%; height:80%; background: linear-gradient(135deg, rgba(255,240,180,0.5) 0%, rgba(255,240,180,0.1) 100%); filter: blur(6px); animation: fb-beam 6s ease-in-out infinite alternate; }
.scn-fathers-breaks-out .floor-shadow { position:absolute; bottom:0; left:30%; width:50%; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); animation: fb-shadow 4s ease-in-out infinite; }
.scn-fathers-breaks-out .dust-a, .scn-fathers-breaks-out .dust-b, .scn-fathers-breaks-out .dust-c { position:absolute; width:6px; height:6px; background: radial-gradient(circle, #fff8e0 0%, transparent 100%); border-radius:50%; filter: blur(2px); }
.scn-fathers-breaks-out .dust-a { top:30%; left:35%; animation: fb-dust 8s linear infinite; }
.scn-fathers-breaks-out .dust-b { top:45%; left:70%; animation: fb-dust 10s linear infinite 2s; }
.scn-fathers-breaks-out .dust-c { top:60%; left:25%; animation: fb-dust 12s linear infinite 4s; }
@keyframes fb-sun { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fb-window { 0%,100% { opacity:0.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } }
@keyframes fb-door { 0%,100% { transform: rotate(15deg) translateX(-10px) } 50% { transform: rotate(20deg) translateX(-15px) } }
@keyframes fb-figure { 0% { transform: rotate(10deg) translateX(0) } 100% { transform: rotate(12deg) translateX(6px) } }
@keyframes fb-beam { 0% { opacity:0.4; transform: skewX(-5deg) } 50% { opacity:0.7; transform: skewX(0deg) } 100% { opacity:0.5; transform: skewX(5deg) } }
@keyframes fb-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }
@keyframes fb-dust { 0% { transform: translateY(0) scale(1); opacity:0 } 20% { opacity:0.8 } 80% { opacity:0.8 } 100% { transform: translateY(-40px) scale(0); opacity:0 } }

.scn-mothers-guess-fortifications {
  background:
    linear-gradient(180deg, #d9c8a8 0%, #b8a080 40%, #806040 100%),
    radial-gradient(ellipse at 50% 100%, #c0a080 0%, transparent 70%);
}
.scn-mothers-guess-fortifications .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #e8d8c0 0%, #c8b098 50%, #8a7050 100%); }
.scn-mothers-guess-fortifications .table { position:absolute; bottom:15%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.3); animation: mg-table 6s ease-in-out infinite; }
.scn-mothers-guess-fortifications .map-roll { position:absolute; bottom:20%; left:35%; width:12%; height:3%; background: linear-gradient(180deg, #d4b68a 0%, #a08060 100%); border-radius: 2px; transform: rotate(-5deg); animation: mg-map 9s ease-in-out infinite alternate; }
.scn-mothers-guess-fortifications .figure-left { position:absolute; bottom:22%; left:18%; width:14%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mg-noddle-left 2s ease-in-out infinite; }
.scn-mothers-guess-fortifications .figure-right { position:absolute; bottom:22%; right:18%; width:14%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mg-noddle-right 2.5s ease-in-out infinite; }
.scn-mothers-guess-fortifications .fort-mini { position:absolute; bottom:22%; left:45%; width:8%; height:6%; background: linear-gradient(180deg, #8a7050 0%, #5a4020 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: mg-fort 5s ease-in-out infinite; }
.scn-mothers-guess-fortifications .table-shadow { position:absolute; bottom:0; left:15%; width:70%; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%); animation: mg-shadow 6s ease-in-out infinite; }
.scn-mothers-guess-fortifications .specks { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(255,240,200,0.3) 0%, transparent 40%); filter: blur(3px); animation: mg-specks 8s ease-in-out infinite alternate; }
@keyframes mg-table { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes mg-map { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(0deg) translateX(4px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes mg-noddle-left { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } }
@keyframes mg-noddle-right { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-8deg) } }
@keyframes mg-fort { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.1) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }
@keyframes mg-shadow { 0%,100% { opacity:0.6 } 50% { opacity:0.8 } }
@keyframes mg-specks { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-mothers-response-to-cuvetts {
  background:
    linear-gradient(180deg, #fff4d8 0%, #ffe0a0 30%, #d4a070 70%, #a07040 100%),
    radial-gradient(circle at 50% 30%, #fffac0 0%, transparent 70%);
}
.scn-mothers-response-to-cuvetts .room-bright { position:absolute; inset:0; background: linear-gradient(180deg, #fff8e0 0%, #ffe8c0 50%, #c8a080 100%); }
.scn-mothers-response-to-cuvetts .mother-fig { position:absolute; bottom:20%; left:25%; width:18%; height:40%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mr-mother 3s ease-in-out infinite; }
.scn-mothers-response-to-cuvetts .cuvett-bonnet { position:absolute; bottom:52%; left:24%; width:20%; height:8%; background: radial-gradient(ellipse at 50% 50%, #f0d0a0 0%, #c09060 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform: rotate(-10deg); animation: mr-bonnet 1.5s ease-in-out infinite alternate; }
.scn-mothers-response-to-cuvetts .father-fig { position:absolute; bottom:20%; right:25%; width:16%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mr-father 2s ease-in-out infinite; }
.scn-mothers-response-to-cuvetts .chair { position:absolute; bottom:0; left:20%; width:28%; height:20%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: mr-chair 4s ease-in-out infinite; }
.scn-mothers-response-to-cuvetts .bounce-shadow { position:absolute; bottom:0; left:20%; width:30%; height:6%; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%); animation: mr-bounce 3s ease-in-out infinite; }
.scn-mothers-response-to-cuvetts .ribbon-left, .scn-mothers-response-to-cuvetts .ribbon-right { position:absolute; bottom:55%; width:4%; height:10%; background: linear-gradient(180deg, #f0c8a0 0%, #d09060 100%); border-radius: 20%; filter: blur(1px); }
.scn-mothers-response-to-cuvetts .ribbon-left { left:21%; transform: rotate(20deg); animation: mr-ribbon 2.5s ease-in-out infinite alternate; }
.scn-mothers-response-to-cuvetts .ribbon-right { left:43%; transform: rotate(-15deg); animation: mr-ribbon 2.5s ease-in-out infinite alternate-reverse; }
@keyframes mr-mother { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-5deg) } }
@keyframes mr-bonnet { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(0deg) scale(1.05) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes mr-father { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } }
@keyframes mr-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes mr-bounce { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.15) } }
@keyframes mr-ribbon { 0% { transform: rotate(20deg) scaleY(1) } 100% { transform: rotate(25deg) scaleY(1.3) } }

.scn-amens-and-almancak {
  background:
    linear-gradient(180deg, #1a1420 0%, #2a1e30 30%, #3a2a40 60%, #2a1e30 100%),
    radial-gradient(circle at 50% 60%, #4a3a50 0%, transparent 80%);
}
.scn-amens-and-almancak .dim-room { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #3a2a40 0%, #1a0e1a 100%); }
.scn-amens-and-almancak .candle-stick { position:absolute; bottom:30%; left:50%; width:3%; height:15%; background: linear-gradient(180deg, #8a7050 0%, #4a3020 100%); border-radius: 4px; transform: translateX(-50%); animation: aa-stick 6s ease-in-out infinite; }
.scn-amens-and-almancak .candle-flame { position:absolute; bottom:43%; left:50%; width:5%; height:6%; background: radial-gradient(circle, #ffe060 0%, #ff9020 40%, transparent 100%); border-radius: 50% 40% 0 0 / 80% 70% 0 0; transform: translateX(-50%); animation: aa-flame 1.2s ease-in-out infinite alternate; }
.scn-amens-and-almancak .profile-mother { position:absolute; bottom:22%; left:15%; width:20%; height:45%; background: linear-gradient(180deg, #3a2a3a 0%, #1a0e1a 100%); border-radius: 60% 40% 50% 30% / 70% 50% 60% 40%; transform-origin: bottom; animation: aa-mother 5s ease-in-out infinite; }
.scn-amens-and-almancak .profile-father { position:absolute; bottom:22%; right:15%; width:22%; height:45%; background: linear-gradient(180deg, #2a1a2a 0%, #0a050a 100%); border-radius: 40% 60% 30% 50% / 50% 70% 40% 60%; transform-origin: bottom; animation: aa-father 4.5s ease-in-out infinite; }
.scn-amens-and-almancak .shadow-mother { position:absolute; bottom:0; left:5%; width:30%; height:25%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%); animation: aa-shadow-m 5s ease-in-out infinite; }
.scn-amens-and-almancak .shadow-father { position:absolute; bottom:0; right:5%; width:30%; height:25%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%); animation: aa-shadow-f 4.5s ease-in-out infinite; }
.scn-amens-and-almancak .glow-halo { position:absolute; top:30%; left:30%; width:40%; height:40%; background: radial-gradient(circle, rgba(255,200,80,0.15) 0%, transparent 60%); filter: blur(20px); animation: aa-glow 3s ease-in-out infinite alternate; }
@keyframes aa-stick { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes aa-flame { 0% { transform: translateX(-50%) scale(1) rotate(-2deg) } 50% { transform: translateX(-50%) scale(1.1) rotate(0deg) } 100% { transform: translateX(-50%) scale(0.9) rotate(2deg) } }
@keyframes aa-mother { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(4deg) } }
@keyframes aa-father { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-3deg) } }
@keyframes aa-shadow-m { 0%,100% { opacity:0.4 } 50% { opacity:0.6 } }
@keyframes aa-shadow-f { 0%,100% { opacity:0.4 } 50% { opacity:0.6 } }
@keyframes aa-glow { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.5; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.95) } }

.scn-difference-between-mistress-and-maid {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%),
              radial-gradient(ellipse at 40% 30%, #7a5a3a 0%, transparent 60%);
}
.scn-difference-between-mistress-and-maid .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
  animation: s1-wall 12s ease-in-out infinite alternate;
}
.scn-difference-between-mistress-and-maid .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-difference-between-mistress-and-maid .window-glow {
  position:absolute; top:10%; right:15%; width:60px; height:80px;
  background: radial-gradient(ellipse at 50% 50%, #c8a870 0%, #8c6a40 70%, transparent 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 0 40px 15px rgba(200,168,112,0.3);
  animation: s1-window 8s ease-in-out infinite alternate;
}
.scn-difference-between-mistress-and-maid .mistress {
  position:absolute; bottom:32%; left:30%; width:40px; height:70px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: s1-mistress 5s ease-in-out infinite;
}
.scn-difference-between-mistress-and-maid .maid {
  position:absolute; bottom:30%; left:55%; width:34px; height:60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: s1-maid 6s ease-in-out infinite;
}
.scn-difference-between-mistress-and-maid .table {
  position:absolute; bottom:18%; left:40%; width:80px; height:20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: s1-table 9s ease-in-out infinite alternate;
}
.scn-difference-between-mistress-and-maid .candle {
  position:absolute; bottom:22%; left:48%; width:6px; height:18px;
  background: linear-gradient(0deg, #4a3a2a 0%, #8a6a3a 100%);
  border-radius: 20% 20% 20% 20% / 10% 10% 30% 30%;
  box-shadow: 0 0 20px 6px #c8a870;
  animation: s1-candle 3s ease-in-out infinite alternate;
}
.scn-difference-between-mistress-and-maid .shadow-floor {
  position:absolute; bottom:10%; left:35%; width:120px; height:
40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(10px);
  animation: s1-shadow 7s ease-in-out infinite alternate;
}
@keyframes s1-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes s1-window { 0% { box-shadow: 0 0 30px 10px rgba(200,168,112,0.2); opacity:0.7 } 50% { box-shadow: 0 0 60px 20px rgba(200,168,112,0.5); opacity:1 } 100% { box-shadow: 0 0 40px 15px rgba(200,168,112,0.3); opacity:0.8 } }
@keyframes s1-mistress { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(0) translateY(-2px) rotate(2deg) } 75% { transform: translateX(-3px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes s1-maid { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-2px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(0) translateY(-2px) rotate(-2deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(2deg) } }
@keyframes s1-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) translateY(1px) } 100% { transform: scaleY(1) } }
@keyframes s1-candle { 0% { box-shadow: 0 0 15px 4px #c8a870; transform: scaleY(1) } 50% { box-shadow: 0 0 30px 10px #ffd080; transform: scaleY(1.05) } 100% { box-shadow: 0 0 20px 6px #c8a870; transform: scaleY(1) } }
@keyframes s1-shadow { 0% { transform: scaleX(1); opacity:0.6 } 50% { transform: scaleX(1.1); opacity:1 } 100% { transform: scaleX(1); opacity:0.7 } }

.scn-uncle-toby-whistles-away {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #1a1218 100%),
              radial-gradient(ellipse at 60% 20%, #3a2a2a 0%, transparent 70%);
}
.scn-uncle-toby-whistles-away .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-uncle-toby-whistles-away .floor-plank {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #12121a 0%, #1a1a22 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
}
.scn-uncle-toby-whistles-away .fireplace-glow {
  position:absolute; bottom:35%; left:30%; width:80px; height:60px;
  background: radial-gradient(ellipse at 50% 30%, #c06030 0%, #802010 60%, transparent 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 60px 25px rgba(192,96,48,0.3);
  animation: s2-fire 4s ease-in-out infinite alternate;
}
.scn-uncle-toby-whistles-away .uncle-toby {
  position:absolute; bottom:28%; left:35%; width:44px; height:66px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  animation: s2-toby 6s ease-in-out infinite;
}
.scn-uncle-toby-whistles-away .corporal-trim {
  position:absolute; bottom:27%; left:55%; width:38px; height:58px;
  background: linear-gradient(180deg, #2a2222 0%, #1a1212 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: s2-trim 7s ease-in-out infinite;
}
.scn-uncle-toby-whistles-away .pipe {
  position:absolute; bottom:32%; left:48%; width:40px; height:8px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a4a2a 50%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 60% 60%;
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: s2-pipe 5s ease-in-out infinite alternate;
}
.scn-uncle-toby-whistles-away .fender {
  position:absolute; bottom:22%; left:25%; width:100px; height:15px;
  background: linear-gradient(0deg, #2a2a2a 0%, #3a3a3a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: 0 5px 10px rgba(0,0,0,0.6);
  animation: s2-fender 9s ease-in-out infinite alternate;
}
.scn-uncle-toby-whistles-away .smoke-wisp {
  position:absolute; top:10%; left:45%; width:20px; height:50px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,200,220,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: s2-smoke 12s linear infinite;
}
@keyframes s2-fire { 0% { transform: scaleY(1) scaleX(1); opacity:0.8 } 50% { transform: scaleY(1.1) scaleX(0.95); opacity:1 } 100% { transform: scaleY(0.95) scaleX(1.05); opacity:0.85 } }
@keyframes s2-toby { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(0deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes s2-trim { 0% { transform: translateX(0) rotate(1deg) } 33% { transform: translateX(-2px) rotate(0deg) } 66% { transform: translateX(2px) rotate(0deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes s2-pipe { 0% { transform: translateY(0) rotate(-22deg) } 50% { transform: translateY(-2px) rotate(-18deg) } 100% { transform: translateY(0) rotate(-22deg) } }
@keyframes s2-fender { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } 100% { transform: scaleY(1) } }
@keyframes s2-smoke { 0% { transform: translateY(0) scaleX(1); opacity:0.6 } 50% { transform: translateY(-40px) scaleX(1.5); opacity:0.3 } 100% { transform: translateY(-80px) scaleX(2); opacity:0 } }

.scn-rumor-spreads-through-village {
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 40%, #1a1a0a 100%),
              radial-gradient(ellipse at 50% 50%, #5a5a3a 0%, transparent 70%);
}
.scn-rumor-spreads-through-village .room-back {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-rumor-spreads-through-village .table-gossip {
  position:absolute; bottom:15%; left:35%; width:130px; height:25px;
  background: linear-gradient(0deg, #3a2a1a 0%, #4a3a2a 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: s3-table 8s ease-in-out infinite alternate;
}
.scn-rumor-spreads-through-village .figure-a {
  position:absolute; bottom:22%; left:30%; width:34px; height:54px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: s3-figA 4s ease-in-out infinite;
}
.scn-rumor-spreads-through-village .figure-b {
  position:absolute; bottom:23%; left:48%; width:34px; height:52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: s3-figB 5s ease-in-out infinite;
}
.scn-rumor-spreads-through-village .figure-c {
  position:absolute; bottom:21%; left:62%; width:32px; height:50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 35% 35% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: s3-figC 6s ease-in-out infinite;
}
.scn-rumor-spreads-through-village .lantern {
  position:absolute; bottom:30%; left:50%; width:10px; height:14px;
  background: radial-gradient(circle, #d0b080 0%, #8a6a40 70%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 0 30px 10px #b08050;
  animation: s3-lantern 3s ease-in-out infinite alternate;
}
.scn-rumor-spreads-through-village .whisper-lines {
  position:absolute; top:15%; left:35%; width:100px; height:40px;
  background: repeating-linear-gradient(90deg, rgba(200,180,160,0.15) 0px, rgba(200,180,160,0.15) 3px, transparent 3px, transparent 8px);
  filter: blur(2px);
  animation: s3-whisper 10s linear infinite;
}
@keyframes s3-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.96) translateY(-2px) } 100% { transform: scaleY(1) } }
@keyframes s3-figA { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(0deg) } 50% { transform: translateX(8px) rotate(2deg) } 75% { transform: translateX(4px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes s3-figB { 0% { transform: translateX(0) rotate(2deg) } 33% { transform: translateX(-3px) rotate(-1deg) } 66% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes s3-figC { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes s3-lantern { 0% { box-shadow: 0 0 20px 6px #b08050; transform: scale(1) } 50% { box-shadow: 0 0 40px 15px #e0c080; transform: scale(1.05) } 100% { box-shadow: 0 0 25px 8px #b08050; transform: scale(1) } }
@keyframes s3-whisper { 0% { opacity:0.3; transform: translateX(0) } 50% { opacity:0.7; transform: translateX(10px) } 100% { opacity:0.3; transform: translateX(0) } }

.scn-fathers-hypothesis-again {
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 50%, #0a0a00 100%),
              radial-gradient(ellipse at 50% 40%, #4a3a1a 0%, transparent 70%);
}
.scn-fathers-hypothesis-again .study-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-fathers-hypothesis-again .carpet {
  position:absolute; bottom:0; left:10%; right:10%; height:30%;
  background: linear-gradient(0deg, #2a1a1a 0%, #3a2a2a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-fathers-hypothesis-again .desk {
  position:absolute; bottom:18%; left:35%; width:100px; height:25px;
  background: linear-gradient(0deg, #3a2a1a 0%, #4a3a2a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: s4-desk 10s ease-in-out infinite alternate;
}
.scn-fathers-hypothesis-again .father-figure {
  position:absolute; bottom:20%; left:30%; width:44px; height:70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-father 5s ease-in-out infinite;
}
.scn-fathers-hypothesis-again .book-pile {
  position:absolute; bottom:20%; left:55%; width:40px; height:30px;
  background: linear-gradient(0deg, #2a1a0a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: s4-books 7s ease-in-out infinite alternate;
}
.scn-fathers-hypothesis-again .globe {
  position:absolute; bottom:15%; left:65%; width:28px; height:28px;
  background: radial-gradient(circle at 30% 30%, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: s4-globe 12s ease-in-out infinite alternate;
}
.scn-fathers-hypothesis-again .candle-desk {
  position:absolute; bottom:28%; left:48%; width:6px; height:16px;
  background: linear-gradient(0deg, #4a3a2a 0%, #8a6a3a 100%);
  border-radius: 20% 20% 20% 20% / 10% 10% 30% 30%;
  box-shadow: 0 0 20px 6px #c8a870;
  animation: s4-candle 3s ease-in-out infinite alternate;
}
.scn-fathers-hypothesis-again .hypothesis-scroll {
  position:absolute; bottom:25%; left:42%; width:30px; height:15px;
  background: linear-gradient(90deg, #6a5a3a 0%, #8a7a4a 50%, #6a5a3a 100%);
  border-radius: 20% 20% 20% 20% / 40% 40% 40% 40%;
  transform: rotate(-10deg);
  animation: s4-scroll 8s ease-in-out infinite alternate;
}
@keyframes s4-desk { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } 100% { transform: scaleY(1) } }
@keyframes s4-father { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(0deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes s4-books { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.04) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes s4-globe { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes s4-candle { 0% { box-shadow: 0 0 15px 4px #c8a870; transform: scaleY(1) } 50% { box-shadow: 0 0 30px 10px #ffd080; transform: scaleY(1.05) } 100% { box-shadow: 0 0 20px 6px #c8a870; transform: scaleY(1) } }
@keyframes s4-scroll { 0% { transform: rotate(-12deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(3px) } 100% { transform: rotate(-12deg) translateX(0) } }

.scn-london-journey-deduction {
  background: linear-gradient(180deg, #1a0e06 0%, #2d1f12 50%, #1f1309 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-london-journey-deduction .bg-ljd {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, #1a0e06 100%); animation: ljd-ambient 20s ease-in-out infinite alternate;
}
.scn-london-journey-deduction .desk-ljd {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 25%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 4% / 8% 8% 0 0; box-shadow: 0 6px 15px rgba(0,0,0,0.6); animation: ljd-desk 12s ease-in-out infinite;
}
.scn-london-journey-deduction .book-ljd {
  position: absolute; bottom: 28%; left: 35%; width: 12%; height: 8%; background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4% 20% 20% 4%; box-shadow: 2px 2px 6px rgba(0,0,0,0.5); animation: ljd-book 8s ease-in-out infinite alternate;
}
.scn-london-journey-deduction .pocketbook-ljd {
  position: absolute; bottom: 25%; left: 50%; width: 8%; height: 6%; background: linear-gradient(135deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 2px; box-shadow: 1px 1px 4px rgba(0,0,0,0.4); transform: rotate(-5deg); animation: ljd-pocket 10s ease-in-out infinite;
}
.scn-london-journey-deduction .candle-ljd {
  position: absolute; bottom: 30%; left: 55%; width: 3%; height: 12%; background: linear-gradient(180deg, #f0d0a0 0%, #c09060 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 8px #ffd080, 0 0 40px 12px rgba(255,208,128,0.3); animation: ljd-candle 3s ease-in-out infinite alternate;
}
.scn-london-journey-deduction .figure-ljd {
  position: absolute; bottom: 22%; left: 30%; width: 10%; height: 18%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 60% 60% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ljd-figure 6s ease-in-out infinite;
}
.scn-london-journey-deduction .window-ljd {
  position: absolute; top: 12%; right: 10%; width: 20%; height: 35%; background: linear-gradient(180deg, #1a1218 0%, #0e0a10 100%); border-radius: 8% 8% 2% 2%; box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 20px rgba(100,80,120,0.1); animation: ljd-window 8s ease-in-out infinite alternate;
}
@keyframes ljd-ambient { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ljd-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ljd-book { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(0.98); } }
@keyframes ljd-pocket { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(3px); } }
@keyframes ljd-candle { 0% { box-shadow: 0 0 20px 8px #ffd080, 0 0 40px 12px rgba(255,208,128,0.3); transform: scaleY(1); } 25% { box-shadow: 0 0 25px 10px #ffe090, 0 0 50px 16px rgba(255,224,144,0.4); transform: scaleY(1.02); } 100% { box-shadow: 0 0 15px 6px #c09060, 0 0 30px 10px rgba(192,144,96,0.2); transform: scaleY(0.98); } }
@keyframes ljd-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes ljd-window { 0% { opacity: 0.6; box-shadow: inset 0 0 30px rgba(0,0,0,0.7); } 50% { opacity: 0.8; box-shadow: inset 0 0 50px rgba(0,0,0,0.8), 0 0 30px rgba(100,80,120,0.2); } 100% { opacity: 0.5; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); } }

.scn-tristram-birth {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 20%, #3a3a5e 0%, transparent 70%);
}
.scn-tristram-birth .bg-tb {
  position: absolute; inset: 0;
}
.scn-tristram-birth .cradle-tb {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 40%; height: 30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 10px 20px rgba(0,0,0,0.5); animation: tb-cradle 2s ease-in-out infinite;
}
.scn-tristram-birth .moon-tb {
  position: absolute; top: 8%; right: 20%; width: 12%; height: 12%; background: radial-gradient(circle at 60% 40%, #f0e8c0 0%, #c0b080 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(240,232,192,0.4); animation: tb-moon 15s ease-in-out infinite alternate;
}
.scn-tristram-birth .curtain-l-tb {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 0 20% 20% 0; animation: tb-curtain 6s ease-in-out infinite alternate;
}
.scn-tristram-birth .curtain-r-tb {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 20% 0 0 20%; animation: tb-curtain 6s ease-in-out infinite alternate-reverse;
}
.scn-tristram-birth .toy-tb {
  position: absolute; bottom: 40%; left: 25%; width: 6%; height: 8%; background: linear-gradient(135deg, #c07050 0%, #805030 100%); border-radius: 50% 50% 10% 10%; animation: tb-toy 1.5s ease-in-out infinite;
}
.scn-tristram-birth .baby-tb {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%); width: 14%; height: 12%; background: linear-gradient(180deg, #d0b0a0 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: tb-baby 3s ease-in-out infinite;
}
@keyframes tb-cradle { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-3deg); } 75% { transform: translateX(-50%) rotate(3deg); } }
@keyframes tb-moon { 0% { transform: translateY(0) scale(1); opacity: 0.9; } 50% { transform: translateY(-8px) scale(1.05); opacity: 1; } 100% { transform: translateY(5px) scale(0.95); opacity: 0.85; } }
@keyframes tb-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes tb-toy { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(10deg); } 60% { transform: rotate(-10deg); } }
@keyframes tb-baby { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03) translateY(-3px); } }

.scn-narrative-promise {
  background: linear-gradient(180deg, #1a120a 0%, #2a1f14 50%, #1a120a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-narrative-promise .bg-np {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, #1a120a 100%); animation: np-ambient 18s ease-in-out infinite alternate;
}
.scn-narrative-promise .desk-np {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 4% / 6% 6% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.7); animation: np-desk 14s ease-in-out infinite;
}
.scn-narrative-promise .paper-np {
  position: absolute; bottom: 20%; left: 30%; width: 20%; height: 14%; background: linear-gradient(135deg, #e8dcc8 0%, #c8b8a0 100%); border-radius: 2%; box-shadow: 2px 2px 8px rgba(0,0,0,0.3); animation: np-paper 10s ease-in-out infinite alternate;
}
.scn-narrative-promise .inkwell-np {
  position: absolute; bottom: 22%; left: 55%; width: 6%; height: 8%; background: radial-gradient(circle at 50% 30%, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: np-inkwell 12s ease-in-out infinite;
}
.scn-narrative-promise .quill-np {
  position: absolute; bottom: 28%; left: 52%; width: 2%; height: 14%; background: linear-gradient(180deg, #e8d0b0 0%, #a08060 60%, #6a4a3a 100%); border-radius: 50% 50% 10% 10%; transform-origin: bottom; animation: np-quill 4s ease-in-out infinite alternate;
}
.scn-narrative-promise .candle-np {
  position: absolute; bottom: 24%; left: 70%; width: 3%; height: 10%; background: linear-gradient(180deg, #f0d0a0 0%, #c09060 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 15px 6px #ffd080, 0 0 30px 10px rgba(255,208,128,0.3); animation: np-candle 3s ease-in-out infinite alternate;
}
.scn-narrative-promise .chair-np {
  position: absolute; bottom: 12%; left: 20%; width: 14%; height: 18%; background: linear-gradient(180deg, #3a2218 0%, #1a0e06 100%); border-radius: 8% 8% 20% 20%; animation: np-chair 20s ease-in-out infinite;
}
.scn-narrative-promise .shadow-np {
  position: absolute; bottom: 4%; right: 25%; width: 30%; height: 6%; background: radial-gradient(ellipse at 50% 50%, #0a0602 0%, transparent 100%); opacity: 0.4; animation: np-shadow 12s ease-in-out infinite alternate;
}
@keyframes np-ambient { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes np-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes np-paper { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(0.98); } }
@keyframes np-inkwell { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes np-quill { 0% { transform: rotate(10deg) scaleY(1); } 30% { transform: rotate(-5deg) scaleY(1.02); } 60% { transform: rotate(15deg) scaleY(0.98); } 100% { transform: rotate(10deg) scaleY(1); } }
@keyframes np-candle { 0% { box-shadow: 0 0 15px 6px #ffd080, 0 0 30px 10px rgba(255,208,128,0.3); transform: scaleY(1); } 25% { box-shadow: 0 0 20px 8px #ffe090, 0 0 40px 14px rgba(255,224,144,0.4); transform: scaleY(1.02); } 100% { box-shadow: 0 0 12px 4px #c09060, 0 0 25px 8px rgba(192,144,96,0.2); transform: scaleY(0.98); } }
@keyframes np-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes np-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.05); } 100% { opacity: 0.35; transform: scaleX(0.95); } }

.scn-midwife-introduction {
  background: linear-gradient(180deg, #8a7050 0%, #6a5038 50%, #4a3828 100%), radial-gradient(ellipse at 50% 30%, #c0a080 0%, transparent 70%);
}
.scn-midwife-introduction .bg-mi {
  position: absolute; inset: 0; background: linear-gradient(180deg, #a08060 0%, transparent 40%, #4a3828 100%); animation: mi-ambient 22s ease-in-out infinite alternate;
}
.scn-midwife-introduction .window-mi {
  position: absolute; top: 5%; left: 10%; width: 25%; height: 50%; background: radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, #d0b890 80%, #8a7050 100%); border-radius: 10%; box-shadow: 0 0 40px 20px rgba(240,224,192,0.3), inset 0 0 30px rgba(0,0,0,0.2); animation: mi-window 5s ease-in-out infinite alternate;
}
.scn-midwife-introduction .midwife-mi {
  position: absolute; bottom: 20%; left: 40%; width: 16%; height: 35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 60% 60% 30% 30% / 70% 70% 20% 20%; animation: mi-midwife 6s ease-in-out infinite;
}
.scn-midwife-introduction .chair-mi {
  position: absolute; bottom: 10%; left: 55%; width: 14%; height: 22%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 6% 6% 12% 12%; animation: mi-chair 10s ease-in-out infinite alternate;
}
.scn-midwife-introduction .basket-mi {
  position: absolute; bottom: 15%; left: 30%; width: 10%; height: 12%; background: linear-gradient(135deg, #8a6040 0%, #5a3a28 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: mi-basket 8s ease-in-out infinite;
}
.scn-midwife-introduction .cat-mi {
  position: absolute; bottom: 16%; left: 25%; width: 6%; height: 6%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 30% 30%; animation: mi-cat 3s ease-in-out infinite;
}
.scn-midwife-introduction .floor-mi {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,0.5); animation: mi-floor 15s ease-in-out infinite;
}
@keyframes mi-ambient { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mi-window { 0% { opacity: 0.8; box-shadow: 0 0 40px 20px rgba(240,224,192,0.3), inset 0 0 30px rgba(0,0,0,0.2); } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(255,240,220,0.4), inset 0 0 20px rgba(0,0,0,0.1); } 100% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(240,224,192,0.2), inset 0 0 40px rgba(0,0,0,0.3); } }
@keyframes mi-midwife { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes mi-chair { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-2px); } }
@keyframes mi-basket { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } }
@keyframes mi-cat { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(8deg); } 60% { transform: rotate(-8deg); } }
@keyframes mi-floor { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }

/* shaving-impacts-conceits */
.scn-shaving-impacts-conceits { 
  background: linear-gradient(180deg, #fff8e7 0%, #f5e6c8 40%, #e0c8a0 100%), 
              radial-gradient(ellipse at 50% 80%, #fff0d0 0%, transparent 60%);
}
.scn-shaving-impacts-conceits .window {
  position: absolute; inset: 5% 10% 70% 10%;
  background: linear-gradient(180deg, #fff8e7 0%, #f0e0b0 100%);
  border: 4px solid #c8a870; border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(200,168,112,0.3);
  animation: s1-window 12s ease-in-out infinite alternate;
}
.scn-shaving-impacts-conceits .wall {
  position: absolute; inset: 0; opacity: 0.3;
  background: repeating-linear-gradient(0deg, #e8d8b8 0px, #e8d8b8 2px, transparent 2px, transparent 4px);
}
.scn-shaving-impacts-conceits .mirror {
  position: absolute; left: 55%; top: 25%; width: 90px; height: 120px;
  background: linear-gradient(135deg, #d0c0a0 0%, #e8e0d0 50%, #d0c0a0 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 30% 30%;
  box-shadow: 0 0 20px rgba(200,168,112,0.4), inset 0 0 30px rgba(255,255,255,0.2);
  transform: perspective(400px) rotateY(-5deg);
  animation: s1-mirror 8s ease-in-out infinite;
}
.scn-shaving-impacts-conceits .chair {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #8a6e4e 0%, #6a5232 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: s1-chair 6s ease-in-out infinite;
}
.scn-shaving-impacts-conceits .basin {
  position: absolute; bottom: 35%; left: 40%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #f5e6c8 0%, #d0b890 70%);
  border-radius: 50%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
  animation: s1-basin 5s ease-in-out infinite alternate;
}
.scn-shaving-impacts-conceits .razor {
  position: absolute; bottom: 40%; left: 48%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #c0a080 0%, #e8d0b0 50%, #c0a080 100%);
  border-radius: 30% 50% 50% 30% / 30% 50% 50% 30%;
  transform-origin: 0% 50%;
  animation: s1-razor 3s ease-in-out infinite;
}
.scn-shaving-impacts-conceits .towel {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 14px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 100%);
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: s1-towel 7s ease-in-out infinite alternate;
}
.scn-shaving-impacts-conceits .shadow {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(80,60,40,0.3) 0%, rgba(80,60,40,0.1) 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  filter: blur(8px);
  animation: s1-shadow 10s ease-in-out infinite;
}
@keyframes s1-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes s1-mirror { 0%,100% { transform: perspective(400px) rotateY(-5deg); } 50% { transform: perspective(400px) rotateY(-3deg) scale(1.02); } }
@keyframes s1-chair { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-2px); } }
@keyframes s1-basin { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes s1-razor { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(15deg); } }
@keyframes s1-towel { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes s1-shadow { 0%,100% { transform: scaleX(1) translateX(0); opacity: 0.3; } 50% { transform: scaleX(1.1) translateX(5px); opacity: 0.5; } }

/* laundress-bill-proof */
.scn-laundress-bill-proof { 
  background: linear-gradient(180deg, #fff8e7 0%, #f5e6c8 40%, #e0c8a0 100%), 
              radial-gradient(ellipse at 50% 90%, #fff0d0 0%, transparent 70%);
}
.scn-laundress-bill-proof .wall {
  position: absolute; inset: 0; opacity: 0.2;
  background: repeating-linear-gradient(90deg, #e8d8b8 0px, #e8d8b8 2px, transparent 2px, transparent 5px);
}
.scn-laundress-bill-proof .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #c8a870 0%, #a88858 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: s2-table 15s ease-in-out infinite alternate;
}
.scn-laundress-bill-proof .basket {
  position: absolute; bottom: 30%; left: 15%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #b89868 0%, #98784a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: s2-basket 8s ease-in-out infinite;
}
.scn-laundress-bill-proof .bill {
  position: absolute; bottom: 40%; left: 45%; width: 50px; height: 35px;
  background: radial-gradient(ellipse at 50% 50%, #fff8e7 0%, #e8d8b8 80%);
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  animation: s2-bill 6s ease-in-out infinite;
}
.scn-laundress-bill-proof .quill {
  position: absolute; bottom: 45%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #e8d0b0 0%, #c0a070 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: s2-quill 4s ease-in-out infinite;
}
.scn-laundress-bill-proof .ink {
  position: absolute; bottom: 35%; left: 52%; width: 16px; height: 20px;
  background: radial-gradient(ellipse at 30% 30%, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.5);
  animation: s2-ink 10s ease-in-out infinite alternate;
}
.scn-laundress-bill-proof .hand {
  position: absolute; bottom: 38%; left: 35%; width: 25px; height: 30px;
  background: linear-gradient(180deg, #e8c8a0 0%, #d0b080 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: 50% 100%;
  animation: s2-hand 3s ease-in-out infinite;
}
.scn-laundress-bill-proof .shirt {
  position: absolute; bottom: 30%; left: 25%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
  animation: s2-shirt 12s ease-in-out infinite;
}
@keyframes s2-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes s2-basket { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px) scale(1.02); } }
@keyframes s2-bill { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(2deg) translateX(3px); } }
@keyframes s2-quill { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(15deg); } }
@keyframes s2-ink { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes s2-hand { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-5deg) translateY(2px); } }
@keyframes s2-shirt { 0% { opacity: 0.8; transform: translateX(0); } 50% { opacity: 1; transform: translateX(-4px); } 100% { opacity: 0.9; transform: translateX(4px); } }

/* digression-postponed */
.scn-digression-postponed { 
  background: linear-gradient(180deg, #2a2018 0%, #3a2a1a 50%, #1a1008 100%), 
              radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-digression-postponed .wall {
  position: absolute; inset: 0; opacity: 0.1;
  background: repeating-linear-gradient(0deg, #3a2a1a 0px, #3a2a1a 1px, transparent 1px, transparent 3px);
}
.scn-digression-postponed .desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: s3-desk 20s ease-in-out infinite alternate;
}
.scn-digression-postponed .candle {
  position: absolute; bottom: 40%; left: 30%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: s3-candle 6s ease-in-out infinite;
}
.scn-digression-postponed .glow {
  position: absolute; bottom: 40%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffa060 0%, #c06020 30%, transparent 70%);
  border-radius: 50%;
  opacity: 0.6;
  animation: s3-glow 4s ease-in-out infinite alternate;
}
.scn-digression-postponed .book {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #8a6e4e 0%, #6a4e2e 100%);
  border-radius: 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(3deg);
  animation: s3-book 9s ease-in-out infinite;
}
.scn-digression-postponed .buttonhole {
  position: absolute; bottom: 45%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #c8a870 0%, #98784a 100%);
  border-radius: 50%;
  border: 2px solid #6a4e2e;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.3);
  animation: s3-buttonhole 5s ease-in-out infinite alternate;
}
.scn-digression-postponed .needle {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 4px;
  background: linear-gradient(90deg, #c0a080 0%, #e8d0b0 50%, #c0a080 100%);
  border-radius: 30%;
  transform-origin: 0% 50%;
  animation: s3-needle 7s ease-in-out infinite;
}
.scn-digression-postponed .thread {
  position: absolute; bottom: 38%; left: 50%; width: 2px; height: 20px;
  background: #e0c8a0;
  border-radius: 50%;
  animation: s3-thread 3s ease-in-out infinite;
}
@keyframes s3-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes s3-candle { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.05) translateY(-2px); } }
@keyframes s3-glow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }
@keyframes s3-book { 0%,100% { transform: rotate(3deg); } 50% { transform: rotate(-2deg) translateY(2px); } }
@keyframes s3-buttonhole { 0% { transform: scale(1); } 50% { transform: scale(1.15); } 100% { transform: scale(0.9); } }
@keyframes s3-needle { 0%,100% { transform: rotate(10deg); } 50% { transform: rotate(-10deg) translateX(5px); } }
@keyframes s3-thread { 0%,100% { opacity: 0.8; } 50% { opacity: 1; transform: translateY(3px); } }

/* archbishop-benevento-example */
.scn-archbishop-benevento-example { 
  background: linear-gradient(180deg, #3a2a2a 0%, #4a3a3a 50%, #2a1a1a 100%), 
              radial-gradient(ellipse at 50% 70%, #5a4a4a 0%, transparent 70%);
}
.scn-archbishop-benevento-example .wall {
  position: absolute; inset: 0; opacity: 0.15;
  background: repeating-linear-gradient(0deg, #4a3a3a 0px, #4a3a3a 1px, transparent 1px, transparent 4px);
}
.scn-archbishop-benevento-example .desk {
  position: absolute; bottom: 5%; left: 15%; right: 15%; height: 45%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 8% 8% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: s4-desk 18s ease-in-out infinite alternate;
}
.scn-archbishop-benevento-example .candle {
  position: absolute; bottom: 40%; left: 25%; width: 14px; height: 45px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: s4-candle 5s ease-in-out infinite;
}
.scn-archbishop-benevento-example .glow {
  position: absolute; bottom: 40%; left: 25%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffa060 0%, #c06020 30%, transparent 70%);
  border-radius: 50%;
  opacity: 0.5;
  animation: s4-glow 4.5s ease-in-out infinite alternate;
}
.scn-archbishop-benevento-example .figure {
  position: absolute; bottom: 30%; left: 45%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #6a3a4a 0%, #4a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: s4-figure 8s ease-in-out infinite;
}
.scn-archbishop-benevento-example .quill {
  position: absolute; bottom: 35%; left: 50%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #e8d0b0 0%, #c0a070 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: s4-quill 3.5s ease-in-out infinite;
}
.scn-archbishop-benevento-example .book {
  position: absolute; bottom: 20%; left: 35%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #8a6e4e 0%, #6a4e2e 100%);
  border-radius: 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-2deg);
  animation: s4-book 12s ease-in-out infinite;
}
.scn-archbishop-benevento-example .coat {
  position: absolute; bottom: 50%; left: 48%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #702243 0%, #502233 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: s4-coat 6s ease-in-out infinite alternate;
}
@keyframes s4-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.015); } 100% { transform: scaleY(0.985); } }
@keyframes s4-candle { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.08) translateY(-3px); } }
@keyframes s4-glow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.3); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes s4-figure { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes s4-quill { 0%,100% { transform: rotate(-15deg); } 50% { transform: rotate(20deg); } }
@keyframes s4-book { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg) translateY(2px); } 100% { transform: rotate(-3deg); } }
@keyframes s4-coat { 0% { transform: rotate(0deg); opacity: 0.8; } 50% { transform: rotate(5deg); opacity: 1; } 100% { transform: rotate(-5deg); opacity: 0.9; } }

.scn-yorick-epitaph {
  background: 
    linear-gradient(180deg, #0b0e1a 0%, #141b2e 40%, #1d2740 100%),
    radial-gradient(ellipse at 50% 20%, #2a3c5e 0%, transparent 70%);
}
.scn-yorick-epitaph .moon {
  position: absolute;
  top: 10%;
  left: 65%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #dce8f0 0%, #a0b8d0 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(160,184,208,0.3);
  animation: ye-moon 20s ease-in-out infinite alternate;
}
.scn-yorick-epitaph .graveslab {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 100px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #6a7078 0%, #4a4f56 50%, #3a3e44 100%);
  border-radius: 4% 4% 8% 8% / 10% 10% 6% 6%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: ye-slab 8s ease-in-out infinite;
}
.scn-yorick-epitaph .grass-left {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 40%;
  height: 30%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 0 60% 0 0 / 0 40% 0 0;
  animation: ye-grass 12s ease-in-out infinite alternate;
}
.scn-yorick-epitaph .grass-right {
  position: absolute;
  bottom: 20%;
  right: 10%;
  width: 40%;
  height: 30%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 60% 0 0 0 / 40% 0 0 0;
  animation: ye-grass 14s ease-in-out infinite alternate-reverse;
}
.scn-yorick-epitaph .tree-left {
  position: absolute;
  bottom: 30%;
  left: 5%;
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a140a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: ye-tree 6s ease-in-out infinite;
}
.scn-yorick-epitaph .tree-right {
  position: absolute;
  bottom: 35%;
  right: 8%;
  width: 25px;
  height: 70px;
  background: linear-gradient(180deg, #141e14 0%, #0a100a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: ye-tree 7s ease-in-out infinite -2s;
}
.scn-yorick-epitaph .shadow {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
}
@keyframes ye-moon {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-8px) scale(1.02); opacity: 1; }
  100% { transform: translateY(4px) scale(0.98); opacity: 0.85; }
}
@keyframes ye-slab {
  0% { transform: translateX(-50%) translateY(0); box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
  50% { transform: translateX(-50%) translateY(-3px); box-shadow: 0 12px 28px rgba(0,0,0,0.7); }
  100% { transform: translateX(-50%) translateY(0); box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
}
@keyframes ye-grass {
  0% { transform: translateY(0) skewX(0); opacity: 0.9; }
  50% { transform: translateY(-2px) skewX(1deg); opacity: 1; }
  100% { transform: translateY(1px) skewX(-1deg); opacity: 0.85; }
}
@keyframes ye-tree {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}

.scn-midwife-remembered {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e16 30%, #3a2a1e 60%, #4a3426 100%),
    radial-gradient(ellipse at 50% 70%, #4a3426 0%, transparent 70%);
}
.scn-midwife-remembered .wall-bg {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e16 0%, #1a1410 100%);
  animation: mr-wall 20s ease-in-out infinite alternate;
}
.scn-midwife-remembered .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: mr-floor 15s ease-in-out infinite alternate;
}
.scn-midwife-remembered .candle-glow {
  position: absolute;
  bottom: 45%;
  left: 50%;
  width: 120px;
  height: 120px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #d4a050 0%, #a07030 30%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: mr-glow 4s ease-in-out infinite alternate;
}
.scn-midwife-remembered .candle {
  position: absolute;
  bottom: 42%;
  left: 50%;
  width: 12px;
  height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8c080 0%, #c09050 50%, #8a6030 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  animation: mr-candle 5s ease-in-out infinite;
}
.scn-midwife-remembered .figure {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mr-figure 6s ease-in-out infinite;
}
.scn-midwife-remembered .chair {
  position: absolute;
  bottom: 18%;
  left: 55%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  animation: mr-chair 8s ease-in-out infinite;
}
.scn-midwife-remembered .doorway {
  position: absolute;
  bottom: 10%;
  left: 80%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  transform: translateY(-10px);
  animation: mr-door 12s ease-in-out infinite alternate;
}
@keyframes mr-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes mr-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes mr-glow {
  0% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.95); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.05); }
  100% { opacity: 0.8; transform: translate(-50%, -50%) scale(1); }
}
@keyframes mr-candle {
  0% { transform: translateX(-50%) rotate(-1deg); height: 40px; }
  50% { transform: translateX(-50%) rotate(1deg); height: 38px; }
  100% { transform: translateX(-50%) rotate(-1deg); height: 40px; }
}
@keyframes mr-figure {
  0% { transform: rotate(-2deg); }
  25% { transform: rotate(0deg) translateY(-1px); }
  50% { transform: rotate(2deg); }
  75% { transform: rotate(0deg) translateY(-1px); }
  100% { transform: rotate(-2deg); }
}
@keyframes mr-chair {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes mr-door {
  0% { transform: translateY(-10px) scaleX(1); }
  50% { transform: translateY(-12px) scaleX(1.02); }
  100% { transform: translateY(-10px) scaleX(1); }
}

.scn-midwife-circle {
  background: 
    linear-gradient(180deg, #1a2e3a 0%, #2a4a5a 30%, #3a5a6a 60%, #4a6a7a 100%),
    radial-gradient(ellipse at 50% 100%, #5a7a8a 0%, transparent 70%);
}
.scn-midwife-circle .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a4a5a 0%, #1a2e3a 100%);
  animation: mc-sky 25s ease-in-out infinite alternate;
}
.scn-midwife-circle .fields {
  position: absolute;
  bottom: 20%;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, #3a5a4a 0%, #2a4a3a 50%, #1a3a2a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  animation: mc-fields 18s ease-in-out infinite alternate;
}
.scn-midwife-circle .village-path {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 40%;
  height: 8%;
  background: linear-gradient(90deg, #5a4a3a 0%, #6a5a4a 50%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  animation: mc-path 10s ease-in-out infinite;
}
.scn-midwife-circle .house1 {
  position: absolute;
  bottom: 35%;
  left: 20%;
  width: 30px;
  height: 25px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  animation: mc-house 8s ease-in-out infinite;
}
.scn-midwife-circle .house2 {
  position: absolute;
  bottom: 38%;
  right: 25%;
  width: 25px;
  height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  animation: mc-house 9s ease-in-out infinite -3s;
}
.scn-midwife-circle .church {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 20px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: mc-church 12s ease-in-out infinite;
}
.scn-midwife-circle .boundary-circle {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 200px;
  height: 200px;
  transform: translate(-50%, 0);
  border-radius: 50%;
  border: 2px solid rgba(200,200,180,0.15);
  box-shadow: 0 0 40px 10px rgba(200,200,180,0.1);
  pointer-events: none;
  animation: mc-boundary 30s linear infinite;
}
@keyframes mc-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes mc-fields {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes mc-path {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.03); }
  100% { transform: scaleX(1); }
}
@keyframes mc-house {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes mc-church {
  0% { transform: translateX(-50%) translateY(0); box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); }
  50% { transform: translateX(-50%) translateY(-4px); box-shadow: inset 0 8px 16px rgba(0,0,0,0.4); }
  100% { transform: translateX(-50%) translateY(0); box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); }
}
@keyframes mc-boundary {
  0% { transform: translate(-50%, 0) rotate(0deg); }
  100% { transform: translate(-50%, 0) rotate(360deg); }
}

.scn-writing-difficulties {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e16 30%, #3a2a1e 60%, #4a3426 100%),
    radial-gradient(ellipse at 50% 60%, #4a3426 0%, transparent 70%);
}
.scn-writing-difficulties .desk-top {
  position: absolute;
  bottom: 10%;
  left: 10%;
  right: 10%;
  height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: wd-desk 10s ease-in-out infinite alternate;
}
.scn-writing-difficulties .papers-pile {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 80px;
  height: 50px;
  background: linear-gradient(180deg, #c8b088 0%, #a08060 100%);
  border-radius: 5% 5% 10% 10% / 8% 8% 5% 5%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
  animation: wd-papers 4s ease-in-out infinite;
}
.scn-writing-difficulties .inkwell {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 18px;
  height: 24px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: wd-ink 7s ease-in-out infinite;
}
.scn-writing-difficulties .quill {
  position: absolute;
  bottom: 40%;
  left: 52%;
  width: 8px;
  height: 50px;
  background: linear-gradient(180deg, #c0a888 0%, #8a7050 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 10% 10%;
  transform-origin: bottom left;
  animation: wd-quill 3s ease-in-out infinite;
}
.scn-writing-difficulties .candle {
  position: absolute;
  bottom: 32%;
  left: 15%;
  width: 10px;
  height: 35px;
  background: linear-gradient(180deg, #e8c080 0%, #c09050 50%, #8a6030 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  animation: wd-candle 5s ease-in-out infinite;
}
.scn-writing-difficulties .candle-glow {
  position: absolute;
  bottom: 45%;
  left: 18%;
  width: 100px;
  height: 100px;
  background: radial-gradient(circle, #d4a050 0%, #a07030 30%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: wd-glow 3s ease-in-out infinite alternate;
}
.scn-writing-difficulties .figure {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 30px;
  height: 55px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wd-figure 6s ease-in-out infinite;
}
.scn-writing-difficulties .chair-leg {
  position: absolute;
  bottom: 10%;
  left: 38%;
  width: 6px;
  height: 40px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%);
  border-radius: 20% 20% 30% 30% / 20% 20% 40% 40%;
  animation: wd-leg 8s ease-in-out infinite;
}
@keyframes wd-desk {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes wd-papers {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes wd-ink {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes wd-quill {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.02); }
  100% { transform: rotate(-5deg) scaleY(1); }
}
@keyframes wd-candle {
  0% { transform: translateX(-50%) rotate(-1deg); height: 35px; }
  50% { transform: translateX(-50%) rotate(1deg); height: 33px; }
  100% { transform: translateX(-50%) rotate(-1deg); height: 35px; }
}
@keyframes wd-glow {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes wd-figure {
  0% { transform: rotate(-1deg); }
  25% { transform: rotate(0deg) translateY(-1px); }
  50% { transform: rotate(1deg); }
  75% { transform: rotate(0deg) translateY(-1px); }
  100% { transform: rotate(-1deg); }
}
@keyframes wd-leg {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.97); }
}

.scn-quiet-above-stairs {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 40%, #0d0a08 100%), radial-gradient(ellipse at 60% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-quiet-above-stairs .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #3a2c24 0%, #2a1f1a 50%, #1a1410 100%);
  animation: qas-wall 20s ease-in-out infinite alternate;
}
.scn-quiet-above-stairs .ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #2a1f1a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-quiet-above-stairs .stairs {
  position: absolute; bottom: 15%; left: 10%; right: 20%; height: 40%;
  background: linear-gradient(135deg, #4a372a 0%, #2a1f1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  transform: skewX(-10deg);
  animation: qas-stairs 12s ease-in-out infinite alternate;
}
.scn-quiet-above-stairs .banister {
  position: absolute; bottom: 32%; left: 15%; width: 8px; height: 50%;
  background: linear-gradient(180deg, #5a463a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 4px 0 6px rgba(0,0,0,0.4);
}
.scn-quiet-above-stairs .figure {
  position: absolute; bottom: 20%; left: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qas-bow 5s ease-in-out infinite;
}
.scn-quiet-above-stairs .candle {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #e0a860 0%, #c08040 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 12px 4px #ffd080;
}
.scn-quiet-above-stairs .glow {
  position: absolute; bottom: 38%; left: 48%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,208,128,0.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: qas-glow 3s ease-in-out infinite alternate;
}
@keyframes qas-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes qas-stairs { 0% { transform: skewX(-10deg) translateY(0) } 50% { transform: skewX(-12deg) translateY(-2px) } 100% { transform: skewX(-10deg) translateY(0) } }
@keyframes qas-bow { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(5deg) } 50% { transform: translateY(4px) rotate(-3deg) } 75% { transform: translateY(-1px) rotate(4deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes qas-glow { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.9; transform: scale(1.3) } 100% { opacity:0.6; transform: scale(1.1) } }

.scn-toby-mistakes-bridge {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #bfac8f 100%), radial-gradient(ellipse at 30% 70%, #f0e6d0 0%, transparent 60%);
}
.scn-toby-mistakes-bridge .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a09078 0%, #8a7a62 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-toby-mistakes-bridge .desk {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 45%;
  background: linear-gradient(135deg, #7a6a52 0%, #5a4a32 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: tmb-desk 15s ease-in-out infinite alternate;
}
.scn-toby-mistakes-bridge .bridge {
  position: absolute; bottom: 50%; left: 40%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #8a7a62 0%, #6a5a42 100%);
  border-radius: 20% 20% 0 0;
  transform: skewX(5deg);
  animation: tmb-bridge 8s ease-in-out infinite;
}
.scn-toby-mistakes-bridge .map {
  position: absolute; bottom: 35%; left: 20%; width: 90px; height: 60px;
  background: linear-gradient(135deg, #dcc8a8 0%, #c4b090 100%);
  border-radius: 2%;
  transform: rotate(-3deg);
  animation: tmb-map 12s ease-in-out infinite alternate;
}
.scn-toby-mistakes-bridge .figure {
  position: absolute; bottom: 32%; left: 10%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: tmb-figure 6s ease-in-out infinite;
}
.scn-toby-mistakes-bridge .arm {
  position: absolute; bottom: 50%; left: 18%; width: 50px; height: 6px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  transform-origin: right center;
  animation: tmb-arm 3s ease-in-out infinite alternate;
}
.scn-toby-mistakes-bridge .window {
  position: absolute; top: 10%; left: 60%; width: 120px; height: 150px;
  background: linear-gradient(180deg, #e0f0ff 0%, #b0d0f0 100%);
  border: 8px solid #5a4a32;
  border-radius: 4%;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.3);
  animation: tmb-window 20s ease-in-out infinite alternate;
}
@keyframes tmb-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes tmb-bridge { 0% { transform: skewX(5deg) translateX(0) } 30% { transform: skewX(7deg) translateX(2px) } 70% { transform: skewX(3deg) translateX(-2px) } 100% { transform: skewX(5deg) translateX(0) } }
@keyframes tmb-map { 0% { transform: rotate(-3deg) scale(1) } 50% { transform: rotate(-1deg) scale(1.02) } 100% { transform: rotate(-4deg) scale(0.98) } }
@keyframes tmb-figure { 0% { transform: rotate(0deg) } 30% { transform: rotate(2deg) } 70% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes tmb-arm { 0% { transform: rotate(-20deg) } 100% { transform: rotate(30deg) } }
@keyframes tmb-window { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }

.scn-author-dilemma {
  background: linear-gradient(180deg, #f0e6d0 0%, #dbc8a8 40%, #c0a880 100%), radial-gradient(ellipse at 70% 30%, #ffe8c0 0%, transparent 60%);
}
.scn-author-dilemma .desk {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 55%;
  background: linear-gradient(135deg, #8a7a62 0%, #6a5a42 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 12px 24px rgba(0,0,0,0.3);
  animation: aud-desk 18s ease-in-out infinite alternate;
}
.scn-author-dilemma .chair {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: aud-chair 10s ease-in-out infinite;
}
.scn-author-dilemma .figure {
  position: absolute; bottom: 38%; left: 28%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aud-figure 6s ease-in-out infinite;
}
.scn-author-dilemma .arm {
  position: absolute; bottom: 62%; left: 32%; width: 45px; height: 8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: aud-arm 2s ease-in-out infinite alternate;
}
.scn-author-dilemma .papers {
  position: absolute; bottom: 35%; left: 10%; width: 80px; height: 40px;
  background: linear-gradient(135deg, #ece0c8 0%, #d4c0a0 100%);
  border-radius: 2%;
  transform: rotate(5deg);
  animation: aud-papers 8s ease-in-out infinite alternate;
}
.scn-author-dilemma .inkwell {
  position: absolute; bottom: 45%; left: 55%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: aud-inkwell 5s ease-in-out infinite;
}
.scn-author-dilemma .quill {
  position: absolute; bottom: 58%; left: 50%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #e0d0b0 0%, #a09078 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(25deg);
  transform-origin: bottom center;
  animation: aud-quill 3s ease-in-out infinite alternate;
}
@keyframes aud-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes aud-chair { 0% { transform: rotate(0deg) } 30% { transform: rotate(2deg) translateX(1px) } 70% { transform: rotate(-1deg) translateX(-1px) } 100% { transform: rotate(0deg) } }
@keyframes aud-figure { 0% { transform: rotate(0deg) } 25% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes aud-arm { 0% { transform: rotate(-30deg) } 100% { transform: rotate(40deg) } }
@keyframes aud-papers { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(7deg) translateX(-2px) } }
@keyframes aud-inkwell { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes aud-quill { 0% { transform: rotate(25deg) } 100% { transform: rotate(20deg) } }

.scn-toby-wadman-rupture {
  background: linear-gradient(180deg, #1f1410 0%, #2a1a14 30%, #1a0e0a 100%), radial-gradient(ellipse at 40% 20%, #3a2a1a 0%, transparent 60%);
}
.scn-toby-wadman-rupture .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1a14 0%, #1a0e0a 50%, #2a1a14 100%);
  animation: twr-wall 25s ease-in-out infinite alternate;
}
.scn-toby-wadman-rupture .window {
  position: absolute; top: 12%; left: 15%; width: 100px; height: 130px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border: 6px solid #3a2a1a;
  border-radius: 4%;
  opacity: 0.7;
  animation: twr-window 15s ease-in-out infinite alternate;
}
.scn-toby-wadman-rupture .chair {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: twr-chair 20s ease-in-out infinite alternate;
}
.scn-toby-wadman-rupture .figure {
  position: absolute; bottom: 35%; left: 38%; width: 34px; height: 70px;
  background: linear-gradient(180deg, #2a1a14 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: twr-figure 8s ease-in-out infinite;
}
.scn-toby-wadman-rupture .letter {
  position: absolute; bottom: 30%; left: 55%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #d0b890 0%, #b0a080 100%);
  border-radius: 2%;
  transform: rotate(-5deg);
  animation: twr-letter 12s ease-in-out infinite alternate;
}
.scn-toby-wadman-rupture .portrait {
  position: absolute; bottom: 42%; left: 70%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #7a5a42 0%, #5a3a22 100%);
  border: 3px solid #3a2a1a;
  border-radius: 4%;
  animation: twr-portrait 18s ease-in-out infinite alternate;
}
.scn-toby-wadman-rupture .shadow {
  position: absolute; bottom: 0; left: 30%; width: 120px; height: 60%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.6) 100%);
  filter: blur(8px);
  animation: twr-shadow 10s ease-in-out infinite alternate;
}
@keyframes twr-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes twr-window { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.02) } 100% { opacity:0.6; transform: scale(0.98) } }
@keyframes twr-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes twr-figure { 0% { transform: rotate(0deg) } 30% { transform: rotate(-2deg) } 70% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes twr-letter { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(2px) } 100% { transform: rotate(-6deg) translateX(-2px) } }
@keyframes twr-portrait { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes twr-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

/* === midwife-licence (warm window-lit interior) === */
.scn-midwife-licence {
  background: linear-gradient(180deg, #6b4e3a 0%, #4a3422 40%, #2e1f14 100%),
              radial-gradient(ellipse at 40% 60%, #b08850 0%, transparent 70%);
}
.scn-midwife-licence .window-light {
  position: absolute; top: 10%; left: 60%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at center, #ffe8b0 0%, #d4a050 50%, transparent 85%);
  border-radius: 10% 10% 30% 30%; animation: ml-window 6s ease-in-out infinite alternate;
}
.scn-midwife-licence .curtain-left,
.scn-midwife-licence .curtain-right {
  position: absolute; top: 8%; height: 54%; width: 18%;
  background: linear-gradient(90deg, #7a5030, #5a3a1e);
  border-radius: 0 40% 40% 0; animation: ml-curtain 8s ease-in-out infinite alternate;
}
.scn-midwife-licence .curtain-right {
  left: auto; right: 8%; border-radius: 40% 0 0 40%; animation-delay: -4s;
}
.scn-midwife-licence .table {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #8b5a35, #6b4020); border-radius: 4% 4% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: ml-table 12s ease-in-out infinite;
}
.scn-midwife-licence .document {
  position: absolute; bottom: 30%; left: 35%; width: 20%; height: 8%;
  background: #f0dbb0; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform-origin: left center; animation: ml-doc 4s ease-in-out infinite alternate;
}
.scn-midwife-licence .figure-midwife {
  position: absolute; bottom: 24%; left: 45%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #3a2810, #1e1208);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ml-figure 7s ease-in-out infinite;
}
.scn-midwife-licence .chair {
  position: absolute; bottom: 20%; left: 48%; width: 14%; height: 10%;
  background: linear-gradient(180deg, #5a3a1e, #3a2010);
  border-radius: 10% 10% 4% 4%; animation: ml-chair 9s ease-in-out infinite;
}
.scn-midwife-licence .cat {
  position: absolute; bottom: 24%; left: 30%; width: 10%; height: 8%;
  background: radial-gradient(circle at 40% 40%, #6a5040, #4a3020);
  border-radius: 50% 50% 40% 40%; animation: ml-cat 5s ease-in-out infinite alternate;
}
@keyframes ml-window { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: .8; transform: scale(.98); } }
@keyframes ml-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5%); } 100% { transform: translateX(0); } }
@keyframes ml-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ml-doc { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.05); } 100% { transform: rotate(1deg) scaleY(.98); } }
@keyframes ml-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ml-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ml-cat { 0% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(4px,-2px) rotate(5deg); } 100% { transform: translate(0,0) rotate(-5deg); } }

/* === didius-amendment (dark comedic interior with desk) === */
.scn-didius-amendment {
  background: linear-gradient(180deg, #2a231a 0%, #1a130a 60%, #0d0805 100%),
              radial-gradient(ellipse at 50% 70%, #4a3210 0%, transparent 80%);
}
.scn-didius-amendment .desk {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(180deg, #5a3a1a, #3a2010);
  border-radius: 4% 4% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: da-desk 15s ease-in-out infinite;
}
.scn-didius-amendment .figure-didius {
  position: absolute; bottom: 24%; left: 55%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a, #1e140a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: da-figure 3s ease-in-out infinite alternate;
}
.scn-didius-amendment .quill {
  position: absolute; bottom: 38%; left: 40%; width: 2%; height: 25%;
  background: linear-gradient(180deg, #c0a060, #806030);
  border-radius: 40% 40% 20% 20%; transform-origin: bottom center;
  animation: da-quill .8s ease-in-out infinite alternate;
}
.scn-didius-amendment .scroll {
  position: absolute; bottom: 30%; left: 50%; width: 30%; height: 8%;
  background: #d4b870; border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,.4);
  transform-origin: center; animation: da-scroll 6s ease-in-out infinite;
}
.scn-didius-amendment .inkwell {
  position: absolute; bottom: 32%; left: 38%; width: 6%; height: 6%;
  background: #1a0a05; border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: da-ink 4s ease-in-out infinite alternate;
}
.scn-didius-amendment .candle {
  position: absolute; bottom: 42%; left: 25%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #e0c080, #a08040);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 4px #ffc040;
  animation: da-candle 2s ease-in-out infinite alternate;
}
.scn-didius-amendment .shelf {
  position: absolute; top: 20%; left: 5%; width: 90%; height: 4%;
  background: linear-gradient(180deg, #3a2810, #2a1a0a);
  border-radius: 2px; animation: da-shelf 20s linear infinite;
}
@keyframes da-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes da-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes da-quill { 0% { transform: rotate(-20deg) translateX(2px); } 100% { transform: rotate(20deg) translateX(-2px); } }
@keyframes da-scroll { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } }
@keyframes da-ink { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(.95); } }
@keyframes da-candle { 0% { opacity: .7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: .8; transform: scaleY(.98); } }
@keyframes da-shelf { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }

/* === hobby-horse-defense (tavern, rider on stick horse) === */
.scn-hobby-horse-defense {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a20 0%, transparent 70%);
}
.scn-hobby-horse-defense .tavern-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%);
  z-index: 0; animation: hh-wall 10s ease-in-out infinite alternate;
}
.scn-hobby-horse-defense .hobby-horse {
  position: absolute; bottom: 25%; left: 30%; width: 25%; height: 18%;
  background: radial-gradient(ellipse at 30% 50%, #8b6b40, #5a3a20);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center; animation: hh-horse .6s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-hobby-horse-defense .figure-rider {
  position: absolute; bottom: 35%; left: 32%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: hh-rider .6s ease-in-out infinite alternate;
  z-index: 3;
}
.scn-hobby-horse-defense .fiddle {
  position: absolute; bottom: 40%; left: 45%; width: 10%; height: 4%;
  background: #a08040; border-radius: 20%; transform-origin: left center;
  animation: hh-fiddle 1.2s ease-in-out infinite alternate;
  z-index: 4;
}
.scn-hobby-horse-defense .bow {
  position: absolute; bottom: 42%; left: 55%; width: 12%; height: 2%;
  background: #c0a060; border-radius: 10%; transform-origin: left center;
  animation: hh-bow .8s ease-in-out infinite alternate;
  z-index: 4;
}
.scn-hobby-horse-defense .moon {
  position: absolute; top: 10%; right: 15%; width: 12%; height: 12%;
  background: radial-gradient(circle, #ffe8a0 0%, #d4b060 40%, transparent 70%);
  border-radius: 50%; animation: hh-moon 20s linear infinite;
  z-index: 1;
}
.scn-hobby-horse-defense .mug {
  position: absolute; bottom: 20%; right: 20%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #7a5a3a, #4a2a10);
  border-radius: 10% 10% 5% 5%; animation: hh-mug 5s ease-in-out infinite;
  z-index: 2;
}
@keyframes hh-wall { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes hh-horse { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(5deg) translateY(-4px); } }
@keyframes hh-rider { 0% { transform: rotate(-3deg) translateY(0); } 100% { transform: rotate(3deg) translateY(-4px); } }
@keyframes hh-fiddle { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(0deg) scale(1.05); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes hh-bow { 0% { transform: translateX(0) rotate(10deg); } 50% { transform: translateX(15px) rotate(-10deg); } 100% { transform: translateX(0) rotate(10deg); } }
@keyframes hh-moon { 0% { transform: translate(0,0); } 50% { transform: translate(-20px,10px); } 100% { transform: translate(0,0); } }
@keyframes hh-mug { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-8px) rotate(5deg); } }

/* === dedication-insert (author bowing, warm candlelight) === */
.scn-dedication-insert {
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 60%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 70%, #7a5a30 0%, transparent 80%);
}
.scn-dedication-insert .curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, #5a3a1e, #7a4a2a, #5a3a1e);
  border-radius: 0 0 30% 30%; box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: di-curtain 12s ease-in-out infinite alternate;
}
.scn-dedication-insert .pedestal {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #8b6b40, #5a3a20);
  border-radius: 4% 4% 10% 10%; box-shadow: 0 6px 18px rgba(0,0,0,.5);
  animation: di-pedestal 10s ease-in-out infinite;
}
.scn-dedication-insert .figure-author {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 32%;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: di-author 6s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-dedication-insert .book {
  position: absolute; bottom: 32%; left: 38%; width: 14%; height: 6%;
  background: linear-gradient(180deg, #8b5020, #5a3010);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform-origin: center; animation: di-book 8s ease-in-out infinite;
  z-index: 3;
}
.scn-dedication-insert .candle {
  position: absolute; bottom: 45%; left: 50%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #e0c080, #a08040);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #ffc040;
  animation: di-candle 2.5s ease-in-out infinite alternate;
  z-index: 4;
}
.scn-dedication-insert .papers {
  position: absolute; bottom: 28%; left: 55%; width: 20%; height: 4%;
  background: #d4b870; border-radius: 2px; transform-origin: left center;
  animation: di-papers 7s ease-in-out infinite alternate;
  z-index: 3;
}
.scn-dedication-insert .halo {
  position: absolute; bottom: 45%; left: 38%; width: 30%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,200,80,.15) 0%, transparent 70%);
  animation: di-halo 4s ease-in-out infinite alternate;
  z-index: 1;
}
@keyframes di-curtain { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes di-pedestal { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes di-author { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-10px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes di-book { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(3px,-2px) rotate(2deg); } 50% { transform: translate(0,0) rotate(-1deg); } 75% { transform: translate(-2px,-1px) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes di-candle { 0% { opacity: .6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.08); } 100% { opacity: .7; transform: scaleY(.95); } }
@keyframes di-papers { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.03); } 100% { transform: rotate(2deg) scaleY(.98); } }
@keyframes di-halo { 0% { opacity: .4; transform: scale(1); } 50% { opacity: .7; transform: scale(1.1); } 100% { opacity: .3; transform: scale(.95); } }

/* ===== description-of-wadman-eye ===== */
.scn-wdeye { 
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b98a 40%, #b89b6a 100%),
    radial-gradient(ellipse at 50% 100%, #d4b98a 0%, transparent 70%);
  overflow: hidden;
}
.scn-wdeye .curtain-l, .scn-wdeye .curtain-r { 
  position:absolute; top:0; bottom:0; width:35%; 
  background: linear-gradient(90deg, #8a6b44 0%, #c49a5c 50%, #8a6b44 100%);
  border-radius: 0 30% 60% 0 / 0 20% 40% 0;
  transform-origin: top center;
}
.scn-wdeye .curtain-l { left:0; animation: wdeye-curtain 14s ease-in-out infinite; }
.scn-wdeye .curtain-r { right:0; border-radius: 30% 0 0 60% / 20% 0 0 40%; animation: wdeye-curtain 14s ease-in-out infinite reverse; }
.scn-wdeye .eye-bg { 
  position:absolute; top:20%; left:30%; width:40%; height:45%;
  background: radial-gradient(ellipse at 50% 50%, #f0d9b5 0%, #d9b68a 70%, #b8926a 100%);
  border-radius: 50% 50% 45% 45% / 50% 50% 45% 45%;
  box-shadow: inset 0 0 30px 5px rgba(120,80,40,.3);
}
.scn-wdeye .iris {
  position:absolute; top:30%; left:38%; width:24%; height:30%;
  background: radial-gradient(circle, #a0783a 0%, #705020 60%, #3a2000 100%);
  border-radius: 50%;
  animation: wdeye-iris-size 8s ease-in-out infinite alternate;
}
.scn-wdeye .pupil {
  position:absolute; top:37%; left:45%; width:6%; height:10%;
  background: #1a0e00;
  border-radius: 50%;
  animation: wdeye-pupil-shift 6s ease-in-out infinite alternate;
}
.scn-wdeye .gleam {
  position:absolute; top:28%; left:42%; width:4%; height:4%;
  background: #fffdeb;
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(255,253,235,.6);
  animation: wdeye-gleam-pulse 3s ease-in-out infinite;
}
.scn-wdeye .glow-overlay {
  position:absolute; inset:0; opacity:.4;
  background: radial-gradient(ellipse at 50% 50%, #fff5d0 0%, transparent 70%);
  animation: wdeye-glow-fade 10s ease-in-out infinite alternate;
}
@keyframes wdeye-curtain {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.02) translateX(2%); }
  100% { transform: scaleX(1) translateX(0); }
}
@keyframes wdeye-iris-size {
  0% { transform: scale(1); }
  50% { transform: scale(0.9); }
  100% { transform: scale(1.05); }
}
@keyframes wdeye-pupil-shift {
  0% { transform: translate(0,0); }
  50% { transform: translate(5%, -3%); }
  100% { transform: translate(-2%, 2%); }
}
@keyframes wdeye-gleam-pulse {
  0%,100% { opacity:.6; transform: scale(1); }
  33% { opacity:1; transform: scale(1.3); }
  66% { opacity:.7; transform: scale(.9); }
}
@keyframes wdeye-glow-fade {
  0% { opacity:.2; }
  50% { opacity:.5; }
  100% { opacity:.3; }
}

/* ===== item-wadman-eye-effect ===== */
.scn-wdeff {
  background: 
    linear-gradient(180deg, #d9b68a 0%, #a87d4c 40%, #6b4c2a 100%),
    radial-gradient(ellipse at 50% 0%, #f5e6c8 0%, transparent 60%);
}
.scn-wdeff .ceiling-eye {
  position:absolute; top:5%; left:40%; width:20%; height:25%;
  background: radial-gradient(ellipse at 50% 50%, #f5e6c8 0%, #c49a5c 50%, #8a6b44 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(245,230,200,.3);
  animation: wdeff-eye-blink 8s ease-in-out infinite;
}
.scn-wdeff .light-beam {
  position:absolute; top:20%; left:42%; width:16%; height:60%;
  background: linear-gradient(180deg, rgba(245,230,200,.6) 0%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%);
  animation: wdeff-beam-shimmer 4s ease-in-out infinite alternate;
}
.scn-wdeff .figure-toby {
  position:absolute; bottom:15%; left:45%; width:12%; height:35%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0600 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%;
  transform-origin: bottom center;
  animation: wdeff-figure-sway 6s ease-in-out infinite;
}
.scn-wdeff .floor-shadow {
  position:absolute; bottom:10%; left:35%; width:30%; height:3%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%);
}
.scn-wdeff .warm-haze {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,150,80,.15) 0%, transparent 70%);
  animation: wdeff-haze-drift 12s ease-in-out infinite alternate;
}
@keyframes wdeff-eye-blink {
  0%,100% { transform: scaleY(1); }
  45% { transform: scaleY(1); }
  50% { transform: scaleY(0.1); }
  55% { transform: scaleY(1); }
}
@keyframes wdeff-beam-shimmer {
  0% { opacity:.5; transform: scaleX(1); }
  50% { opacity:.8; transform: scaleX(1.05) translateX(-2%); }
  100% { opacity:.6; transform: scaleX(0.95) translateX(1%); }
}
@keyframes wdeff-figure-sway {
  0% { transform: rotate(0deg) translateX(0); }
  33% { transform: rotate(2deg) translateX(2%); }
  66% { transform: rotate(-1deg) translateX(-1%); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes wdeff-haze-drift {
  0% { opacity:.1; transform: scale(1); }
  50% { opacity:.3; transform: scale(1.1) translateY(-2%); }
  100% { opacity:.2; transform: scale(0.9) translateY(1%); }
}

/* ===== father-and-uncle-contrast-love ===== */
.scn-contra {
  background: 
    linear-gradient(180deg, #faf3e0 0%, #e3cba0 50%, #c9a87c 100%),
    radial-gradient(ellipse at 50% 0%, #fffbe6 0%, transparent 60%);
}
.scn-contra .stage-floor {
  position:absolute; bottom:10%; left:10%; width:80%; height:12%;
  background: linear-gradient(180deg, #8a6b44 0%, #5a3e20 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.3);
}
.scn-contra .father-fig {
  position:absolute; bottom:12%; left:25%; width:10%; height:50%;
  background: linear-gradient(180deg, #3a2413 0%, #1a0c02 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: contra-father 5s ease-in-out infinite;
}
.scn-contra .uncle-fig {
  position:absolute; bottom:12%; right:30%; width:12%; height:40%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a08 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: contra-uncle 7s ease-in-out infinite;
}
.scn-contra .heart-sym {
  position:absolute; top:30%; left:45%; width:10%; height:12%;
  background: radial-gradient(ellipse at 50% 40%, #f5a530 0%, #c07a20 60%, #7a4a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(45deg);
  animation: contra-heart 3s ease-in-out infinite;
}
.scn-contra .sparkle-pack {
  position:absolute; top:20%; left:20%; width:60%; height:40%;
  background: transparent;
  box-shadow: 
    10% 20% 0 2px #ffd680,
    30% 50% 0 1px #ffd680,
    70% 30% 0 3px #ffd680,
    50% 60% 0 2px #ffd680;
  animation: contra-sparkle 4s ease-in-out infinite alternate;
}
.scn-contra .window-light {
  position:absolute; top:5%; right:5%; width:20%; height:25%;
  background: radial-gradient(ellipse at 50% 50%, #fff5d0 0%, #e8d5aa 60%, transparent 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 20px 5px rgba(255,245,200,.3);
  animation: contra-window 12s ease-in-out infinite alternate;
}
@keyframes contra-father {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(10deg) translateX(3%); }
  75% { transform: rotate(-5deg) translateX(-2%); }
  100% { transform: rotate(2deg) translateX(1%); }
}
@keyframes contra-uncle {
  0% { transform: rotate(0deg) translateX(0) scaleY(1); }
  33% { transform: rotate(-5deg) translateX(-2%) scaleY(0.95); }
  66% { transform: rotate(3deg) translateX(1%) scaleY(1.02); }
  100% { transform: rotate(0deg) translateX(0) scaleY(1); }
}
@keyframes contra-heart {
  0%,100% { transform: rotate(45deg) scale(1); opacity:.8; }
  50% { transform: rotate(45deg) scale(1.2); opacity:1; }
}
@keyframes contra-sparkle {
  0% { opacity:.3; transform: translateY(0); }
  50% { opacity:.8; transform: translateY(-5%); }
  100% { opacity:.5; transform: translateY(2%); }
}
@keyframes contra-window {
  0% { opacity:.6; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.05) translateX(2%); }
  100% { opacity:.7; transform: scaleY(0.95) translateX(-1%); }
}

/* ===== fathers-curse-against-love ===== */
.scn-curse {
  background:
    linear-gradient(180deg, #1c1020 0%, #2c1530 30%, #1a0a20 100%),
    radial-gradient(ellipse at 50% 100%, #4a2040 0%, transparent 70%);
}
.scn-curse .dark-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0a0510 0%, #1c1020 100%);
  opacity:.5;
  animation: curse-dark-pulse 8s ease-in-out infinite alternate;
}
.scn-curse .fireplace-glow {
  position:absolute; bottom:10%; left:20%; width:30%; height:40%;
  background: radial-gradient(ellipse at 50% 100%, #e06020 0%, #802010 50%, transparent 80%);
  border-radius: 50%;
  animation: curse-fire 3s ease-in-out infinite;
}
.scn-curse .father-silhouette {
  position:absolute; bottom:15%; left:40%; width:12%; height:50%;
  background: linear-gradient(180deg, #1a0510 0%, #0a0205 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: curse-figure 5s ease-in-out infinite;
}
.scn-curse .wall-shadow {
  position:absolute; bottom:15%; left:35%; width:20%; height:50%;
  background: rgba(0,0,0,.5);
  filter: blur(10px);
  transform: scaleX(1.4);
  animation: curse-shadow 5s ease-in-out infinite;
}
.scn-curse .curse-particle {
  position:absolute; top:25%; left:30%; width:8%; height:8%;
  background: radial-gradient(circle, #c08040 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(192,128,64,.3);
  animation: curse-particle 6s ease-in-out infinite;
}
.scn-curse .smoke-veil {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 40% 60%, rgba(80,40,30,.15) 0%, transparent 70%);
  animation: curse-smoke 12s ease-in-out infinite alternate;
}
@keyframes curse-dark-pulse {
  0% { opacity:.3; }
  50% { opacity:.6; }
  100% { opacity:.4; }
}
@keyframes curse-fire {
  0%,100% { transform: scale(1) translateY(0); opacity:.6; }
  25% { transform: scale(1.1) translateY(-2%); opacity:.9; }
  75% { transform: scale(0.9) translateY(1%); opacity:.4; }
}
@keyframes curse-figure {
  0% { transform: rotate(0deg) translateX(0); }
  20% { transform: rotate(4deg) translateX(3%) scaleY(1.02); }
  60% { transform: rotate(-2deg) translateX(-1%) scaleY(1); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes curse-shadow {
  0% { transform: scaleX(1.4) translateX(0); opacity:.5; }
  50% { transform: scaleX(1.6) translateX(5%); opacity:.3; }
  100% { transform: scaleX(1.3) translateX(-2%); opacity:.6; }
}
@keyframes curse-particle {
  0% { transform: translate(0,0) scale(1); opacity:.4; }
  25% { transform: translate(15%, -20%) scale(1.2); opacity:1; }
  50% { transform: translate(30%, -10%) scale(0.8); opacity:.6; }
  75% { transform: translate(20%, -30%) scale(1.1); opacity:.8; }
  100% { transform: translate(0,0) scale(1); opacity:.4; }
}
@keyframes curse-smoke {
  0% { opacity:.1; transform: scale(1) translateY(0); }
  50% { opacity:.3; transform: scale(1.05) translateY(-3%); }
  100% { opacity:.2; transform: scale(0.95) translateY(1%); }
}

.scn-slop-thought { background: linear-gradient(180deg, #2b1a10 0%, #1a0e08 50%, #0d0604 100%), radial-gradient(ellipse at 40% 70%, #c8553d 0%, #6e2d1a 50%, transparent 80%); }
.scn-slop-thought .desk { position:absolute; bottom:15%; left:10%; right:15%; height:12%; background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%); border-radius:4px; box-shadow:0 -4px 8px rgba(0,0,0,.5); animation: st-desk 6s ease-in-out infinite alternate; }
.scn-slop-thought .paper { position:absolute; bottom:27%; left:20%; width:40%; height:14%; background: radial-gradient(ellipse at 30% 40%, #f5e6c8 0%, #d4b88a 100%); border-radius:2px; transform:rotate(-3deg); animation: st-paper 8s ease-in-out infinite; }
.scn-slop-thought .quill { position:absolute; bottom:32%; left:55%; width:2px; height:30%; background: linear-gradient(180deg, #d4b88a 0%, #8a6a4a 100%); border-radius:2px; transform-origin:bottom; animation: st-quill 4s ease-in-out infinite; }
.scn-slop-thought .candle { position:absolute; bottom:30%; right:20%; width:6px; height:12%; background: linear-gradient(180deg, #f5e6c8 0%, #c8a878 100%); border-radius:2px; animation: st-candle 5s ease-in-out infinite alternate; }
.scn-slop-thought .flame { position:absolute; bottom:42%; right:23%; width:10px; height:8px; background: radial-gradient(circle, #ffa040 0%, #ff6030 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 6px #ff6030, 0 0 40px 12px rgba(255,96,48,.4); animation: st-flame 0.8s ease-in-out infinite alternate; }
.scn-slop-thought .hat { position:absolute; bottom:40%; left:30%; width:20px; height:16px; background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%); border-radius:50% 50% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: st-hat 3s ease-in-out infinite; }
.scn-slop-thought .inkwell { position:absolute; bottom:18%; left:12%; width:8px; height:10px; background: linear-gradient(180deg, #0d0604 0%, #1a0e08 100%); border-radius:40% 40% 20% 20%; animation: st-ink 12s linear infinite; }
@keyframes st-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes st-paper { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(-2deg) translateY(-1px) } }
@keyframes st-quill { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes st-candle { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes st-flame { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.3) scaleX(.9) } }
@keyframes st-hat { 0%,100% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(4px) rotate(3deg) } }
@keyframes st-ink { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-knots-metaphor { background: linear-gradient(180deg, #1a0e08 0%, #2b1a10 60%, #0d0604 100%), radial-gradient(ellipse at 30% 40%, #a0461a 0%, #4a2210 60%, transparent 80%); }
.scn-knots-metaphor .rope { position:absolute; top:25%; left:15%; right:15%; height:35%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 50%, #3a2212 100%); border-radius: 30% 70% 40% 60% / 60% 40% 60% 40%; transform:rotate(10deg); animation: km-rope 10s ease-in-out infinite; }
.scn-knots-metaphor .loop-a { position:absolute; top:28%; left:20%; width:30%; height:20%; background: radial-gradient(ellipse at 60% 50%, #a06848 0%, #5a3a22 70%); border-radius:50%; transform:rotate(-20deg); animation: km-loop-a 8s ease-in-out infinite alternate; }
.scn-knots-metaphor .loop-b { position:absolute; top:35%; right:20%; width:25%; height:18%; background: radial-gradient(ellipse at 40% 50%, #8a6a4a 0%, #4a2a1a 70%); border-radius:50%; transform:rotate(15deg); animation: km-loop-b 7s ease-in-out infinite alternate; }
.scn-knots-metaphor .table { position:absolute; bottom:12%; left:5%; right:5%; height:8%; background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%); border-radius:4px; box-shadow:0 -4px 8px rgba(0,0,0,.6); animation: km-table 9s ease-in-out infinite alternate; }
.scn-knots-metaphor .candle { position:absolute; bottom:25%; left:5%; width:5px; height:10%; background: linear-gradient(180deg, #f5e6c8 0%, #c8a878 100%); border-radius:2px; animation: km-candle 6s ease-in-out infinite alternate; }
.scn-knots-metaphor .hand { position:absolute; bottom:22%; right:25%; width:12px; height:20px; background: radial-gradient(ellipse, #2b1a10 0%, #0d0604 80%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: km-hand 4s ease-in-out infinite; }
@keyframes km-rope { 0%,100% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(5deg) scale(1.02) } }
@keyframes km-loop-a { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(3px) } 100% { transform: rotate(-25deg) translateX(-2px) } }
@keyframes km-loop-b { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(20deg) translateX(-3px) } 100% { transform: rotate(10deg) translateX(2px) } }
@keyframes km-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes km-candle { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes km-hand { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } }

.scn-slop-knot-struggle { background: linear-gradient(180deg, #1a0e08 0%, #2b1a10 50%, #0d0604 100%), radial-gradient(ellipse at 45% 35%, #c8553d 0%, #4a2210 60%, transparent 80%); }
.scn-slop-knot-struggle .head { position:absolute; top:10%; left:30%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 30%, #3a2212 0%, #1a0e08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: sks-head 6s ease-in-out infinite; }
.scn-slop-knot-struggle .mouth { position:absolute; top:28%; left:38%; width:24%; height:8%; background: #0d0604; border-radius:0 0 30% 30%; animation: sks-mouth 4s ease-in-out infinite; }
.scn-slop-knot-struggle .tool { position:absolute; bottom:40%; left:25%; width:4px; height:25%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%); border-radius:2px; transform:rotate(25deg); transform-origin: bottom; animation: sks-tool 3s ease-in-out infinite; }
.scn-slop-knot-struggle .tooth-floating { position:absolute; top:22%; left:55%; width:5px; height:6px; background: #f5e6c8; border-radius:2px; box-shadow:0 0 4px rgba(255,255,200,.5); animation: sks-tooth 5s ease-in-out infinite; }
.scn-slop-knot-struggle .candle { position:absolute; bottom:20%; right:15%; width:6px; height:15%; background: linear-gradient(180deg, #f5e6c8 0%, #c8a878 100%); border-radius:2px; animation: sks-candle 7s ease-in-out infinite alternate; }
.scn-slop-knot-struggle .hand { position:absolute; bottom:32%; left:20%; width:14px; height:22px; background: radial-gradient(ellipse, #2b1a10 0%, #0d0604 80%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: sks-hand 3.5s ease-in-out infinite; }
@keyframes sks-head { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-3deg) translateY(2px) } }
@keyframes sks-mouth { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } }
@keyframes sks-tool { 0%,100% { transform: rotate(25deg) } 50% { transform: rotate(35deg) } }
@keyframes sks-tooth { 0%,100% { transform: translateY(0) translateX(0) rotate(0deg) } 25% { transform: translateY(-8px) translateX(4px) rotate(20deg) } 50% { transform: translateY(-15px) translateX(8px) rotate(40deg) } 75% { transform: translateY(-8px) translateX(4px) rotate(20deg) } }
@keyframes sks-candle { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sks-hand { 0%,100% { transform: translateX(0) } 50% { transform: translateX(6px) } }

.scn-swearing-form { background: linear-gradient(180deg, #2b1a10 0%, #1a0e08 50%, #0d0604 100%), radial-gradient(ellipse at 30% 50%, #a0461a 0%, #4a2210 60%, transparent 80%); }
.scn-swearing-form .father { position:absolute; bottom:20%; left:5%; width:22%; height:55%; background: radial-gradient(ellipse at 50% 30%, #1a0e08 0%, #0d0604 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom; animation: sf-father 7s ease-in-out infinite; }
.scn-swearing-form .slop { position:absolute; bottom:15%; right:5%; width:20%; height:50%; background: radial-gradient(ellipse at 50% 20%, #2b1a10 0%, #0d0604 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: sf-slop 8s ease-in-out infinite; }
.scn-swearing-form .toby { position:absolute; bottom:25%; left:35%; width:18%; height:40%; background: radial-gradient(ellipse at 50% 30%, #1a0e08 0%, #0d0604 100%); border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom; animation: sf-toby 6s ease-in-out infinite; }
.scn-swearing-form .sparrow-a { position:absolute; top:10%; left:20%; width:10px; height:6px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%); border-radius:50% 50% 0 0; animation: sf-sparrow-a 2.5s ease-in-out infinite; }
.scn-swearing-form .sparrow-b { position:absolute; top:18%; right:25%; width:8px; height:5px; background: linear-gradient(180deg, #a06848 0%, #5a3a22 100%); border-radius:50% 50% 0 0; animation: sf-sparrow-b 3s ease-in-out infinite; }
.scn-swearing-form .fireplace { position:absolute; bottom:8%; left:40%; right:40%; height:15%; background: linear-gradient(180deg, #4a2210 0%, #2b1a10 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 8px 12px rgba(0,0,0,.7); animation: sf-fireplace 9s ease-in-out infinite alternate; }
@keyframes sf-father { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } }
@keyframes sf-slop { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-5deg) } }
@keyframes sf-toby { 0%,100% { transform: translateX(0) } 50% { transform: translateX(8px) } }
@keyframes sf-sparrow-a { 0%,100% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(20px, -10px) rotate(15deg) } 50% { transform: translate(40px, 0) rotate(0deg) } 75% { transform: translate(20px, -10px) rotate(-15deg) } }
@keyframes sf-sparrow-b { 0%,100% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(-15px, -8px) rotate(-10deg) } 50% { transform: translate(-30px, 0) rotate(0deg) } 75% { transform: translate(-15px, -8px) rotate(10deg) } }
@keyframes sf-fireplace { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }

.scn-corporal-extracts-truth {
  background:
    linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 40%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 40%, #6a3a1a 0%, transparent 70%);
}
.scn-corporal-extracts-truth .ce-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2210 0%, #2a1a08 100%);
  animation: ce-bg 12s ease-in-out infinite alternate;
}
.scn-corporal-extracts-truth .ce-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0702 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-corporal-extracts-truth .ce-table {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a2a18 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ce-table 8s ease-in-out infinite;
}
.scn-corporal-extracts-truth .ce-corporal {
  position: absolute; bottom: 28%; left: 28%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-corporal 6s ease-in-out infinite;
}
.scn-corporal-extracts-truth .ce-bridget {
  position: absolute; bottom: 28%; left: 52%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-bridget 5s ease-in-out infinite;
}
.scn-corporal-extracts-truth .ce-hand {
  position: absolute; bottom: 38%; left: 45%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 20% 20%; transform: rotate(-20deg);
  animation: ce-hand 4s ease-in-out infinite;
}
.scn-corporal-extracts-truth .ce-window {
  position: absolute; top: 15%; left: 20%; width: 30px; height: 40px;
  background: radial-gradient(circle, #c09060 0%, #6a4020 100%);
  border: 2px solid #4a2a18; border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(192,144,96,0.4);
  animation: ce-window 10s ease-in-out infinite alternate;
}
.scn-corporal-extracts-truth .ce-candle {
  position: absolute; bottom: 40%; left: 40%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #d0a060 0%, #a06020 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 16px 8px rgba(208,160,96,0.6);
  animation: ce-candle 3s ease-in-out infinite;
}
@keyframes ce-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ce-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ce-corporal { 0% { transform: rotate(0deg) translateX(0) } 30% { transform: rotate(-4deg) translateX(-2px) } 60% { transform: rotate(2deg) translateX(1px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes ce-bridget { 0% { transform: rotate(0) translateX(0) } 25% { transform: rotate(3deg) translateX(1px) } 50% { transform: rotate(-2deg) translateX(-1px) } 75% { transform: rotate(1deg) translateX(0) } 100% { transform: rotate(0) translateX(0) } }
@keyframes ce-hand { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-2px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes ce-window { 0% { opacity:0.7; box-shadow: 0 0 12px 4px rgba(192,144,96,0.3) } 50% { opacity:1; box-shadow: 0 0 28px 8px rgba(192,144,96,0.6) } 100% { opacity:0.8; box-shadow: 0 0 16px 5px rgba(192,144,96,0.4) } }
@keyframes ce-candle { 0%,100% { transform: scaleY(1) rotate(0); box-shadow: 0 0 16px 8px rgba(208,160,96,0.6) } 50% { transform: scaleY(0.9) rotate(2deg); box-shadow: 0 0 20px 10px rgba(208,160,96,0.8) } }

.scn-separate-operations-continue {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0d0d1a 100%),
    radial-gradient(ellipse at 50% 60%, #3a3a5a 0%, transparent 70%);
}
.scn-separate-operations-continue .so-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%);
  animation: so-bg 15s ease-in-out infinite alternate;
}
.scn-separate-operations-continue .so-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0d0d1a 0%, #05050a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.7);
}
.scn-separate-operations-continue .so-partition {
  position: absolute; bottom: 10%; left: 48%; width: 4%; height: 60%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
  animation: so-partition 20s ease-in-out infinite;
}
.scn-separate-operations-continue .so-uncle {
  position: absolute; bottom: 20%; left: 20%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: so-uncle 7s ease-in-out infinite;
}
.scn-separate-operations-continue .so-trim {
  position: absolute; bottom: 20%; right: 20%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: so-trim 6s ease-in-out infinite;
}
.scn-separate-operations-continue .so-map {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: so-map 10s ease-in-out infinite;
}
.scn-separate-operations-continue .so-candle-left {
  position: absolute; bottom: 40%; left: 22%; width: 5px; height: 10px;
  background: linear-gradient(180deg, #b0a080 0%, #7a6a50 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 6px rgba(176,160,128,0.5);
  animation: so-candle 3s ease-in-out infinite;
}
.scn-separate-operations-continue .so-candle-right {
  position: absolute; bottom: 40%; right: 22%; width: 5px; height: 10px;
  background: linear-gradient(180deg, #b0a080 0%, #7a6a50 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 6px rgba(176,160,128,0.5);
  animation: so-candle 3s ease-in-out infinite reverse;
}
@keyframes so-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes so-partition { 0%,100% { transform: translateX(0) } 50% { transform: translateX(1px) } }
@keyframes so-uncle { 0% { transform: rotate(0) } 30% { transform: rotate(-3deg) translateX(-2px) } 60% { transform: rotate(2deg) translateX(1px) } 100% { transform: rotate(0) } }
@keyframes so-trim { 0% { transform: rotate(0) } 25% { transform: rotate(2deg) translateX(1px) } 50% { transform: rotate(-2deg) translateX(-1px) } 75% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes so-map { 0%,100% { transform: scale(1) } 50% { transform: scale(0.98) } }
@keyframes so-candle { 0%,100% { transform: scaleY(1) rotate(0); opacity:0.9 } 50% { transform: scaleY(0.9) rotate(3deg); opacity:1 } }

.scn-uncle-toby-counts-perfections {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0e05 100%),
    radial-gradient(ellipse at 60% 30%, #6a4a2a 0%, transparent 70%);
}
.scn-uncle-toby-counts-perfections .uc-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  animation: uc-bg 14s ease-in-out infinite alternate;
}
.scn-uncle-toby-counts-perfections .uc-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0702 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-uncle-toby-counts-perfections .uc-table {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: uc-table 9s ease-in-out infinite;
}
.scn-uncle-toby-counts-perfections .uc-pipe {
  position: absolute; bottom: 32%; left: 40%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 0 0; transform: rotate(-15deg);
  animation: uc-pipe 12s ease-in-out infinite;
}
.scn-uncle-toby-counts-perfections .uc-uncle {
  position: absolute; bottom: 20%; left: 30%; width: 24px; 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: uc-uncle 8s ease-in-out infinite;
}
.scn-uncle-toby-counts-perfections .uc-hand {
  position: absolute; bottom: 30%; left: 38%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20%; transform: rotate(10deg);
  animation: uc-hand 5s ease-in-out infinite;
}
.scn-uncle-toby-counts-perfections .uc-chair {
  position: absolute; bottom: 18%; left: 28%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: uc-chair 10s ease-in-out infinite;
}
.scn-uncle-toby-counts-perfections .uc-candle {
  position: absolute; bottom: 40%; left: 55%; width: 5px; height: 12px;
  background: linear-gradient(180deg, #d0a060 0%, #a06020 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 16px 8px rgba(208,160,96,0.6);
  animation: uc-candle 3s ease-in-out infinite;
}
@keyframes uc-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes uc-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes uc-pipe { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes uc-uncle { 0% { transform: rotate(0) } 30% { transform: rotate(-2deg) } 60% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes uc-hand { 0% { transform: rotate(10deg) translateY(0) } 30% { transform: rotate(5deg) translateY(-3px) } 60% { transform: rotate(15deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes uc-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes uc-candle { 0%,100% { transform: scaleY(1) rotate(0); box-shadow: 0 0 16px 8px rgba(208,160,96,0.6) } 50% { transform: scaleY(0.9) rotate(2deg); box-shadow: 0 0 20px 10px rgba(208,160,96,0.8) } }

.scn-item-humanity-written {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 70%);
}
.scn-item-humanity-written .ih-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  animation: ih-bg 13s ease-in-out infinite alternate;
}
.scn-item-humanity-written .ih-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0702 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-item-humanity-written .ih-table {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ih-table 8s ease-in-out infinite;
}
.scn-item-humanity-written .ih-paper {
  position: absolute; bottom: 30%; left: 38%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 1px; transform: rotate(-5deg);
  box-shadow: 0 1px 3px rgba(0,0,0,0.4);
  animation: ih-paper 6s ease-in-out infinite;
}
.scn-item-humanity-written .ih-uncle {
  position: absolute; bottom: 20%; left: 25%; width: 24px; 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: ih-uncle 8s ease-in-out infinite;
}
.scn-item-humanity-written .ih-trim {
  position: absolute; bottom: 20%; right: 25%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ih-trim 6s ease-in-out infinite;
}
.scn-item-humanity-written .ih-candle {
  position: absolute; bottom: 40%; left: 50%; width: 5px; height: 12px;
  background: linear-gradient(180deg, #d0a060 0%, #a06020 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 16px 8px rgba(208,160,96,0.6);
  animation: ih-candle 3s ease-in-out infinite;
}
.scn-item-humanity-written .ih-inkwell {
  position: absolute; bottom: 28%; left: 45%; width: 10px; height: 8px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 30% 30%;
  animation: ih-inkwell 10s ease-in-out infinite;
}
@keyframes ih-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ih-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ih-paper { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(1.02) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes ih-uncle { 0% { transform: rotate(0) } 30% { transform: rotate(-2deg) translateY(-1px) } 60% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes ih-trim { 0% { transform: rotate(0) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) translateX(1px) } 75% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes ih-candle { 0%,100% { transform: scaleY(1) rotate(0); box-shadow: 0 0 16px 8px rgba(208,160,96,0.6) } 50% { transform: scaleY(0.9) rotate(2deg); box-shadow: 0 0 20px 10px rgba(208,160,96,0.8) } }
@keyframes ih-inkwell { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

/* Scene: invocation-to-cervantes */
.scn-invocation-to-cervantes {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0e05 50%, #0d0603 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-invocation-to-cervantes .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 12px, rgba(90,70,40,0.15) 12px, rgba(90,70,40,0.15) 13px);
}
.scn-invocation-to-cervantes .lattice {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 45%;
  border: 4px solid #5a3a1a;
  background: rgba(100,80,50,0.2);
  border-radius: 4px;
  box-shadow: inset 0 0 30px #1a0e05;
  overflow: hidden;
}
.scn-invocation-to-cervantes .lattice::before {
  content: ''; position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 8px, #3a2a1a 8px, #3a2a1a 9px),
              repeating-linear-gradient(0deg, transparent, transparent 8px, #3a2a1a 8px, #3a2a1a 9px);
}
.scn-invocation-to-cervantes .desk {
  position: absolute; bottom: 8%; left: 25%; width: 50%; height: 18%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-invocation-to-cervantes .candle {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #f0c060 0%, #d09040 60%, #a07030 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(240,192,96,0.3);
  animation: inv-candle 2.5s ease-in-out infinite alternate;
}
.scn-invocation-to-cervantes .urn {
  position: absolute; bottom: 10%; left: 60%; width: 16%; height: 22%;
  background: radial-gradient(ellipse at 50% 30%, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.5);
  animation: inv-urn 12s ease-in-out infinite;
}
.scn-invocation-to-cervantes .book {
  position: absolute; bottom: 10%; left: 35%; width: 14%; height: 8%;
  background: linear-gradient(135deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
}
.scn-invocation-to-cervantes .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(0,0,0,0.8) 0%, transparent 100%);
  animation: inv-shadow 15s ease-in-out infinite alternate;
}
@keyframes inv-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; box-shadow: 0 0 20px 6px #f0c060; }
  50% { transform: scaleY(1.08) translateY(-2px); opacity: 1; box-shadow: 0 0 28px 10px #f0c060; }
  100% { transform: scaleY(0.95) translateY(1px); opacity: 0.85; box-shadow: 0 0 15px 4px #d09040; }
}
@keyframes inv-urn {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes inv-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

/* Scene: travels-in-france-italy */
.scn-travels-in-france-italy {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #b0e0e6 60%, #f0e68c 100%),
    radial-gradient(ellipse at 50% 0%, #fff 0%, transparent 50%);
}
.scn-travels-in-france-italy .sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(135,206,235,0.6) 0%, transparent 100%);
}
.scn-travels-in-france-italy .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c8a96e 0%, #a08050 100%);
  border-radius: 40% 30% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-travels-in-france-italy .figure {
  position: absolute; bottom: 25%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tra-figure 4s ease-in-out infinite;
}
.scn-travels-in-france-italy .donkey {
  position: absolute; bottom: 23%; left: 35%; width: 30px; height: 36px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tra-donkey 4.5s ease-in-out infinite;
}
.scn-travels-in-france-italy .basket {
  position: absolute; bottom: 42%; left: 32%; width: 20px; height: 18px;
  background: radial-gradient(ellipse at 50% 50%, #c8a86e 0%, #8a6a3a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: tra-basket 5s ease-in-out infinite;
}
.scn-travels-in-france-italy .coin {
  position: absolute; bottom: 28%; left: 55%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd700 0%, #daa520 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffd700;
  animation: tra-coin 3s ease-in-out infinite;
}
.scn-travels-in-france-italy .egg {
  position: absolute; bottom: 26%; left: 48%; width: 10px; height: 14px;
  background: radial-gradient(ellipse at 50% 40%, #f5f5dc 0%, #e0d0b0 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: tra-egg 3.8s ease-in-out infinite;
}
.scn-travels-in-france-italy .tinderbox {
  position: absolute; bottom: 20%; left: 65%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20%;
  transform: rotate(-15deg);
  animation: tra-tinder 6s ease-in-out infinite;
}
@keyframes tra-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(2deg) translateY(-1px); }
  50% { transform: translateX(16px) rotate(-1deg) translateY(0); }
  75% { transform: translateX(24px) rotate(1deg) translateY(-1px); }
  100% { transform: translateX(32px) rotate(0deg); }
}
@keyframes tra-donkey {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(10px) rotate(1deg) translateY(-2px); }
  100% { transform: translateX(20px) rotate(0deg); }
}
@keyframes tra-basket {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes tra-coin {
  0% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-20px) scale(1.2) rotate(45deg); }
  60% { transform: translateY(-40px) scale(0.8) rotate(90deg); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes tra-egg {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes tra-tinder {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(3px); }
  100% { transform: rotate(-15deg) translateX(0); }
}

/* Scene: effect-of-uncle-tobys-amours-on-narrator */
.scn-effect-of-uncle-tobys-amours-on-narrator {
  background: 
    linear-gradient(180deg, #f5deb3 0%, #deb887 50%, #d2b48c 100%),
    radial-gradient(ellipse at 50% 0%, #faebd7 0%, transparent 60%);
}
.scn-effect-of-uncle-tobys-amours-on-narrator .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(210,180,140,0.4) 0%, transparent 100%);
}
.scn-effect-of-uncle-tobys-amours-on-narrator .chaise {
  position: absolute; bottom: 15%; left: 20%; width: 55%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: eff-chaise 6s ease-in-out infinite;
}
.scn-effect-of-uncle-tobys-amours-on-narrator .figure-left {
  position: absolute; bottom: 28%; left: 25%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eff-figure-l 4s ease-in-out infinite;
}
.scn-effect-of-uncle-tobys-amours-on-narrator .figure-right {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eff-figure-r 4.2s ease-in-out infinite;
}
.scn-effect-of-uncle-tobys-amours-on-narrator .wheel {
  position: absolute; bottom: 8%; left: 30%; width: 30px; height: 30px;
  border: 4px solid #2a1a0a;
  border-radius: 50%;
  background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%);
  animation: eff-wheel 3s linear infinite;
}
.scn-effect-of-uncle-tobys-amours-on-narrator .curtain {
  position: absolute; top: 5%; left: 18%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #c8a86e 0%, #a08050 100%);
  border-radius: 0 0 50% 50% / 0 0 60% 60%;
  transform-origin: top center;
  animation: eff-curtain 8s ease-in-out infinite;
}
@keyframes eff-chaise {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes eff-figure-l {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes eff-figure-r {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes eff-wheel {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes eff-curtain {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.05) translateY(-5px); }
  100% { transform: scaleX(1) translateY(0); }
}

/* Scene: maria-introduced */
.scn-maria-introduced {
  background: 
    linear-gradient(180deg, #90ee90 0%, #7ccd7c 40%, #f5deb3 100%),
    radial-gradient(ellipse at 50% 0%, #fff 0%, transparent 50%);
}
.scn-maria-introduced .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7ccd7c 0%, #5a9a5a 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
}
.scn-maria-introduced .tree {
  position: absolute; bottom: 20%; left: 10%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a6a3a 0%, #1a3a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.3);
  animation: mar-tree 12s ease-in-out infinite;
}
.scn-maria-introduced .man {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mar-man 4s ease-in-out infinite;
}
.scn-maria-introduced .woman {
  position: absolute; bottom: 18%; left: 55%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mar-woman 4.3s ease-in-out infinite;
}
.scn-maria-introduced .coin-hand {
  position: absolute; bottom: 30%; left: 40%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd700 0%, #daa520 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 0 8px 2px #ffd700;
  animation: mar-coin 3.5s ease-in-out infinite;
}
.scn-maria-introduced .bush {
  position: absolute; bottom: 10%; left: 75%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #3a6a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: mar-bush 18s ease-in-out infinite;
}
@keyframes mar-tree {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes mar-man {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(-3deg) scale(1.02); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mar-woman {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(4deg) scale(0.98); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mar-coin {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-15px) scale(1.2) rotate(30deg); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.8; }
}
@keyframes mar-bush {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05) translateY(-2px); }
  100% { transform: scaleX(1); }
}

.scn-trim-mortars-brought {
  background: linear-gradient(180deg, #f5e6c8 0%, #c9a96e 40%, #7a5c3a 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.6) 0%, transparent 70%);
}
.scn-trim-mortars-brought .tmb-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #b88a5e 0%, #d9b382 30%, #a67c4e 70%, #7a5c3a 100%);
  animation: tmb-warmth 12s ease-in-out infinite alternate;
}
.scn-trim-mortars-brought .tmb-window {
  position: absolute; top: 8%; left: 15%; width: 20%; height: 45%; 
  background: radial-gradient(ellipse, #fff8e0 0%, #f5d6a0 60%, transparent 100%);
  border-radius: 6% / 10%; box-shadow: inset 0 0 40px rgba(255,230,160,0.5);
  animation: tmb-glow 4s ease-in-out infinite alternate;
}
.scn-trim-mortars-brought .tmb-mortar-l {
  position: absolute; bottom: 28%; left: 22%; width: 40px; height: 50px;
  background: radial-gradient(circle at 40% 30%, #6b4a2e 0%, #3e2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(-15deg); box-shadow: 4px 6px 10px rgba(0,0,0,0.6);
  animation: tmb-mortars 6s ease-in-out infinite;
}
.scn-trim-mortars-brought .tmb-mortar-r {
  position: absolute; bottom: 30%; right: 28%; width: 38px; height: 48px;
  background: radial-gradient(circle at 60% 30%, #6b4a2e 0%, #3e2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(10deg); box-shadow: -2px 5px 12px rgba(0,0,0,0.5);
  animation: tmb-mortars 6s ease-in-out infinite reverse;
}
.scn-trim-mortars-brought .tmb-trim {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: tmb-walk 4s ease-in-out infinite;
}
.scn-trim-mortars-brought .tmb-shadow {
  position: absolute; bottom: 20%; left: 35%; width: 35%; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: tmb-shadowpulse 4s ease-in-out infinite;
}
.scn-trim-mortars-brought .tmb-glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 20%, rgba(255,240,200,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: tmb-ambient 8s ease-in-out infinite alternate;
}
@keyframes tmb-warmth { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes tmb-glow { 0% { opacity: 0.6; transform: scaleX(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scaleX(0.98); } }
@keyframes tmb-mortars { 0% { transform: rotate(-15deg) translate(0,0); } 50% { transform: rotate(-10deg) translate(-2px, -3px); } 100% { transform: rotate(-15deg) translate(0,1px); } }
@keyframes tmb-walk { 0% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(5px,-1px) rotate(1deg); } 50% { transform: translate(10px,0) rotate(-1deg); } 75% { transform: translate(15px,-1px) rotate(2deg); } 100% { transform: translate(20px,0) rotate(0); } }
@keyframes tmb-shadowpulse { 0% { transform: scaleX(0.8); opacity: 0.5; } 50% { transform: scaleX(1.2); opacity: 0.8; } 100% { transform: scaleX(0.9); opacity: 0.6; } }
@keyframes tmb-ambient { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }

.scn-hinge-moral {
  background: linear-gradient(135deg, #e8d8b8 0%, #cfb58a 40%, #a5845a 100%),
              radial-gradient(ellipse at 30% 50%, rgba(255,220,150,0.5) 0%, transparent 80%);
}
.scn-hinge-moral .hm-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #d4b88a 0%, #efd9ae 30%, #c4a472 70%, #a5845a 100%);
  animation: hm-pan 24s linear infinite;
}
.scn-hinge-moral .hm-door {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 85%;
  background: linear-gradient(180deg, #b8956a 0%, #9a7a52 20%, #7a5e3c 80%, #5e462a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 8px 0 20px rgba(0,0,0,0.4);
  transform: perspective(400px) rotateY(2deg);
  animation: hm-doorcreak 8s ease-in-out infinite;
}
.scn-hinge-moral .hm-hinge-top {
  position: absolute; top: 18%; left: 33%; width: 14px; height: 18px;
  background: linear-gradient(135deg, #6a4e30 0%, #4d3520 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 1px 1px 3px rgba(0,0,0,0.5);
  animation: hm-hingemove 4s ease-in-out infinite alternate;
}
.scn-hinge-moral .hm-hinge-bot {
  position: absolute; bottom: 30%; left: 33%; width: 14px; height: 18px;
  background: linear-gradient(135deg, #6a4e30 0%, #4d3520 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 1px 1px 3px rgba(0,0,0,0.5);
  animation: hm-hingemove 4s ease-in-out infinite alternate-reverse;
}
.scn-hinge-moral .hm-knob {
  position: absolute; top: 55%; left: 62%; width: 10px; height: 10px;
  background: radial-gradient(circle at 30% 30%, #c9a86a 0%, #a0793e 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: hm-knob 5s ease-in-out infinite alternate;
}
.scn-hinge-moral .hm-figure {
  position: absolute; bottom: 10%; left: 15%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2c2220 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: hm-point 6s ease-in-out infinite;
}
.scn-hinge-moral .hm-light {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(135deg, rgba(255,235,190,0.2) 0%, transparent 50%);
  pointer-events: none;
  animation: hm-lightdim 9s ease-in-out infinite alternate;
}
@keyframes hm-pan { 0% { background-position: 0% 0%; } 50% { background-position: 50% 0%; } 100% { background-position: 100% 0%; } }
@keyframes hm-doorcreak { 0% { transform: perspective(400px) rotateY(2deg); } 50% { transform: perspective(400px) rotateY(2.5deg) translateX(-2px); } 100% { transform: perspective(400px) rotateY(2deg); } }
@keyframes hm-hingemove { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } 100% { transform: rotate(-3deg) scale(0.95); } }
@keyframes hm-knob { 0% { transform: rotate(0deg) translate(0,0); } 50% { transform: rotate(10deg) translate(2px,-1px); } 100% { transform: rotate(-5deg) translate(-1px,0); } }
@keyframes hm-point { 0% { transform: translate(0,0) rotate(-5deg); } 25% { transform: translate(8px,-2px) rotate(0deg); } 50% { transform: translate(16px,0) rotate(3deg); } 75% { transform: translate(24px,-1px) rotate(0deg); } 100% { transform: translate(32px,0) rotate(-5deg); } }
@keyframes hm-lightdim { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-jack-boots-entail {
  background: linear-gradient(180deg, #ede0c0 0%, #cbb28a 40%, #9a7a52 100%),
              radial-gradient(ellipse at 80% 50%, rgba(255,200,120,0.4) 0%, transparent 70%);
}
.scn-jack-boots-entail .jbe-bg {
  position: absolute; inset: 0;
  background: linear-gradient(45deg, #ceb28a 0%, #e8d4b0 50%, #bfa47c 100%);
  animation: jbe-shift 14s ease-in-out infinite alternate;
}
.scn-jack-boots-entail .jbe-boot-l {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3520 0%, #2e1f10 100%);
  border-radius: 30% 30% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(5deg); box-shadow: 4px 6px 12px rgba(0,0,0,0.5);
  animation: jbe-boot 5s ease-in-out infinite;
}
.scn-jack-boots-entail .jbe-boot-r {
  position: absolute; bottom: 18%; right: 30%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a2818 0%, #1e140c 100%);
  border-radius: 30% 30% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(-10deg); box-shadow: -2px 6px 12px rgba(0,0,0,0.5);
  animation: jbe-boot 5s ease-in-out infinite reverse;
}
.scn-jack-boots-entail .jbe-trim {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jbe-trimwalk 4s ease-in-out infinite;
}
.scn-jack-boots-entail .jbe-knife {
  position: absolute; bottom: 40%; left: 48%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #b8a88a 0%, #8a7a5e 100%);
  border-radius: 20% 20% 0 0; transform: rotate(45deg);
  box-shadow: 0 0 6px rgba(200,180,140,0.6);
  animation: jbe-cut 3s ease-in-out infinite alternate;
}
.scn-jack-boots-entail .jbe-cutline {
  position: absolute; bottom: 42%; left: 42%; width: 20%; height: 2px;
  background: rgba(240,200,120,0.8); filter: blur(2px);
  transform: rotate(-20deg);
  animation: jbe-spark 2s ease-in-out infinite;
}
.scn-jack-boots-entail .jbe-shadow {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(5px);
  animation: jbe-shadowsink 5s ease-in-out infinite alternate;
}
@keyframes jbe-shift { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes jbe-boot { 0% { transform: rotate(5deg) translate(0,0); } 50% { transform: rotate(2deg) translate(2px,-3px); } 100% { transform: rotate(5deg) translate(0,1px); } }
@keyframes jbe-trimwalk { 0% { transform: translate(0,0) rotate(-3deg); } 25% { transform: translate(4px,-1px) rotate(1deg); } 50% { transform: translate(8px,0) rotate(-2deg); } 75% { transform: translate(12px,-1px) rotate(2deg); } 100% { transform: translate(16px,0) rotate(0); } }
@keyframes jbe-cut { 0% { transform: rotate(45deg) translate(0,0); opacity: 0.8; } 50% { transform: rotate(55deg) translate(1px,-2px); opacity: 1; } 100% { transform: rotate(45deg) translate(0,1px); opacity: 0.9; } }
@keyframes jbe-spark { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } }
@keyframes jbe-shadowsink { 0% { transform: scaleX(0.9); opacity: 0.4; } 50% { transform: scaleX(1.1); opacity: 0.7; } 100% { transform: scaleX(1); opacity: 0.5; } }

.scn-father-blessing {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b88a 50%, #9a7a52 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,230,180,0.6) 0%, transparent 80%);
}
.scn-father-blessing .fb-bg {
  position: absolute; inset: 0;
  background: linear-gradient(45deg, #d9b382 0%, #efd9ae 40%, #c4a472 100%);
  animation: fb-warmth 15s ease-in-out infinite alternate;
}
.scn-father-blessing .fb-father {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2c2220 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform: translateX(-50%); transform-origin: bottom center;
  animation: fb-bless 6s ease-in-out infinite;
}
.scn-father-blessing .fb-mortar-l {
  position: absolute; bottom: 28%; left: 30%; width: 35px; height: 45px;
  background: radial-gradient(circle at 40% 30%, #6b4a2e 0%, #3e2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(-5deg); box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
  animation: fb-mortapulse 7s ease-in-out infinite;
}
.scn-father-blessing .fb-mortar-r {
  position: absolute; bottom: 30%; right: 32%; width: 35px; height: 45px;
  background: radial-gradient(circle at 60% 30%, #6b4a2e 0%, #3e2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(5deg); box-shadow: -2px 4px 8px rgba(0,0,0,0.5);
  animation: fb-mortapulse 7s ease-in-out infinite reverse;
}
.scn-father-blessing .fb-glow {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse, rgba(255,240,200,0.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: fb-glowpulse 4s ease-in-out infinite alternate;
}
.scn-father-blessing .fb-table {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 12px;
  background: linear-gradient(90deg, #8a6a42 0%, #a6845a 50%, #7a5c3a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: fb-table 10s ease-in-out infinite alternate;
}
.scn-father-blessing .fb-chair {
  position: absolute; bottom: 12%; left: 18%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #7a5c3a 0%, #5e462a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  transform: rotate(-2deg);
  animation: fb-chairrock 8s ease-in-out infinite;
}
@keyframes fb-warmth { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fb-bless { 0% { transform: translateX(-50%) rotate(-2deg) scale(1); } 50% { transform: translateX(-50%) rotate(0deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(2deg) scale(1); } }
@keyframes fb-mortapulse { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.03); } 100% { transform: rotate(-5deg) scale(0.98); } }
@keyframes fb-glowpulse { 0% { opacity: 0.4; transform: scale(0.9); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes fb-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fb-chairrock { 0% { transform: rotate(-2deg) translate(0,0); } 50% { transform: rotate(1deg) translate(2px,-1px); } 100% { transform: rotate(-2deg) translate(0,0); } }

.scn-decampment-plan { background: linear-gradient(180deg, #2d1308 0%, #5a2b14 40%, #8b4513 70%), radial-gradient(ellipse at 50% 30%, #d96c2b 0%, transparent 70%); min-height:100%; position:relative; overflow:hidden; }
.scn-decampment-plan .wall { position:absolute; inset:0; background: linear-gradient(135deg, #3d1a0a 0%, #7a3a1a 100%); opacity:0.6; animation: dp-wallbreathe 6s ease-in-out infinite alternate; }
.scn-decampment-plan .fireplace { position:absolute; left:5%; bottom:10%; width:30%; height:50%; background: linear-gradient(180deg, #4a2010 0%, #2a0e05 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.7); }
.scn-decampment-plan .fire { position:absolute; left:12%; bottom:20%; width:16%; height:30%; background: radial-gradient(ellipse at 50% 80%, #f0a030 0%, #d06020 40%, #803010 100%); border-radius: 40% 40% 10% 10%; filter: blur(4px); animation: dp-fire 1.5s ease-in-out infinite alternate; box-shadow: 0 0 40px 20px rgba(240,160,48,0.4); }
.scn-decampment-plan .table { position:absolute; right:10%; bottom:10%; width:45%; height:20%; background: linear-gradient(180deg, #6b3a1a 0%, #3d1a0a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.5); transform: rotate(-2deg); }
.scn-decampment-plan .map { position:absolute; right:18%; bottom:18%; width:30%; height:12%; background: linear-gradient(135deg, #c8a070 0%, #a07850 50%, #7a5030 100%); border-radius: 15% 15% 5% 5%; transform: rotate(3deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: dp-mapflutter 8s ease-in-out infinite; }
.scn-decampment-plan .figure-toby { position:absolute; right:35%; bottom:10%; width:14%; height:45%; background: linear-gradient(180deg, #1a0a06 0%, #0a0502 100%); border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dp-breathing 4s ease-in-out infinite; box-shadow: 2px 0 10px rgba(0,0,0,.5); }
.scn-decampment-plan .candle { position:absolute; right:20%; bottom:30%; width:2%; height:8%; background: linear-gradient(180deg, #f0d080 0%, #c08040 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px 8px rgba(240,208,128,0.5); animation: dp-candleflicker 2s ease-in-out infinite alternate; }

@keyframes dp-wallbreathe  { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes dp-fire         { 0% { transform: scaleY(0.85) translateY(2px); filter: blur(4px); } 50% { transform: scaleY(1.05) translateY(-1px); filter: blur(5px); } 100% { transform: scaleY(0.9) translateY(1px); filter: blur(4px); } }
@keyframes dp-mapflutter   { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(-1deg) scale(0.98); } 100% { transform: rotate(3deg) scale(1); } }
@keyframes dp-breathing    { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dp-candleflicker{ 0% { opacity:0.8; box-shadow: 0 0 15px 6px rgba(240,208,128,0.4); } 50% { opacity:1; box-shadow: 0 0 25px 10px rgba(240,208,128,0.7); } 100% { opacity:0.85; box-shadow: 0 0 18px 7px rgba(240,208,128,0.5); } }

.scn-trim-suggestion { background: linear-gradient(180deg, #3a1a0a 0%, #5a2b14 40%, #8b4513 70%, #4a2010 100%), radial-gradient(ellipse at 30% 50%, #d96c2b 0%, transparent 60%); min-height:100%; position:relative; overflow:hidden; }
.scn-trim-suggestion .wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0, transparent 30px, rgba(0,0,0,.1) 30px, rgba(0,0,0,.1) 32px); animation: ts-wallfade 12s ease-in-out infinite alternate; }
.scn-trim-suggestion .table { position:absolute; left:20%; bottom:8%; width:60%; height:18%; background: linear-gradient(180deg, #6b3a1a 0%, #3d1a0a 100%); border-radius: 5% 5% 0 0; transform: rotate(-1deg); box-shadow: 0 -8px 16px rgba(0,0,0,.6); }
.scn-trim-suggestion .paper-a { position:absolute; left:28%; bottom:16%; width:20%; height:8%; background: linear-gradient(135deg, #dbb878 0%, #b09050 100%); border-radius: 2%; transform: rotate(5deg); box-shadow: 0 3px 6px rgba(0,0,0,.3); animation: ts-papershuffle 18s ease-in-out infinite; }
.scn-trim-suggestion .paper-b { position:absolute; left:48%; bottom:14%; width:18%; height:7%; background: linear-gradient(135deg, #c8a070 0%, #a07850 100%); border-radius: 2%; transform: rotate(-3deg); box-shadow: 0 3px 6px rgba(0,0,0,.3); animation: ts-papershuffle 20s ease-in-out infinite reverse; }
.scn-trim-suggestion .figure-toby { position:absolute; left:15%; bottom:8%; width:12%; height:40%; background: linear-gradient(180deg, #1a0a06 0%, #0a0502 100%); border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ts-tobybob 4s ease-in-out infinite; }
.scn-trim-suggestion .figure-trim { position:absolute; right:18%; bottom:8%; width:10%; height:38%; background: linear-gradient(180deg, #1a0a06 0%, #0a0502 100%); border-radius: 40% 40% 25% 25% / 55% 55% 25% 25%; transform-origin: bottom center; animation: ts-trimnod 4s ease-in-out infinite 0.5s; box-shadow: -2px 0 8px rgba(0,0,0,.5); }
.scn-trim-suggestion .lamp { position:absolute; left:45%; bottom:26%; width:3%; height:10%; background: linear-gradient(180deg, #f0d080 0%, #c08040 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 0 30px 12px rgba(240,208,128,0.6); animation: ts-lampglow 2.5s ease-in-out infinite alternate; }

@keyframes ts-wallfade      { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes ts-papershuffle  { 0% { transform: rotate(5deg) translate(0,0); } 50% { transform: rotate(-2deg) translate(2px,-1px); } 100% { transform: rotate(5deg) translate(0,0); } }
@keyframes ts-tobybob       { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ts-trimnod       { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ts-lampglow      { 0% { opacity:0.7; box-shadow: 0 0 20px 8px rgba(240,208,128,0.4); } 50% { opacity:1; box-shadow: 0 0 40px 16px rgba(240,208,128,0.8); } 100% { opacity:0.8; box-shadow: 0 0 25px 10px rgba(240,208,128,0.5); } }

.scn-trim-background { background: linear-gradient(180deg, #2d1308 0%, #4a2010 40%, #7a3a1a 70%), radial-gradient(ellipse at 50% 80%, #d96c2b 0%, transparent 60%); min-height:100%; position:relative; overflow:hidden; }
.scn-trim-background .bg-fire { position:absolute; left:0; bottom:0; width:100%; height:60%; background: radial-gradient(ellipse at 30% 80%, #f0a030 0%, #8b4513 50%, transparent 80%); animation: tb-fireglow 2s ease-in-out infinite alternate; }
.scn-trim-background .figure-trim { position:absolute; left:40%; bottom:10%; width:14%; height:60%; background: linear-gradient(180deg, #1a0a06 0%, #0a0502 100%); border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tb-standing 3s ease-in-out infinite; }
.scn-trim-background .coat { position:absolute; left:38%; bottom:10%; width:18%; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 25% 25%; opacity:0.8; transform-origin: bottom center; animation: tb-coatsway 4s ease-in-out infinite; }
.scn-trim-background .hat { position:absolute; left:42%; bottom:65%; width:10%; height:8%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(5deg); animation: tb-hatbob 5s ease-in-out infinite; }
.scn-trim-background .musket { position:absolute; left:30%; bottom:15%; width:4%; height:45%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 20%; transform: rotate(8deg); transform-origin: bottom center; animation: tb-musketsway 6s ease-in-out infinite; }

@keyframes tb-fireglow   { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes tb-standing   { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes tb-coatsway   { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes tb-hatbob     { 0% { transform: rotate(4deg) translate(0,0); } 50% { transform: rotate(6deg) translate(1px,-1px); } 100% { transform: rotate(4deg) translate(0,0); } }
@keyframes tb-musketsway { 0% { transform: rotate(6deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.02); } 100% { transform: rotate(6deg) scaleY(1); } }

.scn-trim-character { background: linear-gradient(180deg, #2a1008 0%, #4a2010 40%, #7a3a1a 70%, #3d1a0a 100%), radial-gradient(ellipse at 50% 30%, #d96c2b 0%, transparent 50%); min-height:100%; position:relative; overflow:hidden; }
.scn-trim-character .bg-warm { position:absolute; inset:0; background: repeating-radial-gradient(circle at 20% 40%, rgba(240,160,48,0.08) 0, transparent 30px); animation: tc-warmpulse 10s ease-in-out infinite alternate; }
.scn-trim-character .profile { position:absolute; left:35%; bottom:20%; width:20%; height:50%; background: linear-gradient(180deg, #1a0a06 0%, #0a0502 100%); border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%; transform: rotate(-5deg); box-shadow: 4px 0 12px rgba(0,0,0,.5); animation: tc-breathe 3s ease-in-out infinite; }
.scn-trim-character .hand { position:absolute; left:48%; bottom:25%; width:8%; height:12%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a06 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform: rotate(15deg); transform-origin: bottom left; animation: tc-gesture 4s ease-in-out infinite; }
.scn-trim-character .arm { position:absolute; left:42%; bottom:20%; width:10%; height:30%; background: linear-gradient(180deg, #1a0a06 0%, #0a0502 100%); border-radius: 30% 20% 10% 10% / 40% 30% 20% 20%; transform: rotate(10deg); transform-origin: bottom center; animation: tc-armwave 5s ease-in-out infinite; }
.scn-trim-character .halo { position:absolute; left:30%; bottom:55%; width:30%; height:30%; background: radial-gradient(circle, rgba(240,208,128,0.3) 0%, transparent 70%); filter: blur(8px); animation: tc-halopulse 2.5s ease-in-out infinite alternate; }

@keyframes tc-warmpulse  { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes tc-breathe    { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-4deg) scaleY(1.03); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes tc-gesture    { 0% { transform: rotate(10deg) translate(0,0); } 50% { transform: rotate(20deg) translate(3px,-2px); } 100% { transform: rotate(10deg) translate(0,0); } }
@keyframes tc-armwave    { 0% { transform: rotate(8deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.02); } 100% { transform: rotate(8deg) scaleY(1); } }
@keyframes tc-halopulse  { 0% { opacity:0.3; filter: blur(10px); } 50% { opacity:0.6; filter: blur(6px); } 100% { opacity:0.3; filter: blur(10px); } }

/* Scene: narrators-difficulty-with-amours (tag: na-) */
.scn-narrators-difficulty-with-amours {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 40%, #b89a78 100%),
              radial-gradient(ellipse at 70% 30%, rgba(255,235,200,0.6) 0%, transparent 60%);
}
.scn-narrators-difficulty-with-amours .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8d4b8 0%, #d0b898 60%, #b8a078 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.08);
}
.scn-narrators-difficulty-with-amours .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a6e4a 0%, #6a5230 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-narrators-difficulty-with-amours .desk {
  position: absolute; bottom: 25%; left: 50%; width: 160px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-narrators-difficulty-with-amours .figure {
  position: absolute; bottom: 32%; left: 50%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: na-figure 8s ease-in-out infinite;
}
.scn-narrators-difficulty-with-amours .candle {
  position: absolute; bottom: 30%; left: 70%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0d090 0%, #c8a050 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-narrators-difficulty-with-amours .candle-glow {
  position: absolute; bottom: 30%; left: 70%; width: 60px; height: 60px;
  transform: translate(-24px, -20px);
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: na-glow 3s ease-in-out infinite alternate;
}
.scn-narrators-difficulty-with-amours .paper {
  position: absolute; bottom: 32%; width: 30px; height: 40px;
  background: #f5f0e0;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  animation: na-paper 12s ease-in-out infinite;
}
.scn-narrators-difficulty-with-amours .paper-a { left: 58%; animation-delay: 0s; }
.scn-narrators-difficulty-with-amours .paper-b { left: 62%; animation-delay: 2s; }
.scn-narrators-difficulty-with-amours .dust {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(255,235,180,0.08) 0%, transparent 70%),
              radial-gradient(ellipse at 70% 60%, rgba(255,235,180,0.06) 0%, transparent 60%);
  animation: na-dust 20s linear infinite;
}
@keyframes na-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg); }
  60% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes na-glow {
  0% { opacity: 0.7; transform: translate(-24px, -20px) scale(0.95); }
  50% { opacity: 1; transform: translate(-24px, -20px) scale(1.05); }
  100% { opacity: 0.8; transform: translate(-24px, -20px) scale(1); }
}
@keyframes na-paper {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes na-dust {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}

/* Scene: mothers-tap-and-fathers-remorse (tag: mt-) */
.scn-mothers-tap-and-fathers-remorse {
  background: linear-gradient(180deg, #c09060 0%, #a07040 40%, #805030 100%),
              radial-gradient(ellipse at 50% 30%, rgba(200,140,80,0.5) 0%, transparent 70%);
}
.scn-mothers-tap-and-fathers-remorse .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8a070 0%, #a07040 50%, #805030 100%);
}
.scn-mothers-tap-and-fathers-remorse .fireplace {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 4% 4% / 30% 30% 4% 4%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
.scn-mothers-tap-and-fathers-remorse .arm-mother {
  position: absolute; bottom: 38%; left: 40%; width: 80px; height: 14px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 50% / 100%;
  transform-origin: right center;
  animation: mt-arm-mother 6s ease-in-out infinite;
}
.scn-mothers-tap-and-fathers-remorse .hand-father {
  position: absolute; bottom: 35%; left: 52%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  border-radius: 40% 60% 50% 50% / 50% 60% 40% 50%;
  transform: rotate(-20deg);
}
.scn-mothers-tap-and-fathers-remorse .finger-tap {
  position: absolute; bottom: 44%; left: 44%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #c09870 0%, #a07850 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mt-tap 1s ease-in-out infinite alternate;
}
.scn-mothers-tap-and-fathers-remorse .figure-father {
  position: absolute; bottom: 25%; left: 55%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: mt-father 8s ease-in-out infinite;
}
.scn-mothers-tap-and-fathers-remorse .figure-mother {
  position: absolute; bottom: 25%; left: 35%; width: 55px; height: 95px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: mt-mother 6s ease-in-out infinite;
}
.scn-mothers-tap-and-fathers-remorse .shadow-shape {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
}
@keyframes mt-arm-mother {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(-10deg); }
}
@keyframes mt-tap {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-4px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes mt-father {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-3px) rotate(1deg); }
  70% { transform: translateX(3px) rotate(-1deg); }
}
@keyframes mt-mother {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(-1deg); }
  70% { transform: translateX(-2px) rotate(1deg); }
}

/* Scene: mothers-temperate-blood (tag: mb-) */
.scn-mothers-temperate-blood {
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c4a8 40%, #b8a888 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,250,240,0.4) 0%, transparent 70%);
}
.scn-mothers-temperate-blood .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8ccb8 100%);
}
.scn-mothers-temperate-blood .window {
  position: absolute; top: 10%; left: 60%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #c8dce8 0%, #a0bcc8 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3), 0 4px 8px rgba(0,0,0,0.1);
}
.scn-mothers-temperate-blood .curtain {
  position: absolute; top: 8%; height: 160px; width: 30px;
  background: linear-gradient(180deg, #d8c0a0 0%, #b8a080 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: mb-curtain 12s ease-in-out infinite alternate;
}
.scn-mothers-temperate-blood .curtain-l { left: 58%; transform-origin: right top; animation-delay: 0s; }
.scn-mothers-temperate-blood .curtain-r { right: 58%; transform-origin: left top; animation-delay: -4s; }
.scn-mothers-temperate-blood .chair {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%);
  border-radius: 10% 10% 4% 4% / 30% 30% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-mothers-temperate-blood .reader {
  position: absolute; bottom: 22%; left: 32%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mb-reader 8s ease-in-out infinite;
}
.scn-mothers-temperate-blood .book {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 22px;
  background: #f0e8d8;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  transform: rotate(-5deg);
  animation: mb-book 6s ease-in-out infinite;
}
.scn-mothers-temperate-blood .breeze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 70%, rgba(255,255,240,0.05) 0%, transparent 60%);
  animation: mb-breeze 15s linear infinite;
}
@keyframes mb-curtain {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(1.2) rotate(5deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes mb-reader {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes mb-book {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-7deg) translateY(-2px); }
}
@keyframes mb-breeze {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}

/* Scene: keyholes-criminal-use (tag: kc-) */
.scn-keyholes-criminal-use {
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 40%, #05050a 100%),
              radial-gradient(ellipse at 50% 50%, #2a2a3a 0%, transparent 70%);
}
.scn-keyholes-criminal-use .black-bg {
  position: absolute; inset: 0;
  background: #0a0a12;
}
.scn-keyholes-criminal-use .door-frame {
  position: absolute; top: 10%; left: 30%; width: 200px; height: 300px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 4px 8px rgba(0,0,0,0.5);
}
.scn-keyholes-criminal-use .door-panel {
  position: absolute; top: 12%; left: 34%; width: 180px; height: 280px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-keyholes-criminal-use .keyhole {
  position: absolute; top: 50%; left: 50%; width: 12px; height: 20px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 50% 60%, #c8a060 0%, #000 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  box-shadow: 0 0 12px 4px rgba(200,160,96,0.4);
  animation: kc-keyhole-glow 4s ease-in-out infinite alternate;
}
.scn-keyholes-criminal-use .key {
  position: absolute; top: 48%; left: 48%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px;
  transform: rotate(45deg);
  animation: kc-key-move 6s ease-in-out infinite;
}
.scn-keyholes-criminal-use .hand-creep {
  position: absolute; bottom: 20%; left: 36%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: kc-hand 10s ease-in-out infinite;
}
.scn-keyholes-criminal-use .light-beam {
  position: absolute; top: 0; left: 28%; width: 10px; height: 60%;
  background: linear-gradient(180deg, rgba(200,160,96,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: kc-beam 8s ease-in-out infinite alternate;
}
.scn-keyholes-criminal-use .shadow-creep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: kc-shadow 12s ease-in-out infinite;
}
@keyframes kc-keyhole-glow {
  0% { box-shadow: 0 0 8px 2px rgba(200,160,96,0.3); opacity: 0.7; }
  50% { box-shadow: 0 0 20px 6px rgba(200,160,96,0.6); opacity: 1; }
  100% { box-shadow: 0 0 12px 4px rgba(200,160,96,0.4); opacity: 0.9; }
}
@keyframes kc-key-move {
  0%,100% { transform: rotate(45deg) translate(0,0); }
  30% { transform: rotate(40deg) translate(-2px,2px); }
  70% { transform: rotate(50deg) translate(2px,-2px); }
}
@keyframes kc-hand {
  0% { transform: translate(0,0) rotate(0deg); }
  20% { transform: translate(2px,-5px) rotate(5deg); }
  40% { transform: translate(-1px,-10px) rotate(-3deg); }
  60% { transform: translate(1px,-15px) rotate(2deg); }
  80% { transform: translate(0,-20px) rotate(0deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes kc-beam {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes kc-shadow {
  0%,100% { opacity: 0.5; }
  50% { opacity: 1; }
}

/* one block per scene id. Append to style.css. */
.scn-stevinus-book-ordered {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 40%, #1a120a 100%),
              radial-gradient(ellipse at 60% 80%, #c06040 0%, transparent 60%);
}
.scn-stevinus-book-ordered .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #2a1e12 100%);
  animation: sb-wall 12s ease-in-out infinite alternate;
}
.scn-stevinus-book-ordered .table-top {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
  animation: sb-table 8s ease-in-out infinite alternate;
}
.scn-stevinus-book-ordered .father {
  position: absolute; bottom: 32%; left: 15%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sb-figure 5s ease-in-out infinite;
}
.scn-stevinus-book-ordered .uncle-toby {
  position: absolute; bottom: 32%; right: 20%; width: 48px; height: 72px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sb-figure 5s ease-in-out infinite reverse;
}
.scn-stevinus-book-ordered .book {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a20 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,.6);
  animation: sb-book 10s ease-in-out infinite;
}
.scn-stevinus-book-ordered .candle {
  position: absolute; bottom: 45%; left: 48%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #8a7030 100%);
  border-radius: 2px 2px 0 0;
  animation: sb-candle 3s ease-in-out infinite alternate;
}
.scn-stevinus-book-ordered .candle-glow {
  position: absolute; bottom: 46%; left: 46%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffc080 0%, #ffa060 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: sb-glow 2s ease-in-out infinite alternate;
}
.scn-stevinus-book-ordered .shadow {
  position: absolute; bottom: 20%; left: 30%; right: 20%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%);
  animation: sb-shadow 8s ease-in-out infinite alternate;
}
@keyframes sb-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes sb-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sb-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sb-book { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes sb-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(.95) } }
@keyframes sb-glow { 0% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .7; transform: scale(.9) } }
@keyframes sb-shadow { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .4 } }

.scn-sailing-chariot {
  background: linear-gradient(180deg, #b06030 0%, #c08040 30%, #402010 80%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 100%, #d08050 0%, transparent 70%);
}
.scn-sailing-chariot .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e08040 0%, #c06830 40%, #904020 60%);
  animation: sc-sky 20s ease-in-out infinite alternate;
}
.scn-sailing-chariot .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a3050 0%, #102030 100%);
  animation: sc-sea 8s ease-in-out infinite alternate;
}
.scn-sailing-chariot .sand {
  position: absolute; bottom: 20%; left: 5%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 30% 70% 0 0 / 50% 30% 0 0;
  animation: sc-sand 15s ease-in-out infinite;
}
.scn-sailing-chariot .chariot {
  position: absolute; bottom: 30%; left: 25%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
  animation: sc-chariot 12s ease-in-out infinite;
}
.scn-sailing-chariot .sail-fore {
  position: absolute; bottom: 50%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #e0d0b0 0%, #b09070 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom left;
  animation: sc-sail 6s ease-in-out infinite alternate;
}
.scn-sailing-chariot .sail-aft {
  position: absolute; bottom: 55%; left: 20%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom left;
  animation: sc-sail 6s ease-in-out infinite alternate-reverse;
}
.scn-sailing-chariot .fire {
  position: absolute; bottom: 28%; left: 65%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, #ffc040 0%, #c06020 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: sc-fire 1.5s ease-in-out infinite alternate;
}
.scn-sailing-chariot .fire-glow {
  position: absolute; bottom: 24%; left: 58%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, #ffa040 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sc-fireglow 3s ease-in-out infinite alternate;
}
@keyframes sc-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes sc-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes sc-sand { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sc-chariot { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-4px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes sc-sail { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(5deg) scaleX(1.1) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes sc-fire { 0% { opacity: .7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.2) } 100% { opacity: .6; transform: scaleY(.8) } }
@keyframes sc-fireglow { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .8; transform: scale(1.3) } 100% { opacity: .6; transform: scale(.9) } }

.scn-father-trade-argument {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 50%, #0a0502 100%),
              radial-gradient(ellipse at 40% 60%, #c06030 0%, transparent 60%);
}
.scn-father-trade-argument .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%);
  animation: ft-room 12s ease-in-out infinite alternate;
}
.scn-father-trade-argument .desk {
  position: absolute; bottom: 20%; left: 10%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 -2px 8px rgba(0,0,0,.6);
  animation: ft-desk 6s ease-in-out infinite alternate;
}
.scn-father-trade-argument .father-standing {
  position: absolute; bottom: 30%; left: 12%; width: 55px; height: 90px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ft-father 8s ease-in-out infinite;
}
.scn-father-trade-argument .uncle-seated {
  position: absolute; bottom: 28%; right: 15%; width: 60px; height: 65px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ft-uncle 6s ease-in-out infinite alternate;
}
.scn-father-trade-argument .gesture-arm {
  position: absolute; bottom: 60%; left: 22%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #3a2010 0%, #1a0a00 100%);
  border-radius: 4px;
  transform-origin: 0% 50%;
  animation: ft-arm 4s ease-in-out infinite;
}
.scn-father-trade-argument .candle {
  position: absolute; bottom: 48%; left: 38%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e0b060 0%, #8a6020 100%);
  border-radius: 2px 2px 0 0;
  animation: ft-candle 2s ease-in-out infinite alternate;
}
.scn-father-trade-argument .candle-light {
  position: absolute; bottom: 48%; left: 34%; width: 50px; height: 40px;
  background: radial-gradient(circle, #ffb070 0%, #ff8040 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ft-light 3s ease-in-out infinite alternate;
}
.scn-father-trade-argument .papers {
  position: absolute; bottom: 28%; left: 40%; width: 50px; height: 10px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: ft-papers 5s ease-in-out infinite;
}
@keyframes ft-room { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ft-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ft-father { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(-3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ft-uncle { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ft-arm { 0% { transform: rotate(0) } 25% { transform: rotate(30deg) } 50% { transform: rotate(0) } 75% { transform: rotate(-20deg) } 100% { transform: rotate(0) } }
@keyframes ft-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.08) } 100% { transform: scaleY(.92) } }
@keyframes ft-light { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .9; transform: scale(1.2) } 100% { opacity: .6; transform: scale(.95) } }
@keyframes ft-papers { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-3px) } 100% { transform: rotate(-10deg) translateY(0) } }

.scn-sermon-discovered {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 40%, #0a0502 100%),
              radial-gradient(ellipse at 50% 20%, #c06030 0%, transparent 60%);
}
.scn-sermon-discovered .room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%);
  animation: sd-room 10s ease-in-out infinite alternate;
}
.scn-sermon-discovered .doorway {
  position: absolute; bottom: 15%; right: 10%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0604 100%);
  border: 2px solid #5a3a20;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: sd-door 6s ease-in-out infinite alternate;
}
.scn-sermon-discovered .trim-figure {
  position: absolute; bottom: 20%; right: 18%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sd-trim 4s ease-in-out infinite;
}
.scn-sermon-discovered .book {
  position: absolute; bottom: 55%; right: 22%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 4px;
  transform: rotate(15deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.5);
  animation: sd-book 3s ease-in-out infinite alternate;
}
.scn-sermon-discovered .book-glow {
  position: absolute; bottom: 50%; right: 18%; width: 60px; height: 50px;
  background: radial-gradient(circle, #ffb070 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: sd-glow 2s ease-in-out infinite alternate;
}
.scn-sermon-discovered .lantern {
  position: absolute; bottom: 30%; left: 20%; width: 10px; height: 14px;
  background: radial-gradient(ellipse, #ffc040 0%, #c08020 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 20px 4px rgba(255,192,64,.6);
  animation: sd-lantern 5s ease-in-out infinite;
}
@keyframes sd-room { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes sd-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(1) } }
@keyframes sd-trim { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(5deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sd-book { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-4px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes sd-glow { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .9; transform: scale(1.3) } 100% { opacity: .6; transform: scale(.9) } }
@keyframes sd-lantern { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }

/* Scene: uncle-toby-interrupts-with-military-lesson */
.scn-uncle-toby-interrupts-with-military-lesson {
  background: 
    linear-gradient(180deg, #f5e8c8 0%, #d7b078 40%, #8b6b3a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-uncle-toby-interrupts-with-military-lesson .room-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c9a86a 0%, #8b6b3a 100%); opacity: 0.6;
}
.scn-uncle-toby-interrupts-with-military-lesson .table {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 8%;
  background: linear-gradient(180deg, #a87b4c 0%, #7a552a 100%);
  border-radius: 6px 6px 2px 2px; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ut-table 12s ease-in-out infinite alternate;
}
.scn-uncle-toby-interrupts-with-military-lesson .map {
  position: absolute; bottom: 28%; left: 25%; width: 50%; height: 14%;
  background: linear-gradient(135deg, #e8d9b0 0%, #b89c6a 50%, #d4bd8a 100%);
  border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.3), inset 0 0 20px rgba(255,215,0,0.15);
  animation: ut-map 20s infinite alternate;
}
.scn-uncle-toby-interrupts-with-military-lesson .candle-glow {
  position: absolute; bottom: 40%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 50%, transparent 70%);
  border-radius: 50%;
  animation: ut-glow 3s ease-in-out infinite alternate;
}
.scn-uncle-toby-interrupts-with-military-lesson .candle {
  position: absolute; bottom: 36%; left: 55%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #f0e0c0 0%, #a08050 100%);
  border-radius: 2px 2px 0 0; transform: translateX(-50%);
  box-shadow: 0 -4px 8px #ffa060;
  animation: ut-candle 4s infinite alternate;
}
.scn-uncle-toby-interrupts-with-military-lesson .figure-toby {
  position: absolute; bottom: 24%; left: 35%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ut-toby 6s ease-in-out infinite alternate;
}
.scn-uncle-toby-interrupts-with-military-lesson .figure-trim {
  position: absolute; bottom: 24%; left: 50%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ut-trim 6s 0.5s ease-in-out infinite alternate;
}
.scn-uncle-toby-interrupts-with-military-lesson .window-light {
  position: absolute; top: 10%; right: 10%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,230,0.25) 0%, transparent 70%);
  opacity: 0.5;
  animation: ut-window 14s ease-in-out infinite alternate;
}
@keyframes ut-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ut-map { 0% { transform: perspective(600px) rotateX(2deg); } 50% { transform: perspective(600px) rotateX(-1deg); } 100% { transform: perspective(600px) rotateX(0); } }
@keyframes ut-glow { 0% { opacity: 0.7; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.2); } }
@keyframes ut-candle { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95); } 100% { transform: translateX(-50%) scaleY(1.05); } }
@keyframes ut-toby { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ut-trim { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(-6px) rotate(1deg); } 75% { transform: translateX(-3px) rotate(0); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ut-window { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* Scene: tom-wins-widow */
.scn-tom-wins-widow {
  background:
    linear-gradient(180deg, #f0e0c8 0%, #d4b88a 40%, #a8845a 100%),
    radial-gradient(ellipse at 80% 60%, #fff0d0 0%, transparent 60%);
}
.scn-tom-wins-widow .kitchen-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d8b0 0%, #b89870 100%); opacity: 0.5;
}
.scn-tom-wins-widow .table {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(180deg, #c4a062 0%, #8c6e3a 100%);
  border-radius: 8px; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: tw-table 15s ease-in-out infinite alternate;
}
.scn-tom-wins-widow .sausage-ring {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 50px;
  border: 8px solid #b87878; border-radius: 50%; background: transparent;
  box-shadow: 0 0 0 2px #8b5e5e, 0 4px 8px rgba(0,0,0,0.2);
  animation: tw-ring 3s ease-in-out infinite alternate;
}
.scn-tom-wins-widow .bowl {
  position: absolute; bottom: 24%; left: 22%; width: 40px; height: 25px;
  background: radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, #c0a080 70%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.15);
  animation: tw-bowl 8s infinite alternate;
}
.scn-tom-wins-widow .widow {
  position: absolute; bottom: 25%; left: 15%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tw-widow 5s 0.2s ease-in-out infinite alternate;
}
.scn-tom-wins-widow .tom {
  position: absolute; bottom: 25%; left: 28%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tw-tom 5s ease-in-out infinite alternate;
}
.scn-tom-wins-widow .sausage-fill {
  position: absolute; bottom: 27%; left: 48%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #c06868 0%, #a04848 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: tw-fill 4s infinite alternate;
}
@keyframes tw-table { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes tw-ring { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(0.95) rotate(-3deg); } }
@keyframes tw-bowl { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes tw-widow { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(14px) rotate(-1deg); } 75% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes tw-tom { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-6px) rotate(-1deg); } 50% { transform: translateX(-12px) rotate(1deg); } 75% { transform: translateX(-6px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes tw-fill { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.2); } 100% { transform: scaleY(0.9); } }

/* Scene: comparison-of-women-to-artillery */
.scn-comparison-of-women-to-artillery {
  background:
    linear-gradient(180deg, #f5ecd0 0%, #d4c0a0 40%, #b09878 100%),
    radial-gradient(ellipse at 70% 50%, #fff8e8 0%, transparent 50%);
}
.scn-comparison-of-women-to-artillery .bg-room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d8c8a8 0%, #9a8060 100%); opacity: 0.4;
}
.scn-comparison-of-women-to-artillery .cannon-platform {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: cwa-platform 10s ease-in-out infinite alternate;
}
.scn-comparison-of-women-to-artillery .cannon {
  position: absolute; bottom: 30%; left: 25%; width: 40%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform-origin: left bottom;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: cwa-cannon 4s ease-in-out infinite alternate;
}
.scn-comparison-of-women-to-artillery .cannonball {
  position: absolute; bottom: 35%; left: 60%; width: 14px; height: 14px;
  background: radial-gradient(circle at 35% 35%, #6a5a4a, #2a1a0a 80%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cwa-ball 3s 0.5s linear infinite alternate;
}
.scn-comparison-of-women-to-artillery .target {
  position: absolute; bottom: 28%; left: 68%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0e8d0 0%, #c0a888 60%, #908070 100%);
  border: 3px solid #c09060; border-radius: 50%;
  animation: cwa-target 6s ease-in-out infinite alternate;
}
.scn-comparison-of-women-to-artillery .trim-fig {
  position: absolute; bottom: 20%; left: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwa-trim 5s ease-in-out infinite alternate;
}
.scn-comparison-of-women-to-artillery .toby-fig {
  position: absolute; bottom: 20%; left: 30%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwa-toby 5s 0.3s ease-in-out infinite alternate;
}
.scn-comparison-of-women-to-artillery .smoke {
  position: absolute; bottom: 38%; left: 55%; width: 20%; height: 20%;
  background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: cwa-smoke 8s ease-in-out infinite alternate;
}
@keyframes cwa-platform { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cwa-cannon { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-2deg); } }
@keyframes cwa-ball { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-8px); } 100% { transform: translateX(20px) translateY(-15px); } }
@keyframes cwa-target { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(0.95) rotate(-5deg); } }
@keyframes cwa-trim { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(12px) rotate(-1deg); } }
@keyframes cwa-toby { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-6px) rotate(-1deg); } 100% { transform: translateX(-12px) rotate(0); } }
@keyframes cwa-smoke { 0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 0.5; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(1); } }

/* Scene: march-down-avenue */
.scn-march-down-avenue {
  background:
    linear-gradient(180deg, #b8d8e8 0%, #f5e8c8 60%, #d4b88a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-march-down-avenue .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #b5d8e8 0%, #e8d8b0 100%);
  animation: mda-sky 20s ease-in-out infinite alternate;
}
.scn-march-down-avenue .ground {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.2);
  animation: mda-ground 15s ease-in-out infinite alternate;
}
.scn-march-down-avenue .tree-left {
  position: absolute; bottom: 30%; left: 5%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 30% 30% / 80% 70% 30% 20%;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
  animation: mda-tree-l 12s ease-in-out infinite alternate;
}
.scn-march-down-avenue .tree-right {
  position: absolute; bottom: 30%; right: 5%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%);
  border-radius: 40% 60% 30% 30% / 70% 80% 20% 30%;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.3);
  animation: mda-tree-r 14s ease-in-out infinite alternate;
}
.scn-march-down-avenue .sunbeam {
  position: absolute; top: 20%; left: 40%; width: 30%; height: 50%;
  background: linear-gradient(180deg, rgba(255,255,230,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  opacity: 0.4;
  animation: mda-sunbeam 8s ease-in-out infinite alternate;
}
.scn-march-down-avenue .figure-fwd {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mda-march-fwd 3s ease-in-out infinite;
}
.scn-march-down-avenue .figure-rear {
  position: absolute; bottom: 18%; left: 46%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mda-march-rear 3s 0.5s ease-in-out infinite;
}
.scn-march-down-avenue .shadow-long {
  position: absolute; bottom: 14%; left: 38%; width: 60px; height: 6px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: mda-shadow 6s ease-in-out infinite alternate;
}
@keyframes mda-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mda-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes mda-tree-l { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes mda-tree-r { 0% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 100% { transform: rotate(1deg); } }
@keyframes mda-sunbeam { 0% { opacity: 0.2; transform: skewX(-5deg); } 50% { opacity: 0.5; transform: skewX(5deg); } 100% { opacity: 0.3; transform: skewX(0); } }
@keyframes mda-march-fwd {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  25% { transform: translateX(6px) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(12px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(18px) translateY(-1px) rotate(3deg); }
  100% { transform: translateX(24px) translateY(0) rotate(0); }
}
@keyframes mda-march-rear {
  0% { transform: translateX(0) translateY(-2px) rotate(2deg); }
  25% { transform: translateX(6px) translateY(0) rotate(-2deg); }
  50% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
  75% { transform: translateX(18px) translateY(0) rotate(-3deg); }
  100% { transform: translateX(24px) translateY(-2px) rotate(0); }
}
@keyframes mda-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.3); } 100% { transform: scaleX(0.8); } }

/* ---------- shandean-system ---------- */
.scn-shandean-system {
  background: linear-gradient(180deg, #2c1100 0%, #1a0700 45%, #0d0300 100%),
              radial-gradient(ellipse at 50% 70%, #5c2a0a 0%, transparent 60%);
}
.scn-shandean-system .back-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2c1706 0%, #1a0a02 100%); 
  animation: ss-wall 20s ease-in-out infinite alternate;
}
.scn-shandean-system .hearth {
  position: absolute; bottom: 10%; left: 10%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: inset 0 10px 20px #00000055;
}
.scn-shandean-system .fire {
  position: absolute; bottom: 22%; left: 18%; width: 14%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #ffa030 0%, #ff6020 40%, #a02010 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%; filter: blur(4px);
  animation: ss-fire 3s ease-in-out infinite alternate;
}
.scn-shandean-system .chair {
  position: absolute; bottom: 10%; right: 20%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 8px 12px #00000066;
  animation: ss-chair 12s ease-in-out infinite;
}
.scn-shandean-system .figure {
  position: absolute; bottom: 15%; right: 25%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #1a0a02 0%, #0a0200 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ss-figure 9s ease-in-out infinite alternate;
}
.scn-shandean-system .book {
  position: absolute; bottom: 18%; right: 28%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #6a4020 0%, #4a2810 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 4px #00000055;
  animation: ss-book 7s ease-in-out infinite;
}
.scn-shandean-system .candle {
  position: absolute; bottom: 22%; left: 55%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 4px #ffd06080;
  animation: ss-candle 4s ease-in-out infinite alternate;
}
@keyframes ss-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ss-fire { 0% { transform: scaleY(1) translateY(0); opacity: 0.9 } 50% { transform: scaleY(1.12) translateY(-3px); opacity: 1 } 100% { transform: scaleY(0.95) translateY(2px); opacity: 0.85 } }
@keyframes ss-chair { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ss-figure { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ss-book { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(0.98) } }
@keyframes ss-candle { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 8px 2px #ffd06080 } 50% { transform: scaleY(1.2) scaleX(0.9); box-shadow: 0 0 16px 6px #ffe08090 } 100% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 8px 2px #ffd06080 } }

/* ---------- argumentum-fistulatorium ---------- */
.scn-argumentum-fistulatorium {
  background: linear-gradient(180deg, #3a1a0a 0%, #2a0e02 50%, #1a0500 100%),
              radial-gradient(ellipse at 50% 60%, #a04020 0%, transparent 70%);
}
.scn-argumentum-fistulatorium .room-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a0e02 0%, #1a0500 100%);
  animation: af-room 15s ease-in-out infinite alternate;
}
.scn-argumentum-fistulatorium .firelight {
  position: absolute; bottom: 30%; left: 5%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 30% 80%, #ee8822 0%, #cc4400 40%, transparent 100%);
  filter: blur(10px); opacity: 0.7;
  animation: af-firelight 4s ease-in-out infinite alternate;
}
.scn-argumentum-fistulatorium .toby-body {
  position: absolute; bottom: 12%; left: 35%; width: 28%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 6px 10px #00000066;
  transform-origin: bottom center;
  animation: af-body 5s ease-in-out infinite;
}
.scn-argumentum-fistulatorium .toby-head {
  position: absolute; bottom: 42%; left: 40%; width: 16%; height: 18%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 6px #00000055;
  animation: af-head 3s ease-in-out infinite alternate;
}
.scn-argumentum-fistulatorium .pipe {
  position: absolute; bottom: 44%; left: 48%; width: 20%; height: 4%;
  background: linear-gradient(90deg, #6a4020 0%, #8a6030 100%);
  border-radius: 40% 20% 20% 40%; transform-origin: right center;
  animation: af-pipe 2s ease-in-out infinite alternate;
}
.scn-argumentum-fistulatorium .smoke-1 {
  position: absolute; bottom: 55%; left: 52%; width: 10%; height: 10%;
  background: radial-gradient(circle, rgba(200,180,160,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: af-smoke-1 8s ease-out infinite;
}
.scn-argumentum-fistulatorium .smoke-2 {
  position: absolute; bottom: 58%; left: 56%; width: 8%; height: 8%;
  background: radial-gradient(circle, rgba(200,180,160,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: af-smoke-2 10s ease-out infinite 1s;
}
@keyframes af-room { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes af-firelight { 0% { transform: scale(0.95); opacity: 0.6 } 50% { transform: scale(1.1); opacity: 0.8 } 100% { transform: scale(1); opacity: 0.7 } }
@keyframes af-body { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes af-head { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes af-pipe { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(1.05) } 100% { transform: rotate(-5deg) scaleX(0.95) } }
@keyframes af-smoke-1 { 0% { transform: translateY(0) scale(0.5); opacity: 0.7 } 50% { transform: translateY(-30px) translateX(10px) scale(1.2); opacity: 0.3 } 100% { transform: translateY(-60px) translateX(20px) scale(1.5); opacity: 0 } }
@keyframes af-smoke-2 { 0% { transform: translateY(0) scale(0.5); opacity: 0.5 } 50% { transform: translateY(-25px) translateX(-10px) scale(1.1); opacity: 0.2 } 100% { transform: translateY(-50px) translateX(-20px) scale(1.4); opacity: 0 } }

/* ---------- digression-defense ---------- */
.scn-digression-defense {
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 40%, #080502 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-digression-defense .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%);
  animation: dd-wall 25s ease-in-out infinite alternate;
}
.scn-digression-defense .desk {
  position: absolute; bottom: 12%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 8px 12px #00000055;
  animation: dd-desk 14s ease-in-out infinite;
}
.scn-digression-defense .book-open {
  position: absolute; bottom: 25%; left: 30%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #5a3a1a 0%, #4a2a10 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px #00000044;
  transform-origin: bottom center;
  animation: dd-book 7s ease-in-out infinite alternate;
}
.scn-digression-defense .figure-bishop {
  position: absolute; bottom: 28%; left: 25%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #1a0a02 0%, #0a0200 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: dd-figure 10s ease-in-out infinite;
}
.scn-digression-defense .candle-stick {
  position: absolute; bottom: 30%; left: 60%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-digression-defense .candle-flame {
  position: absolute; bottom: 46%; left: 60%; width: 4%; height: 6%;
  background: radial-gradient(circle at 50% 80%, #ffc060 0%, #ee8020 50%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: dd-flame 2s ease-in-out infinite alternate;
}
.scn-digression-defense .page-curls {
  position: absolute; bottom: 30%; left: 35%; width: 6%; height: 6%;
  background: radial-gradient(ellipse at 50% 50%, #8a6a3a 0%, transparent 100%);
  border-radius: 50%;
  animation: dd-curl 6s ease-in-out infinite;
}
@keyframes dd-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes dd-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes dd-book { 0% { transform: scaleX(1) rotate(0deg) } 50% { transform: scaleX(1.05) rotate(1deg) } 100% { transform: scaleX(0.98) rotate(-1deg) } }
@keyframes dd-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes dd-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.9 } 50% { transform: scaleY(1.3) translateY(-2px); opacity: 1 } 100% { transform: scaleY(0.85) translateY(1px); opacity: 0.8 } }
@keyframes dd-curl { 0% { transform: translateX(0) scale(1) rotate(0deg) } 50% { transform: translateX(4px) scale(1.2) rotate(15deg) } 100% { transform: translateX(-2px) scale(0.9) rotate(-10deg) } }

/* ---------- momus-glass ---------- */
.scn-momus-glass {
  background: linear-gradient(180deg, #0a0806 0%, #14100c 40%, #1a1410 100%),
              radial-gradient(circle at 50% 40%, #2a1a0a 0%, transparent 70%);
}
.scn-momus-glass .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0806 0%, #1a1410 100%);
  animation: mg-bg 18s ease-in-out infinite alternate;
}
.scn-momus-glass .hand {
  position: absolute; bottom: 10%; left: 35%; width: 20%; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30%; box-shadow: 0 4px 6px #00000066;
  transform-origin: bottom center;
  animation: mg-hand 6s ease-in-out infinite;
}
.scn-momus-glass .glass-frame {
  position: absolute; bottom: 18%; left: 42%; width: 16%; height: 24%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 8px #00000044;
}
.scn-momus-glass .glass-face {
  position: absolute; bottom: 20%; left: 44%; width: 12%; height: 20%;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 0 4px #00000088;
  transform-origin: center;
  animation: mg-glass 8s ease-in-out infinite;
}
.scn-momus-glass .reflection {
  position: absolute; bottom: 24%; left: 46%; width: 8%; height: 12%;
  background: radial-gradient(ellipse at 30% 40%, rgba(200,200,255,0.5) 0%, transparent 100%);
  border-radius: 20%; filter: blur(3px);
  animation: mg-reflection 5s ease-in-out infinite alternate;
}
.scn-momus-glass .glow-spot {
  position: absolute; bottom: 26%; left: 48%; width: 6%; height: 6%;
  background: radial-gradient(circle, rgba(255,240,200,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: mg-glow 4s ease-in-out infinite alternate;
}
.scn-momus-glass .shadow-shape {
  position: absolute; bottom: 5%; left: 30%; width: 40%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #00000080 0%, transparent 100%);
  animation: mg-shadow 12s ease-in-out infinite;
}
@keyframes mg-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes mg-hand { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes mg-glass { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(3deg) scale(1.02) } 100% { transform: rotate(-2deg) scale(0.98) } }
@keyframes mg-reflection { 0% { transform: translate(0,0) scale(1); opacity: 0.4 } 50% { transform: translate(2px,-2px) scale(1.15); opacity: 0.7 } 100% { transform: translate(-1px,1px) scale(0.9); opacity: 0.3 } }
@keyframes mg-glow { 0% { transform: scale(1); opacity: 0.3 } 50% { transform: scale(1.4); opacity: 0.6 } 100% { transform: scale(0.8); opacity: 0.2 } }
@keyframes mg-shadow { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.2) scaleY(0.85) } 100% { transform: scaleX(0.9) scaleY(1.1) } }

.scn-uncle-toby-perfect-material {
  background:
    radial-gradient(ellipse at 50% 80%, #6a4020 0%, transparent 60%),
    linear-gradient(180deg, #2a1a10 0%, #3a2a1a 30%, #1a1008 100%);
}
.scn-uncle-toby-perfect-material .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2010 100%);
  animation: utp-wall 12s ease-in-out infinite alternate;
}
.scn-uncle-toby-perfect-material .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 0 0 4% 4%;
  animation: utp-floor 18s ease-in-out infinite alternate;
}
.scn-uncle-toby-perfect-material .fireplace {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 8px 16px #1a0e08;
  animation: utp-fireplace 8s ease-in-out infinite;
}
.scn-uncle-toby-perfect-material .hearth-glow {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #d08040 0%, #a06028 40%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(208,128,64,.6);
  animation: utp-glow 4s ease-in-out infinite alternate;
}
.scn-uncle-toby-perfect-material .mantle {
  position: absolute; bottom: calc(20% + 130px); left: 50%; width: 140px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #5a3a22 0%, #7a5030 50%, #5a3a22 100%);
  border-radius: 2px;
  animation: utp-mantle 10s ease-in-out infinite alternate;
}
.scn-uncle-toby-perfect-material .figure {
  position: absolute; bottom: 22%; left: 38%; width: 32px; height: 80px;
  background: linear-gradient(180deg, #1a1008 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: utp-figure 6s ease-in-out infinite;
}
.scn-uncle-toby-perfect-material .pipe {
  position: absolute; bottom: 28%; left: 42%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(30deg);
  animation: utp-pipe 4s ease-in-out infinite alternate;
}
.scn-uncle-toby-perfect-material .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, #0a0604 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: utp-shadow 6s ease-in-out infinite alternate;
}
@keyframes utp-wall    { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes utp-floor   { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes utp-fireplace { 0%,100% { transform: translateX(-50%); } 50% { transform: translateX(-50%) scale(1.02); } }
@keyframes utp-glow    { 0% { opacity: .6; transform: translateX(-50%) scaleY(1); } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.2); } 100% { opacity: .7; transform: translateX(-50%) scaleY(.95); } }
@keyframes utp-mantle  { 0% { box-shadow: inset 0 0 4px #1a0e08; } 50% { box-shadow: inset 0 0 8px #3a2010; } 100% { box-shadow: inset 0 0 2px #0e0602; } }
@keyframes utp-figure  { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes utp-pipe    { 0% { transform: rotate(25deg) scale(1); } 50% { transform: rotate(35deg) scale(1.05); } 100% { transform: rotate(28deg) scale(1); } }
@keyframes utp-shadow  { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .6; transform: scaleX(1.1); } 100% { opacity: .4; transform: scaleX(.95); } }

.scn-bridgets-information-plot {
  background:
    radial-gradient(ellipse at 40% 20%, #c08040 0%, transparent 50%),
    linear-gradient(180deg, #2a2018 0%, #1a1410 50%, #0e0a08 100%);
}
.scn-bridgets-information-plot .wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 100%);
  animation: bip-wall 10s ease-in-out infinite alternate;
}
.scn-bridgets-information-plot .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%);
  border-radius: 0 0 6% 6%;
  animation: bip-floor 14s ease-in-out infinite alternate;
}
.scn-bridgets-information-plot .door {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 12px #1a0e08, 2px 0 6px rgba(0,0,0,.4);
  animation: bip-door 8s ease-in-out infinite;
}
.scn-bridgets-information-plot .candle {
  position: absolute; bottom: 25%; left: 30%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0b060 0%, #a08040 100%);
  border-radius: 10%;
  box-shadow: 0 0 30px 10px #d0a050;
  animation: bip-candle 3s ease-in-out infinite alternate;
}
.scn-bridgets-information-plot .figure-bridget {
  position: absolute; bottom: 18%; left: 28%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bip-bridget 5s ease-in-out infinite;
}
.scn-bridgets-information-plot .figure-toby {
  position: absolute; bottom: 15%; left: 48%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bip-toby 7s ease-in-out infinite;
}
.scn-bridgets-information-plot .keyhole {
  position: absolute; bottom: 40%; left: 43%; width: 6px; height: 10px;
  background: #1a0e08;
  border: 2px solid #5a3a22;
  border-radius: 30%;
  animation: bip-keyhole 4s ease-in-out infinite alternate;
}
.scn-bridgets-information-plot .shadow {
  position: absolute; bottom: 15%; left: 20%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, #0a0604 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: bip-shadow 6s ease-in-out infinite alternate;
}
@keyframes bip-wall    { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes bip-floor   { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes bip-door    { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes bip-candle  { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .8; transform: scale(.95); } }
@keyframes bip-bridget { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-2deg); } 75% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bip-toby    { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(-6px) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bip-keyhole { 0% { box-shadow: inset 0 0 2px #c08040; } 50% { box-shadow: inset 0 0 6px #e0a050; } 100% { box-shadow: inset 0 0 2px #806030; } }
@keyframes bip-shadow  { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .5; transform: scaleX(1.2); } 100% { opacity: .4; transform: scaleX(.9); } }

.scn-wadman-plays-cards {
  background:
    radial-gradient(ellipse at 50% 60%, #906030 0%, transparent 60%),
    linear-gradient(180deg, #3a2a1e 0%, #2a1a12 40%, #1a100a 100%);
}
.scn-wadman-plays-cards .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  animation: wpc-wall 12s ease-in-out infinite alternate;
}
.scn-wadman-plays-cards .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 0 0 5% 5%;
  animation: wpc-floor 16s ease-in-out infinite alternate;
}
.scn-wadman-plays-cards .table {
  position: absolute; bottom: 25%; left: 50%; width: 140px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: wpc-table 8s ease-in-out infinite;
}
.scn-wadman-plays-cards .candle {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0c060 0%, #c09040 100%);
  border-radius: 10%;
  box-shadow: 0 0 40px 15px #d0a050;
  animation: wpc-candle 3s ease-in-out infinite alternate;
}
.scn-wadman-plays-cards .figure-wadman {
  position: absolute; bottom: 28%; left: 30%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wpc-wadman 5s ease-in-out infinite;
}
.scn-wadman-plays-cards .figure-toby {
  position: absolute; bottom: 28%; left: 62%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wpc-toby 7s ease-in-out infinite;
}
.scn-wadman-plays-cards .card {
  position: absolute; bottom: 35%; left: 48%; width: 18px; height: 24px;
  background: linear-gradient(135deg, #e8e0d0 0%, #b8b0a0 100%);
  border-radius: 6%;
  transform: rotate(-10deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,.3);
  animation: wpc-card 4s ease-in-out infinite alternate;
}
.scn-wadman-plays-cards .shadow {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 24px;
  background: radial-gradient(ellipse, #0a0604 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  animation: wpc-shadow 6s ease-in-out infinite alternate;
}
@keyframes wpc-wall    { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes wpc-floor   { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes wpc-table   { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } }
@keyframes wpc-candle  { 0% { opacity: .7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.15); } 100% { opacity: .8; transform: translateX(-50%) scale(.95); } }
@keyframes wpc-wadman { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes wpc-toby    { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(-6px) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes wpc-card    { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.05); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes wpc-shadow  { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .6; transform: scaleX(1.1); } 100% { opacity: .4; transform: scaleX(.9); } }

.scn-narrator-approaches-difficult-description {
  background:
    radial-gradient(ellipse at 50% 40%, #805030 0%, transparent 70%),
    linear-gradient(180deg, #2a1a12 0%, #1a0e08 50%, #0e0602 100%);
}
.scn-narrator-approaches-difficult-description .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  animation: ndd-wall 14s ease-in-out infinite alternate;
}
.scn-narrator-approaches-difficult-description .desk {
  position: absolute; bottom: 30%; left: 50%; width: 160px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: ndd-desk 10s ease-in-out infinite;
}
.scn-narrator-approaches-difficult-description .candle {
  position: absolute; bottom: 48%; left: 50%; width: 8px; height: 36px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8b050 0%, #b08030 100%);
  border-radius: 10%;
  box-shadow: 0 0 50px 20px #c09040, 0 0 80px 30px rgba(192,144,64,.4);
  animation: ndd-candle 3s ease-in-out infinite alternate;
}
.scn-narrator-approaches-difficult-description .quill {
  position: absolute; bottom: 38%; left: 52%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #e8e0d0 0%, #b0a898 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(-20deg);
  animation: ndd-quill 4s ease-in-out infinite alternate;
}
.scn-narrator-approaches-difficult-description .hand {
  position: absolute; bottom: 38%; left: 44%; width: 24px; height: 32px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ndd-hand 5s ease-in-out infinite;
}
.scn-narrator-approaches-difficult-description .paper {
  position: absolute; bottom: 34%; left: 50%; width: 60px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #e8e0d0 0%, #c8c0b0 100%);
  border-radius: 4%;
  box-shadow: 1px 1px 4px rgba(0,0,0,.3);
  animation: ndd-paper 6s ease-in-out infinite alternate;
}
.scn-narrator-approaches-difficult-description .shadow {
  position: absolute; bottom: 30%; left: 30%; width: 140px; height: 30px;
  background: radial-gradient(ellipse, #0a0604 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ndd-shadow 8s ease-in-out infinite alternate;
}
.scn-narrator-approaches-difficult-description .figure {
  position: absolute; bottom: 32%; left: 35%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1008 0%, #0e0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ndd-figure 7s ease-in-out infinite;
}
@keyframes ndd-wall    { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes ndd-desk   { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01); } }
@keyframes ndd-candle { 0% { opacity: .6; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: .7; transform: translateX(-50%) scale(.95); } }
@keyframes ndd-quill   { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-15deg) scale(1.05); } 100% { transform: rotate(-25deg) scale(1); } }
@keyframes ndd-hand    { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(4px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ndd-paper   { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ndd-shadow  { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .6; transform: scaleX(1.1); } 100% { opacity: .4; transform: scaleX(.9); } }
@keyframes ndd-figure  { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(4px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-dialectick-induction {
  background: linear-gradient(180deg, #fef9e6 0%, #f8e8c8 40%, #d4b88a 100%),
    radial-gradient(ellipse at 70% 20%, rgba(255,235,180,0.4) 0%, transparent 60%);
}
.scn-dialectick-induction .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f8e8c8 0%, #e8d4a8 100%);
  animation: di-bg 12s ease-in-out infinite alternate;
}
.scn-dialectick-induction .window {
  position: absolute; top: 8%; left: 12%; width: 120px; height: 180px;
  background: linear-gradient(180deg, #fef9e6 0%, #ffe8a0 60%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.6);
  animation: di-window 6s ease-in-out infinite alternate;
}
.scn-dialectick-induction .desk {
  position: absolute; bottom: 15%; left: 35%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #8b6b4f 0%, #5a3a2a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: di-desk 8s ease-in-out infinite;
}
.scn-dialectick-induction .book {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #c4a57b 0%, #a0805a 50%, #7a603a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: di-book 4s ease-in-out infinite;
}
.scn-dialectick-induction .candle {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #e8d4a8 0%, #c4a57b 100%);
  border-radius: 2px 2px 4px 4px; transform-origin: bottom center;
  animation: di-candle 3s ease-in-out infinite alternate;
}
.scn-dialectick-induction .candle::before {
  content: ''; position: absolute; top: -8px; left: -4px;
  width: 16px; height: 16px; border-radius: 50%;
  background: radial-gradient(circle, #ffd680 0%, #ffa040 60%);
  box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 16px rgba(255,160,64,0.3);
  animation: di-flame 1s ease-in-out infinite alternate;
}
.scn-dialectick-induction .hand {
  position: absolute; bottom: 28%; left: 38%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #e8c8a0 0%, #c4a57b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: di-hand 5s ease-in-out infinite;
}
.scn-dialectick-induction .light-shaft {
  position: absolute; top: 0; left: 10%; width: 140px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.15) 0%, transparent 100%);
  filter: blur(8px); animation: di-shaft 10s ease-in-out infinite alternate;
}

@keyframes di-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes di-window { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes di-desk { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes di-book { 0%, 100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes di-candle { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes di-flame { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } 100% { transform: scaleY(0.9) } }
@keyframes di-hand { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(6px) rotate(0deg) } 50% { transform: translateX(12px) rotate(5deg) } 75% { transform: translateX(6px) rotate(0deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes di-shaft { 0% { opacity: .3; transform: translateX(-10px) } 50% { opacity: .6; transform: translateX(10px) } 100% { opacity: .4; transform: translateX(-5px) } }

/* ---------- statesman-painter-mistake ---------- */
.scn-statesman-painter-mistake {
  background: linear-gradient(180deg, #f0e6d0 0%, #d8c8a8 40%, #b8a080 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,220,160,0.3) 0%, transparent 60%);
}
.scn-statesman-painter-mistake .column {
  position: absolute; left: 8%; top: 0; bottom: 0; width: 40px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c4a87a 100%);
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.1);
  animation: sp-column 20s linear infinite;
}
.scn-statesman-painter-mistake .wheel {
  position: absolute; bottom: 10%; left: 25%; width: 80px; height: 80px;
  border-radius: 50%; background: radial-gradient(circle, #8b6b4f 0%, #5a3a2a 100%);
  box-shadow: inset 0 0 12px rgba(0,0,0,0.5);
  animation: sp-wheel 4s linear infinite;
}
.scn-statesman-painter-mistake .statesman {
  position: absolute; bottom: 15%; left: 22%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp-statesman 3s ease-in-out infinite alternate;
}
.scn-statesman-painter-mistake .painter {
  position: absolute; bottom: 20%; right: 15%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sp-painter 5s ease-in-out infinite;
}
.scn-statesman-painter-mistake .easel {
  position: absolute; bottom: 18%; right: 12%; width: 60px; height: 8px;
  background: #3a2a1a; border-radius: 2px;
  animation: sp-easel 6s ease-in-out infinite;
}
.scn-statesman-painter-mistake .canvas {
  position: absolute; bottom: 20%; right: 10%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #f8e8c8 0%, #d8c8a8 100%);
  border: 2px solid #8b6b4f;
  animation: sp-canvas 7s ease-in-out infinite;
}
.scn-statesman-painter-mistake .scroll {
  position: absolute; bottom: 12%; right: 10%; width: 20px; height: 40px;
  background: #c4a57b; border-radius: 2px;
  animation: sp-scroll 4s ease-in-out infinite alternate;
}

@keyframes sp-column { 0% { opacity: .9; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-2px) } 100% { opacity: .85; transform: translateY(0) } }
@keyframes sp-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes sp-statesman { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(8px) rotate(5deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes sp-painter { 0%, 100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes sp-easel { 0%, 100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes sp-canvas { 0%, 100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes sp-scroll { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(-4px) } }

/* ---------- lawyers-wrong-case ---------- */
.scn-lawyers-wrong-case {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a89070 100%),
    radial-gradient(ellipse at 50% 20%, rgba(200,180,140,0.3) 0%, transparent 50%);
}
.scn-lawyers-wrong-case .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a080 100%);
  animation: lw-hall 15s ease-in-out infinite alternate;
}
.scn-lawyers-wrong-case .door-left {
  position: absolute; bottom: 0; left: 15%; width: 100px; height: 200px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 0 12px rgba(0,0,0,0.3);
  animation: lw-door-left 8s ease-in-out infinite alternate;
}
.scn-lawyers-wrong-case .door-right {
  position: absolute; bottom: 0; right: 15%; width: 100px; height: 200px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 0 12px rgba(0,0,0,0.3);
  animation: lw-door-right 8s ease-in-out infinite alternate;
}
.scn-lawyers-wrong-case .lawyer-1 {
  position: absolute; bottom: 10%; left: 30%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lw-lawyer1 3s ease-in-out infinite;
}
.scn-lawyers-wrong-case .lawyer-2 {
  position: absolute; bottom: 10%; right: 30%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lw-lawyer2 3s ease-in-out infinite 1.5s;
}
.scn-lawyers-wrong-case .document {
  position: absolute; bottom: 25%; left: 42%; width: 40px; height: 50px;
  background: #f0e6d0; border: 1px solid #8b6b4f;
  animation: lw-document 2s ease-in-out infinite alternate;
}
.scn-lawyers-wrong-case .gavel {
  position: absolute; bottom: 8%; left: 48%; width: 20px; height: 20px;
  background: #5a3a2a; border-radius: 4px;
  animation: lw-gavel 4s ease-in-out infinite;
}
.scn-lawyers-wrong-case .path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 100%);
  animation: lw-path 12s linear infinite;
}

@keyframes lw-hall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes lw-door-left { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(10deg) } 100% { transform: rotateY(0deg) } }
@keyframes lw-door-right { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(-10deg) } 100% { transform: rotateY(0deg) } }
@keyframes lw-lawyer1 { 0%, 100% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(10px) rotate(5deg) } }
@keyframes lw-lawyer2 { 0%, 100% { transform: translateX(0) rotate(5deg) } 50% { transform: translateX(-10px) rotate(-5deg) } }
@keyframes lw-document { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(6px) rotate(3deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes lw-gavel { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes lw-path { 0% { background-position: 0 0 } 100% { background-position: 200px 0 } }

/* ---------- clergy-missed ---------- */
.scn-clergy-missed {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 40%, #06060a 100%),
    radial-gradient(ellipse at 50% 60%, rgba(60,40,80,0.3) 0%, transparent 60%);
}
.scn-clergy-missed .church-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #16202e 0%, #0a0e14 100%);
  animation: cm-bg 20s ease-in-out infinite alternate;
}
.scn-clergy-missed .pillar {
  position: absolute; top: 0; bottom: 40%; left: 20%; width: 20px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  box-shadow: 0 0 10px rgba(0,0,0,0.4);
  animation: cm-pillar 14s ease-in-out infinite;
}
.scn-clergy-missed .pulpit {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 4px; transform: translateX(-50%);
  box-shadow: 0 0 12px rgba(0,0,0,0.6);
  animation: cm-pulpit 10s ease-in-out infinite;
}
.scn-clergy-missed .clergy {
  position: absolute; bottom: 25%; left: 42%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cm-clergy 5s ease-in-out infinite;
}
.scn-clergy-missed .candle {
  position: absolute; bottom: 40%; left: 48%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #c8a878 0%, #8a6a4a 100%);
  border-radius: 2px;
  animation: cm-candle 3s ease-in-out infinite alternate;
}
.scn-clergy-missed .candle::before {
  content: ''; position: absolute; top: -10px; left: -4px;
  width: 14px; height: 14px; border-radius: 50%;
  background: radial-gradient(circle, #ffd680 0%, #b08040 60%);
  box-shadow: 0 0 16px 6px #b08040;
  animation: cm-flame 1.5s ease-in-out infinite alternate;
}
.scn-clergy-missed .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: cm-shadow 8s ease-in-out infinite;
}
.scn-clergy-missed .book {
  position: absolute; bottom: 32%; left: 48%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: cm-book 6s ease-in-out infinite;
}
.scn-clergy-missed .shudder {
  position: absolute; inset: 0;
  background: rgba(0,0,0,0.05);
  animation: cm-shudder 0.5s ease-in-out infinite;
}

@keyframes cm-bg { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes cm-pillar { 0%, 100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes cm-pulpit { 0%, 100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes cm-clergy { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes cm-candle { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes cm-flame { 0% { transform: scaleY(.9); opacity: .8 } 50% { transform: scaleY(1.3); opacity: 1 } 100% { transform: scaleY(1); opacity: .9 } }
@keyframes cm-shadow { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .5 } }
@keyframes cm-book { 0%, 100% { transform: rotate(-4deg) } 50% { transform: rotate(4deg) } }
@keyframes cm-shudder { 0% { transform: translate(-1px, -1px) } 25% { transform: translate(1px, 1px) } 50% { transform: translate(-1px, 0) } 75% { transform: translate(1px, -1px) } 100% { transform: translate(0, 0) } }

.scn-sermon-finish { background: linear-gradient(180deg, #2a1610 0%, #4a2218 40%, #6b3018 70%, #8a4220 100%), radial-gradient(ellipse at 60% 80%, #b85a30 0%, transparent 60%); }
.scn-sermon-finish .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 80% 70%, #4a2218 0%, transparent 70%); animation: sf-pulse 5s ease-in-out infinite alternate; }
.scn-sermon-finish .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a1a10 0%, #1a0a05 100%); border-radius: 30% 70% 0 0 / 60% 90% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: sf-floor 8s ease-in-out infinite; }
.scn-sermon-finish .figure { position:absolute; bottom:18%; left:35%; width:120px; height:50px; background: linear-gradient(180deg, #5a2a1a 0%, #3a1810 100%); border-radius: 40% 40% 20% 20% / 80% 80% 50% 50%; transform-origin: center bottom; animation: sf-figure 6s ease-in-out infinite; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-sermon-finish .bonds { position:absolute; bottom:24%; left:38%; width:80px; height:4px; background: #8a5a3a; border-radius: 2px; animation: sf-bond 4s ease-in-out infinite; }
.scn-sermon-finish .bonds::after { content:''; position:absolute; top:8px; left:0; width:100%; height:4px; background: #8a5a3a; border-radius: 2px; }
.scn-sermon-finish .fire { position:absolute; bottom:26%; right:20%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, #ff7a30 0%, #c84a20 40%, transparent 70%); border-radius: 50% 50% 30% 30% / 80% 80% 50% 50%; animation: sf-fire 1.2s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-sermon-finish .glow { position:absolute; bottom:22%; right:15%; width:80px; height:80px; background: radial-gradient(circle, #f09040 0%, #b85a30 30%, transparent 60%); border-radius: 50%; animation: sf-glow 3s ease-in-out infinite; filter: blur(10px); }
.scn-sermon-finish .shadow { position:absolute; bottom:16%; left:30%; width:130px; height:20px; background: radial-gradient(ellipse, #1a0a05 0%, transparent 70%); border-radius: 50%; animation: sf-shadow 8s ease-in-out infinite; }
@keyframes sf-pulse { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sf-floor { 0% { transform: translateY(0) } 33% { transform: translateY(-2px) } 66% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes sf-figure { 0% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(3deg) translateY(-3px) } 50% { transform: rotate(-1deg) translateY(0) } 75% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes sf-bond { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes sf-fire { 0% { transform: scaleY(1) scaleX(.8); opacity:.9 } 50% { transform: scaleY(1.3) scaleX(1); opacity:1 } 100% { transform: scaleY(.9) scaleX(.85); opacity:.8 } }
@keyframes sf-glow { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(1); opacity:.7 } }
@keyframes sf-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(.9) } 100% { transform: scaleX(1) } }

.scn-sermon-rules { background: linear-gradient(180deg, #3a2015 0%, #603018 40%, #8a4220 70%, #b85a30 100%), radial-gradient(ellipse at 30% 20%, #c86a38 0%, transparent 60%); }
.scn-sermon-rules .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 80%, #4a2210 0%, transparent 60%); animation: sr-pulse 6s ease-in-out infinite alternate; }
.scn-sermon-rules .wall { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2015 100%); border-radius: 0 0 40% 40% / 0 0 30% 30%; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: sr-wall 12s ease-in-out infinite; }
.scn-sermon-rules .pulpit { position:absolute; bottom:25%; left:30%; width:60px; height:90px; background: linear-gradient(180deg, #6a3a1a 0%, #4a2210 100%); border-radius: 10% 10% 5% 5% / 40% 40% 20% 20%; transform-origin: bottom center; animation: sr-pulpit 10s ease-in-out infinite; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-sermon-rules .figure { position:absolute; bottom:22%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, #2a1610 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sr-figure 5s ease-in-out infinite; }
.scn-sermon-rules .arm { position:absolute; bottom:40%; left:52%; width:30px; height:8px; background: #2a1610; border-radius: 50% 30% 30% 50%; transform-origin: left center; animation: sr-arm 7s ease-in-out infinite; }
.scn-sermon-rules .firelight { position:absolute; bottom:30%; right:20%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 70%, #ff8a40 0%, #d06030 40%, transparent 70%); border-radius: 50% 50% 30% 30% / 80% 80% 50% 50%; animation: sr-firelight 1.5s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-sermon-rules .book { position:absolute; bottom:35%; left:25%; width:30px; height:20px; background: #4a2a15; border-radius: 2px; transform: rotate(-10deg); animation: sr-book 8s ease-in-out infinite; box-shadow: 2px 2px 4px rgba(0,0,0,.3); }
@keyframes sr-pulse { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sr-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes sr-pulpit { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sr-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes sr-arm { 0% { transform: rotate(-20deg) } 30% { transform: rotate(-10deg) } 60% { transform: rotate(-30deg) } 100% { transform: rotate(-20deg) } }
@keyframes sr-firelight { 0% { transform: scaleY(1) scaleX(.9); opacity:.85 } 50% { transform: scaleY(1.4) scaleX(1.1); opacity:1 } 100% { transform: scaleY(.9) scaleX(.95); opacity:.8 } }
@keyframes sr-book { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }

.scn-sermon-aftermath { background: linear-gradient(180deg, #3a1e12 0%, #5a2e18 40%, #7a3a20 70%, #a04e28 100%), radial-gradient(ellipse at 20% 30%, #b85a30 0%, transparent 60%); }
.scn-sermon-aftermath .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, #5a2e18 0%, transparent 70%); animation: sa-pulse 7s ease-in-out infinite alternate; }
.scn-sermon-aftermath .table { position:absolute; bottom:20%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, #4a2210 0%, #2a1208 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.4); animation: sa-table 9s ease-in-out infinite; }
.scn-sermon-aftermath .figure-left { position:absolute; bottom:22%; left:25%; width:35px; height:70px; background: linear-gradient(180deg, #2a1610 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sa-figure-l 5s ease-in-out infinite; }
.scn-sermon-aftermath .figure-right { position:absolute; bottom:22%; right:25%; width:35px; height:70px; background: linear-gradient(180deg, #3a1e12 0%, #221008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sa-figure-r 5s ease-in-out infinite 1s; }
.scn-sermon-aftermath .candle { position:absolute; bottom:32%; left:48%; width:10px; height:25px; background: linear-gradient(180deg, #d0a060 0%, #a07840 100%); border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sa-candle 8s ease-in-out infinite; }
.scn-sermon-aftermath .glow { position:absolute; bottom:28%; left:45%; width:50px; height:50px; background: radial-gradient(circle, #f0a050 0%, #c87038 30%, transparent 60%); border-radius: 50%; filter: blur(8px); animation: sa-glow 4s ease-in-out infinite alternate; }
.scn-sermon-aftermath .mug { position:absolute; bottom:24%; left:42%; width:16px; height:16px; background: #6a3a1a; border-radius: 10% 10% 20% 20%; transform: rotate(10deg); animation: sa-mug 10s ease-in-out infinite; box-shadow: 2px 2px 4px rgba(0,0,0,.3); }
@keyframes sa-pulse { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sa-table { 0% { transform: translateY(0) } 33% { transform: translateY(-1px) } 66% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes sa-figure-l { 0% { transform: rotate(-1deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(-1deg) translateY(0) } 75% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes sa-figure-r { 0% { transform: rotate(1deg) translateY(0) } 25% { transform: rotate(-2deg) translateY(-2px) } 50% { transform: rotate(1deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes sa-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes sa-glow { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.15); opacity:1 } 100% { transform: scale(1); opacity:.7 } }
@keyframes sa-mug { 0% { transform: rotate(10deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(10deg) } }

.scn-sermon-authorship { background: linear-gradient(180deg, #3a1e12 0%, #5a2e18 40%, #7a3a20 70%, #a04e28 100%), radial-gradient(ellipse at 80% 20%, #b85a30 0%, transparent 60%); }
.scn-sermon-authorship .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 60%, #5a2e18 0%, transparent 70%); animation: su-pulse 8s ease-in-out infinite alternate; }
.scn-sermon-authorship .desk { position:absolute; bottom:20%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #4a2210 0%, #2a1208 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.5); animation: su-desk 11s ease-in-out infinite; }
.scn-sermon-authorship .book-open { position:absolute; bottom:30%; left:40%; width:50px; height:35px; background: linear-gradient(90deg, #6a3a1a 0%, #8a4a2a 50%, #6a3a1a 100%); border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%; transform: rotate(-5deg); animation: su-book 9s ease-in-out infinite; box-shadow: 4px 4px 8px rgba(0,0,0,.4); }
.scn-sermon-authorship .figure-left { position:absolute; bottom:22%; left:22%; width:35px; height:70px; background: linear-gradient(180deg, #2a1610 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: su-figure-l 6s ease-in-out infinite; }
.scn-sermon-authorship .figure-right { position:absolute; bottom:22%; right:20%; width:40px; height:75px; background: linear-gradient(180deg, #3a1e12 0%, #221008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: su-figure-r 6s ease-in-out infinite 1s; }
.scn-sermon-authorship .lamp { position:absolute; bottom:30%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #d0a060 0%, #a07840 100%); border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%; transform-origin: bottom center; animation: su-lamp 7s ease-in-out infinite; }
.scn-sermon-authorship .glow { position:absolute; bottom:28%; left:28%; width:40px; height:40px; background: radial-gradient(circle, #f0a050 0%, #c87038 30%, transparent 60%); border-radius: 50%; filter: blur(8px); animation: su-glow 4s ease-in-out infinite alternate; }
.scn-sermon-authorship .papers { position:absolute; bottom:24%; left:45%; width:30px; height:20px; background: #8a6a4a; border-radius: 2px; transform: rotate(10deg); animation: su-papers 10s ease-in-out infinite; box-shadow: 1px 1px 3px rgba(0,0,0,.2); }
@keyframes su-pulse { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes su-desk { 0% { transform: translateY(0) } 33% { transform: translateY(-1px) } 66% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes su-book { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }
@keyframes su-figure-l { 0% { transform: rotate(-1deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(-1deg) translateY(0) } 75% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes su-figure-r { 0% { transform: rotate(1deg) translateY(0) } 25% { transform: rotate(-2deg) translateY(-2px) } 50% { transform: rotate(1deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes su-lamp { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes su-glow { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.15); opacity:1 } 100% { transform: scale(1); opacity:.7 } }
@keyframes su-papers { 0% { transform: rotate(10deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(10deg) } }

.scn-uncle-toby-takes-love-like-lamb {
  background:
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #2a1f14 0%, #1f1510 40%, #3a2818 70%, #4a3520 100%);
}
.scn-uncle-toby-takes-love-like-lamb .chamber-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a1e14 0%, #3a2818 30%, #2a1e14 100%); animation: ul1-wall 20s ease-in-out infinite alternate; }
.scn-uncle-toby-takes-love-like-lamb .chamber-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2818 0%, #1f1510 100%); border-radius: 60% 60% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-uncle-toby-takes-love-like-lamb .dim-window { position:absolute; top:20%; left:12%; width:60px; height:80px; background: radial-gradient(ellipse at center, #5a4a30 0%, #2a1e14 80%); border: 4px solid #1f1510; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6); opacity:.6; animation: ul1-window 8s ease-in-out infinite alternate; }
.scn-uncle-toby-takes-love-like-lamb .armchair { position:absolute; bottom:25%; left:30%; width:70px; height:60px; background: linear-gradient(180deg, #3a2818 0%, #1f1510 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.5); transform: scale(1.05); animation: ul1-chair 6s ease-in-out infinite; }
.scn-uncle-toby-takes-love-like-lamb .figure-toby { position:absolute; bottom:25%; left:33%; width:24px; height:50px; background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; transform-origin: bottom center; transform: scale(.95); animation: ul1-figure 8s ease-in-out infinite; }
.scn-uncle-toby-takes-love-like-lamb .candle-table { position:absolute; bottom:28%; right:25%; width:36px; height:12px; background: linear-gradient(90deg, #2a1e14 0%, #3a2818 50%, #2a1e14 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-uncle-toby-takes-love-like-lamb .candle-flame { position:absolute; bottom:35%; right:29%; width:6px; height:10px; background: radial-gradient(circle at 50% 30%, #e8c080 0%, #c08040 60%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,.3); animation: ul1-candle 2s ease-in-out infinite alternate; }
.scn-uncle-toby-takes-love-like-lamb .shadow-pool { position:absolute; bottom:0; left:10%; width:80%; height:35%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%); animation: ul1-shadow 10s ease-in-out infinite alternate; }
@keyframes ul1-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ul1-window { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.02) } 100% { opacity:.5; transform: scaleY(1) } }
@keyframes ul1-chair { 0%,100% { transform: translateY(0) scale(1.05) } 50% { transform: translateY(-2px) scale(1.06) } }
@keyframes ul1-figure { 0% { transform: translateY(0) rotate(-1deg) scale(.95) } 30% { transform: translateY(1px) rotate(0) scale(.94) } 60% { transform: translateY(0) rotate(1deg) scale(.95) } 100% { transform: translateY(0) rotate(-.5deg) scale(.95) } }
@keyframes ul1-candle { 0% { transform: scaleY(1) scaleX(1); opacity:.7 } 50% { transform: scaleY(1.15) scaleX(.9); opacity:1 } 100% { transform: scaleY(.95) scaleX(1.05); opacity:.8 } }
@keyframes ul1-shadow { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.05) } 100% { opacity:.55; transform: scaleY(1) } }

.scn-uncle-tobys-mistake-in-love-symptom {
  background:
    radial-gradient(ellipse at 80% 30%, #f0e8c8 0%, transparent 50%),
    linear-gradient(180deg, #87c4e8 0%, #b8d8f0 30%, #e0f0d0 60%, #90b870 100%);
}
.scn-uncle-tobys-mistake-in-love-symptom .sun-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6ab0d8 0%, #a0d0f0 40%, #d0e8f8 100%); animation: ul2-sky 15s ease-in-out infinite alternate; }
.scn-uncle-tobys-mistake-in-love-symptom .field-green { position:absolute; bottom:20%; left:-10%; right:-10%; height:50%; background: linear-gradient(180deg, #80a850 0%, #608030 40%, #406020 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; transform: scale(1.1); box-shadow: inset 0 -10px 30px rgba(0,0,0,.2); }
.scn-uncle-tobys-mistake-in-love-symptom .copse-trees { position:absolute; bottom:32%; right:8%; width:80px; height:70px; background: linear-gradient(180deg, #306020 0%, #205010 100%); border-radius: 60% 40% 40% 60% / 80% 70% 30% 40%; box-shadow: 0 4px 20px rgba(0,0,0,.3); animation: ul2-trees 20s ease-in-out infinite; }
.scn-uncle-tobys-mistake-in-love-symptom .horse-fore { position:absolute; bottom:25%; left:20%; width:40px; height:30px; background: linear-gradient(180deg, #604030 0%, #302018 100%); border-radius: 40% 30% 20% 20% / 50% 40% 20% 20%; animation: ul2-horse-f 6s ease-in-out infinite; }
.scn-uncle-tobys-mistake-in-love-symptom .horse-aft { position:absolute; bottom:24%; left:5%; width:36px; height:28px; background: linear-gradient(180deg, #504030 0%, #281810 100%); border-radius: 40% 30% 20% 20% / 50% 40% 20% 20%; animation: ul2-horse-a 7s ease-in-out infinite; }
.scn-uncle-tobys-mistake-in-love-symptom .rider-toby { position:absolute; bottom:38%; left:22%; width:14px; height:22px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); animation: ul2-rider-t 6s ease-in-out infinite; }
.scn-uncle-tobys-mistake-in-love-symptom .rider-father { position:absolute; bottom:36%; left:7%; width:16px; height:24px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(3deg); animation: ul2-rider-f 7s ease-in-out infinite; }
.scn-uncle-tobys-mistake-in-love-symptom .cloud-drift-a { position:absolute; top:10%; left:0; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.2) 100%); border-radius: 50%; filter: blur(8px); animation: ul2-cloud-a 40s linear infinite; }
.scn-uncle-tobys-mistake-in-love-symptom .cloud-drift-b { position:absolute; top:18%; right:0; width:70px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%); border-radius: 50%; filter: blur(6px); animation: ul2-cloud-b 55s linear infinite reverse; }
@keyframes ul2-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ul2-trees { 0%,100% { transform: rotate(0) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } }
@keyframes ul2-horse-f { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(4px) translateY(-2px) } 50% { transform: translateX(8px) translateY(0) } 75% { transform: translateX(4px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes ul2-horse-a { 0% { transform: translateX(0) translateY(0) scale(.95) } 25% { transform: translateX(3px) translateY(-1px) scale(.97) } 50% { transform: translateX(6px) translateY(0) scale(.95) } 75% { transform: translateX(3px) translateY(-1px) scale(.96) } 100% { transform: translateX(0) translateY(0) scale(.95) } }
@keyframes ul2-rider-t { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-2px) } }
@keyframes ul2-rider-f { 0%,100% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-1px) } }
@keyframes ul2-cloud-a { 0% { transform: translateX(-120px) } 100% { transform: translateX(120vw) } }
@keyframes ul2-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-printing-with-socrates {
  background:
    radial-gradient(ellipse at 40% 60%, #4a3a28 0%, transparent 60%),
    linear-gradient(180deg, #1f1510 0%, #2a1e14 30%, #3a2818 60%, #2a1e14 100%);
}
.scn-printing-with-socrates .shop-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #1f1510 0%, #2a1e14 20%, #1f1510 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-printing-with-socrates .shop-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2818 0%, #1f1510 100%); border-radius: 0 0 10% 10% / 0 0 20% 20%; }
.scn-printing-with-socrates .press-frame { position:absolute; bottom:25%; left:30%; width:60px; height:70px; background: linear-gradient(180deg, #402818 0%, #281810 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 16px rgba(0,0,0,.5); }
.scn-printing-with-socrates .press-arm { position:absolute; bottom:50%; left:32%; width:40px; height:10px; background: linear-gradient(90deg, #503820 0%, #281810 100%); border-radius: 4px; transform-origin: left center; animation: ps-arm 4s ease-in-out infinite; }
.scn-printing-with-socrates .socrates-bust { position:absolute; bottom:32%; left:58%; width:18px; height:28px; background: linear-gradient(180deg, #c8b090 0%, #a09070 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: ps-bust 12s ease-in-out infinite; }
.scn-printing-with-socrates .paper-sheet { position:absolute; bottom:28%; left:10%; width:30px; height:22px; background: linear-gradient(180deg, #e8e0c8 0%, #c8c0a0 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ps-paper 8s ease-in-out infinite; }
.scn-printing-with-socrates .ink-well { position:absolute; bottom:30%; left:42%; width:14px; height:10px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-printing-with-socrates .lantern-glow { position:absolute; top:18%; right:18%; width:12px; height:16px; background: radial-gradient(circle at 50% 30%, #d0a060 0%, #a08040 60%, transparent 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 0 24px 6px #a08040, 0 0 50px 14px rgba(160,128,64,.3); animation: ps-lantern 3s ease-in-out infinite alternate; }
@keyframes ps-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-20deg) } }
@keyframes ps-bust { 0%,100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes ps-paper { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(2px) translateY(-2px) rotate(2deg) } }
@keyframes ps-lantern { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.8; transform: scaleY(.95) } }

.scn-uncle-toby-ashamed-of-love-not {
  background:
    radial-gradient(ellipse at 70% 40%, #f0e0c0 0%, transparent 60%),
    linear-gradient(180deg, #c8b898 0%, #e0d0b8 30%, #f0e0c8 60%, #d0c0a0 100%);
}
.scn-uncle-toby-ashamed-of-love-not .parlour-wall { position:absolute; inset:0 0 28% 0; background: linear-gradient(90deg, #b8a888 0%, #d0c0a8 30%, #c8b898 100%); }
.scn-uncle-toby-ashamed-of-love-not .parlour-floor { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius: 40% 40% 0 0 / 15% 15% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.15); }
.scn-uncle-toby-ashamed-of-love-not .sunny-window { position:absolute; top:14%; right:12%; width:64px; height:80px; background: radial-gradient(ellipse at center, #f8f0e0 0%, #e8dcc8 80%); border: 6px solid #a89878; border-radius: 4px; box-shadow: inset 0 0 30px rgba(200,180,140,.4); animation: ua-window 10s ease-in-out infinite alternate; }
.scn-uncle-toby-ashamed-of-love-not .curtain-left { position:absolute; top:14%; right:calc(12% + 64px); width:18px; height:80px; background: linear-gradient(180deg, #c8a088 0%, #a08068 100%); border-radius: 0 20% 20% 0 / 0 30% 30% 0; transform-origin: top center; animation: ua-curtain-l 14s ease-in-out infinite; }
.scn-uncle-toby-ashamed-of-love-not .curtain-right { position:absolute; top:14%; right:12%; width:18px; height:80px; background: linear-gradient(180deg, #c8a088 0%, #a08068 100%); border-radius: 20% 0 0 20% / 30% 0 0 30%; transform-origin: top center; animation: ua-curtain-r 14s ease-in-out infinite reverse; }
.scn-uncle-toby-ashamed-of-love-not .figure-toby-stand { position:absolute; bottom:28%; left:28%; width:22px; height:50px; background: linear-gradient(180deg, #302a20 0%, #1a1610 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; transform-origin: bottom center; animation: ua-toby 6s ease-in-out infinite; }
.scn-uncle-toby-ashamed-of-love-not .figure-widow { position:absolute; bottom:28%; right:25%; width:20px; height:44px; background: linear-gradient(180deg, #604838 0%, #403020 100%); border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: ua-widow 8s ease-in-out infinite; }
.scn-uncle-toby-ashamed-of-love-not .tea-table { position:absolute; bottom:30%; left:44%; width:34px; height:6px; background: linear-gradient(90deg, #a09078 0%, #c8b898 50%, #a09078 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: ua-table 12s ease-in-out infinite; }
.scn-uncle-toby-ashamed-of-love-not .sun-beam { position:absolute; top:14%; right:15%; width:30px; height:60%; background: linear-gradient(180deg, rgba(255,248,230,.3) 0%, rgba(255,248,230,.05) 100%); transform: rotate(-8deg); transform-origin: top right; filter: blur(4px); animation: ua-beam 12s ease-in-out infinite alternate; }
@keyframes ua-window { 0% { opacity:.8; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.02) } 100% { opacity:.85; transform: scaleX(1) } }
@keyframes ua-curtain-l { 0%,100% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(4deg) scaleY(1.03) } }
@keyframes ua-curtain-r { 0%,100% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(-4deg) scaleY(1.03) } }
@keyframes ua-toby { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-1px) rotate(0) } 60% { transform: translateY(0) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ua-widow { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes ua-table { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.02) } }
@keyframes ua-beam { 0% { opacity:.3; transform: rotate(-10deg) scaleX(1) } 50% { opacity:.5; transform: rotate(-6deg) scaleX(1.1) } 100% { opacity:.35; transform: rotate(-8deg) scaleX(1) } }

.scn-yorick-inspired { background: linear-gradient(180deg, #e8dcc8 0%, #d6c8b0 100%), radial-gradient(ellipse at 50% 0%, #f0e8d0 0%, transparent 60%); }
.scn-yorick-inspired .wall   { position:absolute; inset:0; background: linear-gradient(90deg, #d6c8b0 0%, #e8dcc8 100%); animation: yo-wall 15s ease-in-out infinite; }
.scn-yorick-inspired .desk   { position:absolute; bottom:20%; left:30%; width:200px; height:80px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius:5px; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-yorick-inspired .father { position:absolute; bottom:28%; left:40%; width:60px; height:100px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: yo-father 5s ease-in-out infinite; }
.scn-yorick-inspired .papers { position:absolute; bottom:30%; left:35%; width:40px; height:30px; background: #f0e8d0; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: yo-papers 2s ease-in-out infinite; }
.scn-yorick-inspired .candle { position:absolute; bottom:32%; left:38%; width:10px; height:20px; background: linear-gradient(180deg, #f0c060 0%, #d0a030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 6px rgba(240,192,96,0.5); animation: yo-candle 3s ease-in-out infinite; }
.scn-yorick-inspired .shadow { position:absolute; bottom:0; left:30%; width:150px; height:40px; background: rgba(0,0,0,0.25); filter: blur(8px); transform-origin: bottom center; animation: yo-shadow 10s ease-in-out infinite; }
@keyframes yo-wall   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes yo-father { 0% { transform: rotate(-2deg) } 25% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes yo-papers { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-1px) rotate(0.5deg) } 60% { transform: translateY(1px) rotate(-0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes yo-candle { 0% { box-shadow: 0 0 10px 4px rgba(240,192,96,0.6); transform: scaleY(1) } 30% { box-shadow: 0 0 15px 6px rgba(240,192,96,0.8); transform: scaleY(0.95) } 60% { box-shadow: 0 0 12px 5px rgba(240,192,96,0.7); transform: scaleY(1.05) } 100% { box-shadow: 0 0 10px 4px rgba(240,192,96,0.6); transform: scaleY(1) } }
@keyframes yo-shadow { 0% { transform: skewX(5deg) } 50% { transform: skewX(-3deg) } 100% { transform: skewX(5deg) } }

.scn-trim-s-honour { background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); }
.scn-trim-s-honour .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b0a080 0%, #807060 100%); }
.scn-trim-s-honour .wall   { inset:0 0 30% 0; background: linear-gradient(180deg, #e0d0b0 0%, #f0e8d0 100%); animation: ts-wall 12s ease-in-out infinite; }
.scn-trim-s-honour .yorick { position:absolute; bottom:30%; left:35%; width:50px; height:90px; background: linear-gradient(180deg, #c05540 0%, #803020 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: ts-fig 4s ease-in-out infinite; }
.scn-trim-s-honour .trim   { position:absolute; bottom:30%; right:35%; width:50px; height:90px; background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: ts-fig 4s ease-in-out infinite reverse; }
.scn-trim-s-honour .hands  { position:absolute; bottom:40%; left:50%; width:20px; height:10px; transform: translateX(-50%); background: #8a7a5a; border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,0.2); animation: ts-hands 6s ease-in-out infinite; }
.scn-trim-s-honour .glow   { position:absolute; inset:0; background: radial-gradient(circle at 50% 40%, rgba(255,200,100,0.15) 0%, transparent 60%); animation: ts-glow 5s ease-in-out infinite; }
@keyframes ts-wall  { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes ts-fig   { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes ts-hands { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.1) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes ts-glow  { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

.scn-father-on-health { background: linear-gradient(180deg, #f5ecd0 0%, #e5d5b0 100%), radial-gradient(ellipse at 50% 30%, #fffae0 0%, transparent 50%); }
.scn-father-on-health .wall    { inset:0; background: linear-gradient(135deg, #e5d5b0 0%, #f5ecd0 100%); animation: fh-wall 20s ease-in-out infinite; }
.scn-father-on-health .table   { position:absolute; bottom:20%; left:30%; width:180px; height:60px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2); }
.scn-father-on-health .father  { position:absolute; bottom:25%; left:38%; width:50px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: fh-father 6s ease-in-out infinite; }
.scn-father-on-health .book    { position:absolute; bottom:28%; left:45%; width:40px; height:30px; background: #d0b080; border-radius: 2px; transform: rotate(-10deg); transform-origin: bottom left; animation: fh-book 8s ease-in-out infinite; }
.scn-father-on-health .window  { position:absolute; top:10%; right:15%; width:60px; height:80px; background: #a0c0d0; border-radius: 4px; border: 4px solid #6a5a4a; box-shadow: inset 0 0 10px rgba(255,255,255,0.3); animation: fh-window 15s ease-in-out infinite; }
.scn-father-on-health .sunbeam { position:absolute; top:10%; right:15%; width:60px; height:80px; background: linear-gradient(135deg, rgba(255,240,180,0.2) 0%, transparent 100%); filter: blur(8px); animation: fh-sunbeam 10s ease-in-out infinite; }
@keyframes fh-wall    { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes fh-father  { 0% { transform: rotate(-1deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-1deg) } }
@keyframes fh-book    { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-12deg) scale(1.02) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes fh-window  { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes fh-sunbeam { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }

.scn-father-reads-health { background: linear-gradient(180deg, #f5ecd0 0%, #e5d5b0 100%), radial-gradient(ellipse at 50% 30%, #fffae0 0%, transparent 50%); }
.scn-father-reads-health .wall   { inset:0; background: linear-gradient(135deg, #e5d5b0 0%, #f5ecd0 100%); animation: fr-wall 25s ease-in-out infinite; }
.scn-father-reads-health .table  { position:absolute; bottom:20%; left:30%; width:180px; height:60px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2); }
.scn-father-reads-health .father { position:absolute; bottom:25%; left:38%; width:50px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: fr-father 8s ease-in-out infinite; }
.scn-father-reads-health .book   { position:absolute; bottom:28%; left:45%; width:40px; height:30px; background: #d0b080; border-radius: 2px; transform: rotate(-10deg); transform-origin: bottom left; animation: fr-book 12s ease-in-out infinite; }
.scn-father-reads-health .hand   { position:absolute; bottom:30%; left:44%; width:12px; height:20px; background: #8a7a5a; border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: fr-hand 10s ease-in-out infinite; }
.scn-father-reads-health .shadow { position:absolute; bottom:0; left:30%; width:150px; height:30px; background: rgba(0,0,0,0.1); filter: blur(10px); animation: fr-shadow 20s ease-in-out infinite; }
@keyframes fr-wall   { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes fr-father { 0% { transform: rotate(-1deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-1deg) } }
@keyframes fr-book   { 0% { transform: rotate(-10deg) scale(1) } 30% { transform: rotate(-8deg) scale(0.98) } 70% { transform: rotate(-12deg) scale(1.01) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes fr-hand   { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fr-shadow { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }

.scn-parson-ridicule {
  background: linear-gradient(180deg, #c8d8e8 0%, #e0d8c8 50%, #d0c0a0 100%),
              radial-gradient(ellipse at 50% 100%, #f0e0d0 0%, transparent 60%);
}
.scn-parson-ridicule .window {
  position: absolute; inset: 5% 10% auto 10%; height: 40%;
  background: linear-gradient(135deg, rgba(255,255,255,0.6) 0%, rgba(200,220,240,0.2) 100%);
  border: 8px solid #6a5a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,240,200,0.5);
  animation: PR-window-light 2s ease-in-out infinite alternate;
}
.scn-parson-ridicule .light-beam {
  position: absolute; top: 15%; left: 20%; width: 60%; height: 70%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(8px);
  animation: PR-light 3s ease-in-out infinite alternate;
}
.scn-parson-ridicule .parson {
  position: absolute; bottom: 12%; left: 35%; width: 16px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: PR-walk 4s ease-in-out infinite;
}
.scn-parson-ridicule .hat {
  position: absolute; bottom: 55%; left: 33%; width: 22px; height: 12px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: PR-hat-bounce 2s ease-in-out infinite alternate;
}
.scn-parson-ridicule .cat {
  position: absolute; bottom: 10%; left: 55%; width: 20px; height: 14px;
  background: radial-gradient(circle at 40% 30%, #e08040 0%, #b06030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 6px #d07040;
  animation: PR-cat-tail 5s ease-in-out infinite;
}
.scn-parson-ridicule .shadow {
  position: absolute; bottom: 8%; left: 30%; width: 40px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: PR-shadow 4s ease-in-out infinite;
}
@keyframes PR-window-light { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes PR-light { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-8deg) translateX(2px); } 100% { transform: skewX(-12deg) translateX(-1px); } }
@keyframes PR-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(10px) rotate(-2deg); } 75% { transform: translateX(15px) rotate(3deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes PR-hat-bounce { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes PR-cat-tail { 0% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 50% { transform: rotate(-10deg); } 75% { transform: rotate(20deg); } 100% { transform: rotate(0deg); } }
@keyframes PR-shadow { 0% { transform: scaleX(1); opacity: 0.7; } 50% { transform: scaleX(1.2); opacity: 0.5; } 100% { transform: scaleX(0.8); opacity: 0.8; } }

.scn-parson-excuses {
  background: linear-gradient(180deg, #b8c8d8 0%, #d4c8b0 50%, #c0b098 100%),
              radial-gradient(ellipse at 40% 50%, #f0e8d8 0%, transparent 70%);
}
.scn-parson-excuses .window {
  position: absolute; inset: 10% 5% auto 5%; height: 35%;
  background: linear-gradient(135deg, rgba(255,255,240,0.5) 0%, rgba(200,210,220,0.1) 100%);
  border: 6px solid #6a5a4a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(255,240,200,0.4);
  animation: PE-window 3s ease-in-out infinite alternate;
}
.scn-parson-excuses .light-beam {
  position: absolute; top: 20%; left: 15%; width: 70%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  transform: skewX(-5deg);
  filter: blur(10px);
  animation: PE-light 4s ease-in-out infinite alternate;
}
.scn-parson-excuses .parson {
  position: absolute; bottom: 15%; left: 25%; width: 14px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: PE-parson 6s ease-in-out infinite;
}
.scn-parson-excuses .horse {
  position: absolute; bottom: 10%; left: 50%; width: 60px; height: 35px;
  background: radial-gradient(ellipse at 40% 40%, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: center bottom;
  animation: PE-horse 2s ease-in-out infinite alternate;
}
.scn-parson-excuses .horse-legs {
  position: absolute; bottom: 5%; left: 52%; width: 10px; height: 16px;
  background: #3a1a1a;
  border-radius: 0 0 4px 4px;
  animation: PE-horse-legs 2s ease-in-out infinite alternate;
}
.scn-parson-excuses .shadow {
  position: absolute; bottom: 6%; left: 40%; width: 80px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: PE-shadow 4s ease-in-out infinite;
}
@keyframes PE-window { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes PE-light { 0% { transform: skewX(-5deg) translateX(0); } 50% { transform: skewX(-3deg) translateX(3px); } 100% { transform: skewX(-7deg) translateX(-2px); } }
@keyframes PE-parson { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(3deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes PE-horse { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(0.98) rotate(-2deg); } }
@keyframes PE-horse-legs { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.1); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes PE-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.15); opacity: 0.4; } 100% { transform: scaleX(0.85); opacity: 0.7; } }

.scn-parson-true-story {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%),
              radial-gradient(ellipse at 60% 30%, #b08050 0%, transparent 80%);
}
.scn-parson-true-story .saddle {
  position: absolute; bottom: 20%; left: 30%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a2a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5), inset 0 0 20px rgba(255,200,100,0.2);
  transform-origin: center bottom;
  animation: PT-saddle 10s ease-in-out infinite alternate;
}
.scn-parson-true-story .bridle {
  position: absolute; bottom: 50%; left: 38%; width: 2px; height: 30px;
  background: #1a1a1a;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: PT-bridle 8s ease-in-out infinite alternate;
}
.scn-parson-true-story .figure {
  position: absolute; bottom: 18%; left: 48%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: PT-figure 5s ease-in-out infinite;
}
.scn-parson-true-story .lantern {
  position: absolute; bottom: 35%; left: 20%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 30%, #ffc050 0%, #c08030 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(255,200,80,0.6), 0 0 40px 12px rgba(255,200,80,0.3);
  animation: PT-lantern 3s ease-in-out infinite alternate;
}
.scn-parson-true-story .shadow {
  position: absolute; bottom: 10%; left: 25%; width: 50px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: PT-shadow 6s ease-in-out infinite;
}
.scn-parson-true-story .wall {
  position: absolute; inset: 0; background: repeating-linear-gradient(0deg, transparent, transparent 20px, rgba(0,0,0,0.05) 20px, rgba(0,0,0,0.05) 21px);
  pointer-events: none;
}
@keyframes PT-saddle { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes PT-bridle { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(1.1); } 100% { transform: rotate(10deg) scaleY(0.9); } }
@keyframes PT-figure { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(4px) rotate(-2deg); } 75% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(8px) rotate(0deg); } }
@keyframes PT-lantern { 0% { box-shadow: 0 0 15px 4px rgba(255,200,80,0.5); opacity: 0.8; } 50% { box-shadow: 0 0 25px 8px rgba(255,200,80,0.7); opacity: 1; } 100% { box-shadow: 0 0 18px 5px rgba(255,200,80,0.55); opacity: 0.9; } }
@keyframes PT-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.1); opacity: 0.4; } 100% { transform: scaleX(0.9); opacity: 0.7; } }

.scn-parson-economy {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 40%, #705030 0%, transparent 70%);
}
.scn-parson-economy .beam {
  position: absolute; bottom: 50%; left: 20%; width: 60%; height: 4px;
  background: linear-gradient(90deg, #5a3a2a 0%, #8a6040 50%, #5a3a2a 100%);
  border-radius: 2px;
  transform-origin: center;
  animation: PEC-beam 4s ease-in-out infinite alternate;
}
.scn-parson-economy .pan-left {
  position: absolute; bottom: 44%; left: 22%; width: 24px; height: 12px;
  background: radial-gradient(ellipse at 50% 30%, #8a6040 0%, #5a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: center top;
  animation: PEC-pan-left 4s ease-in-out infinite alternate;
}
.scn-parson-economy .pan-right {
  position: absolute; bottom: 44%; right: 22%; width: 24px; height: 12px;
  background: radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: center top;
  animation: PEC-pan-right 4s ease-in-out infinite alternate;
}
.scn-parson-economy .figure {
  position: absolute; bottom: 18%; left: 45%; width: 14px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: PEC-figure 6s ease-in-out infinite;
}
.scn-parson-economy .candle {
  position: absolute; bottom: 20%; right: 28%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #8a6030 100%);
  border-radius: 20% 20% 10% 10%;
  animation: PEC-candle-flicker 2s ease-in-out infinite alternate;
}
.scn-parson-economy .glow {
  position: absolute; bottom: 18%; right: 26%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, rgba(255,200,100,0) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: PEC-glow 4s ease-in-out infinite alternate;
}
@keyframes PEC-beam { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes PEC-pan-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(2deg); } 100% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes PEC-pan-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(2px) rotate(2deg); } }
@keyframes PEC-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(4px) rotate(-1deg); } 75% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(8px) rotate(0deg); } }
@keyframes PEC-candle-flicker { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.85; transform: scaleY(0.95); } }
@keyframes PEC-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(0.9); } }

.scn-fathers-skirmishing-disputes {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b0 40%, #d4b68c 100%), radial-gradient(ellipse at 50% 20%, #fff8e7 0%, transparent 70%);
}
.scn-fathers-skirmishing-disputes .room-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #f0dbb8 0%, #d4a373 100%); animation: fsk-room 8s ease-in-out infinite; }
.scn-fathers-skirmishing-disputes .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #c47a4a 0%, #a05a2c 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,.15); animation: fsk-floor 6s ease-in-out infinite; }
.scn-fathers-skirmishing-disputes .table { position:absolute; bottom:18%; left:50%; width:120px; height:20px; transform:translateX(-50%); background: linear-gradient(90deg, #9c7a5c 0%, #b8966e 50%, #9c7a5c 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: fsk-table 5s ease-in-out infinite; }
.scn-fathers-skirmishing-disputes .father { position:absolute; bottom:26%; left:50%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #5c3a2a 0%, #3a2214 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: fsk-father 4s ease-in-out infinite; }
.scn-fathers-skirmishing-disputes .arms { position:absolute; bottom:44%; left:50%; width:60px; height:8px; transform:translateX(-50%) rotate(-20deg); background: linear-gradient(90deg, transparent 10%, #7a5030 40%, #7a5030 60%, transparent 90%); border-radius: 40%; animation: fsk-arms 3s ease-in-out infinite; }
.scn-fathers-skirmishing-disputes .figure-a { position:absolute; bottom:22%; left:25%; width:24px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fsk-figure1 5s ease-in-out infinite; }
.scn-fathers-skirmishing-disputes .figure-b { position:absolute; bottom:24%; right:22%; width:22px; height:46px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fsk-figure2 4s ease-in-out infinite 0.5s; }
@keyframes fsk-room { 0% { opacity:.85; filter:brightness(1) } 30% { opacity:1; filter:brightness(1.05) } 70% { opacity:.95; filter:brightness(.95) } 100% { opacity:.85; filter:brightness(1) } }
@keyframes fsk-floor { 0% { transform:translateY(0) scale(1) } 25% { transform:translateY(-2px) scale(1.01) } 50% { transform:translateY(0) scale(1) } 75% { transform:translateY(-1px) scale(1.005) } 100% { transform:translateY(0) scale(1) } }
@keyframes fsk-table { 0%,100% { transform:translateX(-50%) translateY(0) rotate(-1deg) } 20% { transform:translateX(-48%) translateY(-1px) rotate(1deg) } 40% { transform:translateX(-51%) translateY(0) rotate(-1deg) } 60% { transform:translateX(-49%) translateY(-2px) rotate(0) } 80% { transform:translateX(-52%) translateY(0) rotate(2deg) } }
@keyframes fsk-father { 0%,100% { transform:translateX(-50%) translateY(0) rotate(-2deg) } 15% { transform:translateX(-49%) translateY(-3px) rotate(1deg) } 35% { transform:translateX(-51%) translateY(0) rotate(-3deg) } 55% { transform:translateX(-48%) translateY(-2px) rotate(2deg) } 80% { transform:translateX(-52%) translateY(-1px) rotate(-1deg) } }
@keyframes fsk-arms { 0%,100% { transform:translateX(-50%) translateY(0) rotate(-20deg) scale(1) } 20% { transform:translateX(-48%) translateY(-2px) rotate(-15deg) scale(1.1) } 40% { transform:translateX(-52%) translateY(0) rotate(-25deg) scale(.95) } 60% { transform:translateX(-49%) translateY(-1px) rotate(-18deg) scale(1.05) } 80% { transform:translateX(-51%) translateY(0) rotate(-22deg) scale(1) } }
@keyframes fsk-figure1 { 0% { transform:translateX(0) translateY(0) rotate(1deg) } 20% { transform:translateX(4px) translateY(-2px) rotate(2deg) } 40% { transform:translateX(-3px) translateY(0) rotate(-1deg) } 60% { transform:translateX(5px) translateY(-1px) rotate(3deg) } 80% { transform:translateX(-4px) translateY(0) rotate(-2deg) } 100% { transform:translateX(0) translateY(0) rotate(1deg) } }
@keyframes fsk-figure2 { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(-5px) translateY(-2px) rotate(-2deg) } 50% { transform:translateX(3px) translateY(0) rotate(1deg) } 75% { transform:translateX(-4px) translateY(-1px) rotate(-3deg) } 100% { transform:translateX(0) translateY(0) rotate(-1deg) } }

.scn-slops-virginity-under-attack {
  background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 30%, #7a8a9a 100%), radial-gradient(ellipse at 60% 40%, #8a9aaa 0%, transparent 60%);
}
.scn-slops-virginity-under-attack .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); animation: slv-wall 10s ease-in-out infinite; }
.scn-slops-virginity-under-attack .rampart { position:absolute; bottom:30%; left:10%; right:40%; height:35%; background: linear-gradient(0deg, #8a6040 0%, #5a4020 100%); border-radius: 20% 60% 0 0 / 40% 80% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.3); animation: slv-rampart 6s ease-in-out infinite; }
.scn-slops-virginity-under-attack .dr-slop { position:absolute; bottom:28%; left:15%; width:35px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: slv-slop 3s ease-in-out infinite; }
.scn-slops-virginity-under-attack .trim { position:absolute; bottom:22%; right:15%; width:32px; height:55px; background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: slv-trim 4s ease-in-out infinite 0.3s; }
.scn-slops-virginity-under-attack .attack-lines { position:absolute; top:20%; left:30%; width:120%; height:30%; background: repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(180,100,60,0.4) 8px, rgba(180,100,60,0.4) 10px); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: slv-lines 2s ease-in-out infinite; pointer-events:none; }
.scn-slops-virginity-under-attack .candle { position:absolute; top:10%; left:60%; width:8px; height:20px; background: linear-gradient(0deg, #c8a060 0%, #e0c080 100%); border-radius: 4px; box-shadow: 0 0 20px 6px rgba(224,192,128,0.5); animation: slv-candle 3s ease-in-out infinite; }
@keyframes slv-wall { 0%,100% { opacity:.9; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.02) } }
@keyframes slv-rampart { 0%,100% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(3px) rotate(0) } 50% { transform:translateX(0) rotate(1deg) } 75% { transform:translateX(-3px) rotate(0) } }
@keyframes slv-slop { 0%,100% { transform:translateX(0) translateY(0) rotate(2deg) } 30% { transform:translateX(2px) translateY(-2px) rotate(4deg) } 60% { transform:translateX(-1px) translateY(0) rotate(-1deg) } 80% { transform:translateX(1px) translateY(-1px) rotate(3deg) } }
@keyframes slv-trim { 0%,100% { transform:translateX(0) translateY(0) rotate(-3deg) } 20% { transform:translateX(-3px) translateY(-3px) rotate(-5deg) } 50% { transform:translateX(2px) translateY(0) rotate(2deg) } 70% { transform:translateX(-2px) translateY(-2px) rotate(-4deg) } }
@keyframes slv-lines { 0%,100% { opacity:.3; transform:translateX(0) } 50% { opacity:.6; transform:translateX(10%) } }
@keyframes slv-candle { 0%,100% { opacity:.8; transform:translateY(0) scaleY(1) } 50% { opacity:1; transform:translateY(-2px) scaleY(1.1) } }

.scn-fathers-hypothesis-on-love-situation {
  background: linear-gradient(180deg, #f0e6d8 0%, #e0d0b8 50%, #c8b098 100%), radial-gradient(ellipse at 80% 30%, #fff8f0 0%, transparent 60%);
}
.scn-fathers-hypothesis-on-love-situation .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8d8c0 0%, #d0b8a0 100%); animation: lov-wall 12s ease-out infinite; }
.scn-fathers-hypothesis-on-love-situation .window { position:absolute; top:8%; right:20%; width:60px; height:70px; background: linear-gradient(180deg, #b0e0ff 0%, #ffffff 100%); border: 6px solid #a08060; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.5); animation: lov-window 8s ease-in-out infinite; }
.scn-fathers-hypothesis-on-love-situation .chair-left { position:absolute; bottom:20%; left:20%; width:50px; height:60px; background: linear-gradient(180deg, #8a7050 0%, #5a4020 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; animation: lov-chair 6s ease-in-out infinite; }
.scn-fathers-hypothesis-on-love-situation .chair-right { position:absolute; bottom:18%; right:18%; width:50px; height:60px; background: linear-gradient(180deg, #7a6040 0%, #4a3018 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; animation: lov-chair 6s ease-in-out infinite 1s; }
.scn-fathers-hypothesis-on-love-situation .father { position:absolute; bottom:24%; left:22%; width:30px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: lov-father 5s ease-in-out infinite; }
.scn-fathers-hypothesis-on-love-situation .brother { position:absolute; bottom:22%; right:20%; width:28px; height:50px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: lov-brother 5s ease-in-out infinite 0.5s; }
.scn-fathers-hypothesis-on-love-situation .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #b09070 0%, #907050 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,0.1); animation: lov-floor 10s linear infinite; }
@keyframes lov-wall { 0%,100% { opacity:.95 } 50% { opacity:1 } }
@keyframes lov-window { 0%,100% { transform:scale(1); opacity:.85 } 50% { transform:scale(1.02); opacity:1 } }
@keyframes lov-chair { 0%,100% { transform:translateY(0) rotate(0) } 30% { transform:translateY(-3px) rotate(1deg) } 60% { transform:translateY(0) rotate(-1deg) } 80% { transform:translateY(-1px) rotate(0) } }
@keyframes lov-father { 0%,100% { transform:translateY(0) rotate(-2deg) } 20% { transform:translateY(-2px) rotate(0) } 40% { transform:translateY(0) rotate(2deg) } 60% { transform:translateY(-1px) rotate(-1deg) } 80% { transform:translateY(0) rotate(1deg) } }
@keyframes lov-brother { 0%,100% { transform:translateY(0) rotate(2deg) } 25% { transform:translateY(-2px) rotate(0) } 50% { transform:translateY(0) rotate(-2deg) } 75% { transform:translateY(-1px) rotate(1deg) } }
@keyframes lov-floor { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.9 } }

.scn-prediction-of-slow-progress {
  background: linear-gradient(180deg, #f5ecd9 0%, #e8d6b8 50%, #d4bc94 100%), radial-gradient(ellipse at 50% 50%, #fff9ed 0%, transparent 80%);
}
.scn-prediction-of-slow-progress .table-top { position:absolute; bottom:30%; left:20%; width:60%; height:50%; background: linear-gradient(135deg, #c8a880 0%, #b09068 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,0.2); animation: slp-table 12s ease-in-out infinite; }
.scn-prediction-of-slow-progress .father-top { position:absolute; bottom:45%; left:38%; width:40px; height:40px; background: radial-gradient(circle, #5c3a2a 0%, #3a2214 100%); border-radius: 50%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3); animation: slp-father 4s ease-in-out infinite; }
.scn-prediction-of-slow-progress .mrs-wadman { position:absolute; bottom:42%; right:30%; width:36px; height:36px; background: radial-gradient(circle, #7a5a4a 0%, #4a322a 100%); border-radius: 50%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3); animation: slp-mrs 5s ease-in-out infinite 0.7s; }
.scn-prediction-of-slow-progress .heart { position:absolute; bottom:55%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #e08060 0%, #b05030 100%); border-radius: 50% 50% 0 50%; transform: rotate(45deg); box-shadow: 0 0 10px 3px rgba(224,128,96,0.4); animation: slp-heart 3s ease-in-out infinite; }
.scn-prediction-of-slow-progress .arrow { position:absolute; bottom:50%; left:42%; width:30px; height:4px; background: linear-gradient(90deg, #804020 0%, #c06030 100%); border-radius: 2px; transform-origin: left center; animation: slp-arrow 2s ease-in-out infinite; }
.scn-prediction-of-slow-progress .progress-line { position:absolute; bottom:35%; left:15%; right:15%; height:3px; background: repeating-linear-gradient(90deg, transparent, transparent 4px, #a07858 4px, #a07858 8px); animation: slp-line 8s linear infinite; }
@keyframes slp-table { 0%,100% { transform:scale(1) rotate(0) } 30% { transform:scale(1.01) rotate(1deg) } 60% { transform:scale(1) rotate(-1deg) } 80% { transform:scale(1.005) rotate(0) } }
@keyframes slp-father { 0%,100% { transform:translateX(0) translateY(0) scale(1) } 25% { transform:translateX(2px) translateY(-1px) scale(1.05) } 50% { transform:translateX(-1px) translateY(0) scale(.95) } 75% { transform:translateX(1px) translateY(-2px) scale(1.02) } }
@keyframes slp-mrs { 0%,100% { transform:translateX(0) translateY(0) scale(1) } 20% { transform:translateX(-2px) translateY(-1px) scale(1.03) } 40% { transform:translateX(1px) translateY(0) scale(.97) } 60% { transform:translateX(-3px) translateY(-2px) scale(1.01) } 80% { transform:translateX(2px) translateY(0) scale(1) } }
@keyframes slp-heart { 0%,100% { transform:rotate(45deg) scale(1); opacity:.8 } 25% { transform:rotate(45deg) scale(1.2); opacity:1 } 50% { transform:rotate(45deg) scale(.9); opacity:.7 } 75% { transform:rotate(45deg) scale(1.1); opacity:.9 } }
@keyframes slp-arrow { 0%,100% { transform:rotate(-10deg) scaleX(1) } 30% { transform:rotate(5deg) scaleX(1.2) } 60% { transform:rotate(-15deg) scaleX(.9) } 80% { transform:rotate(0) scaleX(1.05) } }
@keyframes slp-line { 0% { background-position:0 0 } 100% { background-position:100% 0 } }

/* fathers-philippic-against-passion */
.scn-fathers-philippic-against-passion {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1e12 40%, #1c140e 100%),
    radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-fathers-philippic-against-passion .figure {
  position:absolute; bottom:20%; left:25%; width:20%; height:50%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpp-gesture 2.5s ease-in-out infinite alternate;
}
.scn-fathers-philippic-against-passion .candle {
  position:absolute; bottom:30%; left:45%; width:6px; height:16px;
  background: linear-gradient(180deg, #e8c080 0%, #a07040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 2px #c08040;
  animation: fpp-flicker 0.8s ease-in-out infinite alternate;
}
.scn-fathers-philippic-against-passion .desk {
  position:absolute; bottom:10%; left:20%; right:20%; height:12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-fathers-philippic-against-passion .book {
  position:absolute; bottom:15%; left:30%; width:30px; height:12px;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 1px 2px 4px rgba(0,0,0,0.4);
  animation: fpp-float 6s ease-in-out infinite;
}
.scn-fathers-philippic-against-passion .shadow {
  position:absolute; bottom:0; left:10%; right:10%; height:80%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: fpp-shadow 3s ease-in-out infinite alternate;
}
.scn-fathers-philippic-against-passion .glow {
  position:absolute; top:25%; left:43%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(200,160,100,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: fpp-glow 2s ease-in-out infinite alternate;
}
.scn-fathers-philippic-against-passion .shelf {
  position:absolute; bottom:45%; left:10%; right:10%; height:2px;
  background: #5a4a3a;
  box-shadow: 0 -10px 0 #5a4a3a;
}

@keyframes fpp-gesture {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(4px) rotate(2deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes fpp-flicker {
  0% { transform: scaleY(1) opacity(0.8); }
  50% { transform: scaleY(1.1) opacity(1); }
  100% { transform: scaleY(0.9) opacity(0.7); }
}
@keyframes fpp-float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes fpp-shadow {
  0% { transform: translateX(0) scaleX(1); opacity:0.6; }
  50% { transform: translateX(3px) scaleX(1.05); opacity:0.8; }
  100% { transform: translateX(0) scaleX(1); opacity:0.6; }
}
@keyframes fpp-glow {
  0% { opacity:0.3; transform: scale(1); }
  50% { opacity:0.6; transform: scale(1.2); }
  100% { opacity:0.4; transform: scale(0.9); }
}

/* contrast-war-and-love */
.scn-contrast-war-and-love {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #1c1412 40%, #140e0c 100%),
    radial-gradient(circle at 60% 40%, #3a2e2a 0%, transparent 60%);
}
.scn-contrast-war-and-love .father {
  position:absolute; bottom:20%; left:25%; width:20%; height:55%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0c0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwl-point 3s ease-in-out infinite;
}
.scn-contrast-war-and-love .toby {
  position:absolute; bottom:20%; right:25%; width:18%; height:45%;
  background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: cwl-rock 4s ease-in-out infinite alternate;
}
.scn-contrast-war-and-love .table {
  position:absolute; bottom:12%; left:20%; right:20%; height:10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
}
.scn-contrast-war-and-love .map {
  position:absolute; bottom:15%; left:30%; width:40%; height:8%;
  background: linear-gradient(135deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 2px;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: cwl-slide 8s linear infinite;
}
.scn-contrast-war-and-love .sword {
  position:absolute; bottom:15%; left:40%; width:4px; height:20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: cwl-swing 2.5s ease-in-out infinite alternate;
}
.scn-contrast-war-and-love .lamp {
  position:absolute; bottom:35%; left:48%; width:10px; height:14px;
  background: radial-gradient(circle, #c8a060 0%, #a07830 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #a07830;
  animation: cwl-flicker 1.2s ease-in-out infinite alternate;
}
.scn-contrast-war-and-love .shadow {
  position:absolute; bottom:0; left:0; right:0; height:100%;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.5) 0%, transparent 60%);
  animation: cwl-shadow 3s ease-in-out infinite alternate;
}

@keyframes cwl-point {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cwl-rock {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes cwl-slide {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes cwl-swing {
  0% { transform: rotate(5deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); }
}
@keyframes cwl-flicker {
  0% { opacity:0.7; transform: scale(0.9); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.8; transform: scale(1); }
}
@keyframes cwl-shadow {
  0% { opacity:0.4; transform: translateY(0); }
  50% { opacity:0.6; transform: translateY(-3px); }
  100% { opacity:0.4; transform: translateY(0); }
}

/* obadiahs-cow-and-bull-story */
.scn-obadiahs-cow-and-bull-story {
  background: 
    linear-gradient(180deg, #2a221a 0%, #1c1610 40%, #100c08 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-obadiahs-cow-and-bull-story .obadiah {
  position:absolute; bottom:25%; left:30%; width:15%; height:35%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: obc-bob 1.5s ease-in-out infinite;
}
.scn-obadiahs-cow-and-bull-story .stool {
  position:absolute; bottom:22%; left:28%; width:20%; height:6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-obadiahs-cow-and-bull-story .cow {
  position:absolute; bottom:15%; right:20%; width:40%; height:45%;
  background: radial-gradient(ellipse at 50% 60%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: obc-swell 3s ease-in-out infinite alternate;
}
.scn-obadiahs-cow-and-bull-story .pail {
  position:absolute; bottom:18%; left:38%; width:12px; height:16px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px 4px 8px 8px;
  animation: obc-bob 2s ease-in-out infinite 1s;
}
.scn-obadiahs-cow-and-bull-story .lantern {
  position:absolute; bottom:35%; left:10%; width:8px; height:12px;
  background: radial-gradient(circle, #d8b850 0%, #b09030 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #b09030;
  animation: obc-sway 4s ease-in-out infinite;
}
.scn-obadiahs-cow-and-bull-story .hay {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: repeating-linear-gradient(45deg, #4a3a2a 0px, #4a3a2a 2px, #3a2a1a 2px, #3a2a1a 4px);
  animation: obc-wave 6s linear infinite;
}

@keyframes obc-bob {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes obc-swell {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(1.08) scaleY(1.02); }
  100% { transform: scaleX(1) scaleY(1); }
}
@keyframes obc-sway {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes obc-wave {
  0% { background-position: 0 0; }
  50% { background-position: 4px 2px; }
  100% { background-position: 0 0; }
}

/* final-remark-cock-and-bull */
.scn-final-remark-cock-and-bull {
  background: 
    linear-gradient(180deg, #2a221c 0%, #1c1612 40%, #120e0a 100%),
    radial-gradient(circle at 50% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-final-remark-cock-and-bull .yorick {
  position:absolute; bottom:25%; left:15%; width:18%; height:45%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0c0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcb-gesture 2.8s ease-in-out infinite alternate;
}
.scn-final-remark-cock-and-bull .mother {
  position:absolute; bottom:25%; left:65%; width:18%; height:45%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0c0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcb-gesture 3.2s ease-in-out infinite alternate-reverse;
}
.scn-final-remark-cock-and-bull .table {
  position:absolute; bottom:10%; left:20%; right:20%; height:14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
}
.scn-final-remark-cock-and-bull .cock {
  position:absolute; bottom:18%; left:28%; width:12%; height:20%;
  background: radial-gradient(ellipse at 30% 40%, #8a6a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: fcb-strut 1.2s ease-in-out infinite;
}
.scn-final-remark-cock-and-bull .bull {
  position:absolute; bottom:15%; left:58%; width:22%; height:25%;
  background: radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  animation: fcb-stomp 1.8s ease-in-out infinite 0.5s;
}
.scn-final-remark-cock-and-bull .candle {
  position:absolute; bottom:35%; left:48%; width:8px; height:16px;
  background: linear-gradient(180deg, #e0b860 0%, #a07830 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 14px 4px #a07830;
  animation: fcb-flicker 0.7s ease-in-out infinite alternate;
}
.scn-final-remark-cock-and-bull .shadow {
  position:absolute; bottom:0; left:0; right:0; height:100%;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.5) 0%, transparent 60%);
  animation: fcb-shadow 2.5s ease-in-out infinite alternate;
}

@keyframes fcb-gesture {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fcb-strut {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fcb-stomp {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.05); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes fcb-flicker {
  0% { transform: scaleY(1) opacity(0.8); }
  50% { transform: scaleY(1.15) opacity(1); }
  100% { transform: scaleY(0.9) opacity(0.7); }
}
@keyframes fcb-shadow {
  0% { opacity:0.3; transform: translateX(0); }
  50% { opacity:0.6; transform: translateX(2px); }
  100% { opacity:0.3; transform: translateX(0); }
}

/* Scene: examples-of-delay (tense, bright-interior) */
.scn-examples-of-delay {
  background: linear-gradient(180deg, #6b4a3a 0%, #3a2a1a 100%),
              radial-gradient(circle at 60% 20%, #ffd088 0%, transparent 60%);
}
.scn-examples-of-delay .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: ed-wall 6s ease-in-out infinite alternate;
}
.scn-examples-of-delay .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  animation: ed-floor 8s ease-in-out infinite alternate;
}
.scn-examples-of-delay .desk {
  position:absolute; bottom:20%; left:20%; width:60%; height:10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-examples-of-delay .figure {
  position:absolute; bottom:20%; left:40%; width:20px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ed-figure 3s ease-in-out infinite;
}
.scn-examples-of-delay .book {
  position:absolute; bottom:22%; left:45%; width:30px; height:20px;
  background: linear-gradient(180deg, #8b6b4b 0%, #5a3a2a 100%);
  border-radius: 2px; transform: rotate(-5deg);
  animation: ed-book 10s ease-in-out infinite alternate;
}
.scn-examples-of-delay .hourglass {
  position:absolute; bottom:30%; right:25%; width:14px; height:30px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%;
  animation: ed-hourglass 4s ease-in-out infinite;
}
.scn-examples-of-delay .candle {
  position:absolute; bottom:30%; left:25%; width:8px; height:20px;
  background: linear-gradient(180deg, #e0c080 0%, #b08040 100%);
  border-radius: 4px; box-shadow: 0 0 12px 4px #e0a050;
  animation: ed-candle 2s ease-in-out infinite;
}
.scn-examples-of-delay .window {
  position:absolute; top:8%; left:10%; width:30%; height:30%;
  background: radial-gradient(circle at 50% 50%, #ffe0a0 0%, #b08040 100%);
  border: 4px solid #4a2a1a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,224,160,0.3);
  animation: ed-window 12s ease-in-out infinite alternate;
}
@keyframes ed-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ed-floor { 0% { background-position: 0 0; } 100% { background-position: 0 -10px; } }
@keyframes ed-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ed-book { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes ed-hourglass { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } 100% { transform: scaleY(1); } }
@keyframes ed-candle { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.1) rotate(2deg); } 100% { transform: scaleY(1) rotate(0); } }
@keyframes ed-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* Scene: yorick-listens (warm, bright-interior) */
.scn-yorick-listens {
  background: linear-gradient(180deg, #8b6b4b 0%, #5a3a2a 100%),
              radial-gradient(circle at 50% 80%, #ffd088 0%, transparent 70%);
}
.scn-yorick-listens .background-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  animation: yl-wall 20s ease-in-out infinite alternate;
}
.scn-yorick-listens .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-yorick-listens .bookshelf {
  position:absolute; top:15%; left:10%; width:20%; height:60%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  animation: yl-shelf 30s ease-in-out infinite alternate;
}
.scn-yorick-listens .father-figure {
  position:absolute; bottom:20%; left:55%; width:24px; height:70px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yl-father 8s ease-in-out infinite;
}
.scn-yorick-listens .yorick-figure {
  position:absolute; bottom:20%; left:30%; width:20px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yl-yorick 12s ease-in-out infinite;
}
.scn-yorick-listens .chair {
  position:absolute; bottom:20%; left:52%; width:30px; height:40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: yl-chair 15s ease-in-out infinite alternate;
}
.scn-yorick-listens .fireplace {
  position:absolute; bottom:30%; right:10%; width:40px; height:50px;
  background: linear-gradient(180deg, #6b4a3a 0%, #4a2a1a 100%);
  border-radius: 2px; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-yorick-listens .fire-glow {
  position:absolute; bottom:30%; right:15%; width:20px; height:30px;
  background: radial-gradient(circle at 50% 100%, #ffa050 0%, transparent 70%);
  border-radius: 50%;
  animation: yl-fire 3s ease-in-out infinite alternate;
}
@keyframes yl-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes yl-shelf { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes yl-father { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes yl-yorick { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes yl-chair { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes yl-fire { 0% { transform: scale(1) rotate(-3deg); opacity:0.7; } 50% { transform: scale(1.2) rotate(5deg); opacity:1; } 100% { transform: scale(0.9) rotate(-2deg); opacity:0.8; } }

/* Scene: auxiliary-verbs (tense, bright-interior) */
.scn-auxiliary-verbs {
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%),
              radial-gradient(circle at 40% 30%, #ffc080 0%, transparent 50%);
}
.scn-auxiliary-verbs .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.6);
  animation: av-wall 4s ease-in-out infinite alternate;
}
.scn-auxiliary-verbs .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  animation: av-floor 6s ease-in-out infinite alternate;
}
.scn-auxiliary-verbs .desk {
  position:absolute; bottom:20%; left:15%; width:70%; height:10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}
.scn-auxiliary-verbs .book-left {
  position:absolute; bottom:22%; left:20%; width:25px; height:15px;
  background: linear-gradient(180deg, #8b6b4b 0%, #5a3a2a 100%);
  border-radius: 2px; transform: rotate(-10deg);
  animation: av-book-left 8s ease-in-out infinite alternate;
}
.scn-auxiliary-verbs .book-right {
  position:absolute; bottom:22%; right:20%; width:25px; height:15px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 2px; transform: rotate(5deg);
  animation: av-book-right 8s ease-in-out infinite alternate;
}
.scn-auxiliary-verbs .figure-surprised {
  position:absolute; bottom:20%; left:45%; width:22px; height:65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: av-figure 2s ease-in-out infinite;
}
.scn-auxiliary-verbs .inkwell {
  position:absolute; bottom:26%; left:40%; width:10px; height:12px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: av-inkwell 3s ease-in-out infinite;
}
.scn-auxiliary-verbs .snake-motif {
  position:absolute; bottom:25%; right:15%; width:30px; height:6px;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: av-snake 5s ease-in-out infinite alternate;
}
@keyframes av-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes av-floor { 0% { background-position: 0 0; } 100% { background-position: 0 -5px; } }
@keyframes av-book-left { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes av-book-right { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes av-figure { 0% { transform: translateY(0) scale(1) rotate(-1deg); } 30% { transform: translateY(-5px) scale(1.05) rotate(0deg); } 60% { transform: translateY(0) scale(1) rotate(1deg); } 100% { transform: translateY(-2px) scale(1.02) rotate(-1deg); } }
@keyframes av-inkwell { 0% { transform: translate(0,0); } 50% { transform: translate(2px,-1px); } 100% { transform: translate(0,0); } }
@keyframes av-snake { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(0.8); } 100% { transform: translateX(-5px) scaleX(1.1); } }

/* Scene: metaphor-explained (calm, bright-interior) */
.scn-metaphor-explained {
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%),
              radial-gradient(circle at 60% 40%, #ffe0a0 0%, transparent 60%);
}
.scn-metaphor-explained .room-background {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #8b6b4b 0%, #5a3a2a 100%);
  animation: me-room 30s ease-in-out infinite alternate;
}
.scn-metaphor-explained .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-metaphor-explained .globe {
  position:absolute; bottom:30%; left:20%; width:35px; height:35px;
  background: radial-gradient(circle at 30% 30%, #e0c080 0%, #a08050 100%);
  border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: me-globe 15s linear infinite;
}
.scn-metaphor-explained .figure-pointer {
  position:absolute; bottom:20%; left:40%; width:22px; height:65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: me-figure 10s ease-in-out infinite;
}
.scn-metaphor-explained .books {
  position:absolute; bottom:22%; left:70%; width:30px; height:15px;
  background: linear-gradient(90deg, #8b6b4b 0%, #6b4a3a 50%, #5a3a2a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: me-books 20s ease-in-out infinite alternate;
}
.scn-metaphor-explained .chalkboard {
  position:absolute; top:15%; right:10%; width:35%; height:35%;
  background: linear-gradient(135deg, #2a4a3a 0%, #1a3a2a 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: me-chalk 25s ease-in-out infinite alternate;
}
.scn-metaphor-explained .window-light {
  position:absolute; top:8%; left:5%; width:20%; height:25%;
  background: radial-gradient(circle at 50% 50%, rgba(255,224,160,0.6) 0%, transparent 80%);
  border-radius: 4px;
  animation: me-light 8s ease-in-out infinite alternate;
}
@keyframes me-room { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.98 } }
@keyframes me-globe { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.02); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes me-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes me-books { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(3px) scaleY(1.05); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes me-chalk { 0% { background-position: 0% 0%; } 50% { background-position: 10% 5%; } 100% { background-position: 0% 0%; } }
@keyframes me-light { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

/* Scene 1: lesson-to-let-people-tell-stories */
.scn-lesson-to-let-people-tell-stories { background: linear-gradient(180deg, #2b1406 0%, #1a0e05 40%, #120a03 100%), radial-gradient(ellipse at 50% 100%, #5c3a21 0%, transparent 70%); position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-lesson-to-let-people-tell-stories .bg-wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4a2a18 0%, #2b1406 100%); }
.scn-lesson-to-let-people-tell-stories .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3b1f0b 0%, #1a0e05 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-lesson-to-let-people-tell-stories .armchair { position: absolute; bottom: 28%; left: 40%; width: 50px; height: 40px; background: linear-gradient(180deg, #7f4f24 0%, #5c3a21 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform: rotate(-2deg); animation: ltpt-chair 8s ease-in-out infinite; }
.scn-lesson-to-let-people-tell-stories .figure { position: absolute; bottom: 34%; left: 42%; width: 20px; height: 45px; background: linear-gradient(180deg, #1a0e05 0%, #0d0703 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ltpt-figure 4s ease-in-out infinite; }
.scn-lesson-to-let-people-tell-stories .book { position: absolute; bottom: 48%; left: 46%; width: 18px; height: 14px; background: linear-gradient(135deg, #d4a373 0%, #b5835a 100%); border-radius: 10%; transform: rotate(10deg); animation: ltpt-book 6s ease-in-out infinite; box-shadow: 2px 2px 4px rgba(0,0,0,0.4); }
.scn-lesson-to-let-people-tell-stories .cat { position: absolute; bottom: 22%; left: 55%; width: 16px; height: 12px; background: #2b1406; border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; animation: ltpt-cat 5s ease-in-out infinite; }
.scn-lesson-to-let-people-tell-stories .lamp { position: absolute; bottom: 40%; left: 30%; width: 8px; height: 12px; background: #ffb703; border-radius: 50%; box-shadow: 0 0 20px 6px #ffb703, 0 0 40px 12px rgba(255, 183, 3, 0.4); animation: ltpt-lamp 3s ease-in-out infinite alternate; }
@keyframes ltpt-chair { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes ltpt-figure { 0% { transform: translateX(0) rotate(-2deg) scaleY(1); } 25% { transform: translateX(4px) rotate(2deg) scaleY(1.02); } 50% { transform: translateX(8px) rotate(-1deg) scaleY(0.98); } 75% { transform: translateX(12px) rotate(3deg) scaleY(1.01); } 100% { transform: translateX(16px) rotate(0deg) scaleY(1); } }
@keyframes ltpt-book { 0% { transform: rotate(10deg) translateY(0); } 30% { transform: rotate(-5deg) translateY(-3px); } 60% { transform: rotate(15deg) translateY(1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes ltpt-cat { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(3px) scaleX(0.9); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes ltpt-lamp { 0% { box-shadow: 0 0 20px 6px #ffb703, 0 0 40px 12px rgba(255, 183, 3, 0.4); opacity: 0.8; } 50% { box-shadow: 0 0 30px 8px #ffd60a, 0 0 60px 18px rgba(255, 214, 10, 0.6); opacity: 1; } 100% { box-shadow: 0 0 15px 4px #fb8500, 0 0 30px 8px rgba(251, 133, 0, 0.3); opacity: 0.85; } }

/* Scene 2: the-seventy-seventh-chapter-inserted */
.scn-the-seventy-seventh-chapter-inserted { background: linear-gradient(180deg, #402214 0%, #2b1406 40%, #1a0b03 100%), radial-gradient(ellipse at 30% 50%, #c8553d 0%, transparent 60%); position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-the-seventy-seventh-chapter-inserted .bg-wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #4a2a18 0%, #2b1406 100%); }
.scn-the-seventy-seventh-chapter-inserted .curtain { position: absolute; bottom: 0; left: 10%; width: 30%; height: 80%; background: linear-gradient(180deg, #7f4f24 0%, #5c3a21 50%, #3b1f0b 100%); border-radius: 0 10% 60% 0 / 0 20% 30% 0; transform-origin: left center; animation: ssc-curtain 12s ease-in-out infinite; }
.scn-the-seventy-seventh-chapter-inserted .table { position: absolute; bottom: 25%; left: 45%; width: 80px; height: 10px; background: linear-gradient(180deg, #7f4f24 0%, #5c3a21 100%); border-radius: 10%; transform: rotate(1deg); }
.scn-the-seventy-seventh-chapter-inserted .bible { position: absolute; bottom: 38%; left: 48%; width: 20px; height: 26px; background: linear-gradient(135deg, #a68a6b 0%, #8c6e50 100%); border-radius: 5% 5% 10% 10% / 5% 5% 15% 15%; box-shadow: 2px 2px 4px rgba(0,0,0,0.5); animation: ssc-bible 8s ease-in-out infinite; }
.scn-the-seventy-seventh-chapter-inserted .figure-mrs { position: absolute; bottom: 18%; left: 15%; width: 22px; height: 50px; background: linear-gradient(180deg, #1a0e05 0%, #0d0703 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ssc-figure 10s ease-in-out infinite; }
.scn-the-seventy-seventh-chapter-inserted .door { position: absolute; bottom: 0; right: 5%; width: 12%; height: 90%; background: linear-gradient(180deg, #5c3a21 0%, #3b1f0b 100%); border-radius: 5% 5% 0 0; transform-origin: right center; animation: ssc-door 14s ease-in-out infinite; box-shadow: -4px 0 8px rgba(0,0,0,0.6); }
.scn-the-seventy-seventh-chapter-inserted .shadow { position: absolute; bottom: 20%; left: 25%; width: 50%; height: 15%; background: rgba(0,0,0,0.3); filter: blur(10px); animation: ssc-shadow 10s ease-in-out infinite; }
@keyframes ssc-curtain { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.05) rotate(3deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes ssc-bible { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(2deg) translateY(-1px); } 60% { transform: rotate(-1deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ssc-figure { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(2px) scaleY(1.02); } 60% { transform: translateX(5px) scaleY(0.98); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes ssc-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.2); } 100% { transform: scaleX(1); } }
@keyframes ssc-shadow { 0% { transform: translateX(0) scaleX(1); opacity: 0.3; } 50% { transform: translateX(10px) scaleX(1.2); opacity: 0.5; } 100% { transform: translateX(0) scaleX(1); opacity: 0.3; } }

/* Scene 3: wadman-awaiting-further */
.scn-wadman-awaiting-further { background: linear-gradient(180deg, #2b1406 0%, #1a0e05 40%, #120a03 100%), radial-gradient(ellipse at 50% 40%, #5c3a21 0%, transparent 70%); position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-wadman-awaiting-further .bg-wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #3b1f0b 0%, #1a0e05 100%); }
.scn-wadman-awaiting-further .chair { position: absolute; bottom: 20%; left: 30%; width: 60px; height: 50px; background: linear-gradient(180deg, #7f4f24 0%, #5c3a21 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; animation: wafa-chair 10s ease-in-out infinite; }
.scn-wadman-awaiting-further .figure-mrs { position: absolute; bottom: 30%; left: 33%; width: 22px; height: 48px; background: linear-gradient(180deg, #1a0e05 0%, #0d0703 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wafa-figure 6s ease-in-out infinite; }
.scn-wadman-awaiting-further .apron { position: absolute; bottom: 18%; left: 35%; width: 28px; height: 30px; background: linear-gradient(180deg, #b5835a 0%, #a0683e 100%); border-radius: 10% 10% 30% 30% / 10% 10% 40% 40%; overflow: hidden; animation: wafa-apron 8s ease-in-out infinite; }
.scn-wadman-awaiting-further .apron::after { content: ''; position: absolute; top: 40%; left: 30%; width: 8px; height: 2px; background: #d4a373; border-radius: 50%; animation: wafa-slit 8s ease-in-out infinite; }
.scn-wadman-awaiting-further .needle { position: absolute; bottom: 40%; left: 42%; width: 4px; height: 14px; background: #d4a373; border-radius: 50%; box-shadow: 0 0 2px #d4a373; animation: wafa-needle 4s ease-in-out infinite; transform-origin: top center; }
.scn-wadman-awaiting-further .thread { position: absolute; bottom: 50%; left: 44%; width: 2px; height: 20px; background: #d4a373; animation: wafa-thread 6s ease-in-out infinite; }
.scn-wadman-awaiting-further .figure-toby { position: absolute; bottom: 18%; right: 20%; width: 28px; height: 55px; background: linear-gradient(180deg, #1a0e05 0%, #0d0703 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wafa-toby 12s ease-in-out infinite; }
@keyframes wafa-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes wafa-figure { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 30% { transform: translateX(2px) rotate(3deg) scaleY(1.02); } 60% { transform: translateX(5px) rotate(-2deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes wafa-apron { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.05) translateY(-1px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes wafa-slit { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.5); } 100% { transform: scaleX(1); } }
@keyframes wafa-needle { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(0deg) translateY(-2px); } 50% { transform: rotate(10deg) translateY(0); } 75% { transform: rotate(0deg) translateY(2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes wafa-thread { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(5deg); } 60% { transform: translateX(-1px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wafa-toby { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }

/* Scene 4: wadman-takes-gauntlet */
.scn-wadman-takes-gauntlet { background: linear-gradient(180deg, #3b1f0b 0%, #2b1406 40%, #1a0e05 100%), radial-gradient(ellipse at 60% 50%, #7f4f24 0%, transparent 70%); position: relative; overflow: hidden; width: 100%; height: 100%; }
.scn-wadman-takes-gauntlet .bg-wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4a2a18 0%, #2b1406 100%); }
.scn-wadman-takes-gauntlet .settee { position: absolute; bottom: 15%; left: 10%; width: 80%; height: 40%; background: linear-gradient(180deg, #7f4f24 0%, #5c3a21 50%, #3b1f0b 100%); border-radius: 30% 30% 5% 5% / 40% 40% 10% 10%; }
.scn-wadman-takes-gauntlet .figure-wadman { position: absolute; bottom: 30%; left: 55%; width: 22px; height: 50px; background: linear-gradient(180deg, #1a0e05 0%, #0d0703 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: waga-wadman 10s ease-in-out infinite; }
.scn-wadman-takes-gauntlet .figure-toby { position: absolute; bottom: 30%; left: 25%; width: 28px; height: 55px; background: linear-gradient(180deg, #1a0e05 0%, #0d0703 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: waga-toby 12s ease-in-out infinite; }
.scn-wadman-takes-gauntlet .candle { position: absolute; bottom: 45%; left: 40%; width: 6px; height: 16px; background: linear-gradient(180deg, #ffd60a 0%, #fb8500 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 16px 8px #ffb703, 0 0 32px 16px rgba(255, 183, 3, 0.3); animation: waga-candle 4s ease-in-out infinite alternate; }
.scn-wadman-takes-gauntlet .shadow { position: absolute; bottom: 20%; left: 30%; width: 50%; height: 20%; background: rgba(0,0,0,0.4); filter: blur(12px); animation: waga-shadow 14s ease-in-out infinite; }
@keyframes waga-wadman { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 30% { transform: translateX(-3px) rotate(2deg) scaleY(1.01); } 60% { transform: translateX(1px) rotate(-1deg) scaleY(0.99); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes waga-toby { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(1); } }
@keyframes waga-candle { 0% { box-shadow: 0 0 16px 8px #ffb703, 0 0 32px 16px rgba(255, 183, 3, 0.3); transform: scaleY(1); } 50% { box-shadow: 0 0 24px 12px #ffd60a, 0 0 48px 24px rgba(255, 214, 10, 0.5); transform: scaleY(1.1); } 100% { box-shadow: 0 0 12px 4px #fb8500, 0 0 24px 8px rgba(251, 133, 0, 0.2); transform: scaleY(0.95); } }
@keyframes waga-shadow { 0% { transform: translateX(0) scaleX(1); opacity: 0.4; } 50% { transform: translateX(5px) scaleX(1.1); opacity: 0.6; } 100% { transform: translateX(0) scaleX(1); opacity: 0.4; } }

/* verulam-s-opinion */
.scn-verulam-s-opinion {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9c4a0 40%, #a08060 100%),
    radial-gradient(ellipse at 50% 100%, #a08060 0%, transparent 70%);
}
.scn-verulam-s-opinion .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b08a 100%);
  box-shadow: inset 0 8px 20px rgba(120,80,40,.2);
  animation: vo-wall 20s ease-in-out infinite alternate;
}
.scn-verulam-s-opinion .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%);
  border-radius: 80% 60% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
}
.scn-verulam-s-opinion .window {
  position: absolute; top: 10%; left: 15%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #fef8e0 0%, #f0d8b0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px 10px rgba(255,240,200,.3), 0 0 40px 20px rgba(255,240,200,.15);
  animation: vo-window 6s ease-in-out infinite alternate;
}
.scn-verulam-s-opinion .desk {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #8c6a4a 0%, #60442a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 6px 14px rgba(0,0,0,.5), inset 0 2px 4px rgba(255,200,150,.2);
  animation: vo-desk 12s ease-in-out infinite;
}
.scn-verulam-s-opinion .candle {
  position: absolute; bottom: 42%; left: 50%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 100%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 12px 4px #f0c878;
  animation: vo-candle 2s ease-in-out infinite;
}
.scn-verulam-s-opinion .book {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 8px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: vo-book 15s ease-in-out infinite alternate;
}
.scn-verulam-s-opinion .spirit {
  position: absolute; bottom: 48%; left: 48%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe080 0%, #f0c040 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: vo-spirit 8s ease-in-out infinite;
}
@keyframes vo-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .92; } }
@keyframes vo-window { 0% { opacity: .7; box-shadow: inset 0 0 20px 6px rgba(255,240,200,.2); } 50% { opacity: 1; box-shadow: inset 0 0 40px 12px rgba(255,240,200,.4); } 100% { opacity: .8; box-shadow: inset 0 0 30px 8px rgba(255,240,200,.25); } }
@keyframes vo-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes vo-candle { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: .9; } 25% { transform: translateX(-50%) scaleY(1.04) scaleX(.96); opacity: 1; } 50% { transform: translateX(-50%) scaleY(0.96) scaleX(1.04); opacity: .9; } 75% { transform: translateX(-50%) scaleY(1.02) scaleX(.98); opacity: 1; } 100% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: .9; } }
@keyframes vo-book { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-1px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes vo-spirit { 0% { transform: translate(0, 0) scale(.8); opacity: .5; } 25% { transform: translate(2px, -4px) scale(1); opacity: .8; } 50% { transform: translate(-1px, -8px) scale(1.1); opacity: 1; } 75% { transform: translate(1px, -4px) scale(.9); opacity: .7; } 100% { transform: translate(0, 0) scale(.8); opacity: .5; } }

/* verulam-s-remedy */
.scn-verulam-s-remedy {
  background:
    linear-gradient(180deg, #f0dcc0 0%, #d4b890 40%, #9a7a5a 100%),
    radial-gradient(ellipse at 50% 100%, #7a5a3a 0%, transparent 70%);
}
.scn-verulam-s-remedy .table {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #8c6a4a 0%, #60442a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
}
.scn-verulam-s-remedy .jar {
  position: absolute; bottom: 45%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b8a080 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4), inset 0 2px 4px rgba(255,255,200,.3);
  animation: vr-jar 10s ease-in-out infinite alternate;
}
.scn-verulam-s-remedy .bottle {
  position: absolute; bottom: 48%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #c0b08a 0%, #a08868 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 3px 6px rgba(0,0,0,.3);
  animation: vr-bottle 8s ease-in-out infinite;
}
.scn-verulam-s-remedy .mortar {
  position: absolute; bottom: 35%; left: 42%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #a08060 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-verulam-s-remedy .pestle {
  position: absolute; bottom: 25%; left: 43%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #b09878 0%, #8a6a4a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: vr-pestle 4s ease-in-out infinite alternate;
}
.scn-verulam-s-remedy .cloth {
  position: absolute; bottom: 22%; left: 20%; width: 40px; height: 14px;
  background: linear-gradient(180deg, #e0d0b8 0%, #c0a888 100%);
  border-radius: 20% 80% 30% 70% / 40% 30% 70% 60%;
  filter: blur(1px);
  animation: vr-cloth 6s ease-in-out infinite;
}
.scn-verulam-s-remedy .steam {
  position: absolute; bottom: 70%; left: 35%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(240,230,210,.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: vr-steam 12s ease-out infinite;
}
@keyframes vr-jar { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes vr-bottle { 0%,100% { transform: rotate(0); } 25% { transform: rotate(-2deg); } 75% { transform: rotate(2deg); } }
@keyframes vr-pestle { 0% { transform: rotate(0); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-8deg); } }
@keyframes vr-cloth { 0% { transform: translate(0,0) rotate(0); } 25% { transform: translate(1px,-1px) rotate(3deg); } 50% { transform: translate(-1px,-2px) rotate(-2deg); } 75% { transform: translate(2px,-1px) rotate(4deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes vr-steam { 0% { transform: translate(0,0) scale(.6); opacity: .4; } 50% { transform: translate(4px,-12px) scale(1.2); opacity: .2; } 100% { transform: translate(-2px,-24px) scale(1.5); opacity: 0; } }

/* father-s-response-deferred */
.scn-father-s-response-deferred {
  background:
    linear-gradient(180deg, #f2dcc0 0%, #d4b890 40%, #a08060 100%),
    radial-gradient(ellipse at 50% 100%, #8a6a4a 0%, transparent 70%);
}
.scn-father-s-response-deferred .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b08a 100%);
  box-shadow: inset 0 8px 20px rgba(100,70,40,.15);
}
.scn-father-s-response-deferred .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
}
.scn-father-s-response-deferred .desk {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 14%;
  background: linear-gradient(180deg, #8c6a4a 0%, #60442a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 6px 14px rgba(0,0,0,.5), inset 0 2px 4px rgba(255,200,150,.2);
  animation: fr-desk 12s ease-in-out infinite;
}
.scn-father-s-response-deferred .chair {
  position: absolute; bottom: 22%; left: 40%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-father-s-response-deferred .father {
  position: absolute; bottom: 28%; left: 42%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 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: fr-father 5s ease-in-out infinite alternate;
}
.scn-father-s-response-deferred .quill {
  position: absolute; bottom: 36%; left: 34%; width: 4px; height: 24px;
  background: linear-gradient(180deg, #d0c0a8 0%, #a08868 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: fr-quill 3s ease-in-out infinite alternate;
}
.scn-father-s-response-deferred .inkwell {
  position: absolute; bottom: 26%; left: 32%; width: 14px; height: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: fr-inkwell 8s ease-in-out infinite alternate;
}
.scn-father-s-response-deferred .clock {
  position: absolute; top: 12%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d0b88a 0%, #a08060 100%);
  border-radius: 50%;
  border: 2px solid #60442a;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: fr-clock 4s ease-in-out infinite alternate;
}
@keyframes fr-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes fr-father { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fr-quill { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-1px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes fr-inkwell { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fr-clock { 0% { transform: rotate(0); } 25% { transform: rotate(5deg); } 75% { transform: rotate(-5deg); } 100% { transform: rotate(0); } }

/* radical-heat-moisture */
.scn-radical-heat-moisture {
  background:
    linear-gradient(180deg, #f0dcc0 0%, #d4b890 40%, #9a7a5a 100%),
    radial-gradient(ellipse at 50% 100%, #7a5a3a 0%, transparent 70%);
}
.scn-radical-heat-moisture .table {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 28%;
  background: linear-gradient(180deg, #8c6a4a 0%, #60442a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
}
.scn-radical-heat-moisture .flask {
  position: absolute; bottom: 40%; left: 50%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #c8b89a 0%, #a08868 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,.4), inset 0 2px 10px rgba(255,200,150,.3);
  animation: rh-flask 12s ease-in-out infinite alternate;
}
.scn-radical-heat-moisture .burner {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 14px;
  background: radial-gradient(ellipse, #f0a040 0%, #c07020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 6px #c07020;
  animation: rh-burner 2s ease-in-out infinite alternate;
}
.scn-radical-heat-moisture .tube {
  position: absolute; bottom: 48%; left: 55%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c0b09a 0%, #a08870 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  transform: rotate(-20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: rh-tube 10s ease-in-out infinite;
}
.scn-radical-heat-moisture .droplet {
  position: absolute; bottom: 72%; left: 56%; width: 6px; height: 8px;
  background: radial-gradient(ellipse, #e0d0b8 0%, #b09878 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: rh-droplet 6s ease-in-out infinite;
}
.scn-radical-heat-moisture .vapor {
  position: absolute; bottom: 70%; left: 45%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(240,230,210,.35) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rh-vapor 8s ease-out infinite;
}
.scn-radical-heat-moisture .recipe {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 6px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px;
  transform: rotate(4deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: rh-recipe 15s ease-in-out infinite alternate;
}
@keyframes rh-flask { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes rh-burner { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: .9; } 50% { transform: translateX(-50%) scaleY(1.1) scaleX(.95); opacity: 1; } 100% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: .9; } }
@keyframes rh-tube { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-18deg); } 100% { transform: rotate(-20deg); } }
@keyframes rh-droplet { 0% { transform: translate(0,0) scale(.8); opacity: .6; } 25% { transform: translate(1px,8px) scale(1); opacity: 1; } 50% { transform: translate(-1px,16px) scale(.9); opacity: .8; } 75% { transform: translate(0,24px) scale(.7); opacity: .4; } 100% { transform: translate(0,32px) scale(0); opacity: 0; } }
@keyframes rh-vapor { 0% { transform: translate(0,0) scale(.5); opacity: .3; } 50% { transform: translate(3px,-10px) scale(1.2); opacity: .2; } 100% { transform: translate(-2px,-20px) scale(1.6); opacity: 0; } }
@keyframes rh-recipe { 0% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-1px); } 100% { transform: rotate(4deg) translateY(0); } }

/* father-demonstrates (calm, bright interior) */
.scn-father-demonstrates {
  background: linear-gradient(180deg, #f7f0e8 0%, #d8c8b8 50%, #c0a890 100%), radial-gradient(ellipse at 30% 50%, #e8ddd0 0%, transparent 70%);
}
.scn-father-demonstrates .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f2e6d8 0%, #d8c0a8 100%);
  animation: fd-fade 6s ease-in-out infinite alternate;
}
.scn-father-demonstrates .window-glow {
  position: absolute; top: 12%; right: 10%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 60%, #fffae0 0%, #eeddaa 60%, transparent 100%);
  border-radius: 4px; filter: blur(4px);
  animation: fd-glow 4s ease-in-out infinite alternate;
}
.scn-father-demonstrates .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #a07050 0%, #805030 100%);
  border-radius: 6px 6px 0 0;
  animation: fd-desksway 8s ease-in-out infinite alternate;
}
.scn-father-demonstrates .bookstack {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 30px;
  background: repeating-linear-gradient(0deg, #6b4a36 0px, #6b4a36 6px, #7a5840 6px, #7a5840 12px, #8c664a 12px, #8c664a 18px, #a07050 18px, #a07050 24px, #b88464 24px, #b88464 30px);
  border-radius: 2px; box-shadow: 2px 4px 6px rgba(0,0,0,0.2);
}
.scn-father-demonstrates .lamp {
  position: absolute; bottom: 27%; left: 30%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #a07840 100%);
  border-radius: 50% 50% 20% 20%;
  animation: fd-sway 5s ease-in-out infinite alternate;
}
.scn-father-demonstrates .lamp::before {
  content: ''; position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
  width: 10px; height: 10px; background: radial-gradient(circle, #fff0c0 0%, #d8b070 70%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(200,160,96,0.5);
  animation: fd-glow 3s ease-in-out infinite alternate;
}
.scn-father-demonstrates .father-body {
  position: absolute; bottom: 14%; left: 55%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 40% 30% 30% 40% / 60% 40% 40% 60%;
  transform-origin: bottom center;
  animation: fd-walk 6s ease-in-out infinite;
}
.scn-father-demonstrates .father-head {
  position: absolute; bottom: 39%; left: 57%; width: 12px; height: 14px;
  background: #2a2018;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: fd-nod 2.5s ease-in-out infinite alternate;
}
.scn-father-demonstrates .yorick-skull {
  position: absolute; bottom: 14%; left: 68%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #dbb894 0%, #c49a70 100%);
  border-radius: 60% 60% 50% 50% / 70% 70% 50% 50%;
  box-shadow: inset -2px -2px 4px rgba(0,0,0,0.2);
  animation: fd-skullbob 4s ease-in-out infinite;
}
@keyframes fd-fade { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes fd-glow { 0% { box-shadow: 0 0 12px 4px #d8b070; opacity:0.7 } 50% { box-shadow: 0 0 28px 10px #fff0c0; opacity:1 } 100% { box-shadow: 0 0 16px 6px #d8b070; opacity:0.8 } }
@keyframes fd-desksway { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fd-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes fd-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes fd-nod { 0% { transform: rotate(-8deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-8deg) } }
@keyframes fd-skullbob { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(-3deg) } }

/* moon-man-speech (funny, starlit) */
.scn-moon-man-speech {
  background: linear-gradient(180deg, #0b0b2e 0%, #161640 50%, #2a2a6a 100%), radial-gradient(ellipse at 70% 20%, #3a3a7a 0%, transparent 60%);
}
.scn-moon-man-speech .starfield {
  position: absolute; inset: 0;
  background: radial-gradient(1px 1px at 20% 30%, #ffffff, transparent), radial-gradient(2px 2px at 60% 50%, #ddd, transparent), radial-gradient(1px 1px at 80% 20%, #ccc, transparent), radial-gradient(1.5px 1.5px at 40% 70%, #bbb, transparent);
  animation: mm-twinkle 8s ease-in-out infinite alternate;
}
.scn-moon-man-speech .moonsurface {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 50%, #2a2a3a 100%);
  border-radius: 60% 40% 0 0 / 100% 100% 0 0;
  animation: mm-moonsway 12s ease-in-out infinite alternate;
}
.scn-moon-man-speech .moonman-body {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #b0b0c0 0%, #808090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mm-bodybounce 4s ease-in-out infinite;
}
.scn-moon-man-speech .moonman-head {
  position: absolute; bottom: 55%; left: 47%; width: 16px; height: 16px;
  background: #c0c0d0;
  border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: mm-headtilt 3s ease-in-out infinite alternate;
}
.scn-moon-man-speech .moonman-arm {
  position: absolute; bottom: 37%; left: 38%; width: 14px; height: 6px;
  background: #9090a0;
  border-radius: 30% 70% 50% 50% / 50% 50% 50% 50%;
  transform-origin: 100% 50%;
  animation: mm-armstrike 1.5s ease-in-out infinite alternate;
}
.scn-moon-man-speech .crater {
  position: absolute; bottom: 8%; left: 20%; width: 30px; height: 12px;
  background: radial-gradient(ellipse, #2a2a3a 0%, transparent 70%);
  border-radius: 50%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.4);
  animation: mm-craterfade 10s ease-in-out infinite alternate;
}
.scn-moon-man-speech .bright-star {
  position: absolute; top: 10%; right: 20%; width: 8px; height: 8px;
  background: #ffffcc; border-radius: 50%;
  box-shadow: 0 0 20px 6px #fffac0;
  animation: mm-starflare 3s ease-in-out infinite alternate;
}
@keyframes mm-twinkle { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes mm-moonsway { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes mm-bodybounce { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-6px) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 75% { transform: translateY(-6px) rotate(2deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes mm-headtilt { 0% { transform: rotate(-10deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-10deg) } }
@keyframes mm-armstrike { 0% { transform: rotate(20deg) scaleY(1.2) } 50% { transform: rotate(-30deg) scaleY(0.8) } 100% { transform: rotate(20deg) scaleY(1.2) } }
@keyframes mm-craterfade { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes mm-starflare { 0% { box-shadow: 0 0 12px 2px #fffac0; opacity:0.7 } 50% { box-shadow: 0 0 30px 10px #ffffcc; opacity:1 } 100% { box-shadow: 0 0 15px 4px #fffac0; opacity:0.8 } }

/* hippocrates-verulam (tense, bright interior) */
.scn-hippocrates-verulam {
  background: linear-gradient(180deg, #e0d4c8 0%, #c4b6a8 50%, #a89888 100%), radial-gradient(ellipse at 50% 0%, #f0e8e0 0%, transparent 80%);
}
.scn-hippocrates-verulam .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4c8bc 0%, #b8a89a 100%);
  animation: hv-darkshift 10s ease-in-out infinite alternate;
}
.scn-hippocrates-verulam .floor-line {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2px;
}
.scn-hippocrates-verulam .pedestal-left {
  position: absolute; bottom: 15%; left: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #d0c0b0 0%, #a09080 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2);
  animation: hv-pedestalsway 6s ease-in-out infinite alternate;
}
.scn-hippocrates-verulam .pedestal-right {
  position: absolute; bottom: 15%; right: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #d0c0b0 0%, #a09080 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2);
  animation: hv-pedestalsway 6s ease-in-out infinite alternate-reverse;
}
.scn-hippocrates-verulam .bust-left {
  position: absolute; bottom: 38%; left: 17%; width: 26px; height: 30px;
  background: linear-gradient(180deg, #c8b8a8 0%, #a09080 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.3);
  animation: hv-busttremor 3s ease-in-out infinite alternate;
}
.scn-hippocrates-verulam .bust-right {
  position: absolute; bottom: 38%; right: 17%; width: 26px; height: 30px;
  background: linear-gradient(180deg, #c8b8a8 0%, #a09080 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.3);
  animation: hv-busttremor 3s ease-in-out infinite alternate-reverse;
}
.scn-hippocrates-verulam .father-figure {
  position: absolute; bottom: 14%; left: 47%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a2218 0%, #0a0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hv-fatherswing 4s ease-in-out infinite alternate;
}
.scn-hippocrates-verulam .spotlight {
  position: absolute; top: 0; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,220,0.6) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: hv-lightflicker 2.5s ease-in-out infinite alternate;
}
@keyframes hv-darkshift { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hv-pedestalsway { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes hv-busttremor { 0% { transform: translateY(0) rotate(-2deg) scale(1) } 50% { transform: translateY(-2px) rotate(1deg) scale(1.02) } 100% { transform: translateY(0) rotate(-2deg) scale(1) } }
@keyframes hv-fatherswing { 0% { transform: rotate(-5deg) translateX(-3px) } 50% { transform: rotate(3deg) translateX(3px) } 100% { transform: rotate(-5deg) translateX(-3px) } }
@keyframes hv-lightflicker { 0% { opacity:0.7; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.05) } 100% { opacity:0.6; transform: scaleX(0.98) } }

/* verulam-attack (tense, bright interior) */
.scn-verulam-attack {
  background: linear-gradient(180deg, #d4c0b0 0%, #b0a090 50%, #8a7a6a 100%), radial-gradient(ellipse at 70% 60%, #d8c8b8 0%, transparent 60%);
}
.scn-verulam-attack .bg-darkroom {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c4b4a4 0%, #a09080 50%, #7a6a5a 100%);
  animation: va-shadowmove 12s ease-in-out infinite alternate;
}
.scn-verulam-attack .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%);
  border-radius: 6px; box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
  animation: va-deskrock 8s ease-in-out infinite alternate;
}
.scn-verulam-attack .verulam-bust {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 36px;
  background: linear-gradient(180deg, #c8b0a0 0%, #a88870 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 4px 4px 8px rgba(0,0,0,0.4), inset 0 0 10px rgba(0,0,0,0.2);
  animation: va-bustshake 2s ease-in-out infinite alternate;
}
.scn-verulam-attack .father-hand {
  position: absolute; bottom: 20%; left: 40%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 40% 60% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: va-handpoint 1.8s ease-in-out infinite alternate;
}
.scn-verulam-attack .open-book {
  position: absolute; bottom: 14%; left: 20%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #f0e0d0 0%, #d8c8b8 100%);
  border-radius: 2px 2px 12px 12px; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.1);
  animation: va-bookflap 6s ease-in-out infinite alternate;
}
.scn-verulam-attack .inkwell {
  position: absolute; bottom: 16%; left: 65%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 1px 2px 4px rgba(0,0,0,0.4);
}
.scn-verulam-attack .shadow-long {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: va-shadowslide 5s ease-in-out infinite alternate;
}
@keyframes va-shadowmove { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes va-deskrock { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes va-bustshake { 0% { transform: translateY(0) rotate(-3deg) scale(1) } 50% { transform: translateY(-2px) rotate(2deg) scale(1.03) } 100% { transform: translateY(0) rotate(-3deg) scale(1) } }
@keyframes va-handpoint { 0% { transform: translateY(0) rotate(-15deg) } 50% { transform: translateY(-4px) rotate(10deg) } 100% { transform: translateY(0) rotate(-15deg) } }
@keyframes va-bookflap { 0% { transform: rotateX(0) } 50% { transform: rotateX(15deg) } 100% { transform: rotateX(0) } }
@keyframes va-shadowslide { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-10px) scaleX(1.1) } 100% { transform: translateX(0) scaleX(1) } }

.scn-moisture-explanation {
  background:
    linear-gradient(180deg, #f5f0e0 0%, #e8ddc8 60%, #d4c4a8 100%),
    radial-gradient(ellipse at 40% 20%, #fffbe6 0%, transparent 60%);
}
.scn-moisture-explanation .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #dac8a8 0%, #b8a48a 100%);
}
.scn-moisture-explanation .window-frame {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  border: 6px solid #4a3a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.2);
}
.scn-moisture-explanation .window-glass {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #e0f0ff 0%, #b0d0e8 100%);
  opacity: .7; animation: me-glass 12s ease-in-out infinite alternate;
}
.scn-moisture-explanation .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px; animation: me-table 8s ease-in-out infinite;
}
.scn-moisture-explanation .vessel {
  position: absolute; bottom: 25%; left: 40%; width: 12%; height: 20%;
  background: radial-gradient(circle at 50% 30%, #c89050 0%, #8a6030 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4), inset 0 2px 6px rgba(255,200,100,.4);
  animation: me-vessel 6s ease-in-out infinite alternate;
}
.scn-moisture-explanation .book {
  position: absolute; bottom: 18%; left: 55%; width: 10%; height: 14%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px; transform: rotate(-10deg); animation: me-book 10s ease-in-out infinite;
}
.scn-moisture-explanation .dust {
  position: absolute; top: 20%; left: 20%; width: 4px; height: 4px;
  background: rgba(200,180,140,.6); border-radius: 50%; filter: blur(2px);
  animation: me-dust 20s linear infinite;
}
@keyframes me-glass {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .5; }
}
@keyframes me-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes me-vessel {
  0% { box-shadow: 0 4px 8px rgba(0,0,0,.4), inset 0 2px 6px rgba(255,200,100,.3); }
  50% { box-shadow: 0 6px 12px rgba(0,0,0,.5), inset 0 4px 10px rgba(255,200,100,.6); }
  100% { box-shadow: 0 4px 8px rgba(0,0,0,.4), inset 0 2px 6px rgba(255,200,100,.3); }
}
@keyframes me-book {
  0%,100% { transform: rotate(-10deg); }
  50% { transform: rotate(-8deg) translateY(-1px); }
}
@keyframes me-dust {
  0% { transform: translate(0,0) scale(1); opacity: .6; }
  25% { transform: translate(20px,-10px) scale(1.2); opacity: .8; }
  50% { transform: translate(40px,0) scale(.8); opacity: .4; }
  75% { transform: translate(60px,10px) scale(1.1); opacity: .7; }
  100% { transform: translate(80px,0) scale(1); opacity: .6; }
}

.scn-uncle-toby-siege-limerick {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 30%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a0a 0%, transparent 60%);
}
.scn-uncle-toby-siege-limerick .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a0a0a 0%, #2a1a1a 100%); opacity: .9;
}
.scn-uncle-toby-siege-limerick .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1808 100%); border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,.8);
}
.scn-uncle-toby-siege-limerick .candle {
  position: absolute; bottom: 38%; left: 48%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b098 100%); border-radius: 4px; box-shadow: 0 0 10px rgba(200,180,140,.3);
}
.scn-uncle-toby-siege-limerick .flame {
  position: absolute; bottom: 52%; left: 48%; width: 3%; height: 8%;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #e08040 60%, #802000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: uts-flame .4s ease-in-out infinite alternate;
}
.scn-uncle-toby-siege-limerick .map {
  position: absolute; bottom: 28%; left: 20%; width: 30%; height: 18%;
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a888 100%);
  border-radius: 2px; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: uts-map 12s ease-in-out infinite;
}
.scn-uncle-toby-siege-limerick .figure1 {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: uts-fig1 2s ease-in-out infinite alternate;
}
.scn-uncle-toby-siege-limerick .figure2 {
  position: absolute; bottom: 20%; right: 35%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: uts-fig2 1.5s ease-in-out infinite alternate-reverse;
}
.scn-uncle-toby-siege-limerick .shadow {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 80%);
  animation: uts-shadow .4s ease-in-out infinite alternate;
}
@keyframes uts-flame {
  0% { transform: scale(1) rotate(-2deg); opacity: .9; }
  50% { transform: scale(1.1) rotate(2deg); opacity: 1; }
  100% { transform: scale(.95) rotate(-1deg); opacity: .8; }
}
@keyframes uts-map {
  0%,100% { transform: rotate(0) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
}
@keyframes uts-fig1 {
  0% { transform: translateX(0) rotate(0); }
  100% { transform: translateX(3px) rotate(-1deg); }
}
@keyframes uts-fig2 {
  0% { transform: translateX(0) rotate(0); }
  100% { transform: translateX(-3px) rotate(1deg); }
}
@keyframes uts-shadow {
  0% { opacity: .6; transform: scaleX(1); }
  50% { opacity: .8; transform: scaleX(1.05); }
  100% { opacity: .5; transform: scaleX(.95); }
}

.scn-uncle-toby-s-limerick {
  background:
    linear-gradient(180deg, #4a3020 0%, #3a2010 50%, #2a1000 100%),
    radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 70%);
}
.scn-uncle-toby-s-limerick .tent-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2010 0%, #2a1000 100%); opacity: .8;
}
.scn-uncle-toby-s-limerick .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%); border-radius: 20% 20% 0 0;
}
.scn-uncle-toby-s-limerick .candle {
  position: absolute; bottom: 40%; left: 50%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #e0c8a8 0%, #c0a078 100%); border-radius: 4px;
  animation: utl-candle 6s ease-in-out infinite alternate;
}
.scn-uncle-toby-s-limerick .figure-a {
  position: absolute; bottom: 22%; left: 30%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: utl-fig-a 4s ease-in-out infinite;
}
.scn-uncle-toby-s-limerick .figure-b {
  position: absolute; bottom: 22%; right: 30%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: utl-fig-b 4.5s ease-in-out infinite;
}
.scn-uncle-toby-s-limerick .canteen {
  position: absolute; bottom: 35%; left: 45%; width: 6%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: utl-canteen 8s ease-in-out infinite;
}
.scn-uncle-toby-s-limerick .glow {
  position: absolute; bottom: 40%; left: 45%; right: 45%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,180,80,.4) 0%, transparent 80%);
  animation: utl-glow 3s ease-in-out infinite alternate;
}
.scn-uncle-toby-s-limerick .dust {
  position: absolute; top: 20%; left: 20%; width: 3px; height: 3px;
  background: rgba(200,180,140,.4); border-radius: 50%; filter: blur(1px);
  animation: utl-dust 25s linear infinite;
}
@keyframes utl-candle {
  0%,100% { transform: scale(1); opacity: .8; }
  50% { transform: scale(1.02) translateY(-1px); opacity: 1; }
}
@keyframes utl-fig-a {
  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 utl-fig-b {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(1px) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(0); }
  75% { transform: translateY(0) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes utl-canteen {
  0%,100% { transform: rotate(0); }
  50% { transform: rotate(3deg); }
}
@keyframes utl-glow {
  0% { opacity: .3; }
  50% { opacity: .7; }
  100% { opacity: .4; }
}
@keyframes utl-dust {
  0% { transform: translate(0,0) scale(1); opacity: .5; }
  25% { transform: translate(15px,-8px) scale(1.1); opacity: .7; }
  50% { transform: translate(30px,0) scale(.9); opacity: .3; }
  75% { transform: translate(45px,8px) scale(1.2); opacity: .6; }
  100% { transform: translate(60px,0) scale(1); opacity: .5; }
}

.scn-corporal-s-remedy {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2010 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 100%, #6a3020 0%, transparent 60%);
}
.scn-corporal-s-remedy .fireplace {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 50%;
  background: linear-gradient(180deg, #4a1a0a 0%, #2a0a00 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 30px rgba(100,30,0,.6);
}
.scn-corporal-s-remedy .logs {
  position: absolute; bottom: 25%; left: 28%; right: 28%; height: 10%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-corporal-s-remedy .flame-1 {
  position: absolute; bottom: 35%; left: 40%; width: 8%; height: 20%;
  background: radial-gradient(ellipse at 50% 30%, #6a3010 0%, #2a0a00 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: csr-flame1 .8s ease-in-out infinite alternate;
}
.scn-corporal-s-remedy .flame-2 {
  position: absolute; bottom: 35%; left: 52%; width: 6%; height: 16%;
  background: radial-gradient(ellipse at 50% 30%, #8a4020 0%, #3a1000 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: csr-flame2 1s ease-in-out infinite alternate;
  animation-delay: .3s;
}
.scn-corporal-s-remedy .mantel {
  position: absolute; bottom: 68%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,.5);
}
.scn-corporal-s-remedy .bottle {
  position: absolute; bottom: 23%; left: 18%; width: 8%; height: 20%;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: csr-bottle 5s ease-in-out infinite;
}
.scn-corporal-s-remedy .glass {
  position: absolute; bottom: 26%; left: 12%; width: 5%; height: 12%;
  background: linear-gradient(135deg, #c8b898 0%, #a88868 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  animation: csr-glass 4s ease-in-out infinite alternate;
}
.scn-corporal-s-remedy .figure-a {
  position: absolute; bottom: 18%; left: 10%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: csr-fig-a 3s ease-in-out infinite;
}
.scn-corporal-s-remedy .figure-b {
  position: absolute; bottom: 18%; right: 10%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: csr-fig-b 3.5s ease-in-out infinite;
}
@keyframes csr-flame1 {
  0% { transform: scale(1) rotate(-2deg) translateY(0); opacity: .8; }
  50% { transform: scale(1.1) rotate(2deg) translateY(-2px); opacity: 1; }
  100% { transform: scale(.95) rotate(-1deg) translateY(1px); opacity: .7; }
}
@keyframes csr-flame2 {
  0% { transform: scale(1) rotate(1deg) translateY(0); opacity: .8; }
  50% { transform: scale(1.15) rotate(-2deg) translateY(-3px); opacity: 1; }
  100% { transform: scale(.9) rotate(0) translateY(2px); opacity: .6; }
}
@keyframes csr-bottle {
  0%,100% { transform: rotate(0); }
  50% { transform: rotate(4deg); }
}
@keyframes csr-glass {
  0% { transform: scale(1) rotate(0); }
  50% { transform: scale(1.02) rotate(2deg); }
  100% { transform: scale(1) rotate(-1deg); }
}
@keyframes csr-fig-a {
  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 csr-fig-b {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(1px) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(0); }
  75% { transform: translateY(0) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}

.scn-obstacle-revealed { background: linear-gradient(180deg, #1a1410 0%, #2a1e15 50%, #0a0805 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%); }
.scn-obstacle-revealed .bg { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1a1410 0%, transparent 100%); }
.scn-obstacle-revealed .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #2a1e15 0%, #0a0805 100%); }
.scn-obstacle-revealed .obstacle { position: absolute; bottom: 40%; left: 45%; width: 30px; height: 50px; background: #1a1410; border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); animation: obs-obstacle 4s ease-in-out infinite; }
.scn-obstacle-revealed .figure { position: absolute; bottom: 35%; left: 35%; width: 20px; height: 60px; background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: obs-figure 5s ease-in-out infinite; }
.scn-obstacle-revealed .light { position: absolute; bottom: 45%; left: 25%; width: 12px; height: 12px; background: radial-gradient(circle, #b8864b 0%, transparent 60%); border-radius: 50%; box-shadow: 0 0 20px 6px #8a5a2b; animation: obs-light 2s ease-in-out infinite alternate; }
.scn-obstacle-revealed .shadow { position: absolute; bottom: 35%; left: 30%; width: 40px; height: 10px; background: rgba(0,0,0,0.3); border-radius: 50%; transform: skewX(-20deg); animation: obs-shadow 5s ease-in-out infinite; }
.scn-obstacle-revealed .dust-a { position: absolute; top: 60%; left: 10%; width: 4px; height: 4px; background: rgba(180,140,80,0.3); border-radius: 50%; filter: blur(2px); animation: obs-dust-a 20s linear infinite; }
.scn-obstacle-revealed .dust-b { position: absolute; top: 30%; left: 80%; width: 3px; height: 3px; background: rgba(180,140,80,0.2); border-radius: 50%; filter: blur(2px); animation: obs-dust-b 25s linear infinite reverse; }
@keyframes obs-obstacle { 0% { transform: scaleY(1); } 30% { transform: scaleY(1.08); } 60% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes obs-figure { 0% { transform: translateX(0); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(0.5deg); } 100% { transform: translateX(0); } }
@keyframes obs-light { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); box-shadow: 0 0 30px 10px #8a5a2b; } 100% { opacity: 0.7; transform: scale(0.95); box-shadow: 0 0 15px 4px #6a3a1b; } }
@keyframes obs-shadow { 0% { opacity: 0.4; transform: skewX(-20deg) translateX(0); } 50% { opacity: 0.6; transform: skewX(-15deg) translateX(2px); } 100% { opacity: 0.4; transform: skewX(-20deg) translateX(0); } }
@keyframes obs-dust-a { 0% { transform: translate(0, 0); opacity: 0; } 10% { opacity: 0.6; } 90% { opacity: 0.3; } 100% { transform: translate(100px, -30px); opacity: 0; } }
@keyframes obs-dust-b { 0% { transform: translate(0, 0); opacity: 0; } 10% { opacity: 0.5; } 80% { opacity: 0.2; } 100% { transform: translate(-80px, -20px); opacity: 0; } }

.scn-stevinus-discussion { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 50%, #1a1008 100%), radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 80%); }
.scn-stevinus-discussion .bg { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a1a0e 0%, transparent 100%); }
.scn-stevinus-discussion .fire { position: absolute; bottom: 30%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #ff7a20 30%, #5a2a0a 70%, transparent 90%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; animation: ste-fire 1.5s ease-in-out infinite alternate; }
.scn-stevinus-discussion .figure-left { position: absolute; bottom: 25%; left: 20%; width: 22px; height: 70px; background: linear-gradient(180deg, #1a140c 0%, #0a0805 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ste-figure 4s ease-in-out infinite; animation-delay: 0s; }
.scn-stevinus-discussion .figure-center { position: absolute; bottom: 25%; left: 45%; width: 24px; height: 72px; background: linear-gradient(180deg, #1a140c 0%, #0a0805 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ste-figure 4.5s ease-in-out infinite; animation-delay: 0.5s; }
.scn-stevinus-discussion .figure-right { position: absolute; bottom: 25%; right: 20%; width: 20px; height: 68px; background: linear-gradient(180deg, #1a140c 0%, #0a0805 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ste-figure 3.8s ease-in-out infinite; animation-delay: 1s; }
.scn-stevinus-discussion .table { position: absolute; bottom: 28%; left: 35%; width: 120px; height: 12px; background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: ste-table 6s ease-in-out infinite; }
.scn-stevinus-discussion .glow { position: absolute; bottom: 20%; left: 30%; right: 30%; height: 50%; background: radial-gradient(ellipse at 50% 0%, rgba(255,100,20,0.15) 0%, transparent 70%); animation: ste-glow 2s ease-in-out infinite alternate; }
.scn-stevinus-discussion .book { position: absolute; bottom: 32%; left: 38%; width: 20px; height: 30px; background: linear-gradient(90deg, #5a3a1a 50%, #4a2a0a 50%); border-radius: 5% 5% 15% 15%; transform: rotateY(0deg); transform-origin: left center; animation: ste-book 8s ease-in-out infinite; }
@keyframes ste-fire { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.8; } 30% { transform: translateX(-50%) scaleY(1.15) scaleX(0.9); opacity: 1; } 60% { transform: translateX(-50%) scaleY(0.9) scaleX(1.1); opacity: 0.9; } 100% { transform: translateX(-50%) scaleY(1.05) scaleX(0.95); opacity: 0.85; } }
@keyframes ste-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ste-table { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes ste-glow { 0% { opacity: 0.4; } 100% { opacity: 0.8; } }
@keyframes ste-book { 0% { transform: rotateY(0deg); } 40% { transform: rotateY(15deg); } 70% { transform: rotateY(-5deg); } 100% { transform: rotateY(0deg); } }

.scn-fortification-explanation { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 50%, #1a1008 100%), radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 80%); }
.scn-fortification-explanation .bg { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #2a1a0e 0%, transparent 100%); }
.scn-fortification-explanation .desk { position: absolute; bottom: 20%; left: 15%; right: 15%; height: 25%; background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 -4px 20px rgba(0,0,0,0.5); }
.scn-fortification-explanation .father { position: absolute; bottom: 25%; left: 25%; width: 28px; height: 80px; background: linear-gradient(180deg, #1a140c 0%, #0a0805 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: for-father 6s ease-in-out infinite; }
.scn-fortification-explanation .book { position: absolute; bottom: 30%; left: 35%; width: 30px; height: 20px; background: linear-gradient(90deg, #5a3a1a 50%, #4a2a0a 50%); border-radius: 5%; transform-origin: left center; animation: for-book 10s ease-in-out infinite; }
.scn-fortification-explanation .candle { position: absolute; bottom: 25%; left: 15%; width: 8px; height: 30px; background: linear-gradient(180deg, #8a6a3a 0%, #4a2a0a 100%); border-radius: 20% 20% 10% 10%; animation: for-candle 1.8s ease-in-out infinite alternate; }
.scn-fortification-explanation .candle::after { content: ''; position: absolute; top: -10px; left: 0; width: 8px; height: 10px; background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, transparent 80%); border-radius: 50%; animation: for-candle 1.8s ease-in-out infinite alternate; }
.scn-fortification-explanation .pun { position: absolute; bottom: 40%; right: 20%; width: 10px; height: 10px; background: #b86a3a; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,100,40,0.3); animation: for-pun 3s ease-in-out infinite; }
.scn-fortification-explanation .shadow { position: absolute; bottom: 20%; left: 20%; width: 50px; height: 15px; background: rgba(0,0,0,0.3); border-radius: 50%; transform: skewX(-30deg); animation: for-shadow 6s ease-in-out infinite; }
.scn-fortification-explanation .shelf { position: absolute; bottom: 55%; left: 10%; right: 10%; height: 8px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 2px; animation: for-shelf 12s ease-in-out infinite; }
@keyframes for-father { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(2deg) translateX(1px); } 50% { transform: rotate(-1deg) translateX(-1px); } 75% { transform: rotate(1deg) translateX(1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes for-book { 0% { transform: rotateY(0deg); } 40% { transform: rotateY(12deg); } 70% { transform: rotateY(-3deg); } 100% { transform: rotateY(0deg); } }
@keyframes for-candle { 0% { opacity: 0.7; filter: brightness(1); transform: scale(1); } 40% { opacity: 1; filter: brightness(1.2); transform: scale(1.05); } 80% { opacity: 0.8; filter: brightness(0.9); transform: scale(0.95); } 100% { opacity: 0.9; filter: brightness(1); transform: scale(1.02); } }
@keyframes for-pun { 0% { transform: translateY(0) rotate(0deg) scale(1); } 30% { transform: translateY(-12px) rotate(25deg) scale(1.3); } 60% { transform: translateY(0) rotate(-5deg) scale(0.9); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes for-shadow { 0% { opacity: 0.3; transform: skewX(-30deg) translateX(0); } 50% { opacity: 0.5; transform: skewX(-25deg) translateX(3px); } 100% { opacity: 0.3; transform: skewX(-30deg) translateX(0); } }
@keyframes for-shelf { 0% { transform: rotate(0deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(0deg); } }

.scn-uncle-toby-patience { background: linear-gradient(180deg, #1a1810 0%, #2a2015 50%, #1a140e 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 80%); }
.scn-uncle-toby-patience .bg { position: absolute; inset: 0 0 10% 0; background: linear-gradient(180deg, #1a1810 0%, transparent 100%); }
.scn-uncle-toby-patience .figure { position: absolute; bottom: 15%; left: 40%; width: 30px; height: 90px; background: linear-gradient(180deg, #1a1610 0%, #0a0805 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pat-figure 4s ease-in-out infinite alternate; }
.scn-uncle-toby-patience .pipe { position: absolute; bottom: 30%; left: 35%; width: 6px; height: 20px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 10% 10%; transform: rotate(30deg); transform-origin: bottom left; }
.scn-uncle-toby-patience .pipe::after { content: ''; position: absolute; top: -25px; left: 5px; width: 15px; height: 15px; background: radial-gradient(circle, rgba(200,160,100,0.6) 0%, transparent 100%); border-radius: 50%; animation: pat-smoke 8s linear infinite; }
.scn-uncle-toby-patience .fire { position: absolute; bottom: 15%; left: 70%; width: 50px; height: 70px; background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #ff7a20 30%, #5a2a0a 70%, transparent 90%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; animation: pat-fire 2s ease-in-out infinite alternate; }
.scn-uncle-toby-patience .medal { position: absolute; bottom: 30%; left: 45%; width: 8px; height: 8px; background: radial-gradient(circle, #d4a040 0%, #8a6a2a 100%); border-radius: 50%; box-shadow: 0 0 4px 1px rgba(200,160,80,0.5); animation: pat-medal 5s ease-in-out infinite; }
.scn-uncle-toby-patience .map { position: absolute; bottom: 45%; right: 10%; width: 50px; height: 40px; background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 5% 15% 5% 15%; transform: rotate(-5deg); animation: pat-map 12s ease-in-out infinite; }
.scn-uncle-toby-patience .chair { position: absolute; bottom: 15%; left: 35%; width: 60px; height: 40px; background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.4); animation: pat-chair 10s ease-in-out infinite; }
.scn-uncle-toby-patience .window { position: absolute; top: 10%; right: 15%; width: 60px; height: 80px; background: linear-gradient(135deg, #1a2030 0%, #0a1018 100%); border: 4px solid #3a2a1a; border-radius: 5%; overflow: hidden; animation: pat-window 8s ease-in-out infinite alternate; }
@keyframes pat-figure { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.005); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pat-smoke { 0% { opacity: 0; transform: translateY(0) scale(0.5); } 30% { opacity: 0.6; transform: translateY(-15px) scale(1.2); } 60% { opacity: 0.3; transform: translateY(-30px) scale(0.8); } 100% { opacity: 0; transform: translateY(-50px) scale(0.3); } }
@keyframes pat-fire { 0% { transform: scaleY(1) scaleX(1); opacity: 0.7; } 50% { transform: scaleY(1.2) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.8; } }
@keyframes pat-medal { 0% { filter: brightness(1); } 50% { filter: brightness(1.4); } 100% { filter: brightness(1); } }
@keyframes pat-map { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-4deg) translateX(1px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes pat-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(0deg); } }
@keyframes pat-window { 0% { background-position: 0 0; opacity: 0.8; } 100% { background-position: 5px 5px; opacity: 1; } }

/* whimsical-distresses */
.scn-whimsical-distresses {
  background:
    linear-gradient(180deg, #2b1f1a 0%, #1b1210 50%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a20 0%, transparent 70%);
}
.scn-whimsical-distresses .wd-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #1a1512 20%, #2d2219 50%, #1a1410 80%);
  animation: wd-bg 12s ease-in-out infinite alternate;
}
.scn-whimsical-distresses .wd-bookshelf {
  position:absolute; left:5%; top:10%; width:25%; height:70%;
  background: repeating-linear-gradient(0deg, #4a3728 0px, #4a3728 4px, #3a2a1e 4px, #3a2a1e 6px);
  border:2px solid #5a4738; border-radius:2px;
  animation: wd-shelf 20s linear infinite;
}
.scn-whimsical-distresses .wd-chair {
  position:absolute; right:15%; bottom:15%; width:30%; height:35%;
  background: linear-gradient(135deg, #544230 0%, #3b2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow:0 -4px 10px rgba(0,0,0,0.5);
  animation: wd-chair 6s ease-in-out infinite;
}
.scn-whimsical-distresses .wd-figure {
  position:absolute; left:40%; bottom:18%; width:12%; height:25%;
  background: linear-gradient(180deg, #2a201a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wd-figure 8s ease-in-out infinite;
}
.scn-whimsical-distresses .wd-candle {
  position:absolute; left:45%; bottom:40%; width:4%; height:10%;
  background: linear-gradient(180deg, #e8c898 0%, #b8884a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(232,200,152,0.6);
  animation: wd-candle 3s ease-in-out infinite alternate;
}
.scn-whimsical-distresses .wd-glow {
  position:absolute; left:50%; bottom:45%; width:80%; height:80%;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle at 50% 60%, rgba(232,200,152,0.15) 0%, transparent 70%);
  animation: wd-glow 5s ease-in-out infinite alternate;
}
.scn-whimsical-distresses .wd-dust {
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,0.05) 1px, transparent 1px),
    radial-gradient(circle at 80% 70%, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 40px 40px, 60px 60px;
  animation: wd-dust 20s linear infinite;
}
@keyframes wd-bg {0%{opacity:0.9}50%{opacity:0.7}100%{opacity:0.85}}
@keyframes wd-shelf {0%{background-position:0 0}100%{background-position:0 100px}}
@keyframes wd-chair {0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes wd-figure {0%{transform:translateX(0) rotate(0deg)}25%{transform:translateX(3px) rotate(2deg)}50%{transform:translateX(0) rotate(-1deg)}75%{transform:translateX(-3px) rotate(1deg)}100%{transform:translateX(0) rotate(0deg)}}
@keyframes wd-candle {0%{transform:scaleY(1);opacity:0.9}50%{transform:scaleY(1.1);opacity:1}100%{transform:scaleY(0.95);opacity:0.8}}
@keyframes wd-glow {0%{opacity:0.5}50%{opacity:0.8}100%{opacity:0.6}}
@keyframes wd-dust {0%{background-position:0 0,0 0}100%{background-position:50px 100px,-30px -50px}}

/* explanation-deferred */
.scn-explanation-deferred {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #12121e 50%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 70%);
}
.scn-explanation-deferred .ed-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #0e0e1a 0%, #1a1a2a 50%, #0e0e1a 100%);
  animation: ed-bg 10s ease-in-out infinite alternate;
}
.scn-explanation-deferred .ed-bed {
  position:absolute; bottom:10%; left:10%; width:50%; height:40%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: ed-bed 8s ease-in-out infinite;
}
.scn-explanation-deferred .ed-pillow {
  position:absolute; bottom:30%; left:15%; width:20%; height:8%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 50%;
  animation: ed-pillow 6s ease-in-out infinite alternate;
}
.scn-explanation-deferred .ed-figure-bed {
  position:absolute; bottom:15%; left:18%; width:12%; height:20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ed-figure-bed 12s ease-in-out infinite;
}
.scn-explanation-deferred .ed-chair {
  position:absolute; bottom:10%; right:15%; width:20%; height:30%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 15% 15% 10% 10%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: ed-chair 10s ease-in-out infinite;
}
.scn-explanation-deferred .ed-figure-chair {
  position:absolute; bottom:15%; right:18%; width:10%; height:22%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ed-figure-chair 14s ease-in-out infinite;
}
.scn-explanation-deferred .ed-window {
  position:absolute; top:5%; left:40%; width:20%; height:25%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border:2px solid #3a4a5a; border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: ed-window 5s ease-in-out infinite alternate;
}
@keyframes ed-bg {0%{opacity:0.8}50%{opacity:0.6}100%{opacity:0.7}}
@keyframes ed-bed {0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes ed-pillow {0%{transform:translateY(0) scale(1)}50%{transform:translateY(-1px) scale(1.02)}100%{transform:translateY(0) scale(1)}}
@keyframes ed-figure-bed {0%{transform:translateX(0)}50%{transform:translateX(2px)}100%{transform:translateX(0)}}
@keyframes ed-chair {0%{transform:rotate(0deg)}50%{transform:rotate(1deg)}100%{transform:rotate(0deg)}}
@keyframes ed-figure-chair {0%{transform:translateX(0) rotate(0deg)}25%{transform:translateX(1px) rotate(1deg)}50%{transform:translateX(0) rotate(-1deg)}75%{transform:translateX(-1px) rotate(0deg)}100%{transform:translateX(0) rotate(0deg)}}
@keyframes ed-window {0%{opacity:0.3}50%{opacity:0.6}100%{opacity:0.4}}

/* great-grandfather-nose */
.scn-great-grandfather-nose {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 50%, #c8a870 100%),
    radial-gradient(ellipse at 50% 100%, #d4b888 0%, transparent 70%);
}
.scn-great-grandfather-nose .ggn-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #e8d8b8 0%, #f0e0c0 50%, #d8c8a0 100%);
  animation: ggn-bg 5s ease-in-out infinite alternate;
}
.scn-great-grandfather-nose .ggn-table {
  position:absolute; bottom:10%; left:20%; width:60%; height:30%;
  background: linear-gradient(180deg, #8b6f4e 0%, #6b4f2e 100%);
  border-radius: 5% 5% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: ggn-table 8s ease-in-out infinite;
}
.scn-great-grandfather-nose .ggn-paper {
  position:absolute; left:30%; bottom:30%; width:15%; height:10%;
  background: #f5f0e0; border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ggn-paper 3s ease-in-out infinite;
}
.scn-great-grandfather-nose .ggn-figure {
  position:absolute; left:40%; bottom:15%; width:12%; height:35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ggn-figure 4s ease-in-out infinite;
}
.scn-great-grandfather-nose .ggn-arm {
  position:absolute; left:45%; bottom:30%; width:10%; height:15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: top left;
  animation: ggn-arm 2s ease-in-out infinite alternate;
}
.scn-great-grandfather-nose .ggn-shadow {
  position:absolute; left:15%; bottom:10%; width:70%; height:20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.2) 0%, transparent 80%);
  animation: ggn-shadow 6s ease-in-out infinite alternate;
}
@keyframes ggn-bg {0%{opacity:0.9}50%{opacity:1}100%{opacity:0.8}}
@keyframes ggn-table {0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)}}
@keyframes ggn-paper {0%{transform:rotate(-15deg) translate(0,0)}50%{transform:rotate(-10deg) translate(5px,-5px)}100%{transform:rotate(-20deg) translate(0,0)}}
@keyframes ggn-figure {0%{transform:translateX(0) rotate(0deg)}30%{transform:translateX(2px) rotate(2deg)}60%{transform:translateX(-1px) rotate(-1deg)}100%{transform:translateX(0) rotate(0deg)}}
@keyframes ggn-arm {0%{transform:rotate(0deg) translate(0,0)}100%{transform:rotate(20deg) translate(5px,-5px)}}
@keyframes ggn-shadow {0%{opacity:0.5}50%{opacity:0.3}100%{opacity:0.6}}

/* book-cleanliness */
.scn-book-cleanliness {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #e0d8c8 50%, #d0c8b8 100%),
    radial-gradient(ellipse at 50% 100%, #e8dcc8 0%, transparent 70%);
}
.scn-book-cleanliness .bc-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #e8ddd0 0%, #f0e5d8 50%, #d8cdc0 100%);
  animation: bc-bg 15s ease-in-out infinite alternate;
}
.scn-book-cleanliness .bc-desk {
  position:absolute; bottom:10%; left:15%; width:70%; height:25%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%);
  border-radius: 3% 3% 1% 1%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: bc-desk 12s ease-in-out infinite;
}
.scn-book-cleanliness .bc-chair {
  position:absolute; bottom:15%; right:5%; width:15%; height:20%;
  background: linear-gradient(135deg, #7a6040 0%, #5a4020 100%);
  border-radius: 20% 20% 10% 10%;
  animation: bc-chair 10s ease-in-out infinite;
}
.scn-book-cleanliness .bc-figure {
  position:absolute; bottom:20%; right:8%; width:12%; height:25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-figure 7s ease-in-out infinite;
}
.scn-book-cleanliness .bc-book {
  position:absolute; left:20%; bottom:25%; width:20%; height:10%;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: bc-book 14s ease-in-out infinite;
}
.scn-book-cleanliness .bc-quill {
  position:absolute; left:35%; bottom:30%; width:5%; height:15%;
  background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(-20deg);
  animation: bc-quill 3s ease-in-out infinite alternate;
}
.scn-book-cleanliness .bc-inkwell {
  position:absolute; left:30%; bottom:25%; width:6%; height:8%;
  background: #2a2a2a; border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: bc-inkwell 8s ease-in-out infinite;
}
@keyframes bc-bg {0%{opacity:0.95}50%{opacity:0.85}100%{opacity:0.9}}
@keyframes bc-desk {0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)}}
@keyframes bc-chair {0%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-2px) rotate(1deg)}100%{transform:translateY(0) rotate(0deg)}}
@keyframes bc-figure {0%{transform:translateX(0) rotate(0deg)}25%{transform:translateX(1px) rotate(1deg)}50%{transform:translateX(0) rotate(-1deg)}75%{transform:translateX(-1px) rotate(0deg)}100%{transform:translateX(0) rotate(0deg)}}
@keyframes bc-book {0%{transform:perspective(400px) rotateX(0deg)}50%{transform:perspective(400px) rotateX(5deg)}100%{transform:perspective(400px) rotateX(0deg)}}
@keyframes bc-quill {0%{transform:rotate(-20deg) translate(0,0)}100%{transform:rotate(-15deg) translate(2px,-5px)}}
@keyframes bc-inkwell {0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)}}

.scn-marriage-settlement {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 70%);
}
.scn-marriage-settlement .desk {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-marriage-settlement .paper {
  position: absolute;
  bottom: 18%; left: 50%;
  width: 120px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #f5f0e0 0%, #d4c8a0 100%);
  border-radius: 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: ms-paper 6s ease-in-out infinite alternate;
}
.scn-marriage-settlement .inkwell {
  position: absolute;
  bottom: 22%; left: 40%;
  width: 20px; height: 24px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-marriage-settlement .candle {
  position: absolute;
  bottom: 20%; left: 56%;
  width: 10px; height: 40px;
  background: linear-gradient(180deg, #f5e0c0 0%, #c8a880 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px rgba(200,168,128,0.3);
  animation: ms-candle-shake 4s ease-in-out infinite;
}
.scn-marriage-settlement .flame {
  position: absolute;
  bottom: 20%; left: 56%;
  width: 14px; height: 18px;
  margin-left: -2px;
  background: radial-gradient(circle, #ffd060 0%, #ffa030 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 8px #ffa030, 0 0 40px 16px rgba(255,160,48,0.4);
  animation: ms-flame 1.5s ease-in-out infinite alternate;
}
.scn-marriage-settlement .hand {
  position: absolute;
  bottom: 18%; left: 42%;
  width: 24px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ms-hand 8s ease-in-out infinite;
}
@keyframes ms-paper { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ms-candle-shake { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ms-flame { 0% { transform: scaleY(1) scaleX(1) rotate(-2deg); opacity:0.9; } 50% { transform: scaleY(1.1) scaleX(0.9) rotate(3deg); opacity:1; } 100% { transform: scaleY(0.95) scaleX(1.05) rotate(-1deg); opacity:0.85; } }
@keyframes ms-hand { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(8px) translateY(0) rotate(-3deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(4deg); } 100% { transform: translateX(0) translateY(0) rotate(-5deg); } }

.scn-marriage-settlement-clause {
  background: 
    linear-gradient(180deg, #1a1a0a 0%, #2a2a1a 40%, #0a0a00 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-marriage-settlement-clause .parchment {
  position: absolute;
  bottom: 15%; left: 50%;
  width: 140px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #e8dcc0 0%, #c8b88a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4);
  animation: msc-parchment 10s ease-in-out infinite alternate;
}
.scn-marriage-settlement-clause .quill {
  position: absolute;
  bottom: 25%; left: 38%;
  width: 6px; height: 40px;
  background: linear-gradient(180deg, #d0c8b0 0%, #8a7a5a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: msc-quill 12s ease-in-out infinite;
}
.scn-marriage-settlement-clause .inkwell2 {
  position: absolute;
  bottom: 18%; left: 35%;
  width: 22px; height: 26px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0500 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-marriage-settlement-clause .seal {
  position: absolute;
  bottom: 22%; left: 56%;
  width: 16px; height: 16px;
  background: radial-gradient(circle, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(200,85,61,0.4);
  animation: msc-seal-glow 4s ease-in-out infinite alternate;
}
.scn-marriage-settlement-clause .hand2 {
  position: absolute;
  bottom: 18%; left: 44%;
  width: 22px; height: 34px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: msc-hand2 8s ease-in-out infinite;
}
.scn-marriage-settlement-clause .glow2 {
  position: absolute;
  bottom: 10%; left: 40%;
  width: 120px; height: 100px;
  background: radial-gradient(ellipse, rgba(255,200,150,0.15) 0%, transparent 70%);
  animation: msc-glow 6s ease-in-out infinite alternate;
}
@keyframes msc-parchment { 0% { transform: translateX(-50%) rotate(-0.5deg); } 50% { transform: translateX(-50%) rotate(0.5deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(-0.5deg); } }
@keyframes msc-quill { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes msc-seal-glow { 0% { box-shadow: 0 0 6px #c8553d; } 50% { box-shadow: 0 0 14px #c8553d; } 100% { box-shadow: 0 0 8px #c8553d; } }
@keyframes msc-hand2 { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(6px) translateY(0) rotate(-2deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(-3deg); } }
@keyframes msc-glow { 0% { opacity: 0.5; } 100% { opacity: 1; } }

.scn-return-journey {
  background: 
    linear-gradient(180deg, #2a2a4a 0%, #4a3a5a 30%, #6a4a4a 60%, #8a5a3a 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a4a 0%, transparent 80%);
}
.scn-return-journey .sky-dusk {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a6a 0%, #6a5a4a 40%, #8a6a4a 100%);
  animation: rj-sky 5s ease-in-out infinite alternate;
}
.scn-return-journey .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-return-journey .carriage {
  position: absolute;
  bottom: 35%; left: 30%;
  width: 60px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: rj-carriage 0.8s ease-in-out infinite alternate;
}
.scn-return-journey .horse {
  position: absolute;
  bottom: 35%; left: 45%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rj-horse 0.6s ease-in-out infinite alternate;
}
.scn-return-journey .tree-group {
  position: absolute;
  bottom: 35%; right: 10%;
  width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: rj-trees 3s ease-in-out infinite;
}
.scn-return-journey .dust {
  position: absolute;
  bottom: 30%; left: 20%;
  width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,150,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: rj-dust 2s ease-in-out infinite;
}
.scn-return-journey .moon {
  position: absolute;
  top: 10%; right: 20%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #f0e0c0 0%, #d0b080 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,224,192,0.4);
  animation: rj-moon 12s ease-in-out infinite alternate;
}
@keyframes rj-sky { 0% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes rj-carriage { 0% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(2px) rotate(1deg); } }
@keyframes rj-horse { 0% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(3px) rotate(2deg); } }
@keyframes rj-trees { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes rj-dust { 0% { transform: translateX(0) scale(1); opacity: 0.5; } 50% { transform: translateX(-10px) scale(1.2); opacity: 0.8; } 100% { transform: translateX(0) scale(1); opacity: 0.5; } }
@keyframes rj-moon { 0% { transform: translateY(0); } 100% { transform: translateY(5px); } }

.scn-shandy-resolve {
  background: 
    linear-gradient(180deg, #1a1a0a 0%, #2a2a1a 30%, #1a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 80%);
}
.scn-shandy-resolve .wall {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.6);
}
.scn-shandy-resolve .chair {
  position: absolute;
  bottom: 10%; left: 50%;
  width: 60px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.5);
}
.scn-shandy-resolve .figure-sr {
  position: absolute;
  bottom: 10%; left: 50%;
  width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: sr-figure 8s ease-in-out infinite;
}
.scn-shandy-resolve .book {
  position: absolute;
  bottom: 10%; left: 48%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 10%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sr-book 10s ease-in-out infinite alternate;
}
.scn-shandy-resolve .candle-sr {
  position: absolute;
  bottom: 12%; left: 42%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a070 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-shandy-resolve .flame-sr {
  position: absolute;
  bottom: 12%; left: 42%;
  width: 12px; height: 16px;
  margin-left: -2px;
  background: radial-gradient(circle, #ffd060 0%, #ffa030 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 8px #ffa030, 0 0 40px 16px rgba(255,160,48,0.4);
  animation: sr-flame 2s ease-in-out infinite alternate;
}
.scn-shandy-resolve .shadow-sr {
  position: absolute;
  bottom: 0; left: 30%;
  width: 100px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: sr-shadow 6s ease-in-out infinite alternate;
}
@keyframes sr-figure { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-1px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes sr-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes sr-flame { 0% { transform: scaleY(1) scaleX(1) rotate(-2deg); opacity:0.9; } 50% { transform: scaleY(1.15) scaleX(0.85) rotate(3deg); opacity:1; } 100% { transform: scaleY(0.95) scaleX(1.05) rotate(-1deg); opacity:0.85; } }
@keyframes sr-shadow { 0% { transform: translateX(0) scaleX(1); opacity:0.5; } 50% { transform: translateX(-5px) scaleX(1.1); opacity:0.7; } 100% { transform: translateX(0) scaleX(1); opacity:0.5; } }

.scn-time-flees-and-love {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2244 50%, #3a2a4e 100%),
              radial-gradient(ellipse at 30% 40%, #4a3a5e 0%, transparent 60%);
}
.scn-time-flees-and-love .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2e 0%, #2a2a4a 100%); }
.scn-time-flees-and-love .window-frame { position:absolute; top:12%; left:60%; width:30%; height:40%; border:6px solid #3a2a1a; background: #0a0a1e; border-radius:4px; box-shadow: inset 0 0 20px #0a0a1e; }
.scn-time-flees-and-love .clouds { position:absolute; top:14%; left:62%; width:26%; height:10%; background: linear-gradient(90deg, rgba(200,200,220,0.3) 0%, rgba(200,200,220,0.1) 100%); filter: blur(5px); border-radius:50%; animation: tf-clouds 30s linear infinite; }
.scn-time-flees-and-love .desk { position:absolute; bottom:22%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px #000; }
.scn-time-flees-and-love .figure-scribe { position:absolute; bottom:24%; left:35%; width:14%; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tf-scribe 6s ease-in-out infinite; }
.scn-time-flees-and-love .candle { position:absolute; bottom:26%; left:50%; width:2%; height:12%; background: linear-gradient(180deg, #ffd080 0%, #c08040 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: tf-candle-flicker 3s ease-in-out infinite; }
.scn-time-flees-and-love .candle-glow { position:absolute; bottom:34%; left:48%; width:8%; height:16%; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 40%, transparent 70%); border-radius:50%; animation: tf-glow-pulse 3s ease-in-out infinite alternate; }
.scn-time-flees-and-love .ruby-pendant { position:absolute; bottom:35%; left:45%; width:2%; height:2%; background: radial-gradient(circle, #a0461a 0%, #5e1a1d 100%); border-radius:50%; box-shadow: 0 0 8px 2px #5e1a1d; animation: tf-glow-pulse 4s ease-in-out infinite alternate; }
@keyframes tf-clouds { 0% { transform: translateX(0); } 50% { transform: translateX(-10%); } 100% { transform: translateX(0); } }
@keyframes tf-scribe { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2%) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1%) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tf-candle-flicker { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(0.9); opacity:1; } 100% { transform: scaleY(1); opacity:0.95; } }
@keyframes tf-glow-pulse { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.95); } }

.scn-worlds-opinion-neglected {
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-worlds-opinion-neglected .bg-corner { position:absolute; inset:0 30% 0 0; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%); }
.scn-worlds-opinion-neglected .father-figure { position:absolute; bottom:20%; left:15%; width:20%; height:45%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 60% 60% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: wo-father 5s ease-in-out infinite; }
.scn-worlds-opinion-neglected .mother-figure { position:absolute; bottom:20%; left:40%; width:18%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wo-mother 4s ease-in-out infinite; }
.scn-worlds-opinion-neglected .twisted-arm { position:absolute; bottom:35%; left:35%; width:16%; height:8%; background: transparent; border: 2px solid #8a6a4a; border-radius: 50%; transform: rotate(45deg); animation: wo-arm-twist 3s ease-in-out infinite; }
.scn-worlds-opinion-neglected .stool { position:absolute; bottom:20%; left:55%; width:12%; height:10%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 6px #000; animation: wo-stool 6s ease-in-out infinite; }
.scn-worlds-opinion-neglected .lamp-light { position:absolute; bottom:50%; left:60%; width:8%; height:12%; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.2) 60%, transparent 100%); border-radius:50%; animation: wo-lamp 4s ease-in-out infinite alternate; }
@keyframes wo-father { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3%) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wo-mother { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2%) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes wo-arm-twist { 0% { transform: rotate(40deg) scaleX(1); } 50% { transform: rotate(60deg) scaleX(1.1); } 100% { transform: rotate(40deg) scaleX(1); } }
@keyframes wo-stool { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2%) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wo-lamp { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.95); } }

.scn-parents-waiting-at-angle {
  background: linear-gradient(180deg, #87CEEB 0%, #b0d4f1 40%, #6ab0e0 100%),
              radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 60%);
}
.scn-parents-waiting-at-angle .sky { position:absolute; inset:0; background: linear-gradient(180deg, #87CEEB 0%, #b0d4f1 100%); animation: pw-sky 20s ease-in-out infinite alternate; }
.scn-parents-waiting-at-angle .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8FBC8F 0%, #6B8E23 100%); }
.scn-parents-waiting-at-angle .house-corner { position:absolute; bottom:20%; left:20%; width:30%; height:60%; background: linear-gradient(135deg, #cd853f 0%, #8b7355 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%); box-shadow: inset -4px -4px 8px #5a4a3a; }
.scn-parents-waiting-at-angle .door { position:absolute; bottom:20%; left:35%; width:6%; height:20%; background: #5a3a2a; border-radius: 20% 20% 0 0; }
.scn-parents-waiting-at-angle .uncle-toby { position:absolute; bottom:25%; left:50%; width:6%; height:25%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: pw-toby 4s ease-in-out infinite; }
.scn-parents-waiting-at-angle .corporal-trim { position:absolute; bottom:25%; left:56%; width:5%; height:22%; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: pw-trim 4.5s ease-in-out infinite; }
.scn-parents-waiting-at-angle .bush { position:absolute; bottom:25%; left:5%; width:15%; height:20%; background: radial-gradient(ellipse at 50% 100%, #228B22 0%, #006400 100%); border-radius: 50% 50% 30% 30%; animation: pw-bush 8s ease-in-out infinite; }
@keyframes pw-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pw-toby { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5%) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pw-trim { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3%) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pw-bush { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

.scn-fathers-impatience-during-story {
  background: linear-gradient(180deg, #fffacd 0%, #fff8dc 30%, #dcd08c 100%),
              radial-gradient(ellipse at 50% 100%, #8b7355 0%, transparent 70%);
}
.scn-fathers-impatience-during-story .sky-hard { position:absolute; inset:0; background: linear-gradient(180deg, #fffacd 0%, #fff8dc 100%); }
.scn-fathers-impatience-during-story .ground-hard { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6b5a4a 0%, #3a2a1a 100%); box-shadow: inset 0 8px 12px #000; }
.scn-fathers-impatience-during-story .father-irate { position:absolute; bottom:25%; left:25%; width:18%; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fi-father 2s ease-in-out infinite; }
.scn-fathers-impatience-during-story .corporal-tremble { position:absolute; bottom:25%; left:45%; width:12%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fi-corporal 1.5s ease-in-out infinite; }
.scn-fathers-impatience-during-story .stick-flail { position:absolute; bottom:40%; left:55%; width:3%; height:30%; background: linear-gradient(180deg, #8b7355 0%, #5a4a3a 100%); transform-origin: bottom center; border-radius:4px; animation: fi-stick 0.8s ease-in-out infinite; }
.scn-fathers-impatience-during-story .shadow-stripe { position:absolute; bottom:20%; left:0; right:0; height:15%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 30%, transparent 60%); animation: fi-shadow 3s ease-in-out infinite alternate; }
@keyframes fi-father { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2%) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes fi-corporal { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(2%) scaleX(0.95); } 50% { transform: translateX(-2%) scaleX(1.05); } 75% { transform: translateX(1%) scaleX(0.95); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes fi-stick { 0% { transform: rotate(0deg); } 25% { transform: rotate(30deg); } 50% { transform: rotate(-20deg); } 75% { transform: rotate(40deg); } 100% { transform: rotate(0deg); } }
@keyframes fi-shadow { 0% { opacity:0.5; transform: skewX(0deg); } 50% { opacity:0.8; transform: skewX(5deg); } 100% { opacity:0.5; transform: skewX(-5deg); } }

.scn-locke-essay-reference {
  background: linear-gradient(180deg, #1a0f08 0%, #2a1a0e 40%, #3c2210 100%),
              radial-gradient(ellipse at 80% 60%, #d4943a 0%, transparent 70%);
}
.scn-locke-essay-reference .desk {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5e3c1a 0%, #3a2210 100%);
  border-radius: 8% 8% 0 0;
  animation: lke-desk 15s ease-in-out infinite;
}
.scn-locke-essay-reference .book {
  position:absolute; bottom:30%; left:50%; width:90px; height:60px;
  transform: translateX(-50%) skewX(-5deg);
  background: linear-gradient(135deg, #8b7040 0%, #b09060 30%, #d4b080 60%, #b09060 100%);
  border-radius: 4% 4% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: lke-book 12s ease-in-out infinite;
}
.scn-locke-essay-reference .candle {
  position:absolute; bottom:38%; left:30%; width:8px; height:40px;
  background: linear-gradient(180deg, #e8d5b0 0%, #c8b08a 40%, #a08060 100%);
  border-radius: 2px 2px 0 0;
  animation: lke-candle 8s ease-in-out infinite;
}
.scn-locke-essay-reference .flame {
  position:absolute; bottom:68%; left:30.5%; width:10px; height:16px;
  background: radial-gradient(ellipse 60% 80% at 50% 100%, #ffe8a0 0%, #d4943a 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: lke-flame 0.8s ease-in-out infinite alternate;
}
.scn-locke-essay-reference .glow {
  position:absolute; bottom:40%; left:28%; width:60px; height:60px;
  background: radial-gradient(ellipse, #d4943a 0%, #b07020 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: lke-glow 4s ease-in-out infinite alternate;
}
.scn-locke-essay-reference .figure {
  position:absolute; bottom:25%; right:15%; width:30px; height:60px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lke-figure 6s ease-in-out infinite;
}
@keyframes lke-desk {
  0% { opacity:0.9; transform: translateY(0); }
  50% { opacity:1; transform: translateY(-1px); }
  100% { opacity:0.95; transform: translateY(0); }
}
@keyframes lke-book {
  0% { transform: translateX(-50%) skewX(-5deg) rotate(-1deg); }
  50% { transform: translateX(-50%) skewX(-5deg) rotate(1deg); }
  100% { transform: translateX(-50%) skewX(-5deg) rotate(-1deg); }
}
@keyframes lke-candle {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes lke-flame {
  0% { transform: scaleY(1) scaleX(0.9); opacity:0.9; }
  50% { transform: scaleY(1.1) scaleX(1.1); opacity:1; }
  100% { transform: scaleY(0.9) scaleX(0.8); opacity:0.8; }
}
@keyframes lke-glow {
  0% { transform: scale(0.8); opacity:0.6; }
  50% { transform: scale(1.2); opacity:0.9; }
  100% { transform: scale(1); opacity:0.7; }
}
@keyframes lke-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

.scn-dolly-example {
  background: linear-gradient(180deg, #1e1410 0%, #2c1e18 40%, #3d2a20 100%),
              radial-gradient(ellipse at 60% 70%, #8b5e3c 0%, transparent 70%);
}
.scn-dolly-example .desk {
  position:absolute; bottom:0; left:5%; right:5%; height:35%;
  background: linear-gradient(180deg, #5a3c2a 0%, #3a2218 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: dex-desk 20s ease-in-out infinite;
}
.scn-dolly-example .paper {
  position:absolute; bottom:40%; left:45%; width:70px; height:50px;
  background: linear-gradient(135deg, #f5ecd8 0%, #e8dcc8 100%);
  border-radius: 2%;
  transform: rotate(-3deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: dex-paper 6s ease-in-out infinite alternate;
}
.scn-dolly-example .inkpot {
  position:absolute; bottom:35%; left:55%; width:16px; height:20px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px rgba(0,0,0,0.6);
  animation: dex-ink 12s ease-in-out infinite;
}
.scn-dolly-example .quill {
  position:absolute; bottom:50%; left:55%; width:4px; height:40px;
  background: linear-gradient(180deg, #e8d5b0 0%, #b09070 100%);
  border-radius: 40% 40% 0 0;
  transform-origin: bottom center;
  transform: rotate(25deg);
  animation: dex-quill 3s ease-in-out infinite alternate;
}
.scn-dolly-example .figure {
  position:absolute; bottom:30%; left:20%; width:50px; height:80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dex-figure 8s ease-in-out infinite;
}
.scn-dolly-example .pocket {
  position:absolute; bottom:38%; left:26%; width:16px; height:12px;
  background: linear-gradient(135deg, #5a3c2a 0%, #3d2a20 100%);
  border-radius: 10% 10% 20% 20%;
  border: 1px solid #2a1a10;
  animation: dex-pocket 5s ease-in-out infinite;
}
.scn-dolly-example .arm {
  position:absolute; bottom:40%; left:16%; width:8px; height:30px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%);
  border-radius: 20%;
  transform-origin: top center;
  animation: dex-arm 4s ease-in-out infinite alternate;
}
.scn-dolly-example .candle {
  position:absolute; bottom:40%; left:10%; width:8px; height:45px;
  background: linear-gradient(180deg, #e8d5b0 0%, #c8b08a 40%, #a08060 100%);
  border-radius: 2px 2px 0 0;
  animation: dex-candle 10s ease-in-out infinite;
}
.scn-dolly-example .flame {
  position:absolute; bottom:75%; left:10.5%; width:10px; height:14px;
  background: radial-gradient(ellipse 60% 80% at 50% 100%, #ffe8a0 0%, #d4943a 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: dex-flame 0.7s ease-in-out infinite alternate;
}
@keyframes dex-desk {
  0% { transform: translateY(0); opacity:0.9; }
  50% { transform: translateY(-1px); opacity:1; }
  100% { transform: translateY(0); opacity:0.95; }
}
@keyframes dex-paper {
  0% { transform: rotate(-3deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.02); }
  100% { transform: rotate(-3deg) scale(1); }
}
@keyframes dex-ink {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.03); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes dex-quill {
  0% { transform: rotate(25deg) scaleY(1); }
  50% { transform: rotate(30deg) scaleY(1.05); }
  100% { transform: rotate(20deg) scaleY(0.95); }
}
@keyframes dex-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dex-pocket {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes dex-arm {
  0% { transform: rotate(-10deg) translateY(0); }
  100% { transform: rotate(10deg) translateY(-5px); }
}
@keyframes dex-candle {
  0% { transform: scaleY(1); opacity:0.9; }
  50% { transform: scaleY(1.02); opacity:1; }
  100% { transform: scaleY(0.98); opacity:0.95; }
}
@keyframes dex-flame {
  0% { transform: scaleY(0.9) scaleX(0.9); opacity:0.8; }
  50% { transform: scaleY(1.15) scaleX(1.05); opacity:1; }
  100% { transform: scaleY(0.85) scaleX(0.85); opacity:0.7; }
}

.scn-confusion-from-words {
  background: linear-gradient(180deg, #1a120e 0%, #2a1c14 40%, #3c2820 100%),
              radial-gradient(ellipse at 50% 100%, #8b5e3c 0%, transparent 70%);
}
.scn-confusion-from-words .chair {
  position:absolute; bottom:0; left:35%; width:60px; height:50px;
  background: linear-gradient(180deg, #3d2a20 0%, #2a1c14 100%);
  border-radius: 20% 20% 0 0;
  transform-origin: bottom center;
  animation: cfw-chair 15s ease-in-out infinite;
}
.scn-confusion-from-words .figure {
  position:absolute; bottom:20%; left:40%; width:40px; height:60px;
  background: linear-gradient(180deg, #2a1c14 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfw-figure 7s ease-in-out infinite;
}
.scn-confusion-from-words .hand {
  position:absolute; bottom:50%; left:50%; width:14px; height:18px;
  background: radial-gradient(ellipse at 50% 60%, #2a1c14 0%, #1a120e 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cfw-hand 3s ease-in-out infinite alternate;
}
.scn-confusion-from-words .table {
  position:absolute; bottom:0; left:20%; right:20%; height:25%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1c14 100%);
  border-radius: 10% 10% 0 0;
  animation: cfw-table 20s ease-in-out infinite;
}
.scn-confusion-from-words .book {
  position:absolute; bottom:28%; left:45%; width:50px; height:36px;
  background: linear-gradient(135deg, #7a5a3a 0%, #9a7040 40%, #7a5a3a 100%);
  border-radius: 4%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: cfw-book 9s ease-in-out infinite;
}
.scn-confusion-from-words .swirl {
  position:absolute; top:30%; left:60%; width:30px; height:30px;
  background: radial-gradient(circle, #d4943a 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(3px);
  animation: cfw-swirl 5s ease-in-out infinite alternate;
}
@keyframes cfw-chair {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  75% { transform: rotate(-0.5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes cfw-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes cfw-hand {
  0% { transform: translateY(0) rotate(-10deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-10deg); }
}
@keyframes cfw-table {
  0% { opacity:0.95; transform: translateY(0); }
  50% { opacity:1; transform: translateY(-1px); }
  100% { opacity:0.95; transform: translateY(0); }
}
@keyframes cfw-book {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes cfw-swirl {
  0% { transform: scale(0.5) rotate(0deg); opacity:0.5; }
  50% { transform: scale(1.3) rotate(180deg); opacity:1; }
  100% { transform: scale(0.8) rotate(360deg); opacity:0.6; }
}

.scn-map-study {
  background: linear-gradient(135deg, #f5e8c8 0%, #dcc8a0 40%, #b8a07e 100%),
              radial-gradient(ellipse at 70% 30%, #f0e0b0 0%, transparent 60%);
}
.scn-map-study .window {
  position:absolute; top:5%; left:5%; width:60px; height:80px;
  background: linear-gradient(180deg, #a0c8e8 0%, #c0d8f0 100%);
  border: 4px solid #6a5040;
  border-radius: 4%;
  animation: mps-window 15s ease-in-out infinite alternate;
}
.scn-map-study .table {
  position:absolute; bottom:0; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: mps-table 25s ease-in-out infinite;
}
.scn-map-study .map {
  position:absolute; bottom:10%; left:20%; right:20%; height:45%;
  background: linear-gradient(135deg, #d4b888 0%, #c4a878 40%, #b49a68 100%);
  border-radius: 2%;
  border: 2px solid #8a6e50;
  transform: rotate(1deg);
  box-shadow: 0 4px 16px rgba(0,0,0,0.4);
  animation: mps-map 10s ease-in-out infinite;
}
.scn-map-study .figure {
  position:absolute; bottom:25%; left:40%; width:40px; height:70px;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1c12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(-5deg);
  animation: mps-figure 8s ease-in-out infinite alternate;
}
.scn-map-study .scroll {
  position:absolute; bottom:15%; right:8%; width:10px; height:30px;
  background: linear-gradient(180deg, #c4a878 0%, #a08860 100%);
  border-radius: 20%;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: mps-scroll 12s ease-in-out infinite;
}
.scn-map-study .glass {
  position:absolute; bottom:30%; left:25%; width:20px; height:30px;
  background: radial-gradient(ellipse at 50% 40%, #e0e8f0 0%, #b0b8c0 50%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  border: 2px solid #6a5a4a;
  transform: rotate(-10deg);
  animation: mps-glass 6s ease-in-out infinite alternate;
}
@keyframes mps-window {
  0% { opacity:0.8; transform: scale(1); }
  50% { opacity:1; transform: scale(1.02); }
  100% { opacity:0.85; transform: scale(0.98); }
}
@keyframes mps-table {
  0% { transform: translateY(0); opacity:0.95; }
  50% { transform: translateY(-1px); opacity:1; }
  100% { transform: translateY(0); opacity:0.95; }
}
@keyframes mps-map {
  0% { transform: rotate(1deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.01); }
  100% { transform: rotate(0deg) scale(0.99); }
}
@keyframes mps-figure {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-7deg) translateY(0); }
}
@keyframes mps-scroll {
  0% { transform: rotate(15deg) scaleY(1); }
  50% { transform: rotate(12deg) scaleY(1.05); }
  100% { transform: rotate(18deg) scaleY(0.95); }
}
@keyframes mps-glass {
  0% { transform: rotate(-10deg) scale(1); opacity:0.7; }
  50% { transform: rotate(-5deg) scale(1.1); opacity:0.9; }
  100% { transform: rotate(-15deg) scale(0.95); opacity:0.6; }
}

/* preface-skip */
.scn-preface-skip {
  background: linear-gradient(180deg, #f5e6d0 0%, #d9c4a0 50%, #b29a7a 100%),
              radial-gradient(ellipse at 40% 30%, #fff9e6 0%, transparent 60%);
}
.scn-preface-skip .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #e8d5b8 0%, #d4bc9a 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.1);
}
.scn-preface-skip .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b89a7a 0%, #8a6e52 100%);
  border-radius: 8% 8% 0 0;
}
.scn-preface-skip .window {
  position: absolute; top: 15%; left: 10%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #e6f0ff 0%, #cce0ff 100%);
  border: 2px solid #8a7a6a; border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 4px 8px rgba(0,0,0,0.2);
  animation: ps-window 8s ease-in-out infinite alternate;
}
.scn-preface-skip .shelf {
  position: absolute; top: 30%; left: 10%; width: 30%; height: 4%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
}
.scn-preface-skip .table {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #8a6e52 0%, #5a4a3a 100%);
  border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ps-table 12s ease-in-out infinite;
}
.scn-preface-skip .book {
  position: absolute; bottom: 18%; left: 30%; width: 20%; height: 8%;
  background: linear-gradient(90deg, #a08060 0%, #806040 100%);
  border-radius: 2px; transform: rotate(-5deg);
  box-shadow: inset 0 0 4px rgba(0,0,0,0.4);
  animation: ps-book 10s ease-in-out infinite;
}
.scn-preface-skip .figure {
  position: absolute; bottom: 20%; left: 45%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-figure 15s ease-in-out infinite;
}
.scn-preface-skip .page {
  position: absolute; top: 20%; left: 50%; width: 8%; height: 10%;
  background: #f0e0c0; border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ps-page 6s ease-in-out infinite;
}
@keyframes ps-window {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.9; transform: scaleX(1); }
}
@keyframes ps-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ps-book {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes ps-figure {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ps-page {
  0% { transform: translateY(0) rotate(0); opacity: 0.6; }
  25% { transform: translateY(-10px) rotate(10deg); opacity: 1; }
  50% { transform: translateY(-20px) rotate(20deg); opacity: 0.7; }
  75% { transform: translateY(-15px) rotate(15deg); opacity: 0.9; }
  100% { transform: translateY(0) rotate(0); opacity: 0.6; }
}

/* origin-society */
.scn-origin-society {
  background: linear-gradient(180deg, #f0dfc0 0%, #d4bc9a 50%, #b89a7a 100%),
              radial-gradient(ellipse at 60% 40%, #fff9e6 0%, transparent 60%);
}
.scn-origin-society .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #e0cbb0 0%, #ccb49a 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.1);
}
.scn-origin-society .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b89a7a 0%, #8a6e52 100%);
  border-radius: 10% 10% 0 0;
}
.scn-origin-society .window {
  position: absolute; top: 12%; left: 15%; width: 22%; height: 38%;
  background: linear-gradient(180deg, #e6f0ff 0%, #cce0ff 100%);
  border: 2px solid #8a7a6a; border-radius: 4% 4% 10% 10%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 4px 8px rgba(0,0,0,0.2);
  animation: os-window 6s ease-in-out infinite alternate;
}
.scn-origin-society .figure1 {
  position: absolute; bottom: 25%; left: 25%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: os-figure1 14s ease-in-out infinite;
}
.scn-origin-society .figure2 {
  position: absolute; bottom: 25%; left: 38%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: os-figure2 12s ease-in-out infinite;
}
.scn-origin-society .servant {
  position: absolute; bottom: 28%; left: 50%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: os-servant 16s ease-in-out infinite;
}
.scn-origin-society .hearth {
  position: absolute; bottom: 10%; left: 65%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #8a6e52 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 30px rgba(255,200,100,0.4);
  animation: os-hearth 4s ease-in-out infinite;
}
@keyframes os-window {
  0% { opacity: 0.85; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.015); }
  100% { opacity: 0.9; transform: scaleX(1); }
}
@keyframes os-figure1 {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes os-figure2 {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes os-servant {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes os-hearth {
  0% { opacity: 0.7; transform: scale(1); box-shadow: inset 0 0 20px rgba(255,200,100,0.3); }
  50% { opacity: 1; transform: scale(1.02); box-shadow: inset 0 0 40px rgba(255,200,100,0.6); }
  100% { opacity: 0.8; transform: scale(1); box-shadow: inset 0 0 25px rgba(255,200,100,0.4); }
}

/* ox-vs-bull */
.scn-ox-vs-bull {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 50%, #d4bc9a 100%),
              radial-gradient(ellipse at 50% 40%, #fff9e6 0%, transparent 60%);
}
.scn-ox-vs-bull .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #e8d5b8 0%, #d4bc9a 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.1);
}
.scn-ox-vs-bull .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c4a88a 0%, #9a7a5a 100%);
  border-radius: 12% 12% 0 0;
}
.scn-ox-vs-bull .desk {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 15%;
  background: linear-gradient(180deg, #8a6e52 0%, #5a4a3a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: ob-desk 10s ease-in-out infinite;
}
.scn-ox-vs-bull .paper {
  position: absolute; bottom: 30%; left: 25%; width: 30%; height: 20%;
  background: #f5e6c0; border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform: rotate(-3deg);
  animation: ob-paper 8s ease-in-out infinite;
}
.scn-ox-vs-bull .ox {
  position: absolute; bottom: 32%; left: 30%; width: 12%; height: 12%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ob-ox 14s ease-in-out infinite;
}
.scn-ox-vs-bull .bull {
  position: absolute; bottom: 32%; left: 50%; width: 12%; height: 14%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ob-bull 3s ease-in-out infinite;
}
.scn-ox-vs-bull .inkwell {
  position: absolute; bottom: 30%; left: 20%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ob-inkwell 12s ease-in-out infinite;
}
.scn-ox-vs-bull .quill {
  position: absolute; bottom: 35%; left: 22%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #e8d5b8 0%, #b89a7a 100%);
  border-radius: 2px 2px 50% 50%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: ob-quill 6s ease-in-out infinite;
}
@keyframes ob-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ob-paper {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-3px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes ob-ox {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ob-bull {
  0% { transform: translateY(0) rotate(3deg); }
  25% { transform: translateY(-4px) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(4deg); }
  75% { transform: translateY(-5px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(3deg); }
}
@keyframes ob-inkwell {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}
@keyframes ob-quill {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}

/* uncle-toby-fortification-reason */
.scn-uncle-toby-fortification-reason {
  background: linear-gradient(180deg, #e8d5b8 0%, #d4bc9a 50%, #b89a7a 100%),
              radial-gradient(ellipse at 50% 30%, #fff9e6 0%, transparent 60%);
}
.scn-uncle-toby-fortification-reason .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #dcc8a8 0%, #c8b098 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.1);
}
.scn-uncle-toby-fortification-reason .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b89a7a 0%, #8a6e52 100%);
  border-radius: 10% 10% 0 0;
}
.scn-uncle-toby-fortification-reason .window {
  position: absolute; top: 10%; left: 12%; width: 24%; height: 40%;
  background: linear-gradient(180deg, #e6f0ff 0%, #cce0ff 100%);
  border: 2px solid #8a7a6a; border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 4px 8px rgba(0,0,0,0.2);
  animation: ut-window 9s ease-in-out infinite alternate;
}
.scn-uncle-toby-fortification-reason .table {
  position: absolute; bottom: 15%; left: 18%; width: 64%; height: 12%;
  background: linear-gradient(180deg, #8a6e52 0%, #5a4a3a 100%);
  border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ut-table 11s ease-in-out infinite;
}
.scn-uncle-toby-fortification-reason .map {
  position: absolute; bottom: 20%; left: 30%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #d4bc9a 0%, #b89a7a 100%);
  border-radius: 2px; border: 1px solid #6a5a4a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
  transform: rotate(2deg);
  animation: ut-map 15s ease-in-out infinite;
}
.scn-uncle-toby-fortification-reason .uncle {
  position: absolute; bottom: 22%; left: 20%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ut-uncle 13s ease-in-out infinite;
}
.scn-uncle-toby-fortification-reason .father {
  position: absolute; bottom: 22%; left: 40%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ut-father 17s ease-in-out infinite;
}
@keyframes ut-window {
  0% { opacity: 0.85; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.01); }
  100% { opacity: 0.9; transform: scaleX(1); }
}
@keyframes ut-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ut-map {
  0% { transform: rotate(2deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.02); }
  100% { transform: rotate(2deg) scale(1); }
}
@keyframes ut-uncle {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ut-father {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}

.scn-wager-on-widow { background: linear-gradient(180deg, #f4e4c8 0%, #d4b896 60%, #b89a76 100%), radial-gradient(ellipse at 70% 100%, #ffe8b0 0%, transparent 50%); }
.scn-wager-on-widow .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #e8d4b0 0%, #c8a880 100%); animation: ww-room 20s ease-in-out infinite alternate; }
.scn-wager-on-widow .window { position:absolute; top:10%; left:5%; width:30%; height:50%; background: linear-gradient(180deg, #fff5e0 0%, #ffe0a0 100%); border-radius: 10px; box-shadow: inset 0 0 20px rgba(255,255,200,0.8); animation: ww-window 4s ease-in-out infinite alternate; }
.scn-wager-on-widow .table { position:absolute; bottom:20%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #8a6540 0%, #6a4a2a 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-wager-on-widow .cap { position:absolute; bottom:35%; left:45%; width:40px; height:30px; background: #5a3a2a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 2px 6px #2a1a0a; animation: ww-cap 2s ease-in-out infinite; }
.scn-wager-on-widow .coin { position:absolute; bottom:35%; left:55%; width:20px; height:20px; background: radial-gradient(circle at 40% 40%, #ffd700, #b8860b); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: ww-coin 3s linear infinite; }
.scn-wager-on-widow .father { position:absolute; bottom:25%; left:30%; width:30px; height:80px; background: #3a2a1a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ww-father 4s ease-in-out infinite; }
.scn-wager-on-widow .toby { position:absolute; bottom:25%; right:30%; width:25px; height:70px; background: #2a1a0a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ww-toby 4.5s ease-in-out infinite; }
@keyframes ww-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ww-window { 0% { box-shadow: inset 0 0 10px rgba(255,255,200,0.5) } 50% { box-shadow: inset 0 0 30px rgba(255,255,200,1) } 100% { box-shadow: inset 0 0 10px rgba(255,255,200,0.5) } }
@keyframes ww-cap { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(15deg) scale(1.05) } 100% { transform: rotate(0) scale(1) } }
@keyframes ww-coin { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(90deg) translateY(-2px) } 50% { transform: rotate(180deg) translateY(0) } 75% { transform: rotate(270deg) translateY(2px) } 100% { transform: rotate(360deg) translateY(0) } }
@keyframes ww-father { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ww-toby { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-fathers-letter-instructions-begins { background: linear-gradient(180deg, #2a2018 0%, #1a1410 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 70%); }
.scn-fathers-letter-instructions-begins .desk { position:absolute; bottom:15%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.4); }
.scn-fathers-letter-instructions-begins .candle { position:absolute; bottom:45%; left:30%; width:10px; height:30px; background: linear-gradient(180deg, #f0d0a0 0%, #c09060 100%); border-radius: 2px; animation: fl-candle 3s ease-in-out infinite alternate; }
.scn-fathers-letter-instructions-begins .letter { position:absolute; bottom:30%; left:40%; width:60px; height:40px; background: #e8d4b0; transform: rotate(-5deg); border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,0.3); animation: fl-letter 8s ease-in-out infinite; }
.scn-fathers-letter-instructions-begins .inkwell { position:absolute; bottom:35%; left:55%; width:20px; height:20px; background: #1a0a00; border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 2px 4px #000; }
.scn-fathers-letter-instructions-begins .quill { position:absolute; bottom:40%; left:60%; width:30px; height:6px; background: linear-gradient(90deg, #e8d4b0 0%, #c8b090 100%); transform: rotate(30deg); transform-origin: left center; border-radius: 2px; animation: fl-quill 2s ease-in-out infinite alternate; }
.scn-fathers-letter-instructions-begins .figure-w { position:absolute; bottom:15%; left:20%; width:30px; height:90px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fl-figure 6s ease-in-out infinite alternate; }
.scn-fathers-letter-instructions-begins .chair { position:absolute; bottom:15%; left:18%; width:40px; height:50px; background: #3a2820; border-radius: 0 0 8px 8px; box-shadow: 0 8px 12px rgba(0,0,0,0.5); animation: fl-chair 10s ease-in-out infinite; }
@keyframes fl-candle { 0% { box-shadow: 0 0 8px #f0d0a0 } 50% { box-shadow: 0 0 20px #f0d0a0 } 100% { box-shadow: 0 0 6px #f0d0a0 } }
@keyframes fl-letter { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes fl-quill { 0% { transform: rotate(20deg) } 50% { transform: rotate(40deg) } 100% { transform: rotate(20deg) } }
@keyframes fl-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fl-chair { 0% { transform: scale(1) } 50% { transform: scale(1.01) translateY(-1px) } 100% { transform: scale(1) } }

.scn-advice-on-religion-and-shaved-head { background: linear-gradient(180deg, #1a1410 0%, #2a1a10 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #3a2010 0%, transparent 60%); }
.scn-advice-on-religion-and-shaved-head .bg-chamber { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a10 0%, #1a0a00 100%); opacity:0.8; animation: ar-bg 25s ease-in-out infinite alternate; }
.scn-advice-on-religion-and-shaved-head .cross { position:absolute; top:20%; left:50%; transform: translateX(-50%); width:40px; height:60px; background: rgba(200,170,130,0.3); border: 2px solid #c0a080; border-radius: 4px; box-shadow: 0 0 20px rgba(200,170,130,0.2); animation: ar-cross 5s ease-in-out infinite alternate; }
.scn-advice-on-religion-and-shaved-head .candle-ar { position:absolute; bottom:40%; left:30%; width:8px; height:30px; background: linear-gradient(180deg, #f0d0a0 0%, #c09060 100%); border-radius: 2px; animation: ar-candle 4s ease-in-out infinite alternate; }
.scn-advice-on-religion-and-shaved-head .monk { position:absolute; bottom:10%; left:40%; width:40px; height:100px; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; animation: ar-monk 8s ease-in-out infinite; }
.scn-advice-on-religion-and-shaved-head .halo { position:absolute; top:30%; left:45%; width:50px; height:50px; background: radial-gradient(circle, rgba(240,220,180,0.6) 0%, transparent 60%); border-radius: 50%; filter: blur(4px); animation: ar-halo 6s ease-in-out infinite alternate; }
.scn-advice-on-religion-and-shaved-head .shadow { position:absolute; bottom:0; left:20%; width:60%; height:20%; background: rgba(0,0,0,0.5); border-radius: 50% 50% 0 0; filter: blur(8px); animation: ar-shadow 10s linear infinite; }
@keyframes ar-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ar-cross { 0% { transform: translateX(-50%) scale(1) rotate(0) } 50% { transform: translateX(-50%) scale(1.02) rotate(2deg) } 100% { transform: translateX(-50%) scale(1) rotate(0) } }
@keyframes ar-candle { 0% { box-shadow: 0 0 5px #f0d0a0 } 50% { box-shadow: 0 0 15px #f0d0a0 } 100% { box-shadow: 0 0 5px #f0d0a0 } }
@keyframes ar-monk { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ar-halo { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes ar-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }

.scn-more-advice-timidity-and-dress { background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 50%, #3a1a0a 100%), radial-gradient(ellipse at 50% 80%, #2a1a00 0%, transparent 60%); }
.scn-more-advice-timidity-and-dress .wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a10 0%, #3a2a1a 100%); animation: ma-wall 20s ease-in-out infinite alternate; }
.scn-more-advice-timidity-and-dress .mirror { position:absolute; top:15%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius: 10px; box-shadow: 0 0 30px rgba(200,180,160,0.4); animation: ma-mirror 8s ease-in-out infinite alternate; }
.scn-more-advice-timidity-and-dress .breeches { position:absolute; top:37%; left:40%; width:35px; height:45px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: top center; animation: ma-breeches 2s ease-in-out infinite alternate; }
.scn-more-advice-timidity-and-dress .tailor { position:absolute; bottom:15%; left:25%; width:30px; height:80px; background: #3a2a1a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-tailor 4s ease-in-out infinite; }
.scn-more-advice-timidity-and-dress .tape { position:absolute; bottom:40%; left:50%; width:50px; height:6px; background: #d0c0a0; transform: rotate(20deg); border-radius: 2px; animation: ma-tape 6s linear infinite; }
.scn-more-advice-timidity-and-dress .stool { position:absolute; bottom:15%; left:50%; width:40px; height:20px; background: #4a3020; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ma-stool 10s ease-in-out infinite; }
@keyframes ma-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ma-mirror { 0% { box-shadow: 0 0 20px rgba(200,180,160,0.3) } 50% { box-shadow: 0 0 40px rgba(200,180,160,0.6) } 100% { box-shadow: 0 0 20px rgba(200,180,160,0.3) } }
@keyframes ma-breeches { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(-10deg) scale(1.05) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes ma-tailor { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ma-tape { 0% { transform: rotate(20deg) translateX(0) } 50% { transform: rotate(30deg) translateX(5px) } 100% { transform: rotate(20deg) translateX(0) } }
@keyframes ma-stool { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(1) } }

/* scene: father-and-uncle-contrast-love */
.scn-father-and-uncle-contrast-love {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 40%, #cba87a 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%),
    radial-gradient(ellipse at 30% 80%, #d6b87a 0%, transparent 50%);
}
.scn-father-and-uncle-contrast-love .wall {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #e8d8b0 0%, #d4c098 100%);
  border-bottom: 2px solid #b09868;
}
.scn-father-and-uncle-contrast-love .floor {
  position: absolute; bottom: 0; left:0; right:0; height: 60%;
  background: linear-gradient(180deg, #b89868 0%, #8a7050 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.15);
}
.scn-father-and-uncle-contrast-love .window {
  position: absolute; top: 10%; left: 10%; width: 25%; height: 40%;
  background: linear-gradient(135deg, #e8f0ff 0%, #d0e0ff 100%);
  border: 6px solid #b09868;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,255,200,0.3), 0 0 60px rgba(255,240,180,0.2);
  transform: skewY(-2deg);
}
.scn-father-and-uncle-contrast-love .table {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #c8a070 0%, #9a7848 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-father-and-uncle-contrast-love .father {
  position: absolute; bottom: 34%; left: 25%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fl-father 3s ease-in-out infinite;
}
.scn-father-and-uncle-contrast-love .uncle {
  position: absolute; bottom: 36%; right: 25%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fl-uncle 4s ease-in-out infinite;
}
.scn-father-and-uncle-contrast-love .candle {
  position: absolute; bottom: 38%; left: 48%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #ffd080 0%, #f0a040 100%);
  border-radius: 2px;
  transform: skewX(-3deg);
}
.scn-father-and-uncle-contrast-love .glow {
  position: absolute; bottom: 38%; left: 46%; width: 8%; height: 10%;
  background: radial-gradient(circle, rgba(255,220,150,0.6) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: fl-glow 5s ease-in-out infinite alternate;
}
@keyframes fl-father {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(4deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes fl-uncle {
  0% { transform: translateX(0) rotate(1deg); }
  30% { transform: translateX(-2px) rotate(-1deg); }
  60% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes fl-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.8; transform: scale(0.9); }
}

/* scene: fathers-curse-against-love */
.scn-fathers-curse-against-love {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2c2040 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 60% 80%, #3a2a3a 0%, transparent 60%),
    radial-gradient(ellipse at 40% 20%, #1a1a2e 0%, transparent 70%);
}
.scn-fathers-curse-against-love .dark-wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-bottom: 2px solid #2a2040;
}
.scn-fathers-curse-against-love .floor {
  position: absolute; bottom: 0; left:0; right:0; height: 50%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.5);
}
.scn-fathers-curse-against-love .candle {
  position: absolute; bottom: 40%; left: 45%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #ffb060 0%, #d08030 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(255,176,96,0.4);
  transform: skewX(-5deg);
}
.scn-fathers-curse-against-love .father-silhouette {
  position: absolute; bottom: 35%; left: 30%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #0a0a1a 0%, #05050e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 30px 5px rgba(0,0,0,0.8);
  animation: fc-father 2s ease-in-out infinite;
}
.scn-fathers-curse-against-love .shadow {
  position: absolute; bottom: 20%; left: 25%; width: 30%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  transform: skewX(-20deg);
  filter: blur(4px);
  animation: fc-shadow 3s ease-in-out infinite;
}
.scn-fathers-curse-against-love .table-edge {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 4%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
}
.scn-fathers-curse-against-love .glow {
  position: absolute; bottom: 38%; left: 43%; width: 14%; height: 16%;
  background: radial-gradient(circle, rgba(255,176,96,0.3) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: fc-glow 4s ease-in-out infinite alternate;
}
@keyframes fc-father {
  0% { transform: translateX(0) rotate(-5deg) scale(1); }
  25% { transform: translateX(5px) rotate(8deg) scale(1.02); }
  50% { transform: translateX(-3px) rotate(-4deg) scale(0.98); }
  75% { transform: translateX(4px) rotate(6deg) scale(1.01); }
  100% { transform: translateX(0) rotate(-5deg) scale(1); }
}
@keyframes fc-shadow {
  0% { transform: skewX(-20deg) translateX(0); opacity: 0.6; }
  50% { transform: skewX(-15deg) translateX(10px); opacity: 0.8; }
  100% { transform: skewX(-20deg) translateX(0); opacity: 0.6; }
}
@keyframes fc-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.3); }
  100% { opacity: 0.5; transform: scale(0.8); }
}

/* description-of-wadman-eye */
.scn-description-of-wadman-eye {
  background: 
    radial-gradient(ellipse at 50% 40%, #f4d9a0 0%, #d9b073 40%, #a67c4e 100%),
    linear-gradient(180deg, #f5e6c8 0%, #d9b073 50%, #8b5e3c 100%);
}
.scn-description-of-wadman-eye .eye-glare {
  position: absolute; inset: 15% 10% 15% 10%;
  background: radial-gradient(ellipse at 50% 50%, #fff2d0 0%, #f5d9a0 40%, transparent 70%);
  border-radius: 50%;
  animation: wme-glare 6s ease-in-out infinite alternate;
}
.scn-description-of-wadman-eye .eye-white {
  position: absolute; inset: 22% 25% 22% 25%;
  background: radial-gradient(ellipse at 48% 50%, #fefcf5 0%, #e8d9b8 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 20px rgba(139,94,60,0.3);
}
.scn-description-of-wadman-eye .eye-iris {
  position: absolute; inset: 30% 32% 30% 32%;
  background: radial-gradient(ellipse at 45% 50%, #b8a07a 0%, #8b6f4e 50%, #4d3321 100%);
  border-radius: 50%;
  animation: wme-iris 8s ease-in-out infinite alternate;
}
.scn-description-of-wadman-eye .eye-pupil {
  position: absolute; inset: 40% 42% 40% 42%;
  background: #1f140f;
  border-radius: 50%;
}
.scn-description-of-wadman-eye .eye-highlight {
  position: absolute; top: 33%; left: 42%; width: 6%; height: 6%;
  background: radial-gradient(circle, #fff 0%, #fff8e0 60%, transparent 100%);
  border-radius: 50%;
  animation: wme-highlight 5s ease-in-out infinite alternate;
}
.scn-description-of-wadman-eye .lid-upper {
  position: absolute; top: 15%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #a67c4e 0%, #c9a36e 100%);
  border-radius: 40% 40% 0 0 / 100% 100% 0 0;
  transform-origin: bottom center;
  animation: wme-lid-up 4s ease-in-out infinite;
}
.scn-description-of-wadman-eye .lid-lower {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(0deg, #a67c4e 0%, #c9a36e 100%);
  border-radius: 0 0 40% 40% / 0 0 100% 100%;
  transform-origin: top center;
  animation: wme-lid-low 4s ease-in-out infinite alternate;
}
.scn-description-of-wadman-eye .lash-shadow {
  position: absolute; top: 33%; left: 22%; right: 22%; height: 2%;
  background: #4d3321;
  border-radius: 50%;
  filter: blur(2px);
  opacity: 0.6;
  animation: wme-lash 5s ease-in-out infinite;
}
@keyframes wme-glare {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes wme-iris {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-3px) scale(1.01); }
  100% { transform: translateX(2px) scale(1); }
}
@keyframes wme-highlight {
  0% { opacity: 0.5; transform: translate(0,0); }
  50% { opacity: 1; transform: translate(2px,-1px); }
  100% { opacity: 0.7; transform: translate(-1px,1px); }
}
@keyframes wme-lid-up {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(-2deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-1deg); }
}
@keyframes wme-lid-low {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes wme-lash {
  0%,100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.2); }
}

/* item-wadman-eye-effect */
.scn-item-wadman-eye-effect {
  background: 
    radial-gradient(ellipse at 50% 70%, #f5d9a0 0%, #c9a36e 50%, #7a5c3c 100%),
    linear-gradient(180deg, #e6cdad 0%, #a67c4e 80%, #4d3321 100%);
}
.scn-item-wadman-eye-effect .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d9b88b 0%, #a67c4e 100%);
  opacity: 0.5;
}
.scn-item-wadman-eye-effect .bed-frame {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #7a5c3c 0%, #4d3321 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 15px rgba(0,0,0,0.4);
}
.scn-item-wadman-eye-effect .mattress {
  position: absolute; bottom: 15%; left: 12%; right: 12%; height: 22%;
  background: linear-gradient(180deg, #e6d4b0 0%, #cbb18b 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: inset 0 4px 8px rgba(77,51,33,0.3);
}
.scn-item-wadman-eye-effect .figure-torso {
  position: absolute; bottom: 30%; left: 40%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #4a3c2a 0%, #2d2012 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: wmef-torso 5s ease-in-out infinite alternate;
}
.scn-item-wadman-eye-effect .figure-head {
  position: absolute; bottom: 62%; left: 43%; width: 10%; height: 12%;
  background: radial-gradient(ellipse at 50% 40%, #3a2c1e 0%, #1f140f 100%);
  border-radius: 50%;
  transform-origin: 50% 90%;
  animation: wmef-head 6s ease-in-out infinite;
}
.scn-item-wadman-eye-effect .eye-orb {
  position: absolute; bottom: 63%; left: 46%; width: 4%; height: 5%;
  background: radial-gradient(circle at 50% 50%, #fce8b0 0%, #f5d080 40%, #c9a36e 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(245,208,128,0.6), 0 0 40px 15px rgba(245,208,128,0.3);
  animation: wmef-orb 3s ease-in-out infinite alternate;
}
.scn-item-wadman-eye-effect .eye-ray {
  position: absolute; bottom: 63%; left: 46%; width: 4%; height: 5%;
  background: transparent;
  border-radius: 50%;
  box-shadow: 0 0 60px 25px rgba(245,208,128,0.4);
  animation: wmef-ray 3s ease-in-out infinite alternate;
}
.scn-item-wadman-eye-effect .pillow-bump {
  position: absolute; bottom: 15%; left: 30%; width: 20%; height: 12%;
  background: radial-gradient(ellipse at 50% 50%, #d9c3a0 0%, #b89e7a 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  box-shadow: inset 0 2px 5px rgba(0,0,0,0.1);
}
@keyframes wmef-torso {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes wmef-head {
  0%,100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(5deg) translateY(-2px); }
  50% { transform: rotate(-2deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-1px); }
}
@keyframes wmef-orb {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 8px rgba(245,208,128,0.5), 0 0 40px 15px rgba(245,208,128,0.2); }
  50% { transform: scale(1.15); opacity: 1; box-shadow: 0 0 30px 12px rgba(245,208,128,0.7), 0 0 60px 25px rgba(245,208,128,0.4); }
  100% { transform: scale(0.95); opacity: 0.9; box-shadow: 0 0 25px 10px rgba(245,208,128,0.6), 0 0 50px 20px rgba(245,208,128,0.3); }
}
@keyframes wmef-ray {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.4); opacity: 0.6; }
  100% { transform: scale(0.9); opacity: 0.4; }
}

.scn-description-of-wadman-eye {
  background:
    radial-gradient(ellipse 60% 50% at 50% 50%, rgba(255,230,180,0.3) 0%, transparent 70%),
    linear-gradient(180deg, #f5e0c0 0%, #dcc0a0 40%, #b89070 100%);
}
.scn-description-of-wadman-eye .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(180,140,100,0.15) 100%);
  animation: we-wall 12s ease-in-out infinite alternate;
}
.scn-description-of-wadman-eye .window-light {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 55%;
  background: radial-gradient(ellipse at 50% 60%, rgba(255,220,160,0.4) 0%, transparent 70%);
  border-radius: 20% / 30%;
  filter: blur(8px);
  animation: we-window 9s ease-in-out infinite alternate;
}
.scn-description-of-wadman-eye .curtain-l,
.scn-description-of-wadman-eye .curtain-r {
  position: absolute; top: 0; bottom: 0; width: 18%;
  background: linear-gradient(90deg, #704e38 0%, #8a6044 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: we-sway 7s ease-in-out infinite alternate;
}
.scn-description-of-wadman-eye .curtain-r {
  left: auto; right: 0;
  border-radius: 40% 0 0 40% / 60% 0 0 60%;
  animation-delay: -3.5s;
}
.scn-description-of-wadman-eye .eye-glow {
  position: absolute; top: 30%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, rgba(200,140,60,0.2) 40%, transparent 70%);
  filter: blur(12px);
  animation: we-pulse-glow 4s ease-in-out infinite alternate;
}
.scn-description-of-wadman-eye .eye-outer {
  position: absolute; top: 33%; left: 37%; width: 26%; height: 34%;
  background: linear-gradient(180deg, #eedcc0 0%, #d4bba0 50%, #b89c80 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  box-shadow: inset 0 4px 8px rgba(90,60,30,0.3), 0 0 30px rgba(255,200,100,0.2);
  animation: we-eye-shape 6s ease-in-out infinite;
}
.scn-description-of-wadman-eye .eye-pupil {
  position: absolute; top: 39%; left: 43%; width: 12%; height: 18%;
  background: radial-gradient(circle at 50% 50%, #2a1a0a 0%, #1a0e05 60%, #0a0603 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(100,60,20,0.3);
  animation: we-pupil-track 8s ease-in-out infinite;
}
.scn-description-of-wadman-eye .eye-lid-top {
  position: absolute; top: 32%; left: 37%; width: 26%; height: 12%;
  background: linear-gradient(180deg, #c8a890 0%, #b08870 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: we-blink 4s ease-in-out infinite;
}
.scn-description-of-wadman-eye .eye-sparkle {
  position: absolute; top: 41%; left: 46%; width: 3%; height: 5%;
  background: radial-gradient(circle, #ffffff 0%, rgba(255,255,255,0.6) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: we-twinkle 2s ease-in-out infinite alternate;
}
@keyframes we-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes we-window {
  0% { transform: scale(1) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.02) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.98) translateY(1px); opacity: 0.8; }
}
@keyframes we-sway {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-0.5deg); }
}
@keyframes we-pulse-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes we-eye-shape {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(2deg) scaleY(1.02); }
  50% { transform: rotate(-1deg) scaleY(0.98); }
  75% { transform: rotate(1deg) scaleY(1.01); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes we-pupil-track {
  0% { transform: translate(0, 0); }
  20% { transform: translate(3px, -2px); }
  40% { transform: translate(-4px, 1px); }
  60% { transform: translate(2px, 3px); }
  80% { transform: translate(-1px, -3px); }
  100% { transform: translate(0, 0); }
}
@keyframes we-blink {
  0%, 100% { transform: translateY(0); }
  45% { transform: translateY(0); }
  48% { transform: translateY(4px); }
  52% { transform: translateY(4px); }
  55% { transform: translateY(0); }
}
@keyframes we-twinkle {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

.scn-item-wadman-eye-effect { background: linear-gradient(145deg, #f7e8d0 0%, #d9a05b 40%, #b06d2e 100%), radial-gradient(ellipse at 30% 40%, #fbd38d 0%, transparent 70%); }
.scn-item-wadman-eye-effect .iw-bg { pos:abs; inset:0; bg:linear-gradient(180deg, #f5e6c8 0%, #e2c28b 100%); bx-shadow:inset 0 0 6vmin rgba(180,100,30,0.3); ani:iw-bg 12s ease-in-out infinite alternate; }
.scn-item-wadman-eye-effect .iw-glow { pos:abs; inset:0; bg:radial-gradient(ellipse 50% 50%, #fbd38d 0%, transparent 55%); ani:iw-glow 5s ease-in-out infinite; }
.scn-item-wadman-eye-effect .iw-eye { pos:abs; top:30%; left:35%; w:30vw; h:20vw; bg:#3a2a1a; b-r:50%; bx-shadow:0 0 4vw rgba(0,0,0,0.5); ani:iw-eye 8s ease-in-out infinite; }
.scn-item-wadman-eye-effect .iw-sclera { pos:abs; top:calc(30% + 2vw); left:calc(35% + 2vw); w:26vw; h:16vw; bg:radial-gradient(circle, #f9f3e0 0%, #d9cba0 100%); b-r:50%; ani:iw-sclera 4s ease-in-out infinite alternate; }
.scn-item-wadman-eye-effect .iw-iris { pos:abs; top:calc(30% + 6vw); left:calc(35% + 10vw); w:10vw; h:10vw; b-r:50%; bg:radial-gradient(circle, #c0661a 0%, #8c4012 70%); ani:iw-iris 3s ease-in-out infinite alternate; }
.scn-item-wadman-eye-effect .iw-pupil { pos:abs; top:calc(30% + 9vw); left:calc(35% + 13vw); w:4vw; h:4vw; b-r:50%; bg:#1a1a1a; ani:iw-pupil 6s ease-in-out infinite; }
.scn-item-wadman-eye-effect .iw-lid { pos:abs; top:30%; left:35%; w:30vw; h:6vw; bg:linear-gradient(180deg, #5a3a2a 0%, transparent 100%); b-r:50% 50% 0 0; ani:iw-lid 6s ease-in-out infinite; }
@keyframes iw-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes iw-glow { 0% { opacity:0.6; transform:scale(1) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:0.7; transform:scale(0.98) } }
@keyframes iw-eye { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-0.5vw) rotate(1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes iw-sclera { 0% { box-shadow:0 0 0 transparent; filter:brightness(1) } 50% { box-shadow:0 0 2vw rgba(255,200,100,0.3); filter:brightness(1.1) } 100% { box-shadow:0 0 0 transparent; filter:brightness(1) } }
@keyframes iw-iris { 0% { transform:scale(1); background:radial-gradient(circle, #c0661a 0%, #8c4012 70%) } 50% { transform:scale(0.95); background:radial-gradient(circle, #d97a2b 0%, #a05018 70%) } 100% { transform:scale(1); background:radial-gradient(circle, #c0661a 0%, #8c4012 70%) } }
@keyframes iw-pupil { 0% { transform:translate(0,0) scale(1) } 30% { transform:translate(0.3vw,-0.2vw) scale(0.9) } 60% { transform:translate(-0.2vw,0.1vw) scale(1.05) } 100% { transform:translate(0,0) scale(1) } }
@keyframes iw-lid { 0% { height:6vw; opacity:0.8 } 50% { height:0.5vw; opacity:0.4 } 100% { height:6vw; opacity:0.8 } }

.scn-father-and-uncle-contrast-love { background: linear-gradient(180deg, #fdf4e3 0%, #f0e0cc 100%), radial-gradient(ellipse at 70% 20%, rgba(255, 240, 210, 0.6) 0%, transparent 60%); }
.scn-father-and-uncle-contrast-love .bg-wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #edd7c5 0%, #dcc2ac 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.04); }
.scn-father-and-uncle-contrast-love .window { position: absolute; top: 8%; left: 58%; width: 30%; height: 45%; background: linear-gradient(135deg, #ffffff 0%, #fff8e7 40%, #fce4c0 100%); border-radius: 6px; box-shadow: 0 0 80px 40px rgba(255, 245, 230, 0.6), 0 0 160px 80px rgba(255, 245, 220, 0.2); animation: fuc-window 8s ease-in-out infinite alternate; transform-origin: center; }
.scn-father-and-uncle-contrast-love .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #b58d6e 0%, #8c6e50 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.15); }
.scn-father-and-uncle-contrast-love .hearth { position: absolute; bottom: 25%; left: 42%; width: 16%; height: 10%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.2); }
.scn-father-and-uncle-contrast-love .father-body { position: absolute; bottom: 25%; left: 12%; width: 15%; height: 65%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: fuc-father-body 3s ease-in-out infinite alternate; }
.scn-father-and-uncle-contrast-love .father-arm { position: absolute; bottom: 58%; left: 22%; width: 8%; height: 28%; background: #2a2a3a; border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform-origin: bottom center; animation: fuc-father-arm 1.2s ease-in-out infinite alternate; }
.scn-father-and-uncle-contrast-love .chair { position: absolute; bottom: 25%; left: 46%; width: 20%; height: 45%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: 4px 0 8px rgba(0,0,0,0.3); }
.scn-father-and-uncle-contrast-love .uncle-body { position: absolute; bottom: 25%; left: 48%; width: 16%; height: 35%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; animation: fuc-uncle-body 4s ease-in-out infinite; }
.scn-father-and-uncle-contrast-love .uncle-head { position: absolute; bottom: 55%; left: 51%; width: 10%; height: 12%; background: #d4b898; border-radius: 50%; box-shadow: inset -4px -4px 8px rgba(0,0,0,0.1); animation: fuc-uncle-head 4s ease-in-out infinite; }
@keyframes fuc-window { 0% { opacity: 0.85; transform: scaleX(1) scaleY(1); } 50% { opacity: 1; transform: scaleX(1.03) scaleY(1.02); } 100% { opacity: 0.9; transform: scaleX(0.97) scaleY(0.98); } }
@keyframes fuc-father-body { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(-4px) rotate(-1deg); } }
@keyframes fuc-father-arm { 0% { transform: rotate(-25deg) scaleY(1); } 50% { transform: rotate(35deg) scaleY(1.1); } 100% { transform: rotate(-20deg) scaleY(0.95); } }
@keyframes fuc-uncle-body { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fuc-uncle-head { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(8deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }

.scn-fathers-curse-against-love {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 50%, #0d0505 100%), radial-gradient(ellipse at 15% 25%, #2a3a4a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-fathers-curse-against-love .window {
  position: absolute;
  left: 10%;
  top: 12%;
  width: 80px;
  height: 130px;
  background: linear-gradient(180deg, #4a6a8a, #2a4a6a);
  box-shadow: 0 0 30px 10px rgba(74,106,138,0.4);
  border: 4px solid #1a2a3a;
  border-radius: 4px;
  animation: fc-window-glow 4s ease-in-out infinite alternate;
}
.scn-fathers-curse-against-love .moonlight {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(74,106,138,0.15) 0%, transparent 40%);
  animation: fc-moonlight 6s ease-in-out infinite alternate;
}
.scn-fathers-curse-against-love .figure {
  position: absolute;
  right: 25%;
  bottom: 10%;
  width: 50px;
  height: 90px;
  background: #0a0a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fc-figure 3s ease-in-out infinite alternate;
}
.scn-fathers-curse-against-love .arm {
  position: absolute;
  bottom: calc(10% + 40px);
  right: calc(25% + 30px);
  width: 12px;
  height: 50px;
  background: #0a0a0a;
  border-radius: 40%;
  transform-origin: bottom right;
  animation: fc-arm 0.8s ease-in-out infinite alternate;
}
.scn-fathers-curse-against-love .table {
  position: absolute;
  bottom: 8%;
  left: 40%;
  width: 100px;
  height: 20px;
  background: #3a2a1a;
  border-radius: 2px;
}
.scn-fathers-curse-against-love .candle {
  position: absolute;
  bottom: calc(8% + 20px);
  left: calc(40% + 45px);
  width: 8px;
  height: 25px;
  background: linear-gradient(180deg, #e0c8a0, #c8a878);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: fc-candle 4s ease-in-out infinite alternate;
}
.scn-fathers-curse-against-love .flame {
  position: absolute;
  bottom: calc(8% + 20px + 25px - 2px);
  left: calc(40% + 46px);
  width: 6px;
  height: 12px;
  border-radius: 50%;
  background: radial-gradient(circle, #ffd080, #ff8c00);
  box-shadow: 0 0 20px 8px rgba(255,140,0,0.6);
  animation: fc-flame 0.5s ease-in-out infinite alternate;
}
@keyframes fc-window-glow {
  0% { box-shadow: 0 0 20px 5px rgba(74,106,138,0.3); }
  50% { box-shadow: 0 0 40px 15px rgba(74,106,138,0.5); }
  100% { box-shadow: 0 0 20px 5px rgba(74,106,138,0.3); }
}
@keyframes fc-moonlight {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes fc-figure {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(-2px); }
}
@keyframes fc-arm {
  0% { transform: rotate(-40deg); }
  50% { transform: rotate(-30deg); }
  100% { transform: rotate(-45deg); }
}
@keyframes fc-candle {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-0.5deg); }
}
@keyframes fc-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(1px); opacity: 0.8; }
}
/* end per-scene blocks */

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-dance-with-nannette {
  background: linear-gradient(180deg, #ffcc80 0%, #ffb347 35%, #ff8c00 65%, #d96900 100%), radial-gradient(ellipse at 30% 20%, #ffe082 0%, transparent 60%);
}
.scn-dance-with-nannette .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 60%, transparent 100%); animation: dn-sky 10s ease-in-out infinite alternate; }
.scn-dance-with-nannette .sun { position:absolute; top:8%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #ffb347; animation: dn-sun 8s ease-in-out infinite; }
.scn-dance-with-nannette .hills { position:absolute; bottom:40%; left:0; right:0; height:18%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.3); }
.scn-dance-with-nannette .ground { position:absolute; bottom:0; left:0; right:0; height:42%; background: linear-gradient(180deg, #cd853f 0%, #8b4513 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.4); animation: dn-ground 6s ease-in-out infinite alternate; }
.scn-dance-with-nannette .figure-tr { position:absolute; bottom:18%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dn-dance-tri 1.5s ease-in-out infinite; }
.scn-dance-with-nannette .figure-na { position:absolute; bottom:18%; left:50%; width:18px; height:38px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dn-dance-na 1.5s ease-in-out infinite 0.75s; }
.scn-dance-with-nannette .string { position:absolute; bottom:50%; left:49%; width:2px; height:30px; background: #d2b48c; transform-origin: top center; animation: dn-string 4s ease-in-out infinite; }
@keyframes dn-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dn-sun { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(8px) scale(1.05) } 100% { transform: translateX(-4px) scale(.95) } }
@keyframes dn-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dn-dance-tri { 0% { transform: translateX(0) rotate(-4deg) } 25% { transform: translateX(10px) rotate(2deg) scaleX(.95) } 50% { transform: translateX(20px) rotate(4deg) } 75% { transform: translateX(10px) rotate(0deg) } 100% { transform: translateX(0) rotate(-4deg) } }
@keyframes dn-dance-na { 0% { transform: translateX(0) rotate(4deg) } 25% { transform: translateX(-10px) rotate(-2deg) scaleX(.95) } 50% { transform: translateX(-20px) rotate(-4deg) } 75% { transform: translateX(-10px) rotate(0deg) } 100% { transform: translateX(0) rotate(4deg) } }
@keyframes dn-string { 0%,100% { transform: rotate(-6deg) scaleY(1) } 50% { transform: rotate(6deg) scaleY(.8) } }

/* Scene: perdrillo-pavilion-amours */

.scn-tobys-solution { background: linear-gradient(180deg, #3a2a1a 0%, #5a4030 40%, #4a3828 100%), radial-gradient(ellipse at 50% 20%, #6a5038 0%, transparent 80%); }
.scn-tobys-solution .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3828 0%, #3a2a1a 100%); }
.scn-tobys-solution .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-tobys-solution .window { position:absolute; top:10%; left:30%; width:30%; height:40%; background: radial-gradient(circle at 50% 50%, #6a5a4a 0%, #2a1a0a 100%); border: 8px solid #5a4030; border-radius: 4px; box-shadow: inset 0 0 40px rgba(0,0,0,.6); animation: ts-window 15s ease-in-out infinite alternate; }
.scn-tobys-solution .chair { position:absolute; bottom:35%; left:20%; width:50px; height:60px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; }
.scn-tobys-solution .figure { position:absolute; bottom:40%; left:22%; width:30px; height:50px; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts-figure 6s ease-in-out infinite; }
.scn-tobys-solution .pipe { position:absolute; bottom:50%; left:25%; width:12px; height:6px; background: #8a7050; border-radius: 40%; transform: rotate(-15deg); animation: ts-pipe 4s ease-in-out infinite; }
.scn-tobys-solution .idea { position:absolute; width:6px; height:6px; background: radial-gradient(circle, #c8a868 0%, transparent 80%); border-radius: 50%; }
.scn-tobys-solution .idea-a { top:25%; left:60%; animation: ts-idea 8s ease-in-out infinite; }
.scn-tobys-solution .idea-b { top:30%; left:45%; animation: ts-idea 12s ease-in-out infinite; animation-delay: 2s; }
@keyframes ts-window { 0% { opacity: .5; filter: blur(2px); } 50% { opacity: .7; filter: blur(0); } 100% { opacity: .5; filter: blur(2px); } }
@keyframes ts-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ts-pipe { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-1px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes ts-idea { 0% { opacity: 0; transform: translate(0, 0) scale(0.5); } 50% { opacity: 1; transform: translate(20px, -20px) scale(1.5); } 100% { opacity: 0; transform: translate(40px, -40px) scale(0.5); } }

.scn-metaphysical-discourse { background: linear-gradient(180deg, #4a3030 0%, #6a4848 30%, #5a3a3a 100%), radial-gradient(ellipse at 50% 60%, #7a5050 0%, transparent 70%); }
.scn-metaphysical-discourse .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #3a2020 100%); opacity: .6; }
.scn-metaphysical-discourse .table { position:absolute; bottom:10%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #6a4a40 0%, #4a2a20 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,.5); }
.scn-metaphysical-discourse .figure-father { position:absolute; bottom:25%; left:35%; width:35px; height:55px; background: linear-gradient(180deg, #5a3a30 0%, #3a2020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: md-father 5s ease-in-out infinite; }
.scn-metaphysical-discourse .figure-toby { position:absolute; bottom:25%; right:30%; width:30px; height:50px; background: linear-gradient(180deg, #4a3030 0%, #2a1818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: md-toby 7s ease-in-out infinite; }
.scn-metaphysical-discourse .candle { position:absolute; bottom:30%; left:48%; width:8px; height:40px; background: linear-gradient(180deg, #e8d8a0 0%, #b8a070 100%); border-radius: 20% 20% 10% 10%; }
.scn-metaphysical-discourse .flame { position:absolute; bottom:65%; left:48.5%; width:6px; height:12px; background: radial-gradient(circle, #ffd060 0%, #ff8040 60%, transparent 100%); border-radius: 50%; animation: md-flame 2s ease-in-out infinite alternate; filter: blur(1px); }
.scn-metaphysical-discourse .book { position:absolute; bottom:20%; left:40%; width:25px; height:18px; background: linear-gradient(180deg, #8a6a50 0%, #5a4030 100%); border-radius: 10% 10% 20% 20%; transform: rotate(-8deg); transform-origin: left center; animation: md-book 10s ease-in-out infinite; }
@keyframes md-father { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes md-toby { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes md-flame { 0% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.3) scaleX(.8); opacity: 1; } 100% { transform: scaleY(1); opacity: .9; } }
@keyframes md-book { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }

.scn-smoke-jack-ideas { background: linear-gradient(180deg, #3a2a1a 0%, #5a4030 40%, #4a3828 100%), radial-gradient(ellipse at 50% 80%, #6a5038 0%, transparent 80%); }
.scn-smoke-jack-ideas .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3828 0%, #3a2a1a 100%); }
.scn-smoke-jack-ideas .jack-stand { position:absolute; bottom:20%; left:50%; width:10px; height:80px; transform: translateX(-50%); background: linear-gradient(180deg, #7a6050 0%, #4a3020 100%); border-radius: 20%; }
.scn-smoke-jack-ideas .jack-spit { position:absolute; bottom:60%; left:50%; width:100px; height:6px; transform: translateX(-50%); background: linear-gradient(90deg, #705040 0%, #8a7060 50%, #705040 100%); border-radius: 20%; animation: sj-spit 3s linear infinite; }
.scn-smoke-jack-ideas .smoke { position:absolute; width:20px; height:20px; background: radial-gradient(circle, rgba(200,180,160,.4) 0%, transparent 70%); border-radius: 50%; filter: blur(3px); }
.scn-smoke-jack-ideas .smoke-a { bottom:65%; left:45%; animation: sj-smoke 6s ease-in-out infinite; }
.scn-smoke-jack-ideas .smoke-b { bottom:70%; left:55%; animation: sj-smoke 8s ease-in-out infinite; animation-delay: 2s; }
.scn-smoke-jack-ideas .idea-circle { position:absolute; bottom:70%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #d0b080 0%, #a08060 100%); border-radius: 50%; animation: sj-idea 5s ease-in-out infinite; }
.scn-smoke-jack-ideas .idea-arrow { position:absolute; bottom:55%; left:15%; width:40px; height:4px; background: linear-gradient(90deg, #c8a868 0%, transparent 100%); transform: rotate(45deg); animation: sj-arrow 7s ease-in-out infinite; }
.scn-smoke-jack-ideas .figure-toby { position:absolute; bottom:25%; right:20%; width:30px; height:50px; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sj-toby 4s ease-in-out infinite; }
@keyframes sj-spit { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes sj-smoke { 0% { transform: translateY(0) scale(0.8); opacity: .6; } 50% { transform: translateY(-30px) scale(1.5); opacity: .2; } 100% { transform: translateY(-60px) scale(2); opacity: 0; } }
@keyframes sj-idea { 0% { transform: translateY(0) scale(0.8) rotate(0deg); } 50% { transform: translateY(-20px) scale(1.2) rotate(180deg); } 100% { transform: translateY(0) scale(0.8) rotate(360deg); } }
@keyframes sj-arrow { 0% { opacity: 0; transform: rotate(45deg) translateY(0); } 50% { opacity: 1; transform: rotate(60deg) translateY(-10px); } 100% { opacity: 0; transform: rotate(45deg) translateY(0); } }
@keyframes sj-toby { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }

.scn-all-asleep { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a2a3a 100%), radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%); }
.scn-all-asleep .wall-dark { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-all-asleep .table { position:absolute; bottom:10%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,.6); }
.scn-all-asleep .figure-father { position:absolute; bottom:20%; left:30%; width:35px; 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: aa-father 12s ease-in-out infinite; }
.scn-all-asleep .figure-toby { position:absolute; bottom:20%; right:30%; width:30px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aa-toby 14s ease-in-out infinite; }
.scn-all-asleep .candle-stub { position:absolute; bottom:25%; left:48%; width:6px; height:15px; background: linear-gradient(180deg, #c8b878 0%, #8a7048 100%); border-radius: 20% 20% 10% 10%; opacity: .3; }
.scn-all-asleep .snore { position:absolute; width:8px; height:8px; background: rgba(200,180,160,.1); border-radius: 50%; filter: blur(4px); }
.scn-all-asleep .snore-a { bottom:35%; left:35%; animation: aa-snore 6s ease-in-out infinite; }
.scn-all-asleep .snore-b { bottom:38%; right:25%; animation: aa-snore 8s ease-in-out infinite; animation-delay: 1.5s; }
@keyframes aa-father { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes aa-toby { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes aa-snore { 0% { transform: scale(0.5); opacity: 0; } 50% { transform: scale(1.5); opacity: .2; } 100% { transform: scale(2); opacity: 0; } }

.scn-readers-patience {
  background: linear-gradient(135deg, #2b1f12 0%, #1a1410 40%, #3b2b1a 100%),
              radial-gradient(ellipse at 50% 20%, #4a3520 0%, transparent 70%);
}
.scn-readers-patience .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); }
.scn-readers-patience .desk { position:absolute; bottom:20%; left:10%; width:70%; height:8%; background: linear-gradient(180deg, #5a4030, #3a2818); border-radius:4px; box-shadow: inset 0 2px 4px rgba(0,0,0,.5); }
.scn-readers-patience .chair { position:absolute; bottom:10%; left:30%; width:25%; height:15%; background: linear-gradient(180deg, #4a3020, #2a1a10); border-radius: 40% 40% 20% 20%; }
.scn-readers-patience .figure { position:absolute; bottom:18%; left:35%; width:12%; height:30%; background: linear-gradient(180deg, #3a2a1a, #1a1410 60%, #0a0808); border-radius: 50% 50% 40% 40%; animation: rp-figure 10s ease-in-out infinite; }
.scn-readers-patience .figure.facing-right { transform: scaleX(-1); }
.scn-readers-patience .candle { position:absolute; bottom:26%; left:58%; width:2%; height:6%; background: linear-gradient(180deg, #f0d8b0, #a08060); border-radius:2px; }
.scn-readers-patience .flame { position:absolute; bottom:30%; left:58%; width:2%; height:4%; background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent); border-radius:50%; box-shadow: 0 0 12px 6px rgba(255,160,64,.6); animation: rp-flame 2s ease-in-out infinite alternate; }
.scn-readers-patience .book { position:absolute; bottom:16%; left:36%; width:18%; height:4%; background: linear-gradient(90deg, #6a5040, #5a4030, #7a6050); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-readers-patience .page { position:absolute; bottom:16%; left:38%; width:12%; height:2%; background: #d4c0a8; border-radius:1px; animation: rp-page 1s ease-in-out infinite alternate; }
.scn-readers-patience .shadow { position:absolute; bottom:10%; left:20%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 70%); animation: rp-shadow 8s ease-in-out infinite; }

@keyframes rp-figure { 0%,100% { transform: scaleX(-1) translateY(0) rotate(0); } 50% { transform: scaleX(-1) translateY(-2px) rotate(1deg); } }
@keyframes rp-flame { 0% { opacity:.7; transform: scaleY(1); } 100% { opacity:1; transform: scaleY(1.2); } }
@keyframes rp-page { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }
@keyframes rp-shadow { 0% { opacity:.3; } 50% { opacity:0; } 100% { opacity:.3; } }

.scn-authors-frankness {
  background: linear-gradient(180deg, #1f1812 0%, #2a2018 40%, #1a1410 100%),
              radial-gradient(ellipse at 50% 30%, #3a2818 0%, transparent 70%);
}
.scn-authors-frankness .bg-panels { position:absolute; inset:0; background: linear-gradient(90deg, #2a2018 0%, #1f1812 50%, #2a2018 100%); }
.scn-authors-frankness .window-frame { position:absolute; top:10%; left:30%; width:40%; height:60%; border: 6px solid #4a3828; border-radius:4px; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-authors-frankness .window-glass { position:absolute; top:12%; left:32%; width:36%; height:56%; background: linear-gradient(180deg, rgba(60,80,100,.2), rgba(40,60,80,.1)); border-radius:2px; animation: af-glass 12s ease-in-out infinite alternate; }
.scn-authors-frankness .curtain-left { position:absolute; top:8%; left:28%; width:12%; height:64%; background: linear-gradient(180deg, #5a4030, #3a2818); border-radius:0 20% 20% 0; animation: af-curtain 6s ease-in-out infinite; }
.scn-authors-frankness .curtain-right { position:absolute; top:8%; right:28%; width:12%; height:64%; background: linear-gradient(180deg, #5a4030, #3a2818); border-radius:20% 0 0 20%; transform: scaleX(-1); animation: af-curtain 6s ease-in-out infinite alternate; }
.scn-authors-frankness .shelf { position:absolute; bottom:25%; left:10%; width:80%; height:4%; background: linear-gradient(180deg, #4a3828, #2a1a10); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-authors-frankness .books { position:absolute; bottom:28%; left:20%; width:60%; height:15%; background: repeating-linear-gradient(90deg, #6a5040 0px, #7a6050 4px, #5a4030 8px, #8a7060 12px); border-radius:2px; animation: af-books 20s linear infinite; }
.scn-authors-frankness .desk-lamp { position:absolute; bottom:10%; right:15%; width:10%; height:8%; background: linear-gradient(180deg, #5a4030, #3a2818); border-radius: 50% 50% 0 0; }
.scn-authors-frankness .glow-desk { position:absolute; bottom:8%; right:12%; width:20%; height:20%; background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%); animation: af-glow 4s ease-in-out infinite alternate; }

@keyframes af-glass { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes af-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }
@keyframes af-books { 0% { background-position: 0 0; } 100% { background-position: -24px 0; } }
@keyframes af-glow { 0% { opacity:.2; } 100% { opacity:.5; } }

.scn-montaigne-comparison {
  background: linear-gradient(180deg, #2a2220 0%, #1e1816 50%, #161210 100%),
              radial-gradient(ellipse at 60% 20%, #3a2a1a 0%, transparent 60%);
}
.scn-montaigne-comparison .floor { position:absolute; bottom:0; left:0; width:100%; height:20%; background: linear-gradient(180deg, #3a2a1a, #1a1410); border-radius:20% 20% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.5); }
.scn-montaigne-comparison .wallpaper { position:absolute; inset:0 0 20% 0; background: repeating-linear-gradient(90deg, #2a2220 0px, #352a22 8px, #2a2220 16px); animation: mc-wallpaper 30s linear infinite; }
.scn-montaigne-comparison .parlour-window { position:absolute; top:10%; left:20%; width:60%; height:50%; border: 8px solid #4a3828; border-radius:8px; background: radial-gradient(ellipse at 50% 50%, #3a4a4a, #1a2a2a); box-shadow: inset 0 0 30px rgba(0,0,0,.4); }
.scn-montaigne-comparison .armchair { position:absolute; bottom:15%; left:30%; width:40%; height:30%; background: linear-gradient(135deg, #5a4030, #3a2818); border-radius: 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-montaigne-comparison .figure-seated { position:absolute; bottom:20%; left:37%; width:26%; height:40%; background: linear-gradient(180deg, #4a3020, #2a1a10 70%, #1a0e08); border-radius: 50% 50% 40% 40%; animation: mc-figure 12s ease-in-out infinite; }
.scn-montaigne-comparison .book-open { position:absolute; bottom:18%; left:45%; width:10%; height:8%; background: linear-gradient(180deg, #d4c0a8, #b8a088); border-radius:2px; transform: rotate(10deg); }
.scn-montaigne-comparison .teacup { position:absolute; bottom:16%; right:20%; width:6%; height:6%; background: linear-gradient(180deg, #d0b898, #b8a088); border-radius: 30% 30% 40% 40%; }
.scn-montaigne-comparison .steam { position:absolute; bottom:22%; right:22%; width:4%; height:8%; background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 70%); animation: mc-steam 3s ease-in-out infinite; }
.scn-montaigne-comparison .shadow-pool { position:absolute; bottom:5%; left:25%; width:50%; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%); }

@keyframes mc-wallpaper { 0% { background-position: 0 0; } 100% { background-position: 32px 0; } }
@keyframes mc-figure { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes mc-steam { 0% { opacity:.4; transform: translateY(0); } 100% { opacity:0; transform: translateY(-20px) scale(1.5); } }

.scn-authors-liberty {
  background: linear-gradient(180deg, #1a1612 0%, #12100e 40%, #0e0c0a 100%),
              radial-gradient(ellipse at 50% 40%, #2a1e14 0%, transparent 70%);
}
.scn-authors-liberty .floor-dark { position:absolute; bottom:0; left:0; width:100%; height:20%; background: linear-gradient(180deg, #2a1e14, #0e0c0a); border-radius:30% 30% 0 0; }
.scn-authors-liberty .wall-books { position:absolute; inset:0 0 20% 0; background: repeating-linear-gradient(180deg, #2a2018 0px, #1f1812 6px, #2a2018 12px); animation: al-books 40s linear infinite; }
.scn-authors-liberty .writing-desk { position:absolute; bottom:18%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #4a3828, #2a1a10); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-authors-liberty .quill { position:absolute; bottom:26%; left:40%; width:2%; height:12%; background: linear-gradient(180deg, #f0e0c0, #c0b098); border-radius:2px; transform: rotate(-10deg); transform-origin: bottom; animation: al-quill 2s ease-in-out infinite alternate; }
.scn-authors-liberty .inkwell { position:absolute; bottom:24%; left:45%; width:4%; height:4%; background: radial-gradient(circle, #2a1a10, #0e0c0a); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-authors-liberty .paper { position:absolute; bottom:22%; left:38%; width:20%; height:3%; background: #d4c0a8; border-radius:2px; transform: rotate(2deg); animation: al-paper 8s ease-in-out infinite; }
.scn-authors-liberty .figure-writing { position:absolute; bottom:20%; left:30%; width:20%; height:35%; background: linear-gradient(180deg, #3a2a1a, #1a1410 60%, #0a0808); border-radius: 50% 50% 40% 40%; transform: rotate(5deg); animation: al-figure 6s ease-in-out infinite; }
.scn-authors-liberty .candle-stick { position:absolute; bottom:28%; right:25%; width:3%; height:8%; background: linear-gradient(180deg, #4a3828, #2a1a10); border-radius:2px; }
.scn-authors-liberty .flame-bright { position:absolute; bottom:34%; right:25%; width:3%; height:6%; background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent); border-radius:50%; box-shadow: 0 0 12px 8px rgba(255,160,64,.5); animation: al-flame 1.5s ease-in-out infinite alternate; }

@keyframes al-books { 0% { background-position: 0 0; } 100% { background-position: 0 -24px; } }
@keyframes al-quill { 0% { transform: rotate(-15deg); } 100% { transform: rotate(5deg); } }
@keyframes al-paper { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes al-figure { 0%,100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } }
@keyframes al-flame { 0% { transform: scaleY(1); opacity:.8; } 100% { transform: scaleY(1.3); opacity:1; } }

/* sermon-discovered */
.scn-sermon-discovered {
  background: linear-gradient(135deg, #2a1e1a 0%, #1c1412 50%, #1a1210 100%),
              radial-gradient(ellipse at 50% 60%, #4a302a 0%, transparent 70%);
}
.scn-sermon-discovered .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2f2220 0%, #1a1210 100%);
  animation: sd-wall 20s ease-in-out infinite alternate;
}
.scn-sermon-discovered .table {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 14%;
  background: linear-gradient(180deg, #5a3a30 0%, #3a271e 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  transform: perspective(300px) rotateX(8deg);
}
.scn-sermon-discovered .book {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 10%;
  background: linear-gradient(135deg, #7a5a4a 0%, #4a3020 100%);
  border-radius: 4% 2%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: sd-book 0.8s ease-in-out infinite;
}
.scn-sermon-discovered .hand-shake {
  position: absolute; bottom: 24%; left: 48%; width: 12%; height: 16%;
  background: radial-gradient(ellipse at 50% 80%, #d4a878 0%, #8a6048 100%);
  border-radius: 50% 50% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center; animation: sd-hand 0.4s ease-in-out infinite alternate;
}
.scn-sermon-discovered .falling-paper {
  position: absolute; top: 30%; left: 35%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b89a 100%);
  border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sd-fall 1.2s ease-in-out infinite;
}
.scn-sermon-discovered .candle {
  position: absolute; bottom: 22%; left: 25%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 30%, #806030 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 2px #ffd080;
}
.scn-sermon-discovered .candle-glow {
  position: absolute; bottom: 30%; left: 20%; width: 16%; height: 20%;
  background: radial-gradient(circle, rgba(255,200,120,0.3) 0%, transparent 70%);
  animation: sd-glow 3s ease-in-out infinite alternate;
}
@keyframes sd-wall { 0%{opacity:0.9} 100%{opacity:1} }
@keyframes sd-book { 0%{transform:translateX(0) rotate(0)} 50%{transform:translateX(-2px) rotate(-2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes sd-hand { 0%{transform:rotate(-5deg)} 100%{transform:rotate(5deg)} }
@keyframes sd-fall { 0%{transform:translateY(-20px) rotate(0)} 50%{transform:translateY(10px) rotate(15deg)} 100%{transform:translateY(40px) rotate(30deg); opacity:0} }
@keyframes sd-glow { 0%{opacity:0.5} 50%{opacity:0.8} 100%{opacity:0.5} }

/* trim-reading-offer */
.scn-trim-reading-offer {
  background: linear-gradient(180deg, #1e1a18 0%, #140f0d 60%),
              radial-gradient(ellipse at 60% 40%, #3a2520 0%, transparent 80%);
}
.scn-trim-reading-offer .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #221c1a 0%, #2a2220 50%, #1e1816 100%);
  animation: tro-wall 15s ease-in-out infinite alternate;
}
.scn-trim-reading-offer .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%);
  box-shadow: inset 0 10px 20px -10px rgba(0,0,0,0.6);
}
.scn-trim-reading-offer .figure-trim {
  position: absolute; bottom: 18%; left: 30%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #2a1e1a 0%, #140a08 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: tro-figure 4s ease-in-out infinite;
}
.scn-trim-reading-offer .book-held {
  position: absolute; bottom: 32%; left: 34%; width: 12%; height: 14%;
  background: linear-gradient(135deg, #7a5a42 0%, #4a3022 100%);
  border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-5deg); animation: tro-book 6s ease-in-out infinite;
}
.scn-trim-reading-offer .candle {
  position: absolute; bottom: 24%; left: 52%; width: 5%; height: 20%;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 30%, #806030 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 15px 3px #ffd080;
}
.scn-trim-reading-offer .candle-glow {
  position: absolute; bottom: 36%; left: 44%; width: 24%; height: 30%;
  background: radial-gradient(circle, rgba(255,200,120,0.25) 0%, transparent 70%);
  animation: tro-glow 3.5s ease-in-out infinite alternate;
}
@keyframes tro-wall { 0%{opacity:0.85} 100%{opacity:1} }
@keyframes tro-figure { 0%{transform:translateY(0)} 25%{transform:translateY(-2px) rotate(-1deg)} 50%{transform:translateY(0) rotate(0)} 75%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0)} }
@keyframes tro-book { 0%{transform:rotate(-5deg)} 33%{transform:rotate(-3deg)} 66%{transform:rotate(-8deg)} 100%{transform:rotate(-5deg)} }
@keyframes tro-glow { 0%{opacity:0.6} 50%{opacity:0.9} 100%{opacity:0.6} }

/* trim-begins */
.scn-trim-begins {
  background: linear-gradient(180deg, #1e1815 0%, #15100d 50%, #120e0b 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a20 0%, transparent 60%);
}
.scn-trim-begins .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a221e 0%, #1a1411 100%);
}
.scn-trim-begins .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a120e 100%);
  box-shadow: inset 0 15px 20px -10px rgba(0,0,0,0.5);
}
.scn-trim-begins .figure-bow {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #2a1e1a 0%, #140a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: tb-bow 6s ease-in-out infinite alternate;
}
.scn-trim-begins .book-on-floor {
  position: absolute; bottom: 8%; left: 45%; width: 14%; height: 8%;
  background: linear-gradient(135deg, #7a5a42 0%, #4a3022 100%);
  border-radius: 4%; box-shadow: 0 4px 6px rgba(0,0,0,0.6);
  transform: perspective(200px) rotateX(20deg);
}
.scn-trim-begins .candle-left {
  position: absolute; bottom: 20%; left: 22%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 30%, #806030 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 2px #ffd080;
}
.scn-trim-begins .candle-right {
  position: absolute; bottom: 22%; right: 20%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 30%, #806030 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 2px #ffd080;
  animation-delay: 1s;
}
.scn-trim-begins .ambient-glow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 45% 40%, rgba(255,200,120,0.08) 0%, transparent 70%);
  animation: tb-ambient 8s ease-in-out infinite alternate;
}
@keyframes tb-bow { 0%{transform:rotate(0)} 30%{transform:rotate(-3deg) scaleY(1.02)} 60%{transform:rotate(2deg)} 100%{transform:rotate(0)} }
@keyframes tb-ambient { 0%{opacity:0.7} 100%{opacity:1} }

/* trim-eloquent-posture */
.scn-trim-eloquent-posture {
  background: linear-gradient(135deg, #1c1815 0%, #14100d 60%),
              radial-gradient(ellipse at 40% 50%, #2a221c 0%, transparent 75%);
}
.scn-trim-eloquent-posture .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #221c18 0%, #1a1411 100%);
  animation: tep-wall 12s ease-in-out infinite alternate;
}
.scn-trim-eloquent-posture .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1612 100%);
  box-shadow: inset 0 8px 12px -8px rgba(0,0,0,0.6);
}
.scn-trim-eloquent-posture .figure-angle {
  position: absolute; bottom: 16%; left: 35%; width: 22%; height: 55%;
  background: linear-gradient(180deg, #2a1e1a 0%, #140a08 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  transform: rotate(5deg); /* approximate 85 deg from horizontal? Not full but angle */
  animation: tep-figure 8s ease-in-out infinite alternate;
}
.scn-trim-eloquent-posture .book-rest {
  position: absolute; bottom: 6%; left: 20%; width: 16%; height: 8%;
  background: linear-gradient(135deg, #7a5a42 0%, #4a3022 100%);
  border-radius: 4%; box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(25deg);
}
.scn-trim-eloquent-posture .candle-close {
  position: absolute; bottom: 22%; left: 55%; width: 5%; height: 18%;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 30%, #806030 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 4px #ffd080;
}
.scn-trim-eloquent-posture .candle-glow {
  position: absolute; bottom: 30%; left: 46%; width: 22%; height: 28%;
  background: radial-gradient(circle, rgba(255,200,120,0.2) 0%, transparent 70%);
  animation: tep-glow 5s ease-in-out infinite alternate;
}
.scn-trim-eloquent-posture .vignette {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
}
@keyframes tep-wall { 0%{opacity:0.8} 100%{opacity:1} }
@keyframes tep-figure { 0%{transform:rotate(4deg) translateY(0)} 50%{transform:rotate(6deg) translateY(-2px)} 100%{transform:rotate(4deg) translateY(0)} }
@keyframes tep-glow { 0%{opacity:0.5} 50%{opacity:0.9} 100%{opacity:0.5} }

.scn-trims-conclusion { background: linear-gradient(180deg, #1a1510 0%, #2a2018 30%, #3a2a1a 70%, #2a1a10 100%), radial-gradient(ellipse at 30% 40%, #3a2a1a 0%, transparent 70%); }
.scn-trims-conclusion .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a2018 60%, #1a1510 100%); opacity: 0.8; }
.scn-trims-conclusion .figure-left { position: absolute; bottom: 26%; left: 22%; width: 22px; height: 48px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1510 60%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: trim-figL 4s ease-in-out infinite; }
.scn-trims-conclusion .figure-right { position: absolute; bottom: 26%; right: 22%; width: 24px; height: 52px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1510 60%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: trim-figR 4.2s ease-in-out infinite; }
.scn-trims-conclusion .candle { position: absolute; bottom: 30%; left: 50%; width: 8px; height: 14px; transform: translateX(-50%); background: linear-gradient(180deg, #d4a060 0%, #b08040 100%); border-radius: 2px 2px 4px 4px; }
.scn-trims-conclusion .candle-glow { position: absolute; bottom: 30%; left: 50%; width: 40px; height: 40px; transform: translate(-50%, -60%); background: radial-gradient(circle, #f0c070 0%, #d08030 30%, transparent 70%); opacity: 0.6; animation: trim-glow 3s ease-in-out infinite alternate; }
.scn-trims-conclusion .table { position: absolute; bottom: 22%; left: 10%; right: 10%; height: 8px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-trims-conclusion .chair { position: absolute; bottom: 18%; left: 14%; width: 16px; height: 24px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4px 4px 8px 8px; transform: rotate(-2deg); animation: trim-chair 6s ease-in-out infinite; }
@keyframes trim-figL { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes trim-figR { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-5px) rotate(2deg) } 66% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes trim-glow { 0% { opacity: 0.5; transform: translate(-50%, -60%) scale(0.9) } 50% { opacity: 0.8; transform: translate(-50%, -60%) scale(1.1) } 100% { opacity: 0.6; transform: translate(-50%, -60%) scale(1) } }
@keyframes trim-chair { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } }

.scn-slops-verdict { background: linear-gradient(180deg, #1a1510 0%, #2a1a10 40%, #3a2a1a 70%, #1a1510 100%), radial-gradient(ellipse at 70% 50%, #3a2a1a 0%, transparent 60%); }
.scn-slops-verdict .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a2018 50%, #1a1510 100%); opacity: 0.7; }
.scn-slops-verdict .figure-standing { position: absolute; bottom: 22%; left: 30%; width: 20px; height: 60px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1510 60%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: slop-stand 5s ease-in-out infinite; }
.scn-slops-verdict .desk { position: absolute; bottom: 18%; left: 40%; right: 5%; height: 10px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,0.5); }
.scn-slops-verdict .book { position: absolute; bottom: 22%; right: 20%; width: 18px; height: 24px; background: linear-gradient(180deg, #b08040 0%, #8a6020 100%); border-radius: 2px; transform: rotate(6deg); animation: slop-book 8s ease-in-out infinite alternate; }
.scn-slops-verdict .lantern { position: absolute; bottom: 35%; left: 15%; width: 12px; height: 20px; background: linear-gradient(180deg, #d4a060 0%, #b08040 100%); border-radius: 4px 4px 6px 6px; box-shadow: 0 0 12px 4px rgba(200,120,40,0.5); }
.scn-slops-verdict .lantern-glow { position: absolute; bottom: 32%; left: 15%; width: 50px; height: 50px; transform: translate(-30%, -50%); background: radial-gradient(circle, #f0c070 0%, #d08030 30%, transparent 70%); opacity: 0.5; animation: slop-glow 4s ease-in-out infinite alternate; }
.scn-slops-verdict .shelf { position: absolute; top: 10%; left: 60%; right: 5%; height: 4px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 2px; }
@keyframes slop-stand { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(5px) rotate(2deg) } 60% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes slop-book { 0% { transform: rotate(4deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(6deg) translateY(0) } }
@keyframes slop-glow { 0% { opacity: 0.4; transform: translate(-30%, -50%) scale(0.9) } 50% { opacity: 0.7; transform: translate(-30%, -50%) scale(1.1) } 100% { opacity: 0.5; transform: translate(-30%, -50%) scale(1) } }

.scn-auxiliary-verbs { background: linear-gradient(180deg, #1a1510 0%, #2a2018 30%, #3a2a1a 70%, #1a1510 100%), radial-gradient(ellipse at 40% 60%, #3a2a1a 0%, transparent 70%); }
.scn-auxiliary-verbs .wall { position: absolute; inset: 0; background: linear-gradient(270deg, #3a2a1a 0%, #2a2018 40%, #1a1510 100%); opacity: 0.75; }
.scn-auxiliary-verbs .figure-seated { position: absolute; bottom: 24%; left: 20%; width: 24px; height: 40px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1510 60%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: aux-fig 3.5s ease-in-out infinite; }
.scn-auxiliary-verbs .desk { position: absolute; bottom: 20%; left: 20%; right: 10%; height: 8px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,0.5); }
.scn-auxiliary-verbs .candle { position: absolute; bottom: 30%; left: 35%; width: 8px; height: 14px; background: linear-gradient(180deg, #d4a060 0%, #b08040 100%); border-radius: 2px 2px 4px 4px; }
.scn-auxiliary-verbs .candle-glow { position: absolute; bottom: 30%; left: 35%; width: 30px; height: 30px; transform: translate(-60%, -50%); background: radial-gradient(circle, #f0c070 0%, #d08030 30%, transparent 70%); opacity: 0.5; animation: aux-glow 2.5s ease-in-out infinite alternate; }
.scn-auxiliary-verbs .open-book { position: absolute; bottom: 25%; left: 45%; width: 24px; height: 16px; background: linear-gradient(180deg, #c0a070 0%, #a08050 100%); border-radius: 2px; transform: rotate(-3deg); animation: aux-book 6s ease-in-out infinite alternate; }
.scn-auxiliary-verbs .stacked-papers { position: absolute; bottom: 25%; right: 18%; width: 22px; height: 6px; background: linear-gradient(180deg, #e0c090 0%, #c0a070 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: aux-papers 10s ease-in-out infinite; }
@keyframes aux-fig { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(8px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes aux-glow { 0% { opacity: 0.4; transform: translate(-60%, -50%) scale(0.9) } 50% { opacity: 0.8; transform: translate(-60%, -50%) scale(1.1) } 100% { opacity: 0.6; transform: translate(-60%, -50%) scale(1) } }
@keyframes aux-book { 0% { transform: rotate(-3deg) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-2deg) } }
@keyframes aux-papers { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

.scn-delayed-scholars { background: linear-gradient(180deg, #1a1510 0%, #2a2018 30%, #3a2a1a 70%, #1a1510 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%); }
.scn-delayed-scholars .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a2018 50%, #1a1510 100%); opacity: 0.8; }
.scn-delayed-scholars .figure-hunched { position: absolute; bottom: 22%; left: 30%; width: 22px; height: 36px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1510 60%, #0a0a0a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dl-fig 3s ease-in-out infinite; }
.scn-delayed-scholars .desk { position: absolute; bottom: 18%; left: 20%; right: 15%; height: 6px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-delayed-scholars .candle { position: absolute; bottom: 30%; left: 50%; width: 6px; height: 12px; transform: translateX(-50%); background: linear-gradient(180deg, #d4a060 0%, #b08040 100%); border-radius: 2px 2px 4px 4px; }
.scn-delayed-scholars .candle-glow { position: absolute; bottom: 28%; left: 50%; width: 40px; height: 40px; transform: translate(-50%, -50%); background: radial-gradient(circle, #f0c070 0%, #d08030 40%, transparent 70%); opacity: 0.5; animation: dl-glow 3s ease-in-out infinite alternate; }
.scn-delayed-scholars .stacked-books { position: absolute; bottom: 22%; left: 10%; width: 20px; height: 18px; background: linear-gradient(180deg, #8a6020 0%, #5a3a10 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: dl-books 8s ease-in-out infinite; }
.scn-delayed-scholars .hourglass { position: absolute; bottom: 30%; right: 18%; width: 14px; height: 22px; background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius: 6px 6px 4px 4px; transform: rotate(5deg); animation: dl-hourglass 12s ease-in-out infinite; }
.scn-delayed-scholars .scroll { position: absolute; bottom: 20%; right: 5%; width: 16px; height: 6px; background: linear-gradient(180deg, #e0c090 0%, #c0a070 100%); border-radius: 2px; transform: rotate(-8deg); animation: dl-scroll 14s ease-in-out infinite alternate; }
@keyframes dl-fig { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(6px) rotate(2deg) translateY(-3px) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dl-glow { 0% { opacity: 0.4; transform: translate(-50%, -50%) scale(0.9) } 50% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.1) } 100% { opacity: 0.6; transform: translate(-50%, -50%) scale(1) } }
@keyframes dl-books { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes dl-hourglass { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes dl-scroll { 0% { transform: rotate(-6deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-8deg) translateY(0) } }

/* Scene: trim-reconnoitres */
.scn-trim-reconnoitres {
  background: 
    linear-gradient(180deg, #3d2a1a 0%, #2a1a0a 50%, #1a0f05 100%),
    radial-gradient(ellipse at 30% 60%, #5a3a20 0%, transparent 70%);
}
.scn-trim-reconnoitres .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3520 0%, #2a1a0a 100%); }
.scn-trim-reconnoitres .window { position:absolute; top:15%; left:10%; width:120px; height:140px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:4%; box-shadow: inset 0 0 20px rgba(0,0,0,.7); }
.scn-trim-reconnoitres .rain { position:absolute; top:15%; left:10%; width:120px; height:140px; background: repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(180,200,230,.15) 8px, rgba(180,200,230,.15) 10px); animation: tri-rain 1.2s linear infinite; }
.scn-trim-reconnoitres .figure { position:absolute; bottom:15%; left:35%; width:40px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tri-breathe 4s ease-in-out infinite; }
.scn-trim-reconnoitres .cloak { position:absolute; bottom:12%; left:32%; width:56px; height:70px; background: linear-gradient(180deg, #553a20 0%, #2a1a08 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; filter: blur(3px); animation: tri-sway 6s ease-in-out infinite; }
.scn-trim-reconnoitres .lantern { position:absolute; bottom:35%; left:52%; width:10px; height:14px; background: radial-gradient(circle at 50% 50%, #d08a40 0%, #a06020 60%, transparent 100%); border-radius: 40%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3); animation: tri-flicker 3s ease-in-out infinite alternate; }
.scn-trim-reconnoitres .chair { position:absolute; bottom:5%; left:20%; width:60px; height:30px; background: linear-gradient(180deg, #4a3020 0%, #2a1808 100%); border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%; }
.scn-trim-reconnoitres .table { position:absolute; bottom:5%; left:55%; width:80px; height:20px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
@keyframes tri-rain { 0% { transform: translateY(0); } 100% { transform: translateY(10px); } }
@keyframes tri-breathe { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } }
@keyframes tri-sway { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes tri-flicker { 0% { opacity:.7; box-shadow:0 0 15px 3px #c08040; } 50% { opacity:1; box-shadow:0 0 30px 8px #d09050; } 100% { opacity:.8; box-shadow:0 0 20px 5px #c08040; } }

/* Scene: trims-account */
.scn-trims-account {
  background:
    linear-gradient(180deg, #4a3020 0%, #2a1a0a 50%, #1a0f05 100%),
    radial-gradient(ellipse at 80% 70%, #6a4020 0%, transparent 60%);
}
.scn-trims-account .bg-room { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #3a2515 0%, #1a0f05 100%); }
.scn-trims-account .hearth { position:absolute; bottom:15%; left:5%; width:160px; height:100px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 10px 30px rgba(0,0,0,.8); }
.scn-trims-account .fire { position:absolute; bottom:20%; left:12%; width:80px; height:90px; background: radial-gradient(ellipse at 50% 100%, #d08040 0%, #a05020 40%, transparent 70%); border-radius: 40%; animation: tr-fire 2.5s ease-in-out infinite alternate; }
.scn-trims-account .toby { position:absolute; bottom:5%; left:55%; width:50px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-sit 5s ease-in-out infinite; }
.scn-trims-account .pipe { position:absolute; bottom:38%; left:62%; width:6px; height:30px; background: #1a1008; border-radius: 20% 20% 0 0; transform: rotate(-30deg); transform-origin: bottom center; animation: tr-pipe 4s ease-in-out infinite; }
.scn-trims-account .smoke { position:absolute; bottom:60%; left:60%; width:20px; height:40px; background: radial-gradient(ellipse, rgba(220,200,170,.3) 0%, transparent 70%); filter: blur(6px); animation: tr-smoke 8s ease-in-out infinite; }
.scn-trims-account .curtain { position:absolute; top:0; right:0; width:60px; height:100%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 0 0 0 30%; box-shadow: -4px 0 12px rgba(0,0,0,.5); }
@keyframes tr-fire { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 50% { transform: scaleY(1.1) translateY(-4px); opacity:1; } 100% { transform: scaleY(0.95) translateY(2px); opacity:.7; } }
@keyframes tr-sit { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-3px); } }
@keyframes tr-pipe { 0%,100% { transform: rotate(-30deg); } 50% { transform: rotate(-25deg) translateY(-2px); } }
@keyframes tr-smoke { 0% { transform: translateY(0) scale(1); opacity:.5; } 50% { transform: translateY(-20px) scale(1.5); opacity:.3; } 100% { transform: translateY(-40px) scale(2); opacity:0; } }

/* Scene: le-fevers-condition */
.scn-le-fevers-condition {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0a0a15 50%, #050510 100%),
    radial-gradient(ellipse at 40% 80%, #2a2040 0%, transparent 70%);
}
.scn-le-fevers-condition .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #12121a 0%, #08080e 100%); }
.scn-le-fevers-condition .bed { position:absolute; bottom:20%; left:10%; width:160px; height:80px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.8); }
.scn-le-fevers-condition .figure { position:absolute; bottom:25%; left:50%; width:40px; height:90px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lc-stand 6s ease-in-out infinite; }
.scn-le-fevers-condition .candle { position:absolute; bottom:45%; left:65%; width:6px; height:20px; background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius: 20% 20% 0 0; }
.scn-le-fevers-condition .glow { position:absolute; bottom:45%; left:63%; width:16px; height:16px; background: radial-gradient(circle, #d0b080 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px #c0a070, 0 0 40px 16px rgba(192,160,112,.3); animation: lc-glimmer 3s ease-in-out infinite alternate; }
.scn-le-fevers-condition .shadow { position:absolute; bottom:15%; left:40%; width:100px; height:30px; background: rgba(0,0,0,.6); filter: blur(15px); border-radius:50%; }
@keyframes lc-stand { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes lc-glimmer { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(0.95); } }

/* Scene: le-fevers-son */
.scn-le-fevers-son {
  background:
    linear-gradient(180deg, #4a3015 0%, #2a1a08 50%, #1a0f04 100%),
    radial-gradient(ellipse at 30% 60%, #7a4a20 0%, transparent 70%);
}
.scn-le-fevers-son .bg-hearth { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #3a2010 0%, #1a0f05 100%); }
.scn-le-fevers-son .fire { position:absolute; bottom:10%; left:5%; width:120px; height:120px; background: radial-gradient(ellipse at 50% 80%, #d08040 0%, #b06030 30%, transparent 60%); border-radius: 40%; animation: lsf-fire 2s ease-in-out infinite alternate; }
.scn-le-fevers-son .youth { position:absolute; bottom:5%; left:40%; width:35px; height:85px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lsf-bustle 4s ease-in-out infinite; }
.scn-le-fevers-son .toast { position:absolute; bottom:30%; left:48%; width:20px; height:10px; background: #d0a060; border-radius: 20% 20% 10% 10%; box-shadow: 0 0 6px 2px #c08040; animation: lsf-turn 3s ease-in-out infinite; }
.scn-le-fevers-son .plate { position:absolute; bottom:12%; left:55%; width:40px; height:12px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; }
.scn-le-fevers-son .table { position:absolute; bottom:10%; left:30%; width:120px; height:20px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 4%; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-le-fevers-son .mug { position:absolute; bottom:15%; left:65%; width:16px; height:20px; background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; }
@keyframes lsf-fire { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.15) translateY(-6px); } 100% { transform: scaleY(0.9) translateY(3px); } }
@keyframes lsf-bustle { 0%,100% { transform: translateX(0); } 25% { transform: translateX(4px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes lsf-turn { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } }

.scn-trim-mortars {
  background:
    radial-gradient(ellipse at 30% 60%, #5a3a1a 0%, transparent 60%),
    radial-gradient(ellipse at 70% 40%, #4a2a0a 0%, transparent 50%),
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-trim-mortars .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: tm-wall 12s ease-in-out infinite;
}
.scn-trim-mortars .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1008 0%, #0e0a04 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-trim-mortars .table {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-trim-mortars .mortar {
  position: absolute; bottom: 22%; width: 18%; height: 28%;
  background: radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, #3a2010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5), 0 4px 6px rgba(0,0,0,0.4);
}
.scn-trim-mortars .mortar.left  { left: 25%; animation: tm-mortar 6s ease-in-out infinite; }
.scn-trim-mortars .mortar.right { right: 25%; animation: tm-mortar 6s ease-in-out infinite 0.5s; }
.scn-trim-mortars .lantern-light {
  position: absolute; top: 10%; left: 45%; width: 10%; height: 15%;
  background: radial-gradient(circle, #e0a040 0%, #c08030 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,120,40,0.6), 0 0 80px 40px rgba(200,120,40,0.3);
  animation: tm-glow 3s ease-in-out infinite alternate;
}
.scn-trim-mortars .dust-mote {
  position: absolute; top: 30%; left: 60%; width: 6px; height: 6px;
  background: rgba(220,180,100,0.4);
  border-radius: 50%;
  filter: blur(2px);
  animation: tm-drift 20s linear infinite;
}
@keyframes tm-wall   { 0%,100% { opacity:0.8 } 50% { opacity:0.95 } }
@keyframes tm-mortar { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes tm-glow   { 0% { opacity:0.8; box-shadow: 0 0 30px 10px rgba(200,120,40,0.5) } 100% { opacity:1; box-shadow: 0 0 60px 20px rgba(200,120,40,0.8) } }
@keyframes tm-drift  { 0% { transform: translate(0,0) } 50% { transform: translate(30px,-10px) } 100% { transform: translate(-20px,5px) } }

.scn-jack-boot-mortars {
  background:
    radial-gradient(ellipse at 50% 60%, #4a2a0a 0%, transparent 70%),
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
}
.scn-jack-boot-mortars .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 15% 15% / 0 0 8% 8%;
}
.scn-jack-boot-mortars .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1008 0%, #0e0a04 100%);
}
.scn-jack-boot-mortars .bed-frame {
  position: absolute; bottom: 8%; left: 10%; width: 35%; height: 60%;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
}
.scn-jack-boot-mortars .figure-sitting {
  position: absolute; bottom: 25%; left: 18%; width: 14%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jb-sit 4s ease-in-out infinite;
}
.scn-jack-boot-mortars .boot-mortar {
  position: absolute; bottom: 20%; width: 12%; height: 30%;
  background: radial-gradient(ellipse at 50% 70%, #5a3a1a 0%, #3a2010 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 10% 10%;
  transform-origin: center bottom;
}
.scn-jack-boot-mortars .boot-mortar.left-boot  { left: 40%; animation: jb-boot 1.5s ease-in-out infinite; }
.scn-jack-boot-mortars .boot-mortar.right-boot { left: 55%; animation: jb-boot 1.5s ease-in-out infinite 0.3s; }
.scn-jack-boot-mortars .creak-line {
  position: absolute; top: 5%; left: 45%; width: 10%; height: 2px;
  background: #8a6a4a;
  border-radius: 50%;
  box-shadow: 0 0 4px #8a6a4a;
  animation: jb-creak 3s ease-in-out infinite;
}
@keyframes jb-sit  { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes jb-boot { 0%,100% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(5deg) scaleY(1.05) } 75% { transform: rotate(-5deg) scaleY(0.95) } }
@keyframes jb-creak { 0%,100% { opacity:0.3 } 50% { opacity:1; width:15% } }

.scn-drawbridge-story {
  background:
    radial-gradient(ellipse at 40% 50%, #4a2a0a 0%, transparent 60%),
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
}
.scn-drawbridge-story .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 25% 25% / 0 0 12% 12%;
}
.scn-drawbridge-story .kitchen-hearth {
  position: absolute; bottom: 5%; left: 5%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #5a3010 0%, #2a1808 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-drawbridge-story .table-plank {
  position: absolute; bottom: 15%; left: 30%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-drawbridge-story .bridge-arch {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, #3a2010 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: db-bridge 8s ease-in-out infinite;
}
.scn-drawbridge-story .figure-toby {
  position: absolute; bottom: 18%; left: 50%; width: 15%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: db-figure 5s ease-in-out infinite;
}
.scn-drawbridge-story .figure-slop {
  position: absolute; bottom: 18%; left: 70%; width: 12%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: db-figure 5s ease-in-out infinite 1s;
}
.scn-drawbridge-story .steam-wisp {
  position: absolute; top: 25%; left: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(220,200,180,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: db-steam 12s ease-in-out infinite;
}
@keyframes db-bridge { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes db-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes db-steam { 0% { transform: translateY(0) scale(1); opacity:0.4 } 50% { transform: translateY(-20px) scale(1.5); opacity:0.8 } 100% { transform: translateY(-40px) scale(2); opacity:0 } }

.scn-bridget-affair {
  background:
    radial-gradient(ellipse at 50% 20%, #2a3a4a 0%, transparent 60%),
    linear-gradient(180deg, #1a2a3a 0%, #0a161e 100%);
}
.scn-bridget-affair .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
}
.scn-bridget-affair .moon-glow {
  position: absolute; top: 5%; left: 60%; width: 30%; height: 40%;
  background: radial-gradient(circle, #c8d8e0 0%, #8098a0 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(200,216,224,0.4), 0 0 120px 60px rgba(200,216,224,0.2);
  animation: ba-moon 10s ease-in-out infinite alternate;
}
.scn-bridget-affair .garden-wall {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a26 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 4px 16px rgba(0,0,0,0.6);
}
.scn-bridget-affair .figure-trim {
  position: absolute; bottom: 22%; left: 30%; width: 14%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #2a3a4a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ba-trim 4s ease-in-out infinite;
}
.scn-bridget-affair .figure-bridget {
  position: absolute; bottom: 22%; left: 55%; width: 12%; height: 32%;
  background: radial-gradient(ellipse at 50% 30%, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ba-bridget 4s ease-in-out infinite 0.5s;
}
.scn-bridget-affair .lamp-post {
  position: absolute; bottom: 20%; left: 20%; width: 4%; height: 40%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px 2px rgba(200,216,224,0.2);
}
.scn-bridget-affair .shadow-pool {
  position: absolute; bottom: 0; left: 25%; width: 50%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #0a1a2a 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.5;
  animation: ba-shadow 6s ease-in-out infinite;
}
@keyframes ba-moon { 0% { opacity:0.7; transform: scale(1) } 100% { opacity:1; transform: scale(1.05) } }
@keyframes ba-trim { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) translateX(2px) } }
@keyframes ba-bridget { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-3deg) translateX(3px) } }
@keyframes ba-shadow { 0%,100% { opacity:0.3 } 50% { opacity:0.6 } }

.scn-sermon-text { background: linear-gradient(180deg, #2a1e14 0%, #1c120a 50%, #0f0a06 100%), radial-gradient(ellipse at 60% 40%, #3b281c 0%, transparent 70%); }
.scn-sermon-text .bg { position:absolute; inset:0; background: linear-gradient(90deg, #1c120a 0%, #2a1e14 30%, #1c120a 70%, #0f0a06 100%); animation: srm-depth 8s ease-in-out infinite alternate; }
.scn-sermon-text .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1e14 0%, #1c120a 100%); border-radius: 10% 80% 0 0 / 20% 40% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); }
.scn-sermon-text .lectern { position:absolute; bottom:15%; left:35%; width:50px; height:70px; background: linear-gradient(180deg, #4a3524 0%, #2a1a0e 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 6px 12px rgba(0,0,0,.5); transform: perspective(200px) rotateX(5deg); }
.scn-sermon-text .figure { position:absolute; bottom:10%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #3a281a 0%, #1c1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: srm-figure 4s ease-in-out infinite; }
.scn-sermon-text .sermon-paper { position:absolute; bottom:28%; left:33%; width:30px; height:40px; background: linear-gradient(135deg, #c8a87a 0%, #a08060 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(-8deg); animation: srm-paper 5s ease-in-out infinite; }
.scn-sermon-text .window { position:absolute; top:15%; right:15%; width:60px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border: 4px solid #2a1a0e; border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,.7); }
.scn-sermon-text .light-ray { position:absolute; top:15%; right:15%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 0%, rgba(255,220,170,.15) 0%, transparent 70%); animation: srm-ray 6s ease-in-out infinite alternate; }
@keyframes srm-depth { 0% { opacity:.9 } 100% { opacity:1 } }
@keyframes srm-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes srm-paper { 0%,100% { transform: rotate(-8deg) } 50% { transform: rotate(-4deg) translateY(-2px) } }
@keyframes srm-ray { 0% { opacity:.3; transform: scaleY(1) } 100% { opacity:.6; transform: scaleY(1.05) } }

.scn-accent-correction { background: linear-gradient(180deg, #2a1e14 0%, #1c120a 50%, #0f0a06 100%), radial-gradient(ellipse at 40% 60%, #4a3524 0%, transparent 70%); }
.scn-accent-correction .bg { position:absolute; inset:0; background: linear-gradient(90deg, #1c120a 0%, #2a1e14 30%, #1c120a 70%, #0f0a06 100%); animation: acc-depth 8s ease-in-out infinite alternate; }
.scn-accent-correction .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1e14 0%, #1c120a 100%); border-radius: 10% 80% 0 0 / 20% 40% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); }
.scn-accent-correction .figure { position:absolute; bottom:10%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #3a281a 0%, #1c1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: acc-figure 2s ease-in-out infinite; }
.scn-accent-correction .arm-right { position:absolute; bottom:40%; left:52%; width:8px; height:40px; background: linear-gradient(180deg, #3a281a 0%, #1c1008 100%); border-radius: 4px; transform-origin: 50% 0%; transform: rotate(-20deg); animation: acc-arm 1.5s ease-in-out infinite alternate; }
.scn-accent-correction .sermon-paper { position:absolute; bottom:28%; left:33%; width:30px; height:40px; background: linear-gradient(135deg, #c8a87a 0%, #a08060 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(-8deg); animation: acc-paper 2.5s ease-in-out infinite; }
.scn-accent-correction .window { position:absolute; top:15%; right:15%; width:60px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border: 4px solid #2a1a0e; border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,.7); }
.scn-accent-correction .shadow { position:absolute; bottom:0; left:35%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation: acc-shadow 3s ease-in-out infinite alternate; }
@keyframes acc-depth { 0% { opacity:.9 } 100% { opacity:1 } }
@keyframes acc-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes acc-arm { 0% { transform: rotate(-20deg) } 100% { transform: rotate(30deg) } }
@keyframes acc-paper { 0%,100% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-4px) } }
@keyframes acc-shadow { 0% { transform: scaleX(1); opacity:.5 } 100% { transform: scaleX(1.3); opacity:.8 } }

.scn-inquisition-reference { background: linear-gradient(180deg, #1a0f0a 0%, #0d0705 50%, #050302 100%), radial-gradient(ellipse at 50% 30%, #2a1a10 0%, transparent 70%); }
.scn-inquisition-reference .bg { position:absolute; inset:0; background: linear-gradient(90deg, #0d0705 0%, #1a0f0a 30%, #0d0705 70%, #050302 100%); animation: inq-depth 10s ease-in-out infinite alternate; }
.scn-inquisition-reference .cell-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a0f0a 0%, #0d0705 100%); border-radius: 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.7); }
.scn-inquisition-reference .bars { position:absolute; top:0; left:20%; width:5px; height:100%; background: repeating-linear-gradient(180deg, #3a2a1a 0px, #3a2a1a 8px, transparent 8px, transparent 16px); box-shadow: 0 0 6px rgba(0,0,0,.5); animation: inq-bars 12s ease-in-out infinite; }
.scn-inquisition-reference .figure-prisoner { position:absolute; bottom:15%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: inq-figure 6s ease-in-out infinite; }
.scn-inquisition-reference .chain { position:absolute; bottom:30%; left:42%; width:4px; height:30px; background: #3a2a1a; border-radius: 2px; animation: inq-chain 3s ease-in-out infinite alternate; }
.scn-inquisition-reference .candle { position:absolute; top:50%; left:10%; width:8px; height:20px; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius: 2px 2px 4px 4px; animation: inq-candle 4s ease-in-out infinite; }
@keyframes inq-depth { 0% { opacity:.85 } 100% { opacity:1 } }
@keyframes inq-bars { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes inq-figure { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(2px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes inq-chain { 0% { transform: translateY(0) } 100% { transform: translateY(4px) } }
@keyframes inq-candle { 0%,100% { opacity:.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } }

.scn-toms-story { background: linear-gradient(180deg, #1c120a 0%, #100a06 50%, #080502 100%), radial-gradient(ellipse at 30% 50%, #2a1e14 0%, transparent 70%); }
.scn-toms-story .bg { position:absolute; inset:0; background: linear-gradient(90deg, #100a06 0%, #1c120a 30%, #100a06 70%, #080502 100%); animation: tom-depth 12s ease-in-out infinite alternate; }
.scn-toms-story .table { position:absolute; bottom:15%; left:25%; width:70px; height:10px; background: linear-gradient(180deg, #3a281a 0%, #2a1a0e 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-toms-story .candle { position:absolute; bottom:30%; left:32%; width:6px; height:18px; background: linear-gradient(180deg, #d4a870 0%, #b08050 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 12px 4px rgba(200,160,100,.3); animation: tom-candle 5s ease-in-out infinite; }
.scn-toms-story .figure { position:absolute; bottom:10%; left:40%; width:28px; height:55px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tom-figure 6s ease-in-out infinite; }
.scn-toms-story .book { position:absolute; bottom:18%; left:27%; width:30px; height:22px; background: linear-gradient(135deg, #a08060 0%, #806040 100%); border-radius: 2px; transform: rotate(-5deg); animation: tom-book 4s ease-in-out infinite; }
.scn-toms-story .shadow { position:absolute; bottom:0; left:30%; width:60px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: tom-shadow 7s ease-in-out infinite alternate; }
@keyframes tom-depth { 0% { opacity:.8 } 100% { opacity:1 } }
@keyframes tom-candle { 0%,100% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.04) } }
@keyframes tom-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tom-book { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } }
@keyframes tom-shadow { 0% { transform: scaleX(1); opacity:.5 } 100% { transform: scaleX(1.2); opacity:.7 } }

/* breeches-material */
.scn-breeches-material { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e05 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); }
.scn-breeches-material .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-breeches-material .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-breeches-material .tailor { position:absolute; bottom:20%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bm-tailor 4s ease-in-out infinite; }
.scn-breeches-material .breeches { position:absolute; bottom:25%; left:40%; width:40px; height:35px; background: linear-gradient(135deg, #6a5a3a 0%, #5a4a2a 100%); border-radius: 10% 10% 20% 20% / 15% 15% 25% 25%; box-shadow: 2px 2px 6px rgba(0,0,0,.5); animation: bm-breeches 3s ease-in-out infinite alternate; }
.scn-breeches-material .candle { position:absolute; bottom:35%; left:60%; width:8px; height:20px; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 20% 20% 10% 10%; }
.scn-breeches-material .flame { position:absolute; bottom:53%; left:60%; width:8px; height:12px; background: radial-gradient(circle, #ffd060 0%, #ffa040 60%, transparent 80%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 16px 8px rgba(255,160,64,.5); animation: bm-flame 0.8s ease-in-out infinite alternate; }
.scn-breeches-material .thread { position:absolute; bottom:30%; left:38%; width:2px; height:30px; background: #c0b0a0; border-radius: 1px; transform: rotate(15deg); animation: bm-thread 2s ease-in-out infinite; }
.scn-breeches-material .patch { position:absolute; bottom:28%; left:45%; width:12px; height:12px; background: #d08040; border-radius: 2px; box-shadow: inset 1px 1px 2px rgba(0,0,0,.3); animation: bm-patch 1.5s ease-in-out infinite alternate; }
@keyframes bm-tailor { 0% { transform: translateY(0) rotate(-1deg) } 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 bm-breeches { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(0.95, 1.05) rotate(3deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes bm-flame { 0% { transform: scale(1) translateY(0); opacity:0.9 } 50% { transform: scale(1.1,0.9) translateY(-2px); opacity:1 } 100% { transform: scale(1) translateY(0); opacity:0.85 } }
@keyframes bm-thread { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-3px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes bm-patch { 0% { transform: translateX(0) scale(1) } 100% { transform: translateX(4px) scale(1.2) } }

/* pockets-debate */
.scn-pockets-debate { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e05 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); }
.scn-pockets-debate .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-pockets-debate .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-pockets-debate .figure-left { position:absolute; bottom:18%; left:20%; width:35px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pd-figL 3s ease-in-out infinite; }
.scn-pockets-debate .figure-right { position:absolute; bottom:18%; right:20%; width:35px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pd-figR 3s ease-in-out infinite 1.5s; }
.scn-pockets-debate .pocket-left { position:absolute; bottom:30%; left:23%; width:20px; height:15px; background: #4a3a2a; border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.4); animation: pd-pocketL 2s ease-in-out infinite alternate; }
.scn-pockets-debate .pocket-right { position:absolute; bottom:30%; right:23%; width:20px; height:15px; background: #4a3a2a; border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.4); animation: pd-pocketR 2s ease-in-out infinite alternate 1s; }
.scn-pockets-debate .speech-bubble { position:absolute; top:30%; left:50%; transform:translateX(-50%); width:60px; height:30px; background: rgba(200,200,200,0.3); border-radius: 20px; border: 2px solid rgba(200,200,200,0.5); animation: pd-bubble 4s ease-in-out infinite; }
.scn-pockets-debate .candle { position:absolute; bottom:35%; left:10%; width:6px; height:15px; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 10%; }
@keyframes pd-figL { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(3deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-5px) rotate(-3deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes pd-figR { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-5px) rotate(-3deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes pd-pocketL { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.2,0.8) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }
@keyframes pd-pocketR { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.1,0.9) translateY(-1px) } 100% { transform: scale(1) translateY(0) } }
@keyframes pd-bubble { 0% { transform:translateX(-50%) scale(1); opacity:0.7 } 25% { transform:translateX(-50%) scale(1.05); opacity:1 } 50% { transform:translateX(-50%) scale(1); opacity:0.8 } 75% { transform:translateX(-50%) scale(1.02); opacity:1 } 100% { transform:translateX(-50%) scale(1); opacity:0.7 } }

/* rubenius-consulted */
.scn-rubenius-consulted { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e05 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); }
.scn-rubenius-consulted .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-rubenius-consulted .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-rubenius-consulted .desk { position:absolute; bottom:22%; left:25%; width:90px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 5px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-rubenius-consulted .book-stack { position:absolute; bottom:30%; left:30%; width:25px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,.4); animation: rc-book 6s ease-in-out infinite alternate; }
.scn-rubenius-consulted .rubenius { position:absolute; bottom:25%; left:55%; width:40px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rc-rub 8s ease-in-out infinite; }
.scn-rubenius-consulted .scroll { position:absolute; bottom:30%; left:45%; width:30px; height:10px; background: #8a7a6a; border-radius: 5px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: rc-scroll 4s ease-in-out infinite alternate; }
.scn-rubenius-consulted .lamp { position:absolute; bottom:38%; left:70%; width:10px; height:20px; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 10%; }
.scn-rubenius-consulted .glow { position:absolute; bottom:38%; left:70%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%); border-radius: 50%; transform:translate(-50%, -50%); animation: rc-glow 2s ease-in-out infinite alternate; }
@keyframes rc-book { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rc-rub { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes rc-scroll { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(10deg) scale(1.1,1) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes rc-glow { 0% { opacity:0.4; transform:translate(-50%,-50%) scale(1) } 100% { opacity:0.8; transform:translate(-50%,-50%) scale(1.3) } }

/* roman-shoes */
.scn-roman-shoes { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e05 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); }
.scn-roman-shoes .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-roman-shoes .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-roman-shoes .shelf { position:absolute; bottom:30%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-roman-shoes .shoe-pile { position:absolute; bottom:20%; left:20%; width:60%; height:15%; background: rgba(80,60,40,0.6); border-radius: 10px 10px 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); animation: rs-pile 10s ease-in-out infinite alternate; }
.scn-roman-shoes .shoe-1 { position:absolute; bottom:25%; left:25%; width:20px; height:12px; background: #6a4a2a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: rs-shoe1 3s ease-in-out infinite alternate; }
.scn-roman-shoes .shoe-2 { position:absolute; bottom:28%; left:40%; width:18px; height:10px; background: #5a3a1a; border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(10deg); animation: rs-shoe2 3.5s ease-in-out infinite alternate 0.5s; }
.scn-roman-shoes .shoe-3 { position:absolute; bottom:22%; right:30%; width:22px; height:14px; background: #7a5a3a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(20deg); animation: rs-shoe3 4s ease-in-out infinite alternate 1s; }
.scn-roman-shoes .rubenius-hand { position:absolute; bottom:30%; left:15%; width:12px; height:20px; background: #4a3a2a; border-radius: 30% 30% 20% 20%; transform: rotate(30deg); transform-origin: bottom left; animation: rs-hand 2s ease-in-out infinite alternate; }
@keyframes rs-pile { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes rs-shoe1 { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes rs-shoe2 { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-1px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes rs-shoe3 { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-3px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes rs-hand { 0% { transform: rotate(30deg) translateY(0) } 100% { transform: rotate(20deg) translateY(-5px) } }

.scn-ecclesiastical-decree { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%); }
.scn-ecclesiastical-decree .ec-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,12,6,0.7) 0%, transparent 50%); }
.scn-ecclesiastical-decree .ec-desk { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.5); }
.scn-ecclesiastical-decree .ec-judge { position:absolute; bottom:28%; left:38%; width:40px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ec-judge 4s ease-in-out infinite; }
.scn-ecclesiastical-decree .ec-nose { position:absolute; bottom:48%; left:38%; width:12px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 0 0; transform: translateX(20px); animation: ec-nose 2s ease-in-out infinite; }
.scn-ecclesiastical-decree .ec-lamp { position:absolute; bottom:55%; left:15%; width:16px; height:24px; background: radial-gradient(circle, #d0a060 0%, #b08040 60%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,0.4); animation: ec-lamp 3s ease-in-out infinite alternate; }
.scn-ecclesiastical-decree .ec-scroll { position:absolute; bottom:20%; left:50%; width:40px; height:30px; background: linear-gradient(180deg, #c8b898 0%, #a08868 100%); border-radius: 10% 10% 50% 50% / 20% 20% 80% 80%; transform-origin: top left; animation: ec-scroll 6s ease-in-out infinite; }
.scn-ecclesiastical-decree .ec-vignette { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,0.6) 100%); pointer-events: none; }
@keyframes ec-judge { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes ec-nose { 0%,100% { transform: translateX(20px) scaleY(1); } 50% { transform: translateX(18px) scaleY(1.1); } }
@keyframes ec-lamp { 0% { opacity:0.7; box-shadow: 0 0 12px 2px #b08040; } 100% { opacity:1; box-shadow: 0 0 28px 8px #d0a060; } }
@keyframes ec-scroll { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } }

.scn-luther-horoscope { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 60%); }
.scn-luther-horoscope .lh-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,10,20,0.5) 0%, transparent 50%); }
.scn-luther-horoscope .lh-desk { position:absolute; bottom:12%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-luther-horoscope .lh-figure { position:absolute; bottom:30%; left:30%; width:36px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lh-figure 5s ease-in-out infinite; }
.scn-luther-horoscope .lh-chart { position:absolute; bottom:22%; left:55%; width:50px; height:50px; border-radius: 50%; background: conic-gradient(#5a4a3a 0deg, #7a6a5a 90deg, #5a4a3a 180deg, #7a6a5a 270deg); border: 2px solid #6a5a4a; box-shadow: 0 0 10px rgba(100,80,60,0.5); animation: lh-chart 8s linear infinite; }
.scn-luther-horoscope .lh-planet-a { position:absolute; bottom:50%; left:50%; width:8px; height:8px; background: #c8a060; border-radius:50%; box-shadow: 0 0 8px 2px #c8a060; animation: lh-orbit-a 6s ease-in-out infinite; }
.scn-luther-horoscope .lh-planet-b { position:absolute; bottom:60%; left:40%; width:6px; height:6px; background: #b08050; border-radius:50%; box-shadow: 0 0 6px 1px #b08050; animation: lh-orbit-b 8s ease-in-out infinite; }
.scn-luther-horoscope .lh-planet-c { position:absolute; bottom:45%; left:35%; width:5px; height:5px; background: #a07040; border-radius:50%; box-shadow: 0 0 4px 1px #a07040; animation: lh-orbit-c 10s ease-in-out infinite; }
.scn-luther-horoscope .lh-glow { position:absolute; bottom:20%; left:45%; width:100px; height:100px; background: radial-gradient(circle, rgba(200,160,96,0.1) 0%, transparent 70%); pointer-events: none; }
@keyframes lh-figure { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes lh-chart { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes lh-orbit-a { 0% { transform: translate(0, 0) scale(1); } 25% { transform: translate(12px, -8px) scale(1.1); } 50% { transform: translate(24px, 0) scale(1); } 75% { transform: translate(12px, 8px) scale(0.9); } 100% { transform: translate(0, 0) scale(1); } }
@keyframes lh-orbit-b { 0% { transform: translate(0, 0) scale(1); } 33% { transform: translate(-10px, -10px) scale(1.2); } 66% { transform: translate(-20px, 0) scale(0.8); } 100% { transform: translate(0, 0) scale(1); } }
@keyframes lh-orbit-c { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(8px, 12px) rotate(180deg); } 100% { transform: translate(0, 0) rotate(360deg); } }

.scn-name-argument { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 40%, #3a2a2a 100%), radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 60%); }
.scn-name-argument .na-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,10,10,0.6) 0%, transparent 50%); }
.scn-name-argument .na-table { position:absolute; bottom:15%; left:15%; right:15%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-name-argument .na-father { position:absolute; bottom:32%; left:20%; width:34px; height:70px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom left; animation: na-father 3s ease-in-out infinite; }
.scn-name-argument .na-uncle { position:absolute; bottom:32%; right:20%; width:34px; height:70px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom right; animation: na-uncle 3s ease-in-out infinite reverse; }
.scn-name-argument .na-book { position:absolute; bottom:22%; left:45%; width:30px; height:20px; background: linear-gradient(180deg, #c8b898 0%, #a08868 100%); border-radius: 10%; transform: rotate(-5deg); animation: na-book 5s ease-in-out infinite; }
.scn-name-argument .na-sign { position:absolute; bottom:40%; left:48%; width:8px; height:20px; background: #6a5a4a; border-radius: 10%; transform-origin: bottom center; animation: na-sign 2s ease-in-out infinite; }
.scn-name-argument .na-lamp { position:absolute; bottom:55%; left:45%; width:14px; height:20px; background: radial-gradient(circle, #d0a060 0%, #b08040 60%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 18px 6px #b08040; animation: na-lamp 4s ease-in-out infinite alternate; }
@keyframes na-father { 0%,100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes na-uncle { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes na-book { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } }
@keyframes na-sign { 0%,100% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.2) rotate(5deg); } }
@keyframes na-lamp { 0% { opacity:0.6; box-shadow: 0 0 10px 2px #b08040; } 100% { opacity:1; box-shadow: 0 0 24px 8px #d0a060; } }

.scn-universities-split { background: linear-gradient(180deg, #1a2a1a 0%, #2a3a2a 40%, #3a4a3a 100%), radial-gradient(ellipse at 50% 100%, #3a4a3a 0%, transparent 60%); }
.scn-universities-split .us-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,20,10,0.5) 0%, transparent 50%); }
.scn-universities-split .us-ship-left { position:absolute; bottom:20%; left:10%; width:60px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 60% 20% 20% 60% / 80% 40% 40% 80%; transform-origin: bottom center; animation: us-ship-left 5s ease-in-out infinite; }
.scn-universities-split .us-ship-right { position:absolute; bottom:20%; right:10%; width:60px; height:40px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 20% 60% 60% 20% / 40% 80% 80% 40%; transform-origin: bottom center; animation: us-ship-right 5s ease-in-out infinite reverse; }
.scn-universities-split .us-rope { position:absolute; bottom:30%; left:25%; right:25%; height:4px; background: #5a4a3a; border-radius: 2px; animation: us-rope 3s ease-in-out infinite; }
.scn-universities-split .us-figure-a { position:absolute; bottom:35%; left:22%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: us-figure-a 4s ease-in-out infinite; }
.scn-universities-split .us-figure-b { position:absolute; bottom:35%; right:22%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: us-figure-b 4s ease-in-out infinite reverse; }
.scn-universities-split .us-wave { position:absolute; bottom:10%; left:-10%; right:-10%; height:30px; background: linear-gradient(180deg, rgba(60,80,60,0.6) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: us-wave 6s ease-in-out infinite; }
@keyframes us-ship-left { 0%,100% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(-5px) rotate(3deg); } }
@keyframes us-ship-right { 0%,100% { transform: translateX(0) rotate(3deg); } 50% { transform: translateX(5px) rotate(-3deg); } }
@keyframes us-rope { 0%,100% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.1) translateY(-2px); } }
@keyframes us-figure-a { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } }
@keyframes us-figure-b { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } }
@keyframes us-wave { 0% { transform: translateX(-10px) scaleY(1); } 50% { transform: translateX(10px) scaleY(1.2); } 100% { transform: translateX(-10px) scaleY(1); } }

.scn-conjugal-society {
  background: linear-gradient(180deg, #1a1208 0%, #2b1e12 40%, #3a2818 100%),
              radial-gradient(ellipse at 40% 60%, #3a2818 0%, transparent 70%);
}
.scn-conjugal-society .room { position:absolute; inset:0; background: linear-gradient(180deg, #2b1e12 0%, #1a1208 100%); }
.scn-conjugal-society .fireplace { position:absolute; bottom:15%; left:25%; width:40%; height:40%; background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0a 100%); border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-conjugal-society .glow { position:absolute; bottom:20%; left:30%; width:40%; height:40%; background: radial-gradient(ellipse at 50% 50%, #e09848 0%, transparent 70%); animation: con-glow 4s ease-in-out infinite alternate; }
.scn-conjugal-society .figure-left { position:absolute; bottom:18%; left:30%; width:12%; height:30%; background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: con-fig-l 5s ease-in-out infinite; }
.scn-conjugal-society .figure-right { position:absolute; bottom:18%; right:30%; width:12%; height:28%; background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: con-fig-r 5.2s ease-in-out infinite; }
.scn-conjugal-society .table { position:absolute; bottom:14%; left:42%; width:16%; height:6%; background: #3a2210; border-radius: 20% 20% 50% 50% / 100% 100% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-conjugal-society .candle { position:absolute; bottom:22%; left:49%; width:2%; height:8%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 30%; }
@keyframes con-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.7; transform: scale(1); } }
@keyframes con-fig-l { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4%) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes con-fig-r { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-paternal-power {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e16 50%, #3a2818 100%),
              radial-gradient(ellipse at 50% 70%, #3a2818 0%, transparent 60%);
}
.scn-paternal-power .room { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e16 0%, #1a1410 100%); }
.scn-paternal-power .chair { position:absolute; bottom:10%; left:20%; width:20%; height:40%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-paternal-power .father { position:absolute; bottom:18%; left:22%; width:14%; height:28%; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pat-father 6s ease-in-out infinite alternate; }
.scn-paternal-power .trim-figure { position:absolute; bottom:14%; right:18%; width:10%; height:24%; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pat-trim 4s ease-in-out infinite; }
.scn-paternal-power .candle-glow { position:absolute; bottom:26%; left:40%; width:10%; height:10%; background: radial-gradient(circle, #e0a050 0%, transparent 80%); animation: pat-candle-glow 3s ease-in-out infinite alternate; }
.scn-paternal-power .candle-flame { position:absolute; bottom:28%; left:42.5%; width:1.5%; height:4%; background: linear-gradient(180deg, #ffd080 0%, #e08830 100%); border-radius: 50%; box-shadow: 0 0 12px 4px #e08830; animation: pat-flame 1.5s ease-in-out infinite alternate; }
@keyframes pat-father { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2%) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pat-trim { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(2%) translateY(-1%); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(-2%) translateY(-1%); } 100% { transform: translateX(0) translateY(0); } }
@keyframes pat-candle-glow { 0% { opacity:.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:.6; transform: scale(1); } }
@keyframes pat-flame { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.2) translateY(-10%); } 100% { transform: scaleY(1) translateY(0); } }

.scn-catechism-exam {
  background: linear-gradient(180deg, #1a1812 0%, #2a2018 50%, #3a2818 100%),
              radial-gradient(ellipse at 50% 50%, #3a2818 0%, transparent 70%);
}
.scn-catechism-exam .room-ceil { position:absolute; top:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1410 0%, transparent 100%); }
.scn-catechism-exam .yorick { position:absolute; bottom:10%; left:10%; width:12%; height:28%; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cat-yorick 5s ease-in-out infinite; }
.scn-catechism-exam .toby { position:absolute; bottom:10%; left:40%; width:14%; height:30%; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cat-toby 5.3s ease-in-out infinite; }
.scn-catechism-exam .trim { position:absolute; bottom:10%; right:10%; width:11%; height:26%; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cat-trim 4.5s ease-in-out infinite; }
.scn-catechism-exam .pipe { position:absolute; bottom:22%; left:44%; width:8%; height:2%; background: #6a4a2a; border-radius: 20%; transform: rotate(-15deg); }
.scn-catechism-exam .smoke { position:absolute; bottom:28%; left:45%; width:4%; height:6%; background: radial-gradient(circle, rgba(200,180,140,.3) 0%, transparent 70%); filter: blur(2px); animation: cat-smoke 3s ease-out infinite; }
.scn-catechism-exam .candle { position:absolute; bottom:18%; left:48%; width:2%; height:8%; background: linear-gradient(180deg, #d0a060 0%, #a08040 100%); border-radius: 30%; }
@keyframes cat-yorick { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2%) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cat-toby { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2%) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes cat-trim { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(3%) translateY(-1%); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(-3%) translateY(-1%); } 100% { transform: translateX(0) translateY(0); } }
@keyframes cat-smoke { 0% { opacity:.6; transform: translateY(0) scale(1); } 100% { opacity:0; transform: translateY(-20px) scale(2); } }

.scn-trim-catechism {
  background: linear-gradient(180deg, #1a1612 0%, #2a2018 50%, #3a2818 100%),
              radial-gradient(ellipse at 60% 40%, #3a2818 0%, transparent 60%);
}
.scn-trim-catechism .room { position:absolute; inset:0; background: linear-gradient(180deg, #2a2018 0%, #1a1612 100%); }
.scn-trim-catechism .trim-body { position:absolute; bottom:10%; left:30%; width:12%; height:28%; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tri-body 4s ease-in-out infinite alternate; }
.scn-trim-catechism .arm-left { position:absolute; bottom:18%; left:24%; width:8%; height:12%; background: #1a1210; border-radius: 0 50% 50% 50% / 0 100% 100% 100%; transform-origin: top right; animation: tri-arm-l 2s ease-in-out infinite; }
.scn-trim-catechism .arm-right { position:absolute; bottom:18%; right:36%; width:8%; height:12%; background: #1a1210; border-radius: 50% 0 50% 50% / 100% 0 100% 100%; transform-origin: top left; animation: tri-arm-r 2.1s ease-in-out infinite; }
.scn-trim-catechism .firelock { position:absolute; bottom:12%; left:20%; width:20%; height:3%; background: #4a3020; border-radius: 40%; transform: rotate(20deg); animation: tri-fl 2s ease-in-out infinite; }
.scn-trim-catechism .pipe { position:absolute; bottom:20%; left:50%; width:10%; height:2%; background: #6a4a2a; border-radius: 20%; transform: rotate(-10deg); animation: tri-pipe 3s ease-in-out infinite; }
.scn-trim-catechism .candle { position:absolute; bottom:22%; left:52%; width:2%; height:10%; background: linear-gradient(180deg, #d0a060 0%, #a08040 100%); border-radius: 30%; animation: tri-candle 4s ease-in-out infinite; }
@keyframes tri-body { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2%) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tri-arm-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(45deg); } 100% { transform: rotate(0deg); } }
@keyframes tri-arm-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(-45deg); } 100% { transform: rotate(0deg); } }
@keyframes tri-fl { 0% { transform: translateX(0) rotate(20deg); } 50% { transform: translateX(5%) rotate(30deg); } 100% { transform: translateX(0) rotate(20deg); } }
@keyframes tri-pipe { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2%); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes tri-candle { 0%,100% { opacity:.8; } 50% { opacity:1; } }

/* bohemia-inland */
.scn-bohemia-inland {
  background: linear-gradient(135deg, #1f1c16 0%, #3a2e22 50%, #2b241d 100%),
              radial-gradient(ellipse at 50% 50%, #4a3f32 0%, transparent 70%);
}
.scn-bohemia-inland .wall-back { position:absolute; inset:0; background: linear-gradient(180deg, #2b241d 0%, #1f1c16 100%); }
.scn-bohemia-inland .desk { position:absolute; bottom:10%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #5e4f3a 0%, #3a2e22 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6); transform:perspective(400px) rotateX(5deg); }
.scn-bohemia-inland .king { position:absolute; bottom:20%; left:45%; width:12%; height:18%; background: linear-gradient(180deg, #8a6e4a 0%, #5a432d 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: s1-king 6s ease-in-out infinite; }
.scn-bohemia-inland .map { position:absolute; bottom:18%; left:32%; width:30%; height:6%; background: linear-gradient(135deg, #c8b280 0%, #a0825a 50%, #c8b280 100%); border-radius:2px; transform:rotate(-2deg); animation: s1-map 10s ease-in-out infinite; }
.scn-bohemia-inland .lantern { position:absolute; top:25%; left:20%; width:8%; height:12%; background: linear-gradient(180deg, #8a6e4a 0%, #5a432d 100%); clip-path: polygon(25% 0%, 75% 0%, 100% 100%, 0% 100%); animation: s1-lantern 4s ease-in-out infinite; }
.scn-bohemia-inland .candle { position:absolute; top:28%; left:21%; width:2%; height:8%; background: linear-gradient(180deg, #f0d080 0%, #c8a050 100%); border-radius:2px; animation: s1-candle 3s ease-in-out infinite alternate; }
.scn-bohemia-inland .globe { position:absolute; bottom:18%; left:60%; width:10%; height:10%; background: radial-gradient(circle at 30% 30%, #6a8a5a 0%, #3a5a2a 50%, #2a3a1a 100%); border-radius:50%; box-shadow: inset -4px -4px 8px rgba(0,0,0,.5); animation: s1-globe 20s linear infinite; }
@keyframes s1-king { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes s1-map { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.03); } 100% { transform: rotate(-2deg) scaleY(1); } }
@keyframes s1-lantern { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes s1-candle { 0% { opacity:0.6; transform:scaleY(1); } 100% { opacity:1; transform:scaleY(1.15); } }
@keyframes s1-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* predestination */
.scn-predestination {
  background: linear-gradient(180deg, #2a241e 0%, #4a3d32 40%, #6a5a4a 80%, #8a7a62 100%),
              radial-gradient(ellipse at 50% 80%, #6a5a4a 0%, transparent 60%);
}
.scn-predestination .window-frame { position:absolute; top:5%; left:10%; width:80%; height:60%; border:8px solid #3a2e22; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-predestination .evening-sky { position:absolute; top:5%; left:10%; width:80%; height:60%; background: linear-gradient(180deg, #c8a06a 0%, #8a6a4a 30%, #5a4a3a 60%, #2a241e 100%); animation: s2-sky 15s ease-in-out infinite alternate; }
.scn-predestination .curtain { position:absolute; top:5%; left:10%; width:20%; height:60%; background: linear-gradient(90deg, #5a3a2a 0%, #3a2a1e 100%); border-radius:0 30% 30% 0; animation: s2-curtain 20s ease-in-out infinite; }
.scn-predestination .king { position:absolute; bottom:28%; left:25%; width:12%; height:20%; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: s2-walk 5s ease-in-out infinite; }
.scn-predestination .queen { position:absolute; bottom:28%; left:40%; width:11%; height:18%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: s2-walk 5s ease-in-out infinite 1s; }
.scn-predestination .courtier { position:absolute; bottom:28%; left:55%; width:10%; height:16%; background: linear-gradient(180deg, #5a4a3a 0%, #2a241e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: s2-walk 5s ease-in-out infinite 2s; }
.scn-predestination .floor { position:absolute; bottom:28%; left:10%; width:80%; height:12%; background: linear-gradient(180deg, #4a3d32 0%, #2a241e 100%); border-radius:20% 20% 0 0; }
@keyframes s2-sky { 0% { opacity:0.8; } 100% { opacity:1; } }
@keyframes s2-curtain { 0% { width:20%; } 50% { width:22%; } 100% { width:20%; } }
@keyframes s2-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(10%) translateY(0) rotate(-2deg); } 75% { transform: translateX(5%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }

/* trims-love */
.scn-trims-love {
  background: linear-gradient(180deg, #1f1109 0%, #3a1f12 40%, #5c2d1a 70%, #2a140c 100%),
              radial-gradient(ellipse at 50% 70%, #8a3a1a 0%, transparent 50%);
}
.scn-trims-love .fireplace { position:absolute; bottom:10%; left:30%; width:40%; height:40%; background: linear-gradient(180deg, #2a140c 0%, #1a0a05 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.8); }
.scn-trims-love .fire-glow { position:absolute; bottom:10%; left:30%; width:40%; height:40%; background: radial-gradient(ellipse at 50% 30%, #c8553d 0%, #a0461a 40%, transparent 70%); animation: s3-fire 4s ease-in-out infinite alternate; }
.scn-trims-love .trim { position:absolute; bottom:20%; left:25%; width:12%; height:22%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: s3-figure 6s ease-in-out infinite; }
.scn-trims-love .toby { position:absolute; bottom:20%; right:25%; width:13%; height:22%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: s3-figure 6s ease-in-out infinite 3s; }
.scn-trims-love .chair { position:absolute; bottom:18%; right:24%; width:16%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius:10% 10% 0 0; transform:rotate(-5deg); animation: s3-chair 8s ease-in-out infinite; }
.scn-trims-love .rug { position:absolute; bottom:10%; left:20%; width:60%; height:10%; background: linear-gradient(90deg, #8a5a3a 0%, #6a3a1a 20%, #8a5a3a 40%, #6a3a1a 60%, #8a5a3a 80%, #6a3a1a 100%); border-radius:30% / 50%; animation: s3-rug 12s linear infinite; }
@keyframes s3-fire { 0% { transform:scale(1); opacity:0.7; } 100% { transform:scale(1.05); opacity:1; } }
@keyframes s3-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes s3-chair { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-8deg); } 100% { transform: rotate(-5deg); } }
@keyframes s3-rug { 0% { background-position:0% 0; } 100% { background-position:100% 0; } }

/* knee-vs-groin */
.scn-knee-vs-groin {
  background: linear-gradient(180deg, #1a1512 0%, #2a221e 40%, #3a2e28 70%, #1a1512 100%),
              radial-gradient(ellipse at 50% 50%, #4a3a2e 0%, transparent 60%);
}
.scn-knee-vs-groin .tent-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a221e 0%, #1a1512 100%); clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); }
.scn-knee-vs-groin .uncle-toby { position:absolute; bottom:15%; left:25%; width:14%; height:22%; background: linear-gradient(180deg, #5a4a3a 0%, #2a221e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: s4-gesture 4s ease-in-out infinite; }
.scn-knee-vs-groin .corporal-trim { position:absolute; bottom:15%; right:25%; width:14%; height:22%; background: linear-gradient(180deg, #4a3a2e 0%, #1a1512 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: s4-gesture 4s ease-in-out infinite 2s; }
.scn-knee-vs-groin .table { position:absolute; bottom:14%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%); border-radius:4px; transform:perspective(200px) rotateX(5deg); }
.scn-knee-vs-groin .bed { position:absolute; bottom:10%; left:10%; width:30%; height:12%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e18 100%); border-radius:10%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-knee-vs-groin .lamp { position:absolute; top:20%; left:45%; width:6%; height:10%; background: linear-gradient(180deg, #b08050 0%, #6a4a2a 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: s4-lamp 5s ease-in-out infinite alternate; }
@keyframes s4-gesture { 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 s4-lamp { 0% { opacity:0.6; } 100% { opacity:1; } }

.scn-tristrams-begetting { background: linear-gradient(180deg, #1c1420 0%, #2e1f2e 30%, #3d2a3d 60%, #1c1420 100%), radial-gradient(ellipse at 50% 80%, #2a1a2a 0%, transparent 70%); }
.scn-tristrams-begetting .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%); }
.scn-tristrams-begetting .bed-curtains { position:absolute; bottom:20%; left:10%; width:60%; height:50%; background: linear-gradient(135deg, #4a2a3a 0%, #2a1a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -20px 40px rgba(0,0,0,.5); animation: tb-curtains 12s ease-in-out infinite; }
.scn-tristrams-begetting .bed-frame { position:absolute; bottom:18%; left:15%; width:50%; height:5%; background: #3a2a2a; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-tristrams-begetting .figure { position:absolute; bottom:22%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tb-figure 6s ease-in-out infinite; }
.scn-tristrams-begetting .candle { position:absolute; bottom:30%; left:65%; width:6px; height:18px; background: linear-gradient(180deg, #d4a060 0%, #8a6040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px 2px #c08040; }
.scn-tristrams-begetting .candle-glow { position:absolute; bottom:30%; left:65%; width:40px; height:40px; transform: translate(-40%, -20%); background: radial-gradient(circle, rgba(200,140,60,.6) 0%, transparent 70%); border-radius: 50%; animation: tb-glow 3s ease-in-out infinite alternate; }
.scn-tristrams-begetting .window { position:absolute; top:10%; right:12%; width:60px; height:80px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border: 4px solid #2a1a1a; border-radius: 4px 4px 8px 8px; box-shadow: inset 0 0 20px #0a0a1a; animation: tb-window 20s ease-in-out infinite; }
.scn-tristrams-begetting .moon { position:absolute; top:8%; right:20%; width:20px; height:20px; background: radial-gradient(circle, #d0c0a0 0%, #b0a080 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(180,160,120,.3); animation: tb-moon 30s linear infinite; }
@keyframes tb-curtains { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes tb-figure { 0% { transform: translateX(0) rotate(-2deg); opacity:.9; } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); opacity:1; } 75% { transform: translateX(12px) rotate(2deg); } 100% { transform: translateX(16px) rotate(0); opacity:.9; } }
@keyframes tb-glow { 0% { transform: translate(-40%, -20%) scale(1); opacity:.7; } 100% { transform: translate(-40%, -20%) scale(1.1); opacity:1; } }
@keyframes tb-window { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes tb-moon { 0% { transform: translateX(0); } 50% { transform: translateX(-20px); } 100% { transform: translateX(-40px); } }

.scn-fathers-regularity { background: linear-gradient(180deg, #1e1a16 0%, #2c241e 40%, #3a2e26 80%, #1e1a16 100%), radial-gradient(ellipse at 50% 70%, #2c241e 0%, transparent 60%); }
.scn-fathers-regularity .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2c241e 0%, #1a1410 100%); }
.scn-fathers-regularity .desk { position:absolute; bottom:10%; left:10%; width:60%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 6px 6px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.5); transform: perspective(400px) rotateX(10deg); }
.scn-fathers-regularity .clock-case { position:absolute; bottom:30%; left:60%; width:40px; height:80px; background: linear-gradient(180deg, #5a4230 0%, #3a2a1a 100%); border-radius: 6px 6px 4px 4px; box-shadow: 0 4px 10px rgba(0,0,0,.4); transform: perspective(300px) rotateY(-5deg); }
.scn-fathers-regularity .clock-face { position:absolute; bottom:42%; left:62%; width:22px; height:22px; background: radial-gradient(circle, #e0d0a0 0%, #c0b080 60%, #a09070 100%); border-radius: 50%; border: 2px solid #3a2a1a; box-shadow: inset 0 0 6px rgba(0,0,0,.2); animation: fr-clock 60s cubic-bezier(0.4, 0, 0.2, 1) infinite; }
.scn-fathers-regularity .chair { position:absolute; bottom:12%; left:25%; width:50px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-fathers-regularity .book { position:absolute; bottom:14%; left:30%; width:20px; height:6px; background: #6a4a3a; border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: fr-book 10s ease-in-out infinite; }
.scn-fathers-regularity .candle { position:absolute; bottom:18%; left:50%; width:4px; height:14px; background: linear-gradient(180deg, #d4a060 0%, #8a6040 100%); border-radius: 2px; box-shadow: 0 0 8px 2px #c08040; animation: fr-candle 4s ease-in-out infinite alternate; }
@keyframes fr-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes fr-book { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes fr-candle { 0% { opacity:.8; transform: scaleY(1); } 100% { opacity:1; transform: scaleY(1.1); } }

.scn-association-of-ideas { background: linear-gradient(135deg, #2e2a1e 0%, #3a3224 50%, #2e2a1e 100%), radial-gradient(ellipse at 80% 30%, #4a4030 0%, transparent 50%); }
.scn-association-of-ideas .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a3224 0%, #1e1a12 100%); }
.scn-association-of-ideas .clock { position:absolute; top:8%; right:15%; width:50px; height:70px; background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ai-clock 30s ease-in-out infinite; }
.scn-association-of-ideas .pendulum { position:absolute; top:20%; right:25%; width:4px; height:50px; background: #6a5a42; transform-origin: top center; animation: ai-pendulum 2s ease-in-out infinite; }
.scn-association-of-ideas .pendulum::after { content:''; display:block; width:12px; height:12px; background:#8a7050; border-radius:50%; margin-top:48px; margin-left:-4px; }
.scn-association-of-ideas .mother-figure { position:absolute; bottom:15%; left:40%; width:22px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ai-mother 8s ease-in-out infinite; }
.scn-association-of-ideas .thought { position:absolute; width:20px; height:20px; background: rgba(180,160,120,.3); border-radius: 50%; filter: blur(4px); animation: ai-thought 5s ease-in-out infinite; }
.scn-association-of-ideas .thought.shape-a { top:40%; left:15%; animation-duration:4s; animation-delay:0s; }
.scn-association-of-ideas .thought.shape-b { top:30%; left:30%; width:28px; height:28px; animation-delay:2s; animation-duration:6s; }
.scn-association-of-ideas .thought.shape-c { top:50%; left:5%; height:15px; animation-delay:1s; animation-duration:7s; }
@keyframes ai-clock { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes ai-pendulum { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }
@keyframes ai-mother { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-2deg); } 75% { transform: translateX(24px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0); } }
@keyframes ai-thought { 0% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-20px) scale(1.3); opacity:0.7; } 100% { transform: translateY(-40px) scale(1); opacity:0; } }

.scn-fathers-london-journey { background: linear-gradient(90deg, #1c1814 0%, #2a221c 40%, #1c1814 100%), radial-gradient(ellipse at 30% 50%, #2a221c 0%, transparent 70%); }
.scn-fathers-london-journey .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a221c 0%, #14100a 100%); }
.scn-fathers-london-journey .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-fathers-london-journey .father { position:absolute; bottom:20%; left:30%; width:24px; height:48px; background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fl-father 6s ease-in-out infinite; }
.scn-fathers-london-journey .son { position:absolute; bottom:20%; left:46%; width:16px; height:32px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fl-son 6s ease-in-out infinite 0.2s; }
.scn-fathers-london-journey .trunk { position:absolute; bottom:15%; left:60%; width:30px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: fl-trunk 8s ease-in-out infinite; }
.scn-fathers-london-journey .door { position:absolute; bottom:22%; left:15%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 6px 6px 0 0; box-shadow: 0 0 10px rgba(0,0,0,.4); }
.scn-fathers-london-journey .doorway-light { position:absolute; bottom:22%; left:15%; width:30px; height:50px; transform: translateX(5px); background: linear-gradient(180deg, rgba(180,160,120,.8) 0%, transparent 100%); border-radius: 4px; animation: fl-light 5s ease-in-out infinite alternate; }
@keyframes fl-father { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(1deg); } 100% { transform: translateX(16px) rotate(0); } }
@keyframes fl-son { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(4px) rotate(-1deg); } 50% { transform: translateX(8px) rotate(1deg); } 75% { transform: translateX(12px) rotate(-1deg); } 100% { transform: translateX(16px) rotate(0); } }
@keyframes fl-trunk { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes fl-light { 0% { opacity:.6; } 100% { opacity:1; } }

/* quiet-conscience-fallacy */
.scn-quiet-conscience-fallacy {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 80%);
}
.scn-quiet-conscience-fallacy .wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: qcf-wall 20s ease-in-out infinite alternate;
}
.scn-quiet-conscience-fallacy .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0a00 0%, #2a1a0a 30%, #3a2a1a 100%); border-radius: 0 0 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.6);
}
.scn-quiet-conscience-fallacy .chair {
  position:absolute; bottom:20%; left:40%; width:40px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; transform: perspective(100px) rotateX(5deg); box-shadow: 2px 4px 6px rgba(0,0,0,.4);
}
.scn-quiet-conscience-fallacy .figure-seated {
  position:absolute; bottom:25%; left:42%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qcf-figure 6s ease-in-out infinite;
}
.scn-quiet-conscience-fallacy .lamp-stand {
  position:absolute; bottom:18%; left:65%; width:6px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 0 0; transform-origin: bottom center; animation: qcf-lampstand 12s ease-in-out infinite alternate;
}
.scn-quiet-conscience-fallacy .lamp-glow {
  position:absolute; bottom:38%; left:65%; width:20px; height:20px; background: radial-gradient(circle, #d4a060 0%, #b08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(180,128,64,0.5); animation: qcf-glow 4s ease-in-out infinite alternate;
}
.scn-quiet-conscience-fallacy .dust {
  position:absolute; inset:0; background: radial-gradient(circle at 30% 20%, rgba(200,180,140,0.03) 0%, transparent 50%), radial-gradient(circle at 70% 40%, rgba(200,180,140,0.02) 0%, transparent 50%); animation: qcf-dust 20s linear infinite;
}
@keyframes qcf-wall {
  0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 }
}
@keyframes qcf-figure {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(-2px) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) }
}
@keyframes qcf-lampstand {
  0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) }
}
@keyframes qcf-glow {
  0% { opacity:0.6; box-shadow: 0 0 20px 5px rgba(180,128,64,0.4) } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(200,160,80,0.6) } 100% { opacity:0.7; box-shadow: 0 0 25px 8px rgba(180,128,64,0.5) }
}
@keyframes qcf-dust {
  0% { transform: translateX(0) translateY(0); opacity:0.5 } 50% { transform: translateX(50px) translateY(20px); opacity:0.7 } 100% { transform: translateX(100px) translateY(0); opacity:0.5 }
}

/* romish-advantage */
.scn-romish-advantage {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #000 100%), radial-gradient(ellipse at 50% 40%, #2a2a4e 0%, transparent 70%);
}
.scn-romish-advantage .bg-dark {
  position:absolute; inset:0; background: linear-gradient(0deg, #0a0a14 0%, #1a1a2e 100%); animation: rma-bg 15s ease-in-out infinite alternate;
}
.scn-romish-advantage .confessional {
  position:absolute; bottom:20%; left:30%; width:80px; height:60px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 2px 2px 8px rgba(0,0,0,0.6); transform: perspective(120px) rotateX(5deg);
}
.scn-romish-advantage .priest {
  position:absolute; bottom:28%; left:36%; width:16px; height:36px; background: linear-gradient(180deg, #2a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rma-priest 4s ease-in-out infinite;
}
.scn-romish-advantage .candle {
  position:absolute; bottom:22%; left:55%; width:6px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; transform-origin: bottom center; animation: rma-candle 8s ease-in-out infinite alternate;
}
.scn-romish-advantage .flame {
  position:absolute; bottom:34%; left:55%; width:10px; height:12px; background: radial-gradient(circle, #ffd080 0%, #ffa030 60%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 8px rgba(255,160,48,0.5); animation: rma-flame 1.5s ease-in-out infinite alternate;
}
.scn-romish-advantage .shadow-bars {
  position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0px, transparent 40px, rgba(0,0,0,0.3) 40px, rgba(0,0,0,0.3) 42px); animation: rma-bars 10s linear infinite;
}
@keyframes rma-bg {
  0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 }
}
@keyframes rma-priest {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 20% { transform: translateX(1px) translateY(-1px) rotate(1deg) } 40% { transform: translateX(0) translateY(-2px) rotate(0deg) } 60% { transform: translateX(-1px) translateY(-1px) rotate(-1deg) } 80% { transform: translateX(0) translateY(0) rotate(0deg) }
}
@keyframes rma-candle {
  0% { transform: rotate(-1deg) scaleY(1) } 50% { transform: rotate(0deg) scaleY(0.98) } 100% { transform: rotate(1deg) scaleY(1) }
}
@keyframes rma-flame {
  0% { transform: scale(1) rotate(-2deg); opacity:0.9 } 25% { transform: scale(1.1) rotate(0deg); opacity:1 } 50% { transform: scale(0.95) rotate(2deg); opacity:0.8 } 75% { transform: scale(1.05) rotate(-1deg); opacity:0.95 } 100% { transform: scale(1) rotate(0deg); opacity:0.9 }
}
@keyframes rma-bars {
  0% { background-position: 0 0 } 100% { background-position: 0 20px }
}

/* characters-of-vice */
.scn-characters-of-vice {
  background: linear-gradient(180deg, #1a0a00 0%, #0e0500 50%, #000 100%), radial-gradient(ellipse at 50% 20%, #2a1a0a 0%, transparent 70%);
}
.scn-characters-of-vice .backdrop {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); animation: cov-bg 12s ease-in-out infinite alternate;
}
.scn-characters-of-vice .desk {
  position:absolute; bottom:15%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.7); transform: perspective(80px) rotateX(3deg);
}
.scn-characters-of-vice .money-pile {
  position:absolute; bottom:25%; left:30%; width:30px; height:12px; background: radial-gradient(ellipse, #6a5a3a 0%, #4a3a1a 60%, transparent 100%); border-radius: 50%; box-shadow: 0px 2px 4px rgba(0,0,0,0.5); animation: cov-money 6s ease-in-out infinite;
}
.scn-characters-of-vice .figure-vice {
  position:absolute; bottom:20%; left:35%; width:22px; height:42px; background: linear-gradient(180deg, #1a0a00 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cov-figure 5s ease-in-out infinite;
}
.scn-characters-of-vice .widow-shadow {
  position:absolute; bottom:18%; left:55%; width:18px; height:30px; background: rgba(0,0,0,0.4); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); animation: cov-widow 9s ease-in-out infinite alternate;
}
.scn-characters-of-vice .lamp-desk {
  position:absolute; bottom:30%; left:20%; width:12px; height:16px; background: radial-gradient(circle, #b08040 0%, #6a3a0a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 6px rgba(150,80,20,0.6); animation: cov-lamp 4s ease-in-out infinite alternate;
}
@keyframes cov-bg {
  0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 }
}
@keyframes cov-money {
  0%,100% { transform: scale(1) } 50% { transform: scale(1.05) }
}
@keyframes cov-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 60% { transform: translateX(0) translateY(-1px) rotate(0deg) } 100% { transform: translateX(-3px) translateY(0) rotate(-1deg) }
}
@keyframes cov-widow {
  0% { transform: translateY(0); opacity:0.3 } 50% { transform: translateY(2px); opacity:0.5 } 100% { transform: translateY(0); opacity:0.3 }
}
@keyframes cov-lamp {
  0% { opacity:0.7; box-shadow: 0 0 12px 3px rgba(150,80,20,0.4) } 50% { opacity:1; box-shadow: 0 0 25px 8px rgba(180,100,30,0.6) } 100% { opacity:0.8; box-shadow: 0 0 15px 5px rgba(150,80,20,0.5) }
}

/* crafty-designing-man */
.scn-crafty-designing-man {
  background: linear-gradient(180deg, #0a0a1a 0%, #000 50%, #0a0a0a 100%), radial-gradient(ellipse at 60% 30%, #1a1a2a 0%, transparent 70%);
}
.scn-crafty-designing-man .back-wall {
  position:absolute; inset:0; background: linear-gradient(90deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%); animation: cdm-wall 15s ease-in-out infinite alternate;
}
.scn-crafty-designing-man .desk-crafty {
  position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #0e0505 100%); border-radius: 8% 8% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.8); transform: perspective(60px) rotateX(2deg);
}
.scn-crafty-designing-man .man-crafty {
  position:absolute; bottom:22%; left:25%; width:20px; height:38px; background: linear-gradient(180deg, #1a0a0a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cdm-man 7s ease-in-out infinite;
}
.scn-crafty-designing-man .hand-deceive {
  position:absolute; bottom:28%; left:35%; width:14px; height:10px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0505 100%); border-radius: 40% 60% 30% 50% / 50% 50% 40% 40%; transform-origin: 60% 100%; animation: cdm-hand 3s ease-in-out infinite;
}
.scn-crafty-designing-man .candle-crafty {
  position:absolute; bottom:35%; left:65%; width:5px; height:18px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; animation: cdm-candle 10s ease-in-out infinite alternate;
}
.scn-crafty-designing-man .shadow-writings {
  position:absolute; bottom:28%; left:50%; width:40px; height:20px; background: rgba(0,0,0,0.4); filter: blur(1px); border-radius: 10% 10% 0 0; animation: cdm-writings 8s ease-in-out infinite alternate;
}
@keyframes cdm-wall {
  0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 }
}
@keyframes cdm-man {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(-2px) rotate(0deg) } 75% { transform: translateX(-1px) translateY(-1px) rotate(-1deg) }
}
@keyframes cdm-hand {
  0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(-10deg) scale(0.95) translateX(2px) } 100% { transform: rotate(0deg) scale(1) }
}
@keyframes cdm-candle {
  0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) }
}

.scn-legacy-received {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 70%);
}
.scn-legacy-received .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  animation: si2-wall-fade 6s ease-in-out infinite alternate;
}
.scn-legacy-received .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #2a1a0e 0%, #3a2a1a 100%);
}
.scn-legacy-received .desk {
  position: absolute; bottom: 28%; left: 30%; width: 35%; height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #4a2a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-legacy-received .candle {
  position: absolute; bottom: 48%; left: 45%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #d0a050 0%, #b08030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px #d0a050, 0 0 40px 16px rgba(208,160,80,0.4);
  animation: si2-candle-flicker 2s ease-in-out infinite alternate;
}
.scn-legacy-received .letter {
  position: absolute; bottom: 32%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: si2-letter-float 8s ease-in-out infinite;
}
.scn-legacy-received .chair {
  position: absolute; bottom: 28%; left: 48%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #4a2a0a 0%, #3a1a00 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%);
}
.scn-legacy-received .shadow {
  position: absolute; bottom: 28%; left: 42%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: si2-shadow-pulse 4s ease-in-out infinite alternate;
}
@keyframes si2-wall-fade { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes si2-candle-flicker { 0% { transform: scaleY(1) rotate(-1deg); opacity: 0.9; } 50% { transform: scaleY(1.05) rotate(1deg); opacity: 1; } 100% { transform: scaleY(0.95) rotate(-0.5deg); opacity: 0.85; } }
@keyframes si2-letter-float { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-7deg) translateY(0); } }
@keyframes si2-shadow-pulse { 0% { opacity: 0.6; } 50% { opacity: 0.4; } 100% { opacity: 0.7; } }

.scn-oxmoor-vs-travel {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a5e 0%, transparent 70%);
}
.scn-oxmoor-vs-travel .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
}
.scn-oxmoor-vs-travel .left-path {
  position: absolute; bottom: 30%; left: 10%; width: 35%; height: 40%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 0 50% 50% 0;
  animation: si3-path-sway 10s ease-in-out infinite alternate;
}
.scn-oxmoor-vs-travel .right-path {
  position: absolute; bottom: 30%; right: 10%; width: 35%; height: 40%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 50% 0 0 50%;
  animation: si3-path-sway 10s ease-in-out infinite alternate-reverse;
}
.scn-oxmoor-vs-travel .figure {
  position: absolute; bottom: 30%; left: 50%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: si3-figure-look 6s ease-in-out infinite;
}
.scn-oxmoor-vs-travel .sign-left {
  position: absolute; bottom: 50%; left: 20%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  transform: rotate(-15deg);
  animation: si3-sign-bob 4s ease-in-out infinite;
}
.scn-oxmoor-vs-travel .sign-right {
  position: absolute; bottom: 50%; right: 20%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  transform: rotate(15deg);
  animation: si3-sign-bob 4s ease-in-out infinite 1s;
}
.scn-oxmoor-vs-travel .lantern {
  position: absolute; bottom: 55%; left: 50%; width: 12px; height: 20px;
  background: radial-gradient(circle, #d0a050 0%, #b08030 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 24px 8px #d0a050, 0 0 40px 12px rgba(208,160,80,0.4);
  transform: translateX(-50%);
  animation: si3-lantern-swing 5s ease-in-out infinite alternate;
}
@keyframes si3-path-sway { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes si3-figure-look { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes si3-sign-bob { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes si3-lantern-swing { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }

.scn-oxmoor-claim {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 70%);
}
.scn-oxmoor-claim .wall-panel {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
}
.scn-oxmoor-claim .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #5a3a1a 0%, #4a2a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-oxmoor-claim .document {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0b090 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.4);
  animation: si4-doc-shuffle 10s ease-in-out infinite;
}
.scn-oxmoor-claim .seal {
  position: absolute; bottom: 32%; left: 38%; width: 20px; height: 20px;
  background: radial-gradient(circle, #a05030 0%, #803020 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(160,80,48,0.5);
  animation: si4-seal-glow 3s ease-in-out infinite alternate;
}
.scn-oxmoor-claim .quill {
  position: absolute; bottom: 35%; left: 30%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #e0d0b0 0%, #a09070 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: si4-quill-scribble 4s ease-in-out infinite;
}
.scn-oxmoor-claim .inkwell {
  position: absolute; bottom: 30%; left: 25%; width: 16px; height: 14px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
}
.scn-oxmoor-claim .hand {
  position: absolute; bottom: 28%; left: 42%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  animation: si4-hand-write 5s ease-in-out infinite;
}
@keyframes si4-doc-shuffle { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(-3deg) translateX(-2px); } }
@keyframes si4-seal-glow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes si4-quill-scribble { 0% { transform: rotate(30deg) scaleY(1); } 25% { transform: rotate(20deg) scaleY(1.02); } 50% { transform: rotate(40deg) scaleY(0.98); } 75% { transform: rotate(25deg) scaleY(1.01); } 100% { transform: rotate(30deg) scaleY(1); } }
@keyframes si4-hand-write { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(5px); } 100% { transform: rotate(-12deg) translateX(-3px); } }

.scn-scales-balanced {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a5e 0%, transparent 70%);
}
.scn-scales-balanced .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #2a2a3e 0%, #3a3a4e 100%);
}
.scn-scales-balanced .scale-stand {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform: translateX(-50%);
  border-radius: 10% 10% 0 0;
}
.scn-scales-balanced .beam {
  position: absolute; bottom: 55%; left: 50%; width: 100px; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  transform: translateX(-50%);
  border-radius: 20%;
  animation: si5-beam-rock 8s ease-in-out infinite;
}
.scn-scales-balanced .pan-left {
  position: absolute; bottom: 45%; left: 30%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50%;
  transform-origin: center bottom;
  animation: si5-pan-left 8s ease-in-out infinite;
}
.scn-scales-balanced .pan-right {
  position: absolute; bottom: 45%; right: 30%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50%;
  transform-origin: center bottom;
  animation: si5-pan-right 8s ease-in-out infinite;
}
.scn-scales-balanced .weight-left {
  position: absolute; bottom: 47%; left: 30%; width: 10px; height: 10px;
  background: radial-gradient(circle, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 20%;
  transform: translateX(-5px);
  animation: si5-weight-left 8s ease-in-out infinite;
}
.scn-scales-balanced .weight-right {
  position: absolute; bottom: 47%; right: 30%; width: 10px; height: 10px;
  background: radial-gradient(circle, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 20%;
  transform: translateX(5px);
  animation: si5-weight-right 8s ease-in-out infinite;
}
.scn-scales-balanced .pointer {
  position: absolute; bottom: 52%; left: 50%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #d0a050 0%, #b08030 100%);
  transform: translateX(-50%);
  transform-origin: bottom center;
  border-radius: 50%;
  animation: si5-pointer 8s ease-in-out infinite;
}
@keyframes si5-beam-rock { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes si5-pan-left { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes si5-pan-right { 0% { transform: rotate(3deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(2deg); } }
@keyframes si5-weight-left { 0% { transform: translateX(-5px) rotate(0); } 50% { transform: translateX(-5px) rotate(10deg); } 100% { transform: translateX(-5px) rotate(-5deg); } }
@keyframes si5-weight-right { 0% { transform: translateX(5px) rotate(0); } 50% { transform: translateX(5px) rotate(-10deg); } 100% { transform: translateX(5px) rotate(5deg); } }
@keyframes si5-pointer { 0% { transform: translateX(-50%) rotate(-10deg); } 50% { transform: translateX(-50%) rotate(10deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }

/* dim-interior warm palette, mood variations */
.scn-dr-slop-ready {
  background: linear-gradient(180deg, #2b1e13 0%, #4a3522 40%, #6b4f33 70%), radial-gradient(ellipse at 50% 50%, rgba(200,150,80,0.15) 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-dr-slop-ready .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3d2b1a 0%, #1f150a 100%); }
.scn-dr-slop-ready .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1008 0%, #2e1e10 100%); }
.scn-dr-slop-ready .door { position:absolute; bottom:20%; right:15%; width:60px; height:90px; background: linear-gradient(180deg, #4a3522 0%, #2a1e12 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.6); }
.scn-dr-slop-ready .candle { position:absolute; bottom:35%; left:25%; width:6px; height:20px; background: #c29b6b; border-radius: 2px; box-shadow: 0 0 8px 2px rgba(200,150,80,0.3); }
.scn-dr-slop-ready .candle-glow { position:absolute; bottom:35%; left:25%; width:60px; height:60px; margin: -30px 0 0 -30px; background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, rgba(255,180,60,0.2) 40%, transparent 70%); animation: slop-flicker 1.5s ease-in-out infinite alternate; }
.scn-dr-slop-ready .figure-slop { position:absolute; bottom:25%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #2b1e13 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: slop-shift 4s ease-in-out infinite; }
.scn-dr-slop-ready .shadow-slop { position:absolute; bottom:25%; left:38%; width:40px; height:15px; background: rgba(0,0,0,0.4); border-radius:50%; filter: blur(4px); animation: slop-shadow 4s ease-in-out infinite; }
.scn-dr-slop-ready .table { position:absolute; bottom:25%; left:40%; width:50px; height:8px; background: linear-gradient(180deg, #4a3522 0%, #3a2818 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
@keyframes slop-flicker { 0% { opacity:0.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes slop-shift { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes slop-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.1); opacity:0.5; } 100% { transform: scaleX(1); opacity:0.3; } }

.scn-womens-right {
  background: linear-gradient(180deg, #3e2c1f 0%, #5a4030 40%, #7a5e45 100%), radial-gradient(ellipse at 50% 30%, rgba(220,180,130,0.1) 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-womens-right .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #4b3628 0%, #2d1f14 100%); }
.scn-womens-right .window { position:absolute; top:5%; left:50%; transform:translateX(-50%); width:80px; height:100px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(100,80,60,0.5); }
.scn-womens-right .curtain-left { position:absolute; top:5%; left:35%; width:30px; height:110px; background: linear-gradient(90deg, #7a5e45 0%, #5a4030 100%); border-radius: 0 10px 10px 0; animation: wom-sway 6s ease-in-out infinite alternate; }
.scn-womens-right .curtain-right { position:absolute; top:5%; right:35%; width:30px; height:110px; background: linear-gradient(90deg, #5a4030 0%, #7a5e45 100%); border-radius: 10px 0 0 10px; animation: wom-sway 6s ease-in-out infinite alternate-reverse; }
.scn-womens-right .fireplace { position:absolute; bottom:15%; left:20%; width:60px; height:80px; background: linear-gradient(180deg, #2a1e10 0%, #1a1008 100%); border-radius: 10px 10px 4px 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
.scn-womens-right .fire-glow { position:absolute; bottom:20%; left:22%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,150,50,0.4) 0%, rgba(255,120,20,0.1) 50%, transparent 80%); animation: wom-fire 2s ease-in-out infinite alternate; }
.scn-womens-right .figure-a { position:absolute; bottom:20%; left:25%; width:28px; height:60px; background: linear-gradient(180deg, #3a2818 0%, #1f150a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wom-breathe 5s ease-in-out infinite; }
.scn-womens-right .figure-b { position:absolute; bottom:20%; left:50%; width:28px; height:60px; background: linear-gradient(180deg, #4a3522 0%, #2a1e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wom-breathe 5s ease-in-out infinite 0.5s; }
.scn-womens-right .rug { position:absolute; bottom:5%; left:20%; width:60%; height:20px; background: linear-gradient(90deg, #6b4f33 0%, #8a6b4a 30%, #6b4f33 70%, #5a4030 100%); border-radius: 50% 50% 0 0; }
@keyframes wom-sway { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-2px); } }
@keyframes wom-fire { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:0.8; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes wom-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }

.scn-flanders-armies {
  background: linear-gradient(180deg, #1f1a14 0%, #2e251e 40%, #4a3a2a 80%, #1a1008 100%), radial-gradient(ellipse at 50% 50%, rgba(150,120,80,0.08) 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-flanders-armies .bg-tent { position:absolute; inset:0; background: linear-gradient(135deg, #2a221a 0%, #1a140e 100%); }
.scn-flanders-armies .map { position:absolute; top:35%; left:15%; width:70%; height:40%; background: linear-gradient(180deg, #6b5a42 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); transform: rotate(-2deg); }
.scn-flanders-armies .cannon { position:absolute; bottom:20%; left:20%; width:40px; height:20px; background: linear-gradient(180deg, #3a3028 0%, #1a1612 100%); border-radius: 40% 40% 20% 20%; transform-origin: center bottom; animation: flan-rock 8s ease-in-out infinite; }
.scn-flanders-armies .flag { position:absolute; top:15%; right:25%; width:4px; height:40px; background: #4a3a2a; }
.scn-flanders-armies .flag::before { content:''; position:absolute; top:0; left:-10px; width:20px; height:14px; background: linear-gradient(180deg, #8a704a 0%, #6b5a42 100%); border-radius: 0 40% 40% 0; animation: flan-wave 4s ease-in-out infinite; }
.scn-flanders-armies .figure-toby { position:absolute; bottom:15%; left:40%; width:30px; height:65px; background: linear-gradient(180deg, #2a221a 0%, #1a140e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: flan-tilt 6s ease-in-out infinite; }
.scn-flanders-armies .chair { position:absolute; bottom:12%; left:38%; width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 8px 8px 0 0; }
.scn-flanders-armies .shadow-toby { position:absolute; bottom:15%; left:40%; width:40px; height:10px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(3px); animation: flan-shade 6s ease-in-out infinite; }
@keyframes flan-rock { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes flan-wave { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(-3deg) translateY(1px); } 75% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes flan-tilt { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes flan-shade { 0% { transform: translateX(0) scaleX(1); opacity:0.3; } 50% { transform: translateX(5px) scaleX(0.9); opacity:0.4; } 100% { transform: translateX(0) scaleX(1); opacity:0.3; } }

.scn-political-arch {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3d2e22 80%, #1a1008 100%), radial-gradient(ellipse at 50% 50%, rgba(180,140,80,0.06) 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-political-arch .bg-arch { position:absolute; inset:0; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); }
.scn-political-arch .arch-left { position:absolute; bottom:10%; left:20%; width:30px; height:120px; background: linear-gradient(90deg, #3d2e22 0%, #2a2018 100%); border-radius: 10px 0 0 10px; }
.scn-political-arch .arch-right { position:absolute; bottom:10%; right:20%; width:30px; height:120px; background: linear-gradient(90deg, #2a2018 0%, #3d2e22 100%); border-radius: 0 10px 10px 0; }
.scn-political-arch .keystone { position:absolute; bottom:65%; left:50%; transform:translateX(-50%); width:20px; height:30px; background: linear-gradient(180deg, #5a4530 0%, #3d2e22 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: pol-keystone 2s ease-in-out infinite alternate; }
.scn-political-arch .crack { position:absolute; bottom:40%; left:48%; width:4px; height:80px; background: rgba(0,0,0,0.6); border-radius: 2px; transform: rotate(-5deg); box-shadow: inset 0 0 4px rgba(0,0,0,0.8); }
.scn-political-arch .falling-stone { position:absolute; bottom:35%; left:48%; width:10px; height:10px; background: #3d2e22; border-radius: 2px; animation: pol-fall 3s ease-in infinite; }
.scn-political-arch .figure-politician { position:absolute; bottom:15%; left:43%; width:28px; height:55px; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pol-point 4s ease-in-out infinite; }
.scn-political-arch .podium { position:absolute; bottom:10%; left:40%; width:40px; height:20px; background: linear-gradient(180deg, #3d2e22 0%, #2a2018 100%); border-radius: 2px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.4); }
@keyframes pol-keystone { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(2px); } }
@keyframes pol-fall { 0% { transform: translateY(0) rotate(0deg); opacity:0.8; } 100% { transform: translateY(60px) rotate(45deg); opacity:0; } }
@keyframes pol-point { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }

.scn-trust-without-religion {
  background: linear-gradient(160deg, #2a1e14 0%, #3d2b1f 40%, #1e140d 100%), radial-gradient(ellipse at 30% 20%, #4a3520 0%, transparent 60%);
}
.scn-trust-without-religion .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3628 0%, #2a1e14 100%);
  animation: tr-wall 12s ease-in-out infinite alternate;
}
.scn-trust-without-religion .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3d2b1f 0%, #1e140d 100%);
}
.scn-trust-without-religion .desk {
  position: absolute; bottom: 22%; left: 50%; width: 60%; height: 12%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3f2a 0%, #3d2b1f 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-trust-without-religion .book {
  position: absolute; bottom: 30%; left: 50%; width: 12%; height: 6%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #8b6b4a 0%, #5a3f2a 50%, #3d2b1f 100%);
  border-radius: 1px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.3);
  animation: tr-book 8s ease-in-out infinite;
}
.scn-trust-without-religion .candle {
  position: absolute; bottom: 34%; left: 55%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #e8cfa0 0%, #b8965a 40%, #7a5a30 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-trust-without-religion .glow {
  position: absolute; bottom: 34%; left: 55%; width: 10%; height: 10%;
  background: radial-gradient(circle, rgba(232,207,160,.5) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: tr-glow 4s ease-in-out infinite alternate;
}
.scn-trust-without-religion .figure.sitting {
  position: absolute; bottom: 18%; left: 40%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-figure 6s ease-in-out infinite;
}
.scn-trust-without-religion .shadow {
  position: absolute; bottom: 16%; left: 38%; width: 20%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: tr-shadow 6s ease-in-out infinite;
}
.scn-trust-without-religion .lamp {
  position: absolute; bottom: 42%; left: 30%; width: 4%; height: 6%;
  background: radial-gradient(circle, #e8cfa0 0%, #b8965a 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(232,207,160,.3);
  animation: tr-lamp 8s ease-in-out infinite alternate;
}
@keyframes tr-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes tr-book { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } }
@keyframes tr-glow { 0% { opacity: .6; transform: translate(-50%, -50%) scale(.8); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); } 100% { opacity: .7; transform: translate(-50%, -50%) scale(.9); } }
@keyframes tr-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0deg); } }
@keyframes tr-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(.9); } }
@keyframes tr-lamp { 0% { opacity: .7; box-shadow: 0 0 15px 5px rgba(232,207,160,.2); } 100% { opacity: 1; box-shadow: 0 0 25px 10px rgba(232,207,160,.5); } }

.scn-religion-without-morality {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #0a0a1a 100%), radial-gradient(ellipse at 80% 30%, #3a3a5e 0%, transparent 70%);
}
.scn-religion-without-morality .bg.back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 50%, #0a0a2e 100%);
  animation: rm-bg 15s ease-in-out infinite alternate;
}
.scn-religion-without-morality .bg.front {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a0a2e 0%, #050512 100%);
}
.scn-religion-without-morality .pedestal {
  position: absolute; bottom: 18%; left: 50%; width: 30%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1e1e3a 0%, #0a0a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-religion-without-morality .figure.pious {
  position: absolute; bottom: 26%; left: 36%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2e2e4a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: brightness(1.2);
  animation: rm-pious 4s ease-in-out infinite alternate;
}
.scn-religion-without-morality .figure.corrupt {
  position: absolute; bottom: 26%; left: 52%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: brightness(.8);
  animation: rm-corrupt 4s ease-in-out infinite alternate-reverse;
}
.scn-religion-without-morality .veil {
  position: absolute; bottom: 38%; left: 34%; width: 32%; height: 6%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.08) 50%, transparent 100%);
  border-radius: 50%;
  animation: rm-veil 6s ease-in-out infinite;
}
.scn-religion-without-morality .light {
  position: absolute; top: 10%; left: 50%; width: 40%; height: 100%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,200,.15) 0%, transparent 70%);
  animation: rm-light 10s ease-in-out infinite alternate;
}
.scn-religion-without-morality .chain {
  position: absolute; bottom: 30%; left: 48%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #5a5a6a 0%, #2a2a3a 100%);
  border-radius: 10%;
  box-shadow: 0 0 4px rgba(0,0,0,.4);
}
@keyframes rm-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes rm-pious { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-4px) rotate(-2deg); } }
@keyframes rm-corrupt { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(4px) rotate(2deg); } }
@keyframes rm-veil { 0%,100% { opacity: .3; transform: translateX(0); } 50% { opacity: .6; transform: translateX(10px); } }
@keyframes rm-light { 0% { opacity: .5; transform: scaleY(1); } 100% { opacity: .8; transform: scaleY(1.1); } }

.scn-crusade-critique {
  background: linear-gradient(180deg, #1a0f0a 0%, #2a1a12 40%, #0f0705 100%), radial-gradient(ellipse at 20% 40%, #3a1f14 0%, transparent 70%);
}
.scn-crusade-critique .sky.smoke {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a20 0%, #1a0f0a 100%);
  animation: cc-smoke 20s ease-in-out infinite alternate;
}
.scn-crusade-critique .ground.ash {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a12 0%, #0f0705 100%);
}
.scn-crusade-critique .crusader {
  position: absolute; bottom: 22%; left: 30%; width: 16%; height: 38%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: cc-crusader 5s ease-in-out infinite;
}
.scn-crusade-critique .sword {
  position: absolute; bottom: 30%; left: 42%; width: 2%; height: 22%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a20 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  transform-origin: bottom;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: cc-sword 3s ease-in-out infinite alternate;
}
.scn-crusade-critique .shield {
  position: absolute; bottom: 24%; left: 26%; width: 10%; height: 14%;
  background: linear-gradient(135deg, #4a3a2e 0%, #2a1a12 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform: rotate(10deg);
}
.scn-crusade-critique .body.fallen {
  position: absolute; bottom: 8%; left: 50%; width: 14%; height: 16%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-20deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.6);
}
.scn-crusade-critique .blood {
  position: absolute; bottom: 4%; left: 48%; width: 8%; height: 2%;
  background: radial-gradient(ellipse, #5e1a1d 0%, transparent 70%);
  border-radius: 50%;
  animation: cc-blood 4s ease-in-out infinite alternate;
}
.scn-crusade-critique .flame {
  position: absolute; top: 8%; right: 20%; width: 6%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #e8a040 0%, #c8553d 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,85,61,.3);
  animation: cc-flame 2s ease-in-out infinite alternate;
}
.scn-crusade-critique .cross {
  position: absolute; top: 12%; left: 20%; width: 6%; height: 10%;
  background: linear-gradient(90deg, #4a3a2e 0%, #2a1a12 100%);
  border-radius: 2px;
  transform: rotate(45deg);
  box-shadow: 0 0 6px rgba(0,0,0,.3);
}
@keyframes cc-smoke { 0% { opacity: .7; transform: scaleX(1); } 50% { opacity: .9; transform: scaleX(1.02); } 100% { opacity: .6; transform: scaleX(.98); } }
@keyframes cc-crusader { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes cc-sword { 0% { transform: rotate(-30deg); } 100% { transform: rotate(-25deg) translateY(2px); } }
@keyframes cc-blood { 0% { opacity: .6; transform: scale(1); } 100% { opacity: .9; transform: scale(1.2); } }
@keyframes cc-flame { 0% { transform: scaleY(.8); opacity: .7; } 100% { transform: scaleY(1.1); opacity: 1; } }

.scn-trim-compassion {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0f0f1f 100%), radial-gradient(ellipse at 50% 30%, #1a1a3e 0%, transparent 60%);
}
.scn-trim-compassion .landscape {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 60%, #0f0f1f 100%);
  animation: tc-land 20s ease-in-out infinite alternate;
}
.scn-trim-compassion .soldier {
  position: absolute; bottom: 22%; left: 30%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-soldier 6s ease-in-out infinite;
}
.scn-trim-compassion .musket {
  position: absolute; bottom: 24%; left: 36%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%);
  border-radius: 2px;
  transform: rotate(-40deg);
  transform-origin: bottom;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: tc-musket 4s ease-in-out infinite alternate;
}
.scn-trim-compassion .woman.child {
  position: absolute; bottom: 16%; left: 52%; width: 12%; height: 24%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: tc-woman 8s ease-in-out infinite;
}
.scn-trim-compassion .light.halo {
  position: absolute; bottom: 36%; left: 40%; width: 30%; height: 30%;
  background: radial-gradient(circle, rgba(200,180,140,.08) 0%, transparent 70%);
  border-radius: 50%;
  animation: tc-light 12s ease-in-out infinite alternate;
}
.scn-trim-compassion .shadow.ground {
  position: absolute; bottom: 14%; left: 28%; width: 40%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: tc-shadow 6s ease-in-out infinite;
}
.scn-trim-compassion .tear {
  position: absolute; bottom: 28%; left: 56%; width: 1%; height: 3%;
  background: radial-gradient(circle, rgba(200,200,220,.3) 0%, transparent 80%);
  border-radius: 50%;
  animation: tc-tear 4s ease-in-out infinite;
}
@keyframes tc-land { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes tc-soldier { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0deg); } }
@keyframes tc-musket { 0% { transform: rotate(-40deg); } 100% { transform: rotate(-35deg) translateY(2px); } }
@keyframes tc-woman { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } }
@keyframes tc-light { 0% { opacity: .3; transform: scale(.9); } 100% { opacity: .6; transform: scale(1.1); } }
@keyframes tc-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(.95); } }
@keyframes tc-tear { 0% { opacity: .5; transform: translateY(0); } 100% { opacity: 0; transform: translateY(-8px); } }

.scn-eye-cannon {
  background: linear-gradient(180deg, #2a2318 0%, #4a3a1a 40%, #5e4a2a 100%),
              radial-gradient(ellipse at 50% 80%, #6a5a3a 0%, transparent 70%);
}

.scn-eye-cannon .bg-interior { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #1a1208 100%); opacity:.7; }

.scn-eye-cannon .cannon-eye {
  position:absolute; bottom:20%; left:30%; width:80px; height:100px;
  background: radial-gradient(ellipse at 50% 40%, #f0e0b0 0%, #8a7a5a 50%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(240,224,176,.3), inset 0 -10px 20px rgba(0,0,0,.6);
  transform: rotate(-5deg);
  animation: ec-aim 6s ease-in-out infinite alternate;
}

.scn-eye-cannon .cannon-barrel {
  position:absolute; bottom:30%; left:42%; width:60px; height:12px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 6px 20px 20px 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform-origin: left center;
  animation: ec-rotate 4s ease-in-out infinite alternate;
}

.scn-eye-cannon .cannon-wheel {
  position:absolute; bottom:15%; left:48%; width:30px; height:30px;
  background: radial-gradient(circle, #5a4a2a 0%, #2a1a0a 70%);
  border-radius: 50%;
  border: 3px solid #6a5a3a;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: ec-spin 12s linear infinite;
}

.scn-eye-cannon .rope {
  position:absolute; bottom:42%; left:38%; width:40px; height:2px;
  background: #8a7a5a;
  box-shadow: 0 22px 0 #8a7a5a;
  transform: rotate(20deg);
  animation: ec-sway 5s ease-in-out infinite;
}

.scn-eye-cannon .spark {
  position:absolute; bottom:40%; left:75%; width:8px; height:8px;
  background: radial-gradient(circle, #ffd080 0%, #ffa030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffa030;
  animation: ec-flash 1.5s ease-in-out infinite alternate;
}

.scn-eye-cannon .smoke-puff {
  position:absolute; bottom:45%; left:80%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(200,180,140,.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: ec-smoke 8s ease-in-out infinite;
}

@keyframes ec-aim {
  0% { transform: rotate(-8deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(5px); }
  100% { transform: rotate(-8deg) translateX(0); }
}

@keyframes ec-rotate {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(0deg); }
}

@keyframes ec-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes ec-sway {
  0%,100% { transform: rotate(15deg); }
  50% { transform: rotate(-5deg); }
}

@keyframes ec-flash {
  0% { opacity:0; transform: scale(.5); }
  40% { opacity:1; transform: scale(1.2); }
  100% { opacity:0.3; transform: scale(.8); }
}

@keyframes ec-smoke {
  0% { transform: translate(0,0) scale(1); opacity:.6; }
  50% { transform: translate(30px,-20px) scale(2); opacity:0; }
  100% { transform: translate(0,0) scale(1); opacity:.6; }
}

/* --- eye-power --- */

.scn-eye-power {
  background: linear-gradient(180deg, #2e2215 0%, #4a3420 50%, #1a0e05 100%),
              radial-gradient(ellipse at 50% 30%, #8a6a3a 0%, transparent 80%);
}

.scn-eye-power .bg-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, rgba(200,160,100,.15) 0%, transparent 60%); }

.scn-eye-power .great-eye {
  position:absolute; top:10%; left:20%; width:120px; height:140px;
  background: radial-gradient(ellipse at 45% 40%, #f0e0c0 0%, #a08a6a 50%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 50px 20px rgba(240,224,176,.2), inset 0 -20px 40px rgba(0,0,0,.7);
  animation: ep-pulse 4s ease-in-out infinite;
}

.scn-eye-power .iris {
  position:absolute; top:28%; left:35%; width:50px; height:50px;
  background: radial-gradient(circle, #8a6a3a 0%, #4a2a0a 60%, #0a0603 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #8a6a3a;
  animation: ep-gaze 8s ease-in-out infinite alternate;
}

.scn-eye-power .gaze-ray {
  position:absolute; top:40%; left:60%; width:100px; height:6px;
  background: linear-gradient(90deg, rgba(200,160,100,.8) 0%, transparent 100%);
  border-radius: 3px;
  transform-origin: left center;
  animation: ep-ray 3s ease-in-out infinite alternate;
}

.scn-eye-power .tiny-figure {
  position:absolute; bottom:10%; left:70%; width:14px; height:24px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0603 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ep-drawn 6s ease-in-out infinite;
}

.scn-eye-power .shadow-vignette {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.6) 100%);
  pointer-events: none;
}

@keyframes ep-pulse {
  0%,100% { transform: scale(1); opacity:.9; }
  50% { transform: scale(1.05); opacity:1; }
}

@keyframes ep-gaze {
  0% { transform: translateX(0); }
  50% { transform: translateX(12px); }
  100% { transform: translateX(0); }
}

@keyframes ep-ray {
  0% { transform: scaleX(1) rotate(-5deg); opacity:.8; }
  50% { transform: scaleX(1.5) rotate(0deg); opacity:1; }
  100% { transform: scaleX(1) rotate(5deg); opacity:.8; }
}

@keyframes ep-drawn {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(10px,-8px) rotate(5deg); }
  50% { transform: translate(30px,-20px) rotate(-3deg); }
  75% { transform: translate(50px,-30px) rotate(2deg); }
  100% { transform: translate(80px,-50px) rotate(0deg); }
}

/* --- brothers-contrast --- */

.scn-brothers-contrast {
  background: linear-gradient(180deg, #3a2a1a 0%, #5e4a3a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 70% 50%, #8a7a5a 0%, transparent 70%);
}

.scn-brothers-contrast .bg-parlour { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #1a1208 100%); opacity:.6; }

.scn-brothers-contrast .brother-walter {
  position:absolute; bottom:10%; left:15%; width:40px; height:70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bc-walter 3s ease-in-out infinite;
}

.scn-brothers-contrast .brother-toby {
  position:absolute; bottom:10%; left:60%; width:45px; height:65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0e05 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bc-toby 5s ease-in-out infinite alternate;
}

.scn-brothers-contrast .walter-chair {
  position:absolute; bottom:6%; left:10%; width:50px; height:30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 6px 6px 20px 20px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: bc-chair1 4s ease-in-out infinite;
}

.scn-brothers-contrast .toby-pipe {
  position:absolute; bottom:30%; left:68%; width:30px; height:4px;
  background: #6a5a4a;
  border-radius: 2px;
  transform: rotate(30deg);
  animation: bc-puff 2s ease-in-out infinite;
}

.scn-brothers-contrast .love-mote {
  position:absolute; top:40%; left:30%; width:8px; height:8px;
  background: radial-gradient(circle, #ffd080 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #ffd080;
  animation: bc-mote 7s ease-in-out infinite;
}

@keyframes bc-walter {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}

@keyframes bc-toby {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes bc-chair1 {
  0%,100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.02) translateY(-2px); }
}

@keyframes bc-puff {
  0% { transform: rotate(30deg) scaleX(1); opacity:.8; }
  50% { transform: rotate(40deg) scaleX(1.2); opacity:1; }
  100% { transform: rotate(30deg) scaleX(1); opacity:.8; }
}

@keyframes bc-mote {
  0% { transform: translate(0,0) scale(1); opacity:.6; }
  50% { transform: translate(60px,30px) scale(1.5); opacity:1; }
  100% { transform: translate(0,0) scale(1); opacity:.6; }
}

/* --- love-declared --- */

.scn-love-declared {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3420 50%, #1a0e05 100%),
              radial-gradient(ellipse at 50% 60%, #8a6a3a 0%, transparent 60%);
}

.scn-love-declared .bg-chamber { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #0e0804 100%); opacity:.7; }

.scn-love-declared .hero-figure {
  position:absolute; bottom:10%; left:30%; width:50px; height:80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ld-bow 5s ease-in-out infinite alternate;
}

.scn-love-declared .bandage-heart {
  position:absolute; top:15%; left:40%; width:40px; height:40px;
  background: radial-gradient(circle at 50% 60%, #c8553d 0%, #8a3a2a 60%, #5e1a1d 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  box-shadow: 0 0 30px 10px rgba(200,85,60,.3);
  animation: ld-heartbeat 1s ease-in-out infinite alternate;
}

.scn-love-declared .bandage-strap {
  position:absolute; top:18%; left:35%; width:60px; height:4px;
  background: #aa9a8a;
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: ld-wrap 3s ease-in-out infinite;
}

.scn-love-declared .mistaken-wound {
  position:absolute; bottom:12%; left:52%; width:20px; height:20px;
  background: radial-gradient(circle, #5a3a2a 0%, #2a1a0a 80%);
  border-radius: 50%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.5);
  animation: ld-pulse 2s ease-in-out infinite;
}

.scn-love-declared .note-scroll {
  position:absolute; bottom:20%; right:15%; width:30px; height:8px;
  background: linear-gradient(180deg, #c8b090 0%, #a08860 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ld-unroll 8s ease-in-out infinite;
}

@keyframes ld-bow {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-10px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}

@keyframes ld-heartbeat {
  0% { transform: scale(1) rotate(20deg); }
  30% { transform: scale(1.15) rotate(25deg); }
  60% { transform: scale(1) rotate(20deg); }
  100% { transform: scale(1) rotate(20deg); }
}

@keyframes ld-wrap {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(5px); }
  100% { transform: rotate(-15deg) translateX(0); }
}

@keyframes ld-pulse {
  0% { opacity:.6; transform: scale(1); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:.6; transform: scale(1); }
}

@keyframes ld-unroll {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.3); }
  100% { transform: translateY(0) scaleY(1); }
}

.scn-cicero-letter {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-cicero-letter .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.4);
  animation: cl-wall 12s ease-in-out infinite alternate;
}
.scn-cicero-letter .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-cicero-letter .candle {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 14px; height: 50px;
  background: linear-gradient(180deg, #d4c4a0 0%, #8a7a5a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 10px 2px rgba(255,200,100,0.3);
}
.scn-cicero-letter .flame {
  position: absolute; bottom: calc(30% + 50px); left: 50%; transform: translateX(-50%);
  width: 16px; height: 28px;
  background: radial-gradient(ellipse at 50% 40%, #ffe080 0%, #ffa040 50%, transparent 70%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 40px 16px rgba(255,160,64,0.5);
  animation: cl-flame 2s ease-in-out infinite alternate;
}
.scn-cicero-letter .letter {
  position: absolute; bottom: 18%; left: 30%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
}
.scn-cicero-letter .inkwell {
  position: absolute; bottom: 20%; left: 55%; width: 24px; height: 28px;
  background: radial-gradient(circle at 30% 30%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-cicero-letter .quill {
  position: absolute; bottom: 24%; left: 58%; transform: rotate(-20deg);
  width: 4px; height: 60px;
  background: linear-gradient(180deg, #e8d0b0 0%, #b8a080 100%);
  border-radius: 2px 2px 50% 50%;
  box-shadow: 0 0 2px rgba(0,0,0,0.3);
  animation: cl-quill 4s ease-in-out infinite;
}
.scn-cicero-letter .hand {
  position: absolute; bottom: 18%; left: 32%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 40%, #c8a080 0%, #a08060 100%);
  border-radius: 60% 40% 30% 70% / 50% 50% 50% 50%;
  transform: rotate(-10deg);
  animation: cl-hand 6s ease-in-out infinite;
}
@keyframes cl-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cl-flame {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
  30% { transform: translateX(-50%) scale(1.1, 1.2); opacity: 1; }
  60% { transform: translateX(-50%) scale(0.95, 1.0); opacity: 0.85; }
  100% { transform: translateX(-50%) scale(1.05, 0.95); opacity: 0.95; }
}
@keyframes cl-quill {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-4px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes cl-hand {
  0% { transform: rotate(-10deg) translateY(0); }
  33% { transform: rotate(-8deg) translateY(-2px); }
  66% { transform: rotate(-12deg) translateY(1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

.scn-death-consolations {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0e05 50%, #0d0602 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 80%);
}
.scn-death-consolations .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-death-consolations .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-death-consolations .figure-kneeling {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 4px rgba(255,200,100,0.2);
  animation: dc-kneel 5s ease-in-out infinite;
}
.scn-death-consolations .halo {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: dc-halo 8s ease-in-out infinite alternate;
}
.scn-death-consolations .tears {
  position: absolute; bottom: 22%; left: 48%; width: 6px; height: 6px;
  background: radial-gradient(circle, #b8d8e8 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(184,216,232,0.3);
  animation: dc-tears 2s ease-in-out infinite;
}
.scn-death-consolations .cross {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 4px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
}
.scn-death-consolations .cross::after {
  content: ''; position: absolute; top: 8px; left: -12px; width: 28px; height: 4px;
  background: inherit;
}
@keyframes dc-kneel {
  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 dc-halo {
  0% { opacity: 0.5; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.8; transform: translateX(-50%) scale(1.2); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(1.05); }
}
@keyframes dc-tears {
  0% { transform: translateY(0); opacity: 0; }
  50% { transform: translateY(5px); opacity: 0.7; }
  100% { transform: translateY(8px); opacity: 0; }
}

.scn-thracian-custom {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 60%);
}
.scn-thracian-custom .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0602 100%);
  opacity: 0.5;
}
.scn-thracian-custom .table {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-thracian-custom .figure-left {
  position: absolute; bottom: 18%; left: 22%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: tc-left 4s ease-in-out infinite;
}
.scn-thracian-custom .figure-right {
  position: absolute; bottom: 18%; right: 22%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: tc-right 4s ease-in-out infinite;
}
.scn-thracian-custom .cup {
  position: absolute; bottom: 22%; left: 65%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #6a5a4a 100%);
  border-radius: 4px 4px 8px 8px;
  transform: rotate(-15deg);
  animation: tc-cup 5s ease-in-out infinite;
}
.scn-thracian-custom .baby-wrap {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-thracian-custom .bowl {
  position: absolute; bottom: 14%; left: 38%; width: 40px; height: 16px;
  background: radial-gradient(ellipse at 50% 40%, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
@keyframes tc-left {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-3px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes tc-right {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes tc-cup {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}

.scn-death-in-battle {
  background:
    linear-gradient(180deg, #1a0a05 0%, #2a1a0a 40%, #0d0602 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-death-in-battle .bg-night {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0d0602 0%, #1a0e05 100%);
  opacity: 0.6;
}
.scn-death-in-battle .campfire {
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ff8040 0%, #cc4400 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,128,64,0.4);
  animation: db-fire 3s ease-in-out infinite alternate;
}
.scn-death-in-battle .warrior {
  position: absolute; bottom: 10%; left: 45%; width: 40px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: db-warrior 6s ease-in-out infinite;
}
.scn-death-in-battle .sword {
  position: absolute; bottom: 25%; left: 42%; transform: rotate(30deg);
  width: 4px; height: 50px;
  background: linear-gradient(180deg, #c0b0a0 0%, #908070 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: db-sword 4s ease-in-out infinite;
}
.scn-death-in-battle .fallen {
  position: absolute; bottom: 5%; left: 55%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 20% 20% 40%;
  transform: rotate(20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-death-in-battle .shield {
  position: absolute; bottom: 12%; left: 38%; width: 30px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  transform: rotate(10deg);
}
.scn-death-in-battle .spear {
  position: absolute; bottom: 8%; left: 60%; transform: rotate(-40deg);
  width: 4px; height: 70px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 2px;
  box-shadow: 0 0 2px rgba(0,0,0,0.3);
}
@keyframes db-fire {
  0% { transform: scale(1); opacity: 0.9; }
  30% { transform: scale(1.1); opacity: 1; }
  60% { transform: scale(0.95); opacity: 0.8; }
  100% { transform: scale(1.05); opacity: 0.95; }
}
@keyframes db-warrior {
  0% { transform: rotate(-5deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-2px); }
  50% { transform: rotate(-7deg) translateY(1px); }
  75% { transform: rotate(-4deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes db-sword {
  0% { transform: rotate(30deg) translateX(0); }
  50% { transform: rotate(35deg) translateX(2px); }
  100% { transform: rotate(30deg) translateX(0); }
}

.scn-after-curse { background: linear-gradient(180deg, #2b1a0e 0%, #4a2a1a 40%, #6a3a22 100%), radial-gradient(ellipse at 30% 60%, #7a4a2a 0%, transparent 70%); }
.scn-after-curse .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-after-curse .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-after-curse .desk { position:absolute; bottom:20%; left:35%; width:120px; height:40px; background: linear-gradient(180deg, #5a3a1a 0%, #3a220a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: ac-desk 6s ease-in-out infinite; }
.scn-after-curse .candle { position:absolute; bottom:38%; left:45%; width:10px; height:28px; background: linear-gradient(180deg, #e8d0a0 0%, #b89060 100%); border-radius: 2px; transform-origin: bottom; animation: ac-candle 4s ease-in-out infinite alternate; }
.scn-after-curse .flame { position:absolute; bottom:56%; left:45%; width:6px; height:12px; background: radial-gradient(circle, #ffd060 0%, #ff8040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px #ff8040, 0 0 40px 12px rgba(255,128,64,.4); animation: ac-flame 0.8s ease-in-out infinite alternate; }
.scn-after-curse .figure { position:absolute; bottom:22%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ac-figure 8s ease-in-out infinite; }
.scn-after-curse .shadow { position:absolute; bottom:18%; left:24%; width:40px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); border-radius:50%; animation: ac-shadow 8s ease-in-out infinite; }
@keyframes ac-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ac-candle { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes ac-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9; } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:.8; } }
@keyframes ac-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-5px) rotate(1deg); } }
@keyframes ac-shadow { 0%,100% { transform: scaleX(1) translateX(0); opacity:.5; } 50% { transform: scaleX(1.2) translateX(3px); opacity:.3; } }

.scn-garrick-critique { background: linear-gradient(180deg, #1a1a2e 0%, #2a2030 30%, #4a3040 100%), radial-gradient(ellipse at 50% 80%, #6a4050 0%, transparent 60%); }
.scn-garrick-critique .curtain { position:absolute; top:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a2040 0%, #3a1020 100%); border-radius: 0 0 60% 60% / 0 0 80% 80%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: gc-curtain 15s ease-in-out infinite alternate; }
.scn-garrick-critique .stage { position:absolute; bottom:0; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-garrick-critique .podium { position:absolute; bottom:18%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: gc-podium 5s ease-in-out infinite; }
.scn-garrick-critique .figure-g { position:absolute; bottom:20%; left:35%; width:22px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: gc-figure-g 7s ease-in-out infinite; }
.scn-garrick-critique .critic { position:absolute; bottom:20%; right:25%; width:18px; height:48px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom; animation: gc-critic 9s ease-in-out infinite; }
.scn-garrick-critique .watch { position:absolute; bottom:30%; right:23%; width:10px; height:14px; background: radial-gradient(circle, #c0a060 0%, #806040 100%); border-radius: 20%; box-shadow: 0 0 6px 2px rgba(192,160,96,.4); animation: gc-watch 2s ease-in-out infinite; }
.scn-garrick-critique .spotlight { position:absolute; top:10%; left:40%; width:80px; height:80px; background: radial-gradient(ellipse, rgba(255,240,200,.15) 0%, transparent 100%); border-radius:50%; animation: gc-spotlight 6s ease-in-out infinite alternate; }
@keyframes gc-curtain { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes gc-podium { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes gc-figure-g { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(5deg); } 50% { transform: translateX(-4px) rotate(-3deg); } 75% { transform: translateX(2px) rotate(2deg); } }
@keyframes gc-critic { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(2deg); } }
@keyframes gc-watch { 0%,100% { transform: scale(1); } 50% { transform: scale(1.1); } }
@keyframes gc-spotlight { 0% { opacity:.3; transform: scale(0.9); } 50% { opacity:.6; transform: scale(1.1); } 100% { opacity:.4; transform: scale(1); } }

.scn-cant-of-criticism { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 40%, #5a3a3a 100%), radial-gradient(ellipse at 20% 60%, #6a4a4a 0%, transparent 70%); }
.scn-cant-of-criticism .backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); opacity:.6; }
.scn-cant-of-criticism .easel { position:absolute; bottom:18%; left:30%; width:80px; height:90px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: cc-easel 5s ease-in-out infinite; }
.scn-cant-of-criticism .painting { position:absolute; bottom:24%; left:32%; width:56px; height:60px; background: radial-gradient(circle at 40% 40%, #c09a7a 0%, #8a6050 60%, #5a3a2a 100%); border-radius: 2px; box-shadow: inset 0 0 10px #4a2a1a; animation: cc-painting 8s ease-in-out infinite; }
.scn-cant-of-criticism .scroll { position:absolute; bottom:18%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #d0b880 0%, #a08050 100%); border-radius: 2px; transform-origin: bottom left; animation: cc-scroll 12s ease-in-out infinite; }
.scn-cant-of-criticism .connoisseur { position:absolute; bottom:20%; right:15%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom; animation: cc-connoisseur 7s ease-in-out infinite; }
.scn-cant-of-criticism .pointer { position:absolute; bottom:35%; right:20%; width:4px; height:24px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 2px; transform-origin: bottom; animation: cc-pointer 3s ease-in-out infinite alternate; }
.scn-cant-of-criticism .shadow-cc { position:absolute; bottom:15%; left:28%; width:60px; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); border-radius:50%; animation: cc-shadow 7s ease-in-out infinite; }
@keyframes cc-easel { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes cc-painting { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(-0.5deg); } }
@keyframes cc-scroll { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes cc-connoisseur { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(2deg); } 50% { transform: translateX(2px) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } }
@keyframes cc-pointer { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes cc-shadow { 0%,100% { transform: scaleX(1); opacity:.6; } 50% { transform: scaleX(1.1); opacity:.4; } }

.scn-apollo-invocation { background: linear-gradient(180deg, #3a2a1a 0%, #5a3a20 40%, #7a4a2a 100%), radial-gradient(ellipse at 60% 30%, #c08040 0%, transparent 60%); }
.scn-apollo-invocation .study-wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-apollo-invocation .desk-ai { position:absolute; bottom:15%; left:25%; width:140px; height:50px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2208 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: ai-desk 8s ease-in-out infinite; }
.scn-apollo-invocation .quill { position:absolute; bottom:30%; left:30%; width:4px; height:20px; background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%); border-radius: 2px; transform-origin: bottom; animation: ai-quill 3s ease-in-out infinite alternate; }
.scn-apollo-invocation .globe { position:absolute; bottom:30%; right:30%; width:40px; height:40px; background: radial-gradient(circle at 35% 35%, #8a7a5a 0%, #5a4a2a 100%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ai-globe 20s linear infinite; }
.scn-apollo-invocation .bust { position:absolute; bottom:18%; left:45%; width:24px; height:40px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: ai-bust 6s ease-in-out infinite; }
.scn-apollo-invocation .sunburst { position:absolute; top:10%; left:10%; width:60px; height:60px; background: radial-gradient(circle, #ffc060 0%, #e08020 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 15px #e08020, 0 0 80px 30px rgba(224,128,32,.3); animation: ai-sunburst 5s ease-in-out infinite alternate; }
.scn-apollo-invocation .spark { position:absolute; bottom:38%; left:28%; width:4px; height:4px; background: #ffd080; border-radius:50%; box-shadow: 0 0 10px 3px #ffd080; animation: ai-spark 1.5s ease-in-out infinite; }
@keyframes ai-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ai-quill { 0% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }
@keyframes ai-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ai-bust { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes ai-sunburst { 0% { transform: scale(1); opacity:.7; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.9); opacity:.8; } }
@keyframes ai-spark { 0%,100% { transform: translate(0,0) scale(1); opacity:1; } 50% { transform: translate(4px,-6px) scale(1.5); opacity:.5; } }

/* Scene: didius-dilemma */
.scn-didius-dilemma {
  background: 
    linear-gradient(180deg, #2b1a0e 0%, #4a2e18 40%, #3a2210 100%),
    radial-gradient(ellipse at 50% 20%, #6a3e1a 0%, transparent 70%);
}
.scn-didius-dilemma .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); }
.scn-didius-dilemma .floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); }
.scn-didius-dilemma .table { position:absolute; bottom:35%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #5a3a1e 0%, #3a220e 100%); border-radius: 2%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-didius-dilemma .didius { position:absolute; bottom:35%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a0e 0%, #0e0a06 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dd-walk 6s ease-in-out infinite; }
.scn-didius-dilemma .slips { position:absolute; bottom:42%; left:38%; width:12px; height:18px; background: #8a6a3a; border-radius: 2px; transform: rotate(15deg); box-shadow: 2px -2px 0 #6a4a2a, -2px 4px 0 #7a5a2a; animation: dd-cut 4s ease-in-out infinite; }
.scn-didius-dilemma .pipe-smoke { position:absolute; bottom:50%; left:35%; width:30px; height:40px; background: radial-gradient(circle, rgba(200,160,100,.4) 0%, transparent 100%); filter: blur(8px); animation: dd-smoke 8s ease-in-out infinite; }
.scn-didius-dilemma .candle { position:absolute; bottom:42%; right:30%; width:8px; height:30px; background: linear-gradient(180deg, #a07040 0%, #6a4020 100%); border-radius: 2px; }
.scn-didius-dilemma .candle::after { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:10px; height:12px; background: radial-gradient(circle, #ffd080 0%, #ffa030 60%, transparent 100%); border-radius: 50%; animation: dd-flame 1.5s ease-in-out infinite alternate; }
@keyframes dd-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes dd-cut {
  0% { transform: rotate(15deg) scale(1); }
  25% { transform: rotate(5deg) scale(1.1); }
  50% { transform: rotate(20deg) scale(0.9); }
  75% { transform: rotate(10deg) scale(1.05); }
  100% { transform: rotate(15deg) scale(1); }
}
@keyframes dd-smoke {
  0% { transform: translateY(0) scale(1); opacity:0.3; }
  50% { transform: translateY(-20px) scale(1.5); opacity:0; }
  100% { transform: translateY(0) scale(1); opacity:0.3; }
}
@keyframes dd-flame {
  0% { transform: translateX(-50%) scale(1) rotate(-2deg); }
  100% { transform: translateX(-50%) scale(1.2) rotate(2deg); }
}
/* Scene: yorick-declares */
.scn-yorick-declares {
  background: 
    linear-gradient(180deg, #2a1e12 0%, #4a3220 50%, #3a2618 100%),
    radial-gradient(ellipse at 70% 60%, #6a4a2a 0%, transparent 60%);
}
.scn-yorick-declares .panel { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); }
.scn-yorick-declares .table { position:absolute; bottom:35%; left:10%; width:80%; height:6%; background: linear-gradient(180deg, #5a3a1e 0%, #3a2210 100%); border-radius: 2%; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-yorick-declares .yorick { position:absolute; bottom:35%; left:20%; width:45px; height:75px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yd-bow 5s ease-in-out infinite; }
.scn-yorick-declares .toby-rising { position:absolute; bottom:35%; left:55%; width:50px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: yd-stand 7s ease-in-out infinite; }
.scn-yorick-declares .candle-glow { position:absolute; bottom:42%; left:70%; width:50px; height:50px; background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%); filter: blur(8px); animation: yd-glow 4s ease-in-out infinite alternate; }
.scn-yorick-declares .word-scroll { position:absolute; bottom:38%; left:40%; width:30px; height:10px; background: #8a6a3a; border-radius: 4px; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: yd-unroll 10s ease-in-out infinite; }
@keyframes yd-bow {
  0%,100% { transform: rotate(0) translateX(0); }
  30% { transform: rotate(-5deg) translateX(-5px); }
  60% { transform: rotate(5deg) translateX(5px); }
}
@keyframes yd-stand {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-8px) scale(1.05); }
}
@keyframes yd-glow {
  0% { opacity:0.5; transform: scale(0.9); }
  100% { opacity:1; transform: scale(1.2); }
}
@keyframes yd-unroll {
  0% { transform: rotate(-15deg) scaleX(0.5); }
  50% { transform: rotate(-10deg) scaleX(1.2); }
  100% { transform: rotate(-15deg) scaleX(0.5); }
}
/* Scene: phutatorius-exclaims */
.scn-phutatorius-exclaims {
  background: 
    linear-gradient(180deg, #2a1e12 0%, #3a2618 50%, #1a0e06 100%),
    radial-gradient(ellipse at 40% 30%, #5a3a1e 0%, transparent 70%);
}
.scn-phutatorius-exclaims .curtain { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #4a2a1a 0%, #3a1a0a 50%, #4a2a1a 100%); }
.scn-phutatorius-exclaims .chair { position:absolute; bottom:20%; left:40%; width:60px; height:50px; background: linear-gradient(180deg, #5a3a1e 0%, #3a2210 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-phutatorius-exclaims .phutatorius { position:absolute; bottom:25%; left:45%; width:50px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-jerk 3s ease-in-out infinite; }
.scn-phutatorius-exclaims .chestnut-hot { position:absolute; bottom:35%; left:48%; width:12px; height:14px; background: radial-gradient(circle, #8a4a2a 0%, #4a2a1a 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,100,30,.5); animation: pe-roll 2s linear infinite; }
.scn-phutatorius-exclaims .spark { position:absolute; bottom:38%; left:50%; width:4px; height:4px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 6px 2px #ffa030; animation: pe-spark 0.8s ease-in-out infinite alternate; }
.scn-phutatorius-exclaims .shadow { position:absolute; bottom:20%; left:30%; width:80px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); }
@keyframes pe-jerk {
  0%,100% { transform: rotate(0) translateY(0); }
  15% { transform: rotate(-8deg) translateY(-5px); }
  30% { transform: rotate(5deg) translateY(2px); }
  45% { transform: rotate(-3deg) translateY(-1px); }
  60% { transform: rotate(2deg) translateY(0); }
}
@keyframes pe-roll {
  0% { transform: translateX(0) rotate(0); }
  100% { transform: translateX(15px) rotate(360deg); }
}
@keyframes pe-spark {
  0% { transform: scale(1) translateY(0); opacity:0.8; }
  100% { transform: scale(2) translateY(-3px); opacity:0.2; }
}
/* Scene: chestnut-accident */
.scn-chestnut-accident {
  background: 
    linear-gradient(180deg, #1a0e06 0%, #2a1a0e 40%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 60%);
}
.scn-chestnut-accident .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:60%; background: repeating-linear-gradient(45deg, #2a1a0e 0px, #2a1a0e 10px, #3a2210 10px, #3a2210 20px); }
.scn-chestnut-accident .table-leg { position:absolute; bottom:35%; left:60%; width:10px; height:40px; background: linear-gradient(180deg, #5a3a1e 0%, #3a2210 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-chestnut-accident .chestnut-rolling { position:absolute; bottom:40%; left:30%; width:16px; height:18px; background: radial-gradient(circle, #7a4a2a 0%, #4a2a1a 100%); border-radius: 50%; animation: ca-roll 3s linear infinite; }
.scn-chestnut-accident .ink-splash { position:absolute; bottom:42%; left:45%; width:30px; height:20px; background: radial-gradient(ellipse, #0a0a1a 0%, transparent 100%); transform: rotate(20deg); animation: ca-splash 2s ease-out infinite; }
.scn-chestnut-accident .silhouette { position:absolute; bottom:30%; left:50%; width:70px; height:90px; background: linear-gradient(180deg, #1a0e06 0%, #0a0604 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: translateX(-50%); animation: ca-flinch 4s ease-in-out infinite; }
.scn-chestnut-accident .flying-paper { position:absolute; bottom:50%; left:20%; width:20px; height:14px; background: #8a6a3a; border-radius: 2px; transform: rotate(30deg); box-shadow: 2px 2px 0 rgba(0,0,0,.3); animation: ca-fly 5s ease-in-out infinite; }
@keyframes ca-roll {
  0% { transform: translateX(0) rotate(0); }
  100% { transform: translateX(40px) rotate(720deg); }
}
@keyframes ca-splash {
  0% { transform: rotate(20deg) scale(1); opacity:1; }
  100% { transform: rotate(20deg) scale(1.5); opacity:0; }
}
@keyframes ca-flinch {
  0%,100% { transform: translateX(-50%) rotate(0); }
  20% { transform: translateX(-50%) rotate(-5deg) translateY(-2px); }
  40% { transform: translateX(-50%) rotate(3deg) translateY(0); }
}
@keyframes ca-fly {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(40deg) translateY(-15px); }
  100% { transform: rotate(30deg) translateY(0); }
}

/* scene: white-bear-discourse (funny, dim interior) */
.scn-white-bear-discourse { background: linear-gradient(180deg, #2a1f1a 0%, #3d2e26 50%, #1f1814 100%), radial-gradient(ellipse at 50% 100%, #4a3a30 0%, transparent 60%); }
.scn-white-bear-discourse .room-walls { position:absolute; inset:0; background: linear-gradient(90deg, rgba(0,0,0,.3) 0%, transparent 50%, rgba(0,0,0,.3) 100%); }
.scn-white-bear-discourse .chalkboard { position:absolute; top:10%; left:10%; width:50%; height:40%; background: linear-gradient(135deg, #2b3a2a 0%, #1d2a1c 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4); }
.scn-white-bear-discourse .bear-wbd { position:absolute; bottom:20%; left:25%; width:100px; height:120px; background: radial-gradient(ellipse at 50% 30%, #4a3a30 0%, #2a1f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wbd-bear 8s ease-in-out infinite; }
.scn-white-bear-discourse .lamp-wbd { position:absolute; top:5%; right:20%; width:16px; height:40px; background: linear-gradient(180deg, #c89a6b 0%, #a07040 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 20px 10px rgba(200,154,107,.3); animation: wbd-lamp 6s ease-in-out infinite alternate; }
.scn-white-bear-discourse .bookstack { position:absolute; bottom:8%; left:10%; width:80px; height:50px; background: repeating-linear-gradient(0deg, #6b4a3a 0px, #6b4a3a 8px, #4a3020 8px, #4a3020 16px, #7a5a4a 16px, #7a5a4a 24px, #3a2010 24px, #3a2010 32px, #8a6a5a 32px, #8a6a5a 40px); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-white-bear-discourse .glow-wbd { position:absolute; top:0; right:10%; width:120px; height:120px; background: radial-gradient(ellipse, rgba(200,154,107,.25) 0%, transparent 70%); pointer-events: none; }
@keyframes wbd-bear { 0%,100% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-5px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg) scale(1.02); } 75% { transform: translateY(-3px) rotate(2deg); } }
@keyframes wbd-lamp { 0% { opacity:.8; transform: rotate(-3deg); } 50% { opacity:1; transform: rotate(3deg); } 100% { opacity:.9; transform: rotate(0deg); } }

/* scene: white-bear-exercise (funny, dim interior – close-up desk) */
.scn-white-bear-exercise { background: linear-gradient(180deg, #1e1814 0%, #2d221c 50%, #18120e 100%), radial-gradient(ellipse at 50% 0%, #3d2e26 0%, transparent 60%); }
.scn-white-bear-exercise .desk { position:absolute; bottom:10%; left:5%; width:90%; height:30%; background: linear-gradient(180deg, #6b4a3a 0%, #4a3020 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-white-bear-exercise .bear-wbe { position:absolute; bottom:30%; left:20%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 40%, #4a3a30 0%, #2a1f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wbe-bear 10s ease-in-out infinite; }
.scn-white-bear-exercise .paper { position:absolute; bottom:18%; left:30%; width:60px; height:40px; background: linear-gradient(135deg, #e8dcc8 0%, #c8b89a 100%); border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: wbe-paper 12s ease-in-out infinite alternate; }
.scn-white-bear-exercise .quill { position:absolute; bottom:22%; left:45%; width:4px; height:30px; background: linear-gradient(180deg, #d4b896 0%, #a08060 100%); border-radius: 2px; transform: rotate(15deg); transform-origin: bottom center; animation: wbe-quill 3s ease-in-out infinite; }
.scn-white-bear-exercise .candle { position:absolute; bottom:20%; right:20%; width:12px; height:40px; background: linear-gradient(180deg, #e8c89a 0%, #c8a070 100%); border-radius: 4px; box-shadow: 0 0 15px 5px rgba(200,120,50,.3); }
.scn-white-bear-exercise .candlelight { position:absolute; bottom:40%; right:18%; width:40px; height:40px; background: radial-gradient(ellipse, rgba(255,200,100,.2) 0%, transparent 70%); pointer-events: none; animation: wbe-flame 4s ease-in-out infinite alternate; }
@keyframes wbe-bear { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(2deg); } 60% { transform: translateY(-2px) rotate(-1deg) scale(1.01); } }
@keyframes wbe-paper { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes wbe-quill { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(40deg); } }
@keyframes wbe-flame { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.7; transform: scale(.9); } }

/* scene: white-bear-questions (funny, dim interior – vertical shaft with question marks) */
.scn-white-bear-questions { background: linear-gradient(180deg, #1a1410 0%, #2a1e18 50%, #0f0b08 100%), radial-gradient(ellipse at 50% 0%, #3d2a20 0%, transparent 70%); }
.scn-white-bear-questions .bg-wbq { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(80,60,40,.2) 0%, transparent 70%); }
.scn-white-bear-questions .bear-wbq { position:absolute; bottom:5%; left:50%; width:100px; height:130px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #4a3a30 0%, #2a1f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wbq-bear 6s ease-in-out infinite; }
.scn-white-bear-questions .q-1 { position:absolute; top:10%; left:20%; width:20px; height:20px; background: radial-gradient(circle, #c8a070 0%, transparent 70%); border-radius: 50%; opacity:.6; animation: wbq-q1 12s linear infinite; }
.scn-white-bear-questions .q-2 { position:absolute; top:25%; left:60%; width:16px; height:16px; background: radial-gradient(circle, #c8a070 0%, transparent 70%); border-radius: 50%; opacity:.5; animation: wbq-q2 15s linear infinite reverse; }
.scn-white-bear-questions .q-3 { position:absolute; top:40%; left:30%; width:24px; height:24px; background: radial-gradient(circle, #d4b896 0%, transparent 70%); border-radius: 50%; opacity:.4; animation: wbq-q3 18s linear infinite; }
.scn-white-bear-questions .q-4 { position:absolute; top:55%; left:70%; width:18px; height:18px; background: radial-gradient(circle, #d4b896 0%, transparent 70%); border-radius: 50%; opacity:.5; animation: wbq-q4 20s linear infinite alternate; }
.scn-white-bear-questions .ground-wbq { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, #1a1410 100%); }
@keyframes wbq-bear { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-5px) scale(1.02); } }
@keyframes wbq-q1 { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-30px) scale(1.2); opacity:.8; } 100% { transform: translateY(-60px) scale(.8); opacity:.3; } }
@keyframes wbq-q2 { 0% { transform: translateY(0) scale(1); opacity:.5; } 50% { transform: translateY(-40px) scale(1.1); opacity:.7; } 100% { transform: translateY(-80px) scale(.9); opacity:.2; } }
@keyframes wbq-q3 { 0% { transform: translateY(0) rotate(0deg); opacity:.4; } 50% { transform: translateY(-50px) rotate(180deg); opacity:.6; } 100% { transform: translateY(-100px) rotate(360deg); opacity:.1; } }
@keyframes wbq-q4 { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-70px) scale(.7); } }

/* scene: white-bear-family (funny, dim interior – row of bear silhouettes) */
.scn-white-bear-family { background: linear-gradient(180deg, #1f1814 0%, #2d221c 50%, #140f0c 100%), radial-gradient(ellipse at 50% 100%, #3d2a20 0%, transparent 60%); }
.scn-white-bear-family .wall-family { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, rgba(0,0,0,.3) 0%, transparent 50%, rgba(0,0,0,.3) 100%); }
.scn-white-bear-family .bear-pa { position:absolute; bottom:15%; left:15%; width:90px; height:120px; background: radial-gradient(ellipse at 50% 30%, #4a3a30 0%, #2a1f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wbf-bear-pa 12s ease-in-out infinite; }
.scn-white-bear-family .bear-ma { position:absolute; bottom:15%; left:40%; width:80px; height:110px; background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wbf-bear-ma 14s ease-in-out infinite alternate; }
.scn-white-bear-family .bear-baby { position:absolute; bottom:15%; right:20%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wbf-bear-baby 10s ease-in-out infinite; }
.scn-white-bear-family .picture-frame { position:absolute; top:10%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 4px; box-shadow: 0 0 0 4px #4a3a2a, 0 4px 8px rgba(0,0,0,.4); }
.scn-white-bear-family .lantern-family { position:absolute; top:45%; left:5%; width:12px; height:30px; background: linear-gradient(180deg, #d4a070 0%, #a07040 100%); border-radius: 4px; box-shadow: 0 0 20px 8px rgba(200,120,50,.3); animation: wbf-lantern 8s ease-in-out infinite alternate; }
.scn-white-bear-family .light-family { position:absolute; top:40%; left:2%; width:60px; height:60px; background: radial-gradient(ellipse, rgba(200,120,50,.2) 0%, transparent 70%); pointer-events: none; }
@keyframes wbf-bear-pa { 0%,100% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-3px) rotate(1deg); } 66% { transform: translateY(-1px) rotate(-0.5deg); } }
@keyframes wbf-bear-ma { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(.98); } }
@keyframes wbf-bear-baby { 0%,100% { transform: translateY(0) rotate(2deg); } 30% { transform: translateY(-6px) rotate(-1deg); } 60% { transform: translateY(-2px) rotate(1deg) scale(1.03); } }
@keyframes wbf-lantern { 0% { opacity:.7; transform: rotate(-5deg); } 50% { opacity:1; transform: rotate(5deg); } 100% { opacity:.8; transform: rotate(0deg); } }

/* death-inn-capitulation */
.scn-death-inn-capitulation {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-death-inn-capitulation .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 40%, #3a2a1a 100%); border-bottom:2px solid #2a1e14; }
.scn-death-inn-capitulation .table { position:absolute; bottom:30%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4px; box-shadow: 0 8px 16px rgba(0,0,0,.4); }
.scn-death-inn-capitulation .chair { position:absolute; bottom:30%; left:35%; width:14%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; transform-origin: bottom center; animation: di-chair 6s ease-in-out infinite; }
.scn-death-inn-capitulation .figure { position:absolute; bottom:30%; left:38%; width:10%; height:24%; background: linear-gradient(180deg, #2a1e14 0%, #1a0e04 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: di-figure 4s ease-in-out infinite; }
.scn-death-inn-capitulation .candle { position:absolute; bottom:44%; left:48%; width:2%; height:10%; background: linear-gradient(180deg, #c8a060 0%, #4a2a1a 100%); border-radius:40% 40% 10% 10%; box-shadow: 0 0 20px 8px #d4a060; animation: di-candle 3s ease-in-out infinite alternate; }
.scn-death-inn-capitulation .bottle { position:absolute; bottom:38%; left:55%; width:4%; height:14%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-death-inn-capitulation .shadow-dance { position:absolute; bottom:30%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%); animation: di-shadow 5s ease-in-out infinite alternate; }
@keyframes di-chair { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2%) rotate(-2deg) } }
@keyframes di-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3%) translateY(-2%) rotate(1deg) } 50% { transform: translateX(-1%) translateY(0) rotate(-2deg) } 75% { transform: translateX(2%) translateY(-1%) rotate(0deg) } }
@keyframes di-candle { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 15px 6px #d4a060; } 50% { transform: scaleY(1.05) scaleX(0.95); box-shadow: 0 0 25px 10px #e0b070; } 100% { transform: scaleY(0.95) scaleX(1.02); box-shadow: 0 0 18px 8px #c89050; } }
@keyframes di-shadow { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.1) } 100% { opacity:.4; transform: scaleY(0.9) } }

/* abbeville-inn */
.scn-abbeville-inn {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a2a2a 100%), radial-gradient(ellipse at 50% 70%, #3a2a2a 0%, transparent 70%);
}
.scn-abbeville-inn .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-abbeville-inn .bed { position:absolute; bottom:25%; left:10%; width:35%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-abbeville-inn .figure-angry { position:absolute; bottom:25%; left:30%; width:12%; height:30%; background: linear-gradient(180deg, #2a1e14 0%, #1a0e04 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ai-angry 2s ease-in-out infinite; }
.scn-abbeville-inn .figure-innkeeper { position:absolute; bottom:25%; left:45%; width:10%; height:28%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ai-innkeeper 3s ease-in-out infinite; }
.scn-abbeville-inn .lamp { position:absolute; bottom:45%; left:20%; width:4%; height:12%; background: radial-gradient(circle, #d4a060 0%, #4a2a1a 70%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 30px 12px #d4a060; animation: ai-lamp 4s ease-in-out infinite alternate; }
.scn-abbeville-inn .clock { position:absolute; bottom:50%; right:15%; width:8%; height:12%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:50%; box-shadow: inset 0 -2px 4px rgba(255,255,255,.1); animation: ai-clock 12s linear infinite; }
.scn-abbeville-inn .curtain { position:absolute; bottom:30%; left:0; width:10%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:0 30% 30% 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.3); animation: ai-curtain 8s ease-in-out infinite alternate; }
@keyframes ai-angry { 0%,100% { transform: translateX(0) rotate(0deg) } 10% { transform: translateX(-2%) rotate(-5deg) } 30% { transform: translateX(2%) rotate(5deg) } 60% { transform: translateX(-1%) rotate(-3deg) } }
@keyframes ai-innkeeper { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3%) } }
@keyframes ai-lamp { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.9; transform: scale(0.95) } }
@keyframes ai-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes ai-curtain { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-2%) scaleX(0.9) } 100% { transform: translateX(1%) scaleX(1.05) } }

/* wheels-of-life */
.scn-wheels-of-life {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-wheels-of-life .stable-ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-wheels-of-life .post-chaise { position:absolute; bottom:20%; left:20%; width:40%; height:30%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-wheels-of-life .wheel { position:absolute; bottom:10%; left:25%; width:15%; height:15%; background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 80%); border-radius:50%; border:4px solid #6a5a4a; animation: wo-wheel 2s linear infinite; }
.scn-wheels-of-life .figure-hustle { position:absolute; bottom:22%; left:40%; width:10%; height:25%; background: linear-gradient(180deg, #2a1e14 0%, #1a0e04 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wo-hustle 0.8s ease-in-out infinite; }
.scn-wheels-of-life .lantern { position:absolute; bottom:40%; left:30%; width:3%; height:10%; background: radial-gradient(circle, #d4a060 0%, #4a2a1a 70%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 20px 8px #d4a060; animation: wo-lantern 2s ease-in-out infinite alternate; }
.scn-wheels-of-life .mailbag { position:absolute; bottom:23%; left:35%; width:8%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:20% 20% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: wo-mailbag 5s ease-in-out infinite; }
.scn-wheels-of-life .sparks { position:absolute; bottom:40%; left:28%; width:2%; height:2%; background: #ffd080; border-radius:50%; box-shadow: 0 0 6px 2px #ffd080, 0 0 12px 4px #ffc060; animation: wo-sparks 0.3s linear infinite; }
@keyframes wo-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes wo-hustle { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-5%) rotate(3deg) } }
@keyframes wo-lantern { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.2) } 100% { opacity:.8; transform: scaleY(0.9) } }
@keyframes wo-mailbag { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-3%) translateY(2%) } }
@keyframes wo-sparks { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-10%) scale(0.8); opacity:.6 } 100% { transform: translateY(0) scale(1.2); opacity:0 } }

/* vow-of-beard */
.scn-vow-of-beard {
  background: linear-gradient(180deg, #7a8a9a 0%, #b0c0d0 40%, #d0d8e0 100%), radial-gradient(ellipse at 50% 30%, #d0d8e0 0%, transparent 80%);
}
.scn-vow-of-beard .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a7a8a 0%, #a0b0c0 40%, transparent 100%); }
.scn-vow-of-beard .window { position:absolute; top:10%; left:20%; width:40%; height:50%; background: linear-gradient(180deg, #c0d0e0 0%, #a0b0c0 100%); border:8px solid #5a4a3a; border-radius:10px; box-shadow: inset 0 0 30px rgba(255,255,200,.2); }
.scn-vow-of-beard .figure-man { position:absolute; bottom:15%; left:30%; width:12%; height:35%; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vo-man 6s ease-in-out infinite; }
.scn-vow-of-beard .figure-woman { position:absolute; bottom:15%; left:45%; width:10%; height:32%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vo-woman 5s ease-in-out infinite; }
.scn-vow-of-beard .beard { position:absolute; bottom:30%; left:31%; width:8%; height:12%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius:30% 30% 50% 50%; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: vo-beard 4s ease-in-out infinite alternate; }
.scn-vow-of-beard .table-shaver { position:absolute; bottom:18%; left:50%; width:15%; height:8%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius:4px; transform:translateX(-50%); box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-vow-of-beard .razor { position:absolute; bottom:18%; left:52%; width:2%; height:8%; background: linear-gradient(180deg, #b0a090 0%, #6a5a4a 100%); border-radius:50% 50% 10% 10%; transform:rotate(20deg); animation: vo-razor 3s ease-in-out infinite alternate; }
@keyframes vo-man { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2%) rotate(1deg) } }
@keyframes vo-woman { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-1%) rotate(-2deg) } 70% { transform: translateY(2%) rotate(1deg) } }
@keyframes vo-beard { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.1) translateY(-2%) } 100% { transform: scaleY(0.95) translateY(1%) } }
@keyframes vo-razor { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(15deg) } }

.scn-namur-wound-recovery {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2240 40%, #3a2a4a 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-namur-wound-recovery .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1a2e 0%, #261e36 100%);
  animation: nwr-wall 15s ease-in-out infinite alternate;
}
.scn-namur-wound-recovery .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #2a1e14 0%, #3a2a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-namur-wound-recovery .bed {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 35%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8px 8px 20px 20px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: nwr-bed 8s ease-in-out infinite alternate;
}
.scn-namur-wound-recovery .figure-wounded {
  position: absolute; bottom: 18%; left: 30%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nwr-figure 6s ease-in-out infinite;
}
.scn-namur-wound-recovery .bandage {
  position: absolute; bottom: 20%; left: 34%; width: 3%; height: 6%;
  background: #8a7a6a;
  border-radius: 0 0 4px 4px;
  transform: rotate(-10deg);
  animation: nwr-band 4s ease-in-out infinite alternate;
}
.scn-namur-wound-recovery .window-moon {
  position: absolute; top: 8%; right: 12%; width: 18%; height: 28%;
  background: linear-gradient(180deg, #3a4a6a 0%, #2a3a5a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 30px rgba(100,140,200,0.3);
  animation: nwr-moon 20s ease-in-out infinite alternate;
}
.scn-namur-wound-recovery .candle-faint {
  position: absolute; bottom: 10%; left: 10%; width: 2%; height: 6%;
  background: #4a3a2a;
  border-radius: 2px;
  box-shadow: 0 0 8px 4px rgba(200,150,80,0.2);
  animation: nwr-candle 3s ease-in-out infinite;
}
@keyframes nwr-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes nwr-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes nwr-figure { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-2deg); } }
@keyframes nwr-band { 0% { opacity: 0.6; transform: rotate(-10deg); } 100% { opacity: 1; transform: rotate(-5deg); } }
@keyframes nwr-moon { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes nwr-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } 100% { transform: scaleY(1); } }

.scn-wound-discourse {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 20%, #4a3020 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-wound-discourse .interior-warm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  opacity: 0.6;
}
.scn-wound-discourse .fireplace-glow {
  position: absolute; bottom: 10%; left: 5%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at 50% 100%, #ff8c40 0%, #a04020 60%, transparent 80%);
  border-radius: 0 0 20px 20px;
  animation: wd-fire 4s ease-in-out infinite alternate;
}
.scn-wound-discourse .chair-uncle {
  position: absolute; bottom: 5%; right: 25%; width: 25%; height: 40%;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-wound-discourse .figure-uncle {
  position: absolute; bottom: 10%; right: 30%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: wd-figure 6s ease-in-out infinite;
}
.scn-wound-discourse .table-books {
  position: absolute; bottom: 2%; right: 15%; width: 18%; height: 12%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-wound-discourse .candle-bright {
  position: absolute; bottom: 12%; right: 20%; width: 2%; height: 7%;
  background: #7a5a3a;
  border-radius: 2px;
  box-shadow: 0 0 12px 6px rgba(255,200,100,0.5);
  animation: wd-candle 2s ease-in-out infinite alternate;
}
.scn-wound-discourse .visitors-silhouette {
  position: absolute; bottom: 10%; left: 15%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%;
  opacity: 0.7;
  animation: wd-visitors 10s ease-in-out infinite alternate;
}
@keyframes wd-fire { 0% { transform: scaleY(1); opacity: 0.7; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(0.9); opacity: 0.6; } }
@keyframes wd-figure { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes wd-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } 100% { transform: scaleY(1); } }
@keyframes wd-visitors { 0% { transform: translateX(-5px); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }

.scn-siege-perplexities {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #5a4a3a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 70% 20%, #6a5030 0%, transparent 50%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-siege-perplexities .bg-funny {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  opacity: 0.5;
}
.scn-siege-perplexities .desk {
  position: absolute; bottom: 5%; left: 10%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%);
  border-radius: 4px;
  box-shadow: 0 6px 14px rgba(0,0,0,0.5);
}
.scn-siege-perplexities .map-spread {
  position: absolute; bottom: 8%; left: 15%; width: 50%; height: 12%;
  background: #6a5a3a;
  border-radius: 2px 20px 20px 2px;
  transform: rotate(-3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sp-map 5s ease-in-out infinite alternate;
}
.scn-siege-perplexities .figure-scratching {
  position: absolute; bottom: 12%; right: 20%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: sp-scratch 2s ease-in-out infinite;
}
.scn-siege-perplexities .book-stack {
  position: absolute; bottom: 8%; left: 5%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
.scn-siege-perplexities .chair-tilt {
  position: absolute; bottom: 0; right: 15%; width: 20%; height: 35%;
  background: linear-gradient(135deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  transform: rotate(5deg);
  animation: sp-chair 3s ease-in-out infinite alternate;
}
.scn-siege-perplexities .candle-flicker {
  position: absolute; bottom: 20%; left: 30%; width: 2%; height: 8%;
  background: #7a5a3a;
  border-radius: 2px;
  box-shadow: 0 0 14px 8px rgba(255,200,100,0.6);
  animation: sp-candle 1.5s ease-in-out infinite;
}
.scn-siege-perplexities .question-mark-shape {
  position: absolute; top: 15%; left: 60%; width: 8%; height: 14%;
  background: #8a7a5a;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  opacity: 0.3;
  animation: sp-qmark 6s ease-in-out infinite;
}
@keyframes sp-map { 0% { transform: rotate(-3deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-3deg); } }
@keyframes sp-scratch { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes sp-chair { 0% { transform: rotate(5deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(5deg); } }
@keyframes sp-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.8); } 100% { transform: scaleY(1); } }
@keyframes sp-qmark { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-5px) rotate(-10deg); } 75% { transform: translateY(5px) rotate(10deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-fortification-obscurity {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 30%, #4a3a2a 100%),
    radial-gradient(ellipse at 30% 80%, #5a4020 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-fortification-obscurity .bg-amused {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  opacity: 0.4;
}
.scn-fortification-obscurity .model-fort {
  position: absolute; bottom: 5%; left: 10%; width: 40%; height: 30%;
  background: #6a5a3a;
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: fo-fort 7s ease-in-out infinite alternate;
}
.scn-fortification-obscurity .figure-puzzled {
  position: absolute; bottom: 12%; right: 20%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: fo-figure 4s ease-in-out infinite;
}
.scn-fortification-obscurity .papers-scattered {
  position: absolute; bottom: 8%; left: 5%; width: 30%; height: 8%;
  background: #7a6a4a;
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: fo-papers 6s ease-in-out infinite alternate;
}
.scn-fortification-obscurity .inkwell {
  position: absolute; bottom: 10%; left: 40%; width: 4%; height: 6%;
  background: #2a1a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-fortification-obscurity .quill {
  position: absolute; bottom: 14%; left: 42%; width: 2%; height: 12%;
  background: #6a5a3a;
  transform: rotate(-20deg);
  border-radius: 0 0 50% 50%;
  animation: fo-quill 3s ease-in-out infinite;
}
.scn-fortification-obscurity .candle-drip {
  position: absolute; bottom: 20%; right: 30%; width: 2%; height: 10%;
  background: #7a5a3a;
  border-radius: 2px;
  box-shadow: 0 0 10px 4px rgba(255,200,100,0.4);
  animation: fo-candle 2.5s ease-in-out infinite alternate;
}
.scn-fortification-obscurity .shadow-confused {
  position: absolute; bottom: 5%; left: 20%; width: 30%; height: 20%;
  background: #1a0a00;
  opacity: 0.2;
  border-radius: 50%;
  filter: blur(10px);
  animation: fo-shadow 8s ease-in-out infinite;
}
@keyframes fo-fort { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes fo-figure { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes fo-papers { 0% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-5deg); } }
@keyframes fo-quill { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-20deg); } }
@keyframes fo-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } 100% { transform: scaleY(1); } }
@keyframes fo-shadow { 0% { transform: scale(1); opacity: 0.2; } 50% { transform: scale(1.1); opacity: 0.3; } 100% { transform: scale(1); opacity: 0.2; } }

/* feet-extraction */
.scn-feet-extraction {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #2a1a0a 100%), radial-gradient(ellipse at 40% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-feet-extraction .bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%); }
.scn-feet-extraction .wall { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:0 0 20% 20% / 0 0 10% 10%; }
.scn-feet-extraction .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-feet-extraction .father { position:absolute; bottom:28%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fe-father 3s ease-in-out infinite alternate; }
.scn-feet-extraction .doctor { position:absolute; bottom:25%; right:25%; width:22px; height:48px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fe-doctor 4s ease-in-out infinite; }
.scn-feet-extraction .baby-feet { position:absolute; bottom:45%; right:28%; width:12px; height:8px; background: #7a5a3a; border-radius:50% 50% 20% 20%; transform: rotate(-20deg); animation: fe-feet 2s ease-in-out infinite; }
.scn-feet-extraction .candle { position:absolute; bottom:30%; left:10%; width:4px; height:20px; background: linear-gradient(180deg, #c08040 0%, #604020 100%); border-radius:2px; }
.scn-feet-extraction .candle-glow { position:absolute; bottom:30%; left:10%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%); border-radius:50%; animation: fe-glow 1s ease-in-out infinite alternate; }
.scn-feet-extraction .window { position:absolute; top:10%; left:60%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, #0a0500 100%); border:2px solid #4a3a2a; border-radius:4px; box-shadow: inset 0 0 10px #4a3a2a; }
@keyframes fe-father { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes fe-doctor { 0% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes fe-feet { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes fe-glow { 0% { opacity:.6; transform: scale(1); } 100% { opacity:1; transform: scale(1.2); } }

/* caesarian-geniuses */
.scn-caesarian-geniuses {
  background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3e 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, transparent 70%);
}
.scn-caesarian-geniuses .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-caesarian-geniuses .light-beam { position:absolute; top:0; left:50%; width:60px; height:100%; transform:translateX(-50%); background: linear-gradient(180deg, rgba(255,220,150,.3) 0%, transparent 60%); clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%); animation: cg-beam 8s ease-in-out infinite alternate; }
.scn-caesarian-geniuses .baby-descending { position:absolute; top:10%; left:50%; width:16px; height:20px; transform:translateX(-50%); background: #4a3a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cg-baby 7s ease-in-out infinite; }
.scn-caesarian-geniuses .caesar { position:absolute; top:25%; left:20%; width:18px; height:30px; background: #2a2a3e; border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: cg-figure 12s ease-in-out infinite; }
.scn-caesarian-geniuses .scipio { position:absolute; top:30%; right:15%; width:18px; height:28px; background: #2a2a3e; border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: cg-figure 14s ease-in-out infinite 2s; }
.scn-caesarian-geniuses .edward { position:absolute; bottom:35%; left:30%; width:18px; height:26px; background: #2a2a3e; border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: cg-figure 16s ease-in-out infinite 4s; }
.scn-caesarian-geniuses .torquatus { position:absolute; bottom:25%; right:30%; width:18px; height:30px; background: #2a2a3e; border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: cg-figure 10s ease-in-out infinite 6s; }
.scn-caesarian-geniuses .hermes { position:absolute; top:50%; left:5%; width:20px; height:32px; background: #2a2a3e; border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: cg-figure 18s ease-in-out infinite 1s; }
.scn-caesarian-geniuses .halo { position:absolute; top:5%; left:50%; width:100px; height:100px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,200,100,.2) 0%, transparent 70%); border-radius:50%; animation: cg-halo 6s ease-in-out infinite alternate; }
@keyframes cg-beam { 0% { opacity:.3; transform:translateX(-50%) scaleY(.8); } 50% { opacity:.6; transform:translateX(-50%) scaleY(1); } 100% { opacity:.4; transform:translateX(-50%) scaleY(.9); } }
@keyframes cg-baby { 0% { top:10%; opacity:0; } 20% { opacity:1; } 80% { opacity:1; } 100% { top:80%; opacity:0; } }
@keyframes cg-figure { 0%,100% { transform: translateY(0) rotate(0) scale(1); } 50% { transform: translateY(-10px) rotate(10deg) scale(1.05); } }
@keyframes cg-halo { 0% { transform:translateX(-50%) scale(.8); opacity:.3; } 100% { transform:translateX(-50%) scale(1.2); opacity:.6; } }

/* bobby-confirms */
.scn-bobby-confirms {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%), radial-gradient(ellipse at 60% 40%, #5a4a3a 0%, transparent 70%);
}
.scn-bobby-confirms .room { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a0a 0%, #4a3a2a 50%, #1a0a00 100%); }
.scn-bobby-confirms .cradle { position:absolute; bottom:20%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 30% 30%; animation: bc-cradle 5s ease-in-out infinite; }
.scn-bobby-confirms .baby-bobby { position:absolute; bottom:22%; left:42%; width:12px; height:16px; background: #4a3a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bc-baby 5s ease-in-out infinite; }
.scn-bobby-confirms .father { position:absolute; bottom:25%; left:60%; width:18px; height:45px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: bc-father 4s ease-in-out infinite alternate; }
.scn-bobby-confirms .mother { position:absolute; bottom:25%; left:25%; width:18px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: bc-mother 6s ease-in-out infinite; }
.scn-bobby-confirms .window { position:absolute; top:10%; right:10%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, #0a0500 100%); border:2px solid #4a3a2a; border-radius:4px; }
.scn-bobby-confirms .clock { position:absolute; top:15%; left:20%; width:14px; height:20px; background: #6a5a4a; border-radius:20%; transform:rotate(10deg); animation: bc-clock 8s linear infinite; }
.scn-bobby-confirms .dust { position:absolute; top:30%; left:50%; width:4px; height:4px; background: rgba(200,180,150,.3); border-radius:50%; animation: bc-dust 12s linear infinite; }
@keyframes bc-cradle { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes bc-baby { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes bc-father { 0% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes bc-mother { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes bc-clock { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(.9); } 100% { transform: rotate(10deg) scaleY(1); } }
@keyframes bc-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 10% { opacity:.6; } 90% { opacity:.6; } 100% { transform: translate(-30px, -50px) scale(0); opacity:0; } }

/* slop-the-fittest */
.scn-slop-the-fittest {
  background: linear-gradient(180deg, #4a3a2a 0%, #5a4a3a 30%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #6a5a4a 0%, transparent 70%);
}
.scn-slop-the-fittest .study { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #5a4a3a 50%, #2a1a0a 100%); }
.scn-slop-the-fittest .desk { position:absolute; bottom:10%; left:30%; right:30%; height:25%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:4% 4% 0 0; }
.scn-slop-the-fittest .book { position:absolute; bottom:15%; left:35%; width:30px; height:20px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:2px; transform: rotate(-5deg); animation: slop-book 6s ease-in-out infinite alternate; }
.scn-slop-the-fittest .forceps { position:absolute; bottom:30%; left:55%; width:8px; height:40px; background: #9a8a7a; border-radius:20% 20% 40% 40%; transform-origin: top center; animation: slop-forceps 3s ease-in-out infinite; }
.scn-slop-the-fittest .dr-slop { position:absolute; bottom:20%; right:20%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius:30% 30% 40% 40% / 50% 50% 40% 40%; animation: slop-doctor 4s ease-in-out infinite alternate; }
.scn-slop-the-fittest .candle { position:absolute; bottom:25%; left:45%; width:4px; height:18px; background: linear-gradient(180deg, #c08040 0%, #604020 100%); border-radius:2px; }
.scn-slop-the-fittest .candle-glow { position:absolute; bottom:25%; left:45%; width:24px; height:24px; background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%); border-radius:50%; animation: slop-glow 2s ease-in-out infinite alternate; }
.scn-slop-the-fittest .shelf { position:absolute; top:20%; left:10%; right:60%; height:4px; background: #6a4a3a; border-radius:2px; box-shadow: 0 8px 0 #6a4a3a, 0 16px 0 #6a4a3a; }
@keyframes slop-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes slop-forceps { 0% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(20deg) scaleY(.9); } 100% { transform: rotate(0) scaleY(1); } }
@keyframes slop-doctor { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes slop-glow { 0% { opacity:.6; transform: scale(.8); } 100% { opacity:1; transform: scale(1.1); } }

.scn-great-men-dying {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 40%, #1a0f06 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-great-men-dying .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: gmd-wall 20s ease-in-out infinite alternate;
}
.scn-great-men-dying .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #2a1a0e 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
}
.scn-great-men-dying .chair {
  position:absolute; bottom:22%; left:50%; width:60px; height:80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,.7);
  animation: gmd-chair 6s ease-in-out infinite;
}
.scn-great-men-dying .candle {
  position:absolute; bottom:40%; left:55%; width:6px; height:18px;
  background: linear-gradient(180deg, #d4a060 0%, #a08040 100%);
  border-radius: 10%;
  animation: gmd-candle 8s ease-in-out infinite alternate;
}
.scn-great-men-dying .candle-glow {
  position:absolute; bottom:38%; left:55%; width:50px; height:50px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,.3) 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  filter: blur(8px);
  animation: gmd-glow 3s ease-in-out infinite alternate;
}
.scn-great-men-dying .figure {
  position:absolute; bottom:22%; left:50%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a0e 0%, #0a0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gmd-figure 4s ease-in-out infinite;
}
.scn-great-men-dying .book {
  position:absolute; bottom:18%; left:48%; width:16px; height:12px;
  background: linear-gradient(135deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,.5);
  animation: gmd-book 10s ease-in-out infinite;
}
@keyframes gmd-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes gmd-chair { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) scale(1.01) } }
@keyframes gmd-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(1) } }
@keyframes gmd-glow { 0% { opacity:.6; transform: translate(-50%, -50%) scale(1) } 50% { opacity:1; transform: translate(-50%, -50%) scale(1.2) } 100% { opacity:.7; transform: translate(-50%, -50%) scale(1) } }
@keyframes gmd-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(0deg) } 50% { transform: translateX(8px) rotate(2deg) } 75% { transform: translateX(4px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes gmd-book { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) translateY(-2px) } }

.scn-wife-hears {
  background:
    linear-gradient(90deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 70% 50%, #2a2a3e 0%, transparent 80%);
}
.scn-wife-hears .corridor-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  animation: wh-bg 12s ease-in-out infinite alternate;
}
.scn-wife-hears .door {
  position:absolute; bottom:25%; right:15%; width:40px; height:80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 2px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: wh-door 6s ease-in-out infinite;
}
.scn-wife-hears .door-light {
  position:absolute; bottom:25%; right:15%; width:36px; height:76px;
  background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, #b08040 60%);
  border-radius: 2px;
  opacity:0.4;
  filter: blur(4px);
  animation: wh-light 3s ease-in-out infinite alternate;
}
.scn-wife-hears .mother-figure {
  position:absolute; bottom:22%; left:35%; width:16px; height:50px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wh-walk 4s ease-in-out infinite;
}
.scn-wife-hears .uncle-silhouette {
  position:absolute; bottom:20%; right:20%; width:22px; height:60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wh-uncle 5s ease-in-out infinite;
}
.scn-wife-hears .rug {
  position:absolute; bottom:5%; left:20%; right:20%; height:12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.4);
  animation: wh-rug 8s ease-in-out infinite;
}
@keyframes wh-bg { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes wh-door { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-4px) scaleX(.98) } }
@keyframes wh-light { 0% { opacity:.3; filter: blur(6px) } 50% { opacity:.5; filter: blur(3px) } 100% { opacity:.35; filter: blur(5px) } }
@keyframes wh-walk { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(6px) rotate(0deg) } 50% { transform: translateX(12px) rotate(-2deg) } 75% { transform: translateX(6px) rotate(0deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes wh-uncle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes wh-rug { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(.95) } }

.scn-kitchen-parallel {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 40%, #1a0f06 100%),
    radial-gradient(ellipse at 30% 80%, #5a4a3a 0%, transparent 60%);
}
.scn-kitchen-parallel .kitchen-wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: kp-wall 15s ease-in-out infinite alternate;
}
.scn-kitchen-parallel .kitchen-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #1a0f06 0%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0 / 5% 5% 0 0;
}
.scn-kitchen-parallel .table {
  position:absolute; bottom:18%; left:40%; width:80px; height:40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: kp-table 8s ease-in-out infinite;
}
.scn-kitchen-parallel .wheel {
  position:absolute; bottom:30%; left:30%; width:30px; height:30px;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%, #5a4a3a 0%, #3a2a1a 60%);
  border: 2px solid #2a1a0e;
  box-shadow: inset 0 0 6px rgba(0,0,0,.7);
  animation: kp-wheel 6s linear infinite;
}
.scn-kitchen-parallel .pot {
  position:absolute; bottom:22%; left:48%; width:20px; height:16px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: kp-pot 4s ease-in-out infinite;
}
.scn-kitchen-parallel .cook-figure {
  position:absolute; bottom:20%; left:55%; width:18px; height:45px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0603 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kp-cook 5s ease-in-out infinite;
}
.scn-kitchen-parallel .fire-glow {
  position:absolute; bottom:10%; left:60%; width:40px; height:30px;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6030 40%, rgba(255,96,48,.2) 80%);
  border-radius: 50%;
  filter: blur(10px);
  animation: kp-fire 2s ease-in-out infinite alternate;
}
@keyframes kp-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes kp-table { 0%,100% { transform: translateX(0) } 50% { transform: translateX(4px) } }
@keyframes kp-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes kp-pot { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes kp-cook { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(6px) rotate(-2deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes kp-fire { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.2) } 100% { opacity:.5; transform: scaleY(1) } }

.scn-trims-oratory {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 50%, #1a0f06 100%),
    radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-trims-oratory .hall-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.4);
  animation: to-wall 12s ease-in-out infinite alternate;
}
.scn-trims-oratory .hall-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a0f06 0%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0 / 5% 5% 0 0;
}
.scn-trims-oratory .mother-standing {
  position:absolute; bottom:20%; left:30%; width:18px; height:55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: to-mother 6s ease-in-out infinite;
}
.scn-trims-oratory .obadiah-silhouette {
  position:absolute; bottom:22%; right:20%; width:16px; height:50px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0603 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: to-obadiah 7s ease-in-out infinite;
}
.scn-trims-oratory .letter {
  position:absolute; bottom:28%; right:25%; width:14px; height:10px;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.5);
  animation: to-letter 4s ease-in-out infinite alternate;
}
.scn-trims-oratory .doorway {
  position:absolute; bottom:10%; right:10%; width:30px; height:70px;
  background: linear-gradient(180deg, #1a0f06 0%, #0a0603 100%);
  border: 2px solid #3a2a1a;
  border-radius: 2px;
  animation: to-doorway 10s ease-in-out infinite;
}
.scn-trims-oratory .candle-sconce {
  position:absolute; bottom:50%; left:50%; width:6px; height:20px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(200,160,96,.4);
  animation: to-candle 3s ease-in-out infinite alternate;
}
@keyframes to-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes to-mother { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(8px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes to-obadiah { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes to-letter { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-3px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes to-doorway { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(.95) } }
@keyframes to-candle { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.7; transform: scaleY(1) } }

/* Scene: different-sensoriums (ds) */
.scn-different-sensoriums { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 70%); }
.scn-different-sensoriums .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); opacity:.8; animation: ds-breathe 8s ease-in-out infinite alternate; }
.scn-different-sensoriums .door { position:absolute; bottom:30%; left:70%; width:50px; height:90px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.6); transform: perspective(200px) rotateY(10deg); animation: ds-door 12s ease-in-out infinite; }
.scn-different-sensoriums .figure { position:absolute; bottom:28%; left:60%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds-figure 6s ease-in-out infinite; }
.scn-different-sensoriums .bell-rope { position:absolute; bottom:32%; left:68%; width:4px; height:30px; background: linear-gradient(180deg, #c0a080 0%, #806040 100%); border-radius: 2px; transform-origin: top center; animation: ds-rope 3s ease-in-out infinite; }
.scn-different-sensoriums .candle { position:absolute; bottom:35%; left:30%; width:6px; height:18px; background: linear-gradient(180deg, #e0c060 0%, #a08040 100%); border-radius: 3px; box-shadow: 0 0 12px 4px rgba(255,200,100,.5), 0 0 24px 8px rgba(255,200,100,.2); animation: ds-candle 4s ease-in-out infinite alternate; }
.scn-different-sensoriums .table { position:absolute; bottom:30%; left:20%; width:80px; height:16px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-different-sensoriums .window { position:absolute; bottom:40%; left:15%; width:30px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border: 2px solid #4a3a2a; border-radius: 4px; box-shadow: inset 0 0 12px rgba(0,0,0,.8); opacity:.6; animation: ds-window 15s ease-in-out infinite alternate; }
@keyframes ds-breathe { 0% { opacity:.75 } 50% { opacity:.85 } 100% { opacity:.7 } }
@keyframes ds-door { 0%,100% { transform: perspective(200px) rotateY(10deg) } 50% { transform: perspective(200px) rotateY(12deg) translateY(-2px) } }
@keyframes ds-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(-1px) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ds-rope { 0%,100% { transform: rotate(0) } 50% { transform: rotate(5deg) } }
@keyframes ds-candle { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.85; transform: scaleY(1) } }
@keyframes ds-window { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }

/* Scene: reader-imagination (ri) */
.scn-reader-imagination { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 80%); }
.scn-reader-imagination .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); opacity:.7; }
.scn-reader-imagination .desk { position:absolute; bottom:25%; left:15%; width:70%; height:14px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%); border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-reader-imagination .chair { position:absolute; bottom:27%; left:20%; width:30px; height:40px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 2px 0 6px rgba(0,0,0,.4); transform: perspective(100px) rotateX(5deg); }
.scn-reader-imagination .author { position:absolute; bottom:26%; left:25%; width:22px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ri-author 8s ease-in-out infinite; }
.scn-reader-imagination .inkstone { position:absolute; bottom:30%; left:18%; width:14px; height:6px; background: #2a2a2a; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.6); }
.scn-reader-imagination .quill { position:absolute; bottom:30%; left:21%; width:2px; height:30px; background: linear-gradient(180deg, #c0a080 0%, #806040 100%); border-radius: 1px; transform-origin: bottom center; transform: rotate(15deg); animation: ri-quill 4s ease-in-out infinite alternate; }
.scn-reader-imagination .candle { position:absolute; bottom:32%; left:65%; width:6px; height:20px; background: linear-gradient(180deg, #e0c060 0%, #a08040 100%); border-radius: 3px; box-shadow: 0 0 14px 4px rgba(255,200,100,.5), 0 0 28px 8px rgba(255,200,100,.2); animation: ri-candle 3s ease-in-out infinite alternate; }
.scn-reader-imagination .book { position:absolute; bottom:30%; left:35%; width:30px; height:4px; background: linear-gradient(90deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); transform: rotate(-5deg); }
@keyframes ri-author { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-4px) rotate(2deg) } 60% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ri-quill { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) scaleY(1.05) } 100% { transform: rotate(15deg) } }
@keyframes ri-candle { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.06) } 100% { opacity:.85; transform: scaleY(1) } }

/* Scene: instruments-forgotten (if) */
.scn-instruments-forgotten { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, transparent 80%); }
.scn-instruments-forgotten .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); opacity:.85; animation: if-shadow 10s ease-in-out infinite alternate; }
.scn-instruments-forgotten .bed { position:absolute; bottom:20%; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%; box-shadow: inset 0 -20px 40px rgba(0,0,0,.7); }
.scn-instruments-forgotten .figure { position:absolute; bottom:30%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: if-figure 4s ease-in-out infinite; }
.scn-instruments-forgotten .bag { position:absolute; bottom:42%; left:38%; width:20px; height:12px; background: #2a4a3a; border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: if-bag 6s ease-in-out infinite alternate; }
.scn-instruments-forgotten .pistol-left { position:absolute; bottom:44%; left:35%; width:16px; height:4px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(-20deg); box-shadow: 0 1px 3px rgba(0,0,0,.5); animation: if-pistol 3s ease-in-out infinite; }
.scn-instruments-forgotten .pistol-right { position:absolute; bottom:44%; left:50%; width:16px; height:4px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(15deg); box-shadow: 0 1px 3px rgba(0,0,0,.5); animation: if-pistol 3s ease-in-out infinite reverse; }
.scn-instruments-forgotten .candle { position:absolute; bottom:35%; left:60%; width:6px; height:16px; background: linear-gradient(180deg, #e0a060 0%, #a06030 100%); border-radius: 3px; box-shadow: 0 0 10px 3px rgba(224,160,96,.5), 0 0 20px 6px rgba(224,160,96,.2); animation: if-candle 2.5s ease-in-out infinite alternate; }
@keyframes if-shadow { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes if-figure { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(-5px) rotate(-1deg) } 75% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes if-bag { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes if-pistol { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } }
@keyframes if-candle { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.08) } 100% { opacity:.8; transform: scaleY(1) } }

/* Scene: stevinus-engineer (se) */
.scn-stevinus-engineer { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, transparent 70%); }
.scn-stevinus-engineer .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); opacity:.75; }
.scn-stevinus-engineer .table { position:absolute; bottom:22%; left:10%; width:80%; height:12px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-stevinus-engineer .fort-model { position:absolute; bottom:28%; left:25%; width:40px; height:30px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.6); transform: perspective(200px) rotateX(15deg) rotateY(-5deg); animation: se-model 10s ease-in-out infinite alternate; }
.scn-stevinus-engineer .compass { position:absolute; bottom:30%; left:55%; width:14px; height:14px; border: 2px solid #a08060; border-radius: 50%; background: radial-gradient(circle, #c0a080 0%, #806040 100%); animation: se-compass 8s linear infinite; }
.scn-stevinus-engineer .figure { position:absolute; bottom:24%; left:18%; width:22px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: se-figure 7s ease-in-out infinite; }
.scn-stevinus-engineer .map { position:absolute; bottom:28%; left:40%; width:30px; height:10px; background: linear-gradient(180deg, #c0b080 0%, #a09070 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: se-map 12s ease-in-out infinite; }
.scn-stevinus-engineer .candle { position:absolute; bottom:32%; left:65%; width:6px; height:18px; background: linear-gradient(180deg, #e0c060 0%, #a08040 100%); border-radius: 3px; box-shadow: 0 0 14px 4px rgba(255,200,100,.5), 0 0 28px 8px rgba(255,200,100,.2); animation: se-candle 3.5s ease-in-out infinite alternate; }
@keyframes se-model { 0% { transform: perspective(200px) rotateX(15deg) rotateY(-5deg) translateY(0) } 50% { transform: perspective(200px) rotateX(18deg) rotateY(-8deg) translateY(-2px) } 100% { transform: perspective(200px) rotateX(15deg) rotateY(-5deg) translateY(0) } }
@keyframes se-compass { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes se-figure { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-3px) rotate(2deg) } 60% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes se-map { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateX(2px) } 100% { transform: rotate(-5deg) } }
@keyframes se-candle { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.85; transform: scaleY(1) } }

.scn-digressive-skill {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 40%, #1a0e06 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
}
.scn-digressive-skill .bg-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); opacity:.9;
}
.scn-digressive-skill .desk {
  position:absolute; bottom:10%; left:15%; width:70%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 -4px 12px rgba(0,0,0,.5);
}
.scn-digressive-skill .figure {
  position:absolute; bottom:30%; left:30%; width:50px; height:70px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ds-fig 5s ease-in-out infinite;
}
.scn-digressive-skill .quill {
  position:absolute; bottom:34%; left:48%; width:4px; height:40px; background: linear-gradient(180deg, #c8b896 0%, #a08060 100%); border-radius:2px; transform:rotate(20deg); transform-origin:bottom center; animation: ds-quill 3s ease-in-out infinite alternate;
}
.scn-digressive-skill .book {
  position:absolute; bottom:12%; left:35%; width:80px; height:12px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,.3);
}
.scn-digressive-skill .candle {
  position:absolute; bottom:28%; left:60%; width:8px; height:20px; background: linear-gradient(180deg, #e8d8c0 0%, #c8b890 100%); border-radius:3px 3px 0 0;
}
.scn-digressive-skill .candle-glow {
  position:absolute; bottom:40%; left:60%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius:50%; animation: ds-glow 2s ease-in-out infinite alternate; transform:translate(-50%,-50%);
}
.scn-digressive-skill .dust-mote {
  position:absolute; top:20%; left:30%; width:3px; height:3px; background:#d0c0a0; border-radius:50%; filter:blur(1px); animation: ds-mote 12s linear infinite;
}
.scn-digressive-skill .dust-mote-2 {
  position:absolute; top:35%; left:50%; width:2px; height:2px; background:#d0c0a0; border-radius:50%; filter:blur(1px); animation: ds-mote2 18s linear infinite reverse;
}
@keyframes ds-fig {
  0% { transform:translateX(0) rotate(0); }
  50% { transform:translateX(3px) rotate(1deg); }
  100% { transform:translateX(0) rotate(0); }
}
@keyframes ds-quill {
  0% { transform:rotate(20deg) translateY(0); }
  100% { transform:rotate(25deg) translateY(-2px); }
}
@keyframes ds-glow {
  0% { opacity:.7; transform:translate(-50%,-50%) scale(.9); }
  100% { opacity:1; transform:translate(-50%,-50%) scale(1.1); }
}
@keyframes ds-mote {
  0% { transform:translateY(0) translateX(0); opacity:.4; }
  50% { transform:translateY(-30px) translateX(20px); opacity:.8; }
  100% { transform:translateY(0) translateX(0); opacity:.4; }
}
@keyframes ds-mote2 {
  0% { transform:translateY(0) translateX(0); opacity:.3; }
  50% { transform:translateY(-20px) translateX(-15px); opacity:.6; }
  100% { transform:translateY(0) translateX(0); opacity:.3; }
}

.scn-progressive-digression {
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #3a3a6e 0%, transparent 70%);
}
.scn-progressive-digression .bg-room {
  position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a2a4e 0%, #1a1a3a 100%);
}
.scn-progressive-digression .starry-dome {
  position:absolute; top:0; left:0; right:0; height:60%; background: radial-gradient(circle at 20% 30%, rgba(255,255,200,.1) 0%, transparent 40%), radial-gradient(circle at 80% 20%, rgba(200,200,255,.1) 0%, transparent 40%); animation: pd-dome 20s ease-in-out infinite alternate;
}
.scn-progressive-digression .globe {
  position:absolute; bottom:22%; left:30%; width:50px; height:50px; background: radial-gradient(circle at 35% 35%, #6a8a6a 0%, #3a5a3a 100%); border-radius:50%; box-shadow: 0 0 20px rgba(100,150,100,.4); animation: pd-globe 12s linear infinite;
}
.scn-progressive-digression .figure-ut {
  position:absolute; bottom:20%; left:50%; width:40px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pd-fig 4s ease-in-out infinite;
}
.scn-progressive-digression .arm-point {
  position:absolute; bottom:35%; left:55%; width:6px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:3px; transform:rotate(-30deg); transform-origin:bottom center; animation: pd-arm 3s ease-in-out infinite alternate;
}
.scn-progressive-digression .book-stack {
  position:absolute; bottom:12%; left:20%; width:60px; height:15px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.4);
}
.scn-progressive-digression .star {
  position:absolute; width:3px; height:3px; background: #ffffc0; border-radius:50%; filter:blur(1px);
}
.scn-progressive-digression .twinkle-a { top:10%; left:20%; animation: pd-star 3s ease-in-out infinite; }
.scn-progressive-digression .twinkle-b { top:15%; left:60%; animation: pd-star 4s ease-in-out infinite 1s; }
.scn-progressive-digression .twinkle-c { top:25%; left:30%; animation: pd-star 5s ease-in-out infinite 2s; }
@keyframes pd-dome {
  0% { opacity:.6; }
  50% { opacity:.9; }
  100% { opacity:.6; }
}
@keyframes pd-globe {
  0% { transform:rotate(0deg); }
  100% { transform:rotate(360deg); }
}
@keyframes pd-fig {
  0% { transform:translateX(0) rotate(0); }
  50% { transform:translateX(2px) rotate(1deg); }
  100% { transform:translateX(0) rotate(0); }
}
@keyframes pd-arm {
  0% { transform:rotate(-30deg); }
  100% { transform:rotate(-20deg); }
}
@keyframes pd-star {
  0% { opacity:.3; transform:scale(.5); }
  50% { opacity:1; transform:scale(1.2); }
  100% { opacity:.3; transform:scale(.5); }
}

.scn-sunshine-of-reading {
  background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a0 100%);
}
.scn-sunshine-of-reading .bg-wall-sunny {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d0c8b8 0%, #c0b8a0 100%);
}
.scn-sunshine-of-reading .window-frame {
  position:absolute; top:10%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, #a09890 0%, #807870 100%); border-radius:8px; box-shadow:inset 0 0 30px rgba(0,0,0,.1);
}
.scn-sunshine-of-reading .sunbeam {
  position:absolute; top:10%; left:25%; width:50%; height:80%; background: linear-gradient(180deg, rgba(255,240,180,.5) 0%, rgba(255,240,180,0) 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); animation: sr-beam 8s ease-in-out infinite alternate;
}
.scn-sunshine-of-reading .armchair {
  position:absolute; bottom:15%; left:30%; width:80px; height:50px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 20% 20%; box-shadow:0 4px 12px rgba(0,0,0,.2);
}
.scn-sunshine-of-reading .open-book {
  position:absolute; bottom:25%; left:40%; width:70px; height:10px; background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%); border-radius:2px; transform:rotate(-5deg); box-shadow:0 2px 4px rgba(0,0,0,.15); animation: sr-book 6s ease-in-out infinite;
}
.scn-sunshine-of-reading .page-turn {
  position:absolute; bottom:30%; left:42%; width:20px; height:8px; background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 100%); border-radius:2px; transform-origin:left center; animation: sr-page 4s ease-in-out infinite alternate;
}
.scn-sunshine-of-reading .cat {
  position:absolute; bottom:10%; left:55%; width:25px; height:15px; background: linear-gradient(180deg, #807060 0%, #504030 100%); border-radius:50% 50% 40% 40%; animation: sr-cat 5s ease-in-out infinite;
}
.scn-sunshine-of-reading .dust-mote-sun {
  position:absolute; top:40%; left:35%; width:2px; height:2px; background: #ffffc0; border-radius:50%; filter:blur(1px); animation: sr-mote 15s linear infinite;
}
@keyframes sr-beam {
  0% { opacity:.4; transform:skewX(-5deg); }
  100% { opacity:.7; transform:skewX(5deg); }
}
@keyframes sr-book {
  0% { transform:rotate(-5deg); }
  50% { transform:rotate(0deg); }
  100% { transform:rotate(-5deg); }
}
@keyframes sr-page {
  0% { transform:rotateY(0deg); opacity:.8; }
  50% { transform:rotateY(-60deg); opacity:.5; }
  100% { transform:rotateY(0deg); opacity:.8; }
}
@keyframes sr-cat {
  0% { transform:translateX(0) rotate(0); }
  25% { transform:translateX(5px) rotate(-5deg); }
  75% { transform:translateX(-5px) rotate(5deg); }
  100% { transform:translateX(0) rotate(0); }
}
@keyframes sr-mote {
  0% { transform:translateY(0) translateX(0); opacity:.3; }
  50% { transform:translateY(-20px) translateX(15px); opacity:.6; }
  100% { transform:translateY(0) translateX(0); opacity:.3; }
}

.scn-momus-glass {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
}
.scn-momus-glass .bg-dark {
  position:absolute; inset:0; background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%); opacity:.8;
}
.scn-momus-glass .figure-momus {
  position:absolute; bottom:10%; left:30%; width:80px; height:120px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 30px rgba(0,0,0,.5);
}
.scn-momus-glass .glass-pane {
  position:absolute; bottom:40%; left:40%; width:50px; height:60px; background: rgba(200,200,255,.15); border:2px solid rgba(200,200,255,.4); border-radius:10px; box-shadow:inset 0 0 20px rgba(200,200,255,.2); animation: mg-glass 3s ease-in-out infinite alternate;
}
.scn-momus-glass .contents-spiral {
  position:absolute; bottom:45%; left:42%; width:20px; height:20px; border:2px solid #ffd080; border-radius:50%; border-top-color:transparent; animation: mg-spiral 4s linear infinite;
}
.scn-momus-glass .contents-star {
  position:absolute; bottom:55%; left:47%; width:10px; height:10px; background: #ffc060; clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); animation: mg-star 2s ease-in-out infinite alternate;
}
.scn-momus-glass .contents-heart {
  position:absolute; bottom:50%; left:35%; width:12px; height:12px; background: #c8553d; transform:rotate(45deg); animation: mg-heart 3s ease-in-out infinite;
}
.scn-momus-glass .mote-momus {
  position:absolute; top:20%; left:60%; width:3px; height:3px; background: #ffc080; border-radius:50%; filter:blur(2px); animation: mg-mote 5s linear infinite;
}
@keyframes mg-glass {
  0% { transform:scale(1) rotate(0); box-shadow:inset 0 0 10px rgba(200,200,255,.1); }
  50% { transform:scale(1.05) rotate(-2deg); box-shadow:inset 0 0 30px rgba(200,200,255,.3); }
  100% { transform:scale(1) rotate(0); box-shadow:inset 0 0 10px rgba(200,200,255,.1); }
}
@keyframes mg-spiral {
  0% { transform:rotate(0deg); }
  100% { transform:rotate(360deg); }
}
@keyframes mg-star {
  0% { transform:scale(.8) rotate(0); opacity:.6; }
  100% { transform:scale(1.2) rotate(30deg); opacity:1; }
}
@keyframes mg-heart {
  0% { transform:rotate(45deg) scale(.9); }
  50% { transform:rotate(45deg) scale(1.1); }
  100% { transform:rotate(45deg) scale(.9); }
}
@keyframes mg-mote {
  0% { transform:translateY(0) translateX(0); opacity:.5; }
  50% { transform:translateY(-20px) translateX(10px); opacity:1; }
  100% { transform:translateY(0) translateX(0); opacity:.5; }
}

/* Scene: authors-preface */
.scn-authors-preface {
  background: linear-gradient(180deg, #2e1d12 0%, #4a3020 40%, #6a4a30 70%, #3d281a 100%), radial-gradient(ellipse at 50% 20%, #9a6a40 0%, transparent 60%);
  position: relative;
}
.scn-authors-preface .bg-wall { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #3d2a1a 0%, #2a1a0e 100%); }
.scn-authors-preface .desk { position: absolute; bottom: 10%; left: 15%; right: 15%; height: 40%; background: linear-gradient(180deg, #5a3a20 0%, #3d2815 100%); border-radius: 4% / 8% 8% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-authors-preface .book { position: absolute; bottom: 30%; left: 30%; width: 25%; height: 18%; background: linear-gradient(135deg, #8a5a30 0%, #5a3a1a 100%); border-radius: 4% 90% 4% 4%; transform: rotate(-5deg); box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: ap-book 6s ease-in-out infinite; }
.scn-authors-preface .candle { position: absolute; bottom: 32%; left: 55%; width: 4%; height: 20%; background: linear-gradient(180deg, #c08050 0%, #a06030 50%, #7a4020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 2px rgba(200,120,40,.3); }
.scn-authors-preface .flame { position: absolute; bottom: 50%; left: 57%; width: 2%; height: 8%; background: radial-gradient(circle at 30% 30%, #ffd080 0%, #ff9000 60%, transparent 100%); border-radius: 50% 50% 30% 30%; filter: blur(1px); animation: ap-flame 0.6s ease-in-out infinite alternate; box-shadow: 0 0 20px 6px rgba(255,160,0,.5); }
.scn-authors-preface .figure { position: absolute; bottom: 26%; left: 20%; width: 20%; height: 40%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-figure 4s ease-in-out infinite; }
.scn-authors-preface .quill { position: absolute; bottom: 32%; left: 28%; width: 2%; height: 15%; background: linear-gradient(180deg, #c0a080 0%, #806040 100%); border-radius: 50% 50% 10% 10%; transform: rotate(15deg); animation: ap-quill 2s ease-in-out infinite alternate; }
.scn-authors-preface .curtain { position: absolute; top: 0; left: 0; width: 15%; height: 100%; background: linear-gradient(90deg, #4a3020 0%, #3a2010 100%); border-radius: 0 30% 30% 0 / 0 10% 10% 0; opacity: 0.8; animation: ap-curtain 8s ease-in-out infinite alternate; }
@keyframes ap-book { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } }
@keyframes ap-flame { 0% { height: 8%; opacity: 0.9; } 100% { height: 10%; opacity: 1; } }
@keyframes ap-figure { 0%,100% { transform: rotate(0) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } }
@keyframes ap-quill { 0% { transform: rotate(12deg); } 100% { transform: rotate(18deg); } }
@keyframes ap-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(8%); } }

/* Scene: wit-and-judgment */
.scn-wit-and-judgment {
  background: linear-gradient(180deg, #2a1a12 0%, #3d281a 50%, #5a3a20 100%), radial-gradient(ellipse at 50% 30%, #8a6030 0%, transparent 70%);
  position: relative;
}
.scn-wit-and-judgment .bg-debate { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #1a0e06 0%, #2a1a0e 100%); }
.scn-wit-and-judgment .seesaw-beam { position: absolute; bottom: 35%; left: 10%; right: 10%; height: 4%; background: linear-gradient(90deg, #8a5a30 0%, #b08050 50%, #8a5a30 100%); border-radius: 10px; transform-origin: center; animation: wj-beam 2s ease-in-out infinite alternate; }
.scn-wit-and-judgment .fulcrum { position: absolute; bottom: 33%; left: 50%; width: 6%; height: 10%; background: linear-gradient(180deg, #6a4020 0%, #4a2810 100%); border-radius: 30% 30% 10% 10%; transform: translateX(-50%); }
.scn-wit-and-judgment .figure-wit { position: absolute; bottom: 25%; left: 20%; width: 18%; height: 35%; background: linear-gradient(180deg, #4a2810 0%, #2a1408 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wj-wit 2s ease-in-out infinite alternate; }
.scn-wit-and-judgment .figure-judgment { position: absolute; bottom: 25%; right: 20%; width: 18%; height: 35%; background: linear-gradient(180deg, #5a3a20 0%, #3a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wj-judgment 2s ease-in-out infinite alternate-reverse; }
.scn-wit-and-judgment .weight-wit { position: absolute; bottom: 35%; left: 22%; width: 6%; height: 6%; background: radial-gradient(circle, #c08040 0%, #8a5a20 100%); border-radius: 50%; transform-origin: center; animation: wj-weight 2s ease-in-out infinite alternate; }
.scn-wit-and-judgment .weight-judgment { position: absolute; bottom: 35%; right: 22%; width: 6%; height: 6%; background: radial-gradient(circle, #a07040 0%, #7a4a20 100%); border-radius: 50%; transform-origin: center; animation: wj-weight 2s ease-in-out infinite alternate-reverse; }
.scn-wit-and-judgment .sparkle-left { position: absolute; top: 20%; left: 25%; width: 3%; height: 3%; background: radial-gradient(circle, #ffd080, transparent); border-radius: 50%; animation: wj-sparkle 1.5s ease-in-out infinite alternate; }
.scn-wit-and-judgment .sparkle-right { position: absolute; top: 20%; right: 25%; width: 3%; height: 3%; background: radial-gradient(circle, #ffb060, transparent); border-radius: 50%; animation: wj-sparkle 1.5s ease-in-out infinite alternate-reverse; }
@keyframes wj-beam { 0% { transform: rotate(8deg); } 100% { transform: rotate(-8deg); } }
@keyframes wj-wit { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-10px) rotate(4deg); } }
@keyframes wj-judgment { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(10px) rotate(-4deg); } }
@keyframes wj-weight { 0% { transform: scale(1); } 100% { transform: scale(1.2); } }
@keyframes wj-sparkle { 0% { opacity: 0.3; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1.2); } }

/* Scene: quantum-of-gifts */
.scn-quantum-of-gifts {
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a0e 50%, #4a2a10 100%), radial-gradient(ellipse at 30% 20%, #6a3a18 0%, transparent 60%);
  position: relative;
}
.scn-quantum-of-gifts .bg-receptacle { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #0e0804 0%, #1a0e06 100%); }
.scn-quantum-of-gifts .brain { position: absolute; top: 15%; left: 35%; width: 30%; height: 35%; background: radial-gradient(circle at 40% 40%, #6a4a30 0%, #3a2815 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); animation: qg-brain 4s ease-in-out infinite; }
.scn-quantum-of-gifts .funnel-left { position: absolute; top: 5%; left: 20%; width: 8%; height: 20%; background: linear-gradient(180deg, #8a6030 0%, #5a3820 100%); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); transform: rotate(-10deg); }
.scn-quantum-of-gifts .funnel-right { position: absolute; top: 5%; right: 20%; width: 8%; height: 20%; background: linear-gradient(180deg, #8a6030 0%, #5a3820 100%); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); transform: rotate(10deg); }
.scn-quantum-of-gifts .gift-1 { position: absolute; top: 25%; left: 25%; width: 6%; height: 6%; background: linear-gradient(135deg, #c08040 0%, #a06020 100%); border-radius: 10%; animation: qg-fall 3s linear infinite; }
.scn-quantum-of-gifts .gift-2 { position: absolute; top: 18%; left: 40%; width: 5%; height: 5%; background: linear-gradient(135deg, #b07030 0%, #805020 100%); border-radius: 10%; animation: qg-fall 3.5s linear infinite 0.5s; }
.scn-quantum-of-gifts .gift-3 { position: absolute; top: 22%; left: 55%; width: 7%; height: 7%; background: linear-gradient(135deg, #d09050 0%, #a06020 100%); border-radius: 10%; animation: qg-fall 2.8s linear infinite 1s; }
.scn-quantum-of-gifts .gift-4 { position: absolute; top: 30%; left: 60%; width: 4%; height: 4%; background: linear-gradient(135deg, #b08040 0%, #905d20 100%); border-radius: 10%; animation: qg-fall 4s linear infinite 0.2s; }
.scn-quantum-of-gifts .gift-5 { position: absolute; top: 12%; left: 48%; width: 5%; height: 5%; background: linear-gradient(135deg, #c08040 0%, #a06020 100%); border-radius: 10%; animation: qg-fall 3.2s linear infinite 0.8s; }
@keyframes qg-brain { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } }
@keyframes qg-fall { 0% { transform: translateY(-40px) rotate(0deg); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translateY(300px) rotate(360deg); opacity: 0; } }

/* Scene: climate-of-wit */
.scn-climate-of-wit {
  background: linear-gradient(180deg, #2a1a12 0%, #4a3020 40%, #6a4a30 70%, #3d281a 100%), radial-gradient(ellipse at 60% 30%, #8a6030 0%, transparent 70%);
  position: relative;
}
.scn-climate-of-wit .bg-paradise { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #1a0e06 0%, #2a1a0e 100%); }
.scn-climate-of-wit .tree { position: absolute; bottom: 30%; left: 40%; width: 25%; height: 50%; background: linear-gradient(180deg, #4a2a10 0%, #2a1a0e 100%); border-radius: 60% 60% 40% 40% / 80% 80% 30% 30%; animation: cw-tree 6s ease-in-out infinite; }
.scn-climate-of-wit .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #3a2815 0%, #2a1a0e 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-climate-of-wit .figure-left { position: absolute; bottom: 25%; left: 18%; width: 16%; height: 32%; background: linear-gradient(180deg, #4a2810 0%, #2a1408 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cw-figure 5s ease-in-out infinite; }
.scn-climate-of-wit .figure-right { position: absolute; bottom: 25%; right: 18%; width: 16%; height: 32%; background: linear-gradient(180deg, #5a3a20 0%, #3a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cw-figure 5s ease-in-out infinite reverse; }
.scn-climate-of-wit .flower-1 { position: absolute; bottom: 32%; left: 30%; width: 4%; height: 5%; background: radial-gradient(circle at 30% 30%, #b08060 0%, #7a5030 100%); border-radius: 50%; animation: cw-flower 3s ease-in-out infinite; }
.scn-climate-of-wit .flower-2 { position: absolute; bottom: 28%; right: 30%; width: 3%; height: 4%; background: radial-gradient(circle, #a07050 0%, #705030 100%); border-radius: 50%; animation: cw-flower 3.5s ease-in-out infinite 0.5s; }
.scn-climate-of-wit .petal { position: absolute; top: 20%; left: 50%; width: 2%; height: 2%; background: radial-gradient(circle, #d0a070, transparent); border-radius: 50%; filter: blur(1px); animation: cw-petal 8s linear infinite; }
@keyframes cw-tree { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg); } }
@keyframes cw-figure { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cw-flower { 0%,100% { transform: scale(1); } 50% { transform: scale(1.2); } }
@keyframes cw-petal { 0% { transform: translateY(0) translateX(0) rotate(0deg); opacity: 0; } 10% { opacity: 0.8; } 90% { opacity: 0.6; } 100% { transform: translateY(400px) translateX(-40px) rotate(360deg); opacity: 0; } }

.scn-hobby-horse-shyness {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a1e 40%, #1a1210 100%),
              radial-gradient(ellipse at 30% 80%, #4a3224 0%, transparent 70%);
}
.scn-hobby-horse-shyness .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%); }
.scn-hobby-horse-shyness .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1e 0%, #1a1210 100%); }
.scn-hobby-horse-shyness .hearth { position:absolute; bottom:25%; left:10%; width:80px; height:50px; background: #2a1a10; border-radius: 20% 20% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-hobby-horse-shyness .fire { position:absolute; bottom:30%; left:12%; width:40px; height:60px; background: radial-gradient(circle, #ff8c40 0%, #ff6020 40%, transparent 70%); border-radius: 50%; animation: hs1-fire 2s ease-in-out infinite alternate; box-shadow: 0 0 30px 15px #ff6020, 0 0 60px 30px rgba(255,96,32,.3); }
.scn-hobby-horse-shyness .hobby-horse { position:absolute; bottom:28%; left:50%; width:70px; height:80px; transform-origin: bottom center; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: hs1-horse 3s ease-in-out infinite; }
.scn-hobby-horse-shyness .uncle-toby { position:absolute; bottom:25%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #2a1e1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hs1-figure 4s ease-in-out infinite; }
.scn-hobby-horse-shyness .shadow { position:absolute; bottom:25%; right:15%; width:50px; height:20px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(4px); animation: hs1-shadow 4s ease-in-out infinite; }
@keyframes hs1-fire { 0% { transform: scale(1) translateY(0); opacity:.8; } 50% { transform: scale(1.08) translateY(-4px); opacity:1; } 100% { transform: scale(1) translateY(0); opacity:.85; } }
@keyframes hs1-horse { 0%,100% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(4px); } }
@keyframes hs1-figure { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-6px) rotate(1deg); } }
@keyframes hs1-shadow { 0%,100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(0.9) translateX(6px); } }

.scn-dunkirk-demolition {
  background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3e 40%, #2a2a2e 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a2e 0%, transparent 60%);
}
.scn-dunkirk-demolition .sky-overcast { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a5a5e 0%, #3a3a3e 100%); animation: dd2-sky 20s ease-in-out infinite alternate; }
.scn-dunkirk-demolition .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-dunkirk-demolition .fort-wall { position:absolute; bottom:20%; left:5%; width:40%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); animation: dd2-wall 12s ease-in-out infinite alternate; }
.scn-dunkirk-demolition .mole { position:absolute; bottom:30%; left:45%; width:30%; height:12px; background: #2a2a1a; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-dunkirk-demolition .citadel-dome { position:absolute; bottom:45%; right:10%; width:80px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); animation: dd2-dome 15s ease-in-out infinite; }
.scn-dunkirk-demolition .uncle-toby { position:absolute; bottom:10%; left:15%; width:24px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dd2-figure 5s ease-in-out infinite; }
.scn-dunkirk-demolition .corporal { position:absolute; bottom:10%; left:25%; width:20px; height:44px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dd2-figure 5s ease-in-out infinite 1s; }
@keyframes dd2-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.75; } }
@keyframes dd2-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95) translateY(4px); } 100% { transform: scaleY(1); } }
@keyframes dd2-dome { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(0.98) rotate(-1deg); } }
@keyframes dd2-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }

.scn-widow-wadman-introduced {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #1a1210 100%),
              radial-gradient(ellipse at 50% 10%, #3a2a1e 0%, transparent 80%);
}
.scn-widow-wadman-introduced .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); }
.scn-widow-wadman-introduced .table { position:absolute; bottom:20%; left:40%; width:120px; height:20px; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-widow-wadman-introduced .candle { position:absolute; bottom:35%; left:55%; width:8px; height:40px; background: linear-gradient(180deg, #e0c0a0 0%, #c0a080 100%); border-radius: 4px; box-shadow: 0 0 10px 2px #ffd0a0; }
.scn-widow-wadman-introduced .candle-glow { position:absolute; bottom:38%; left:55%; width:40px; height:40px; background: radial-gradient(circle, #ffd0a0 0%, transparent 70%); border-radius: 50%; animation: ww3-glow 3s ease-in-out infinite alternate; }
.scn-widow-wadman-introduced .widow-silhouette { position:absolute; bottom:20%; left:20%; width:40px; height:90px; background: linear-gradient(180deg, #0a0a0a 0%, #000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ww3-widow 6s ease-in-out infinite; }
.scn-widow-wadman-introduced .uncle-toby-standing { position:absolute; bottom:20%; left:65%; width:34px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ww3-toby 7s ease-in-out infinite; }
@keyframes ww3-glow { 0% { transform: scale(1); opacity:.6; } 50% { transform: scale(1.1); opacity:.9; } 100% { transform: scale(1); opacity:.7; } }
@keyframes ww3-widow { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(3deg) translateX(4px); } }
@keyframes ww3-toby { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(-6px); } }

.scn-no-definition {
  background: linear-gradient(180deg, #1a121a 0%, #2a1a2a 50%, #1a121a 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a3a 0%, transparent 70%);
}
.scn-no-definition .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1a121a 0%, #0a0a0a 100%); }
.scn-no-definition .father-figure { position:absolute; bottom:20%; left:50%; width:60px; height:120px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(-50%); transform-origin: bottom center; animation: nd4-father 5s ease-in-out infinite; }
.scn-no-definition .topaz-ring { position:absolute; top:20%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #f0d080 0%, #c0a060 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(240,208,128,.4); animation: nd4-ring 4s ease-in-out infinite; }
.scn-no-definition .clyster-bottle { position:absolute; top:50%; right:15%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 30% 30% 20% 20%; transform: rotate(15deg); animation: nd4-bottle 3s ease-in-out infinite alternate; }
.scn-no-definition .book { position:absolute; bottom:15%; left:10%; width:40px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: nd4-book 6s ease-in-out infinite; }
.scn-no-definition .question-mark { position:absolute; top:30%; left:55%; width:20px; height:30px; background: radial-gradient(circle, #e0d0b0 0%, transparent 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(50% 0%, 100% 30%, 70% 60%, 80% 100%, 20% 100%, 30% 60%, 0% 30%); animation: nd4-question 2s ease-in-out infinite alternate; }
@keyframes nd4-father { 0%,100% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes nd4-ring { 0% { transform: scale(1) rotate(0deg); opacity:.7; } 50% { transform: scale(1.1) rotate(10deg); opacity:1; } 100% { transform: scale(1) rotate(0deg); opacity:.8; } }
@keyframes nd4-bottle { 0% { transform: rotate(10deg) translateY(0); } 100% { transform: rotate(20deg) translateY(-4px); } }
@keyframes nd4-book { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(2deg); } }
@keyframes nd4-question { 0% { transform: scale(1) translateY(0); } 100% { transform: scale(1.1) translateY(-4px); } }

.scn-le-fevers-story {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2210 40%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 70%);
}
.scn-le-fevers-story .bg-deep { position:absolute; inset:40% 0 0 0; background:linear-gradient(180deg, #1a0e05 0%, #0d0703 100%); animation:lfs-deep 20s ease-in-out infinite alternate; }
.scn-le-fevers-story .wall { position:absolute; inset:0 0 45% 0; background:linear-gradient(90deg, #3a2210 0%, #4a2a1a 50%, #2a1a0a 100%); border-radius:0 0 20% 20%; box-shadow:inset 0 8px 20px rgba(0,0,0,.6); }
.scn-le-fevers-story .bed { position:absolute; bottom:38%; left:20%; width:55%; height:30%; background:linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:10% / 20%; box-shadow:0 8px 12px rgba(0,0,0,.5); animation:lfs-breathe 6s ease-in-out infinite; }
.scn-le-fevers-story .figure { position:absolute; bottom:42%; left:35%; width:25%; height:18%; background:radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, #1a100a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:lfs-turn 12s ease-in-out infinite; }
.scn-le-fevers-story .candle { position:absolute; bottom:45%; right:25%; width:4%; height:20%; background:linear-gradient(180deg, #d0a050 0%, #8a5a2a 100%); border-radius:10%; box-shadow:0 0 10px 2px #d09040; }
.scn-le-fevers-story .glow { position:absolute; bottom:40%; right:20%; width:30%; height:30%; background:radial-gradient(circle, #e0a050 0%, rgba(224,160,80,0.4) 40%, transparent 70%); border-radius:50%; filter:blur(10px); animation:lfs-glow 3s ease-in-out infinite alternate; }
.scn-le-fevers-story .shadow { position:absolute; bottom:38%; left:50%; width:20%; height:20%; background:radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); transform:rotate(10deg); animation:lfs-shadow 8s ease-in-out infinite; }
@keyframes lfs-deep { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes lfs-breathe { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } }
@keyframes lfs-turn { 0% { transform:rotate(-2deg) translateX(0); } 50% { transform:rotate(2deg) translateX(3px); } 100% { transform:rotate(-2deg) translateX(0); } }
@keyframes lfs-glow { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.7; transform:scale(0.95); } }
@keyframes lfs-shadow { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-landlord-request {
  background:
    linear-gradient(180deg, #1a0e05 0%, #2a1a0a 40%, #0d0703 100%),
    radial-gradient(ellipse at 40% 50%, #4a2a1a 0%, transparent 70%);
}
.scn-landlord-request .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); box-shadow:inset 0 8px 20px rgba(0,0,0,.5); animation:lr-floor 10s ease-in-out infinite; }
.scn-landlord-request .wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(90deg, #2a1a0a 0%, #3a2210 50%, #1a0e05 100%); border-radius:0 0 10% 10%; }
.scn-landlord-request .table { position:absolute; bottom:30%; left:30%; width:40%; height:10%; background:linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:10% / 30%; box-shadow:0 4px 10px rgba(0,0,0,.5); }
.scn-landlord-request .landlord { position:absolute; bottom:32%; left:20%; width:20%; height:40%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom; animation:lr-bow 6s ease-in-out infinite; }
.scn-landlord-request .phial { position:absolute; bottom:38%; left:38%; width:4%; height:14%; background:linear-gradient(180deg, #a08050 0%, #604820 100%); border-radius:20% 20% 10% 10%; box-shadow:0 2px 6px rgba(0,0,0,.4); animation:lr-phial 8s ease-in-out infinite; }
.scn-landlord-request .door { position:absolute; bottom:35%; right:10%; width:20%; height:60%; background:linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 4px 8px rgba(0,0,0,.4); }
.scn-landlord-request .lamp { position:absolute; bottom:40%; right:35%; width:8%; height:10%; background:radial-gradient(circle, #e08030 0%, #b06020 50%, transparent 100%); border-radius:50%; filter:blur(4px); animation:lr-lamp 4s ease-in-out infinite alternate; }
@keyframes lr-floor { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes lr-bow { 0%,100% { transform:rotate(0deg) scaleY(1); } 50% { transform:rotate(8deg) scaleY(1.05); } }
@keyframes lr-phial { 0% { opacity:0.7; transform:scaleX(1); } 50% { opacity:1; transform:scaleX(0.95) translateY(-2px); } 100% { opacity:0.8; transform:scaleX(1); } }
@keyframes lr-lamp { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.6; transform:scale(0.9); } }

.scn-toby-generosity {
  background:
    linear-gradient(180deg, #1a1008 0%, #2a1a0a 40%, #0d0703 100%),
    radial-gradient(ellipse at 60% 70%, #4a2a1a 0%, transparent 60%);
}
.scn-toby-generosity .bg-room { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-toby-generosity .table { position:absolute; bottom:30%; left:20%; width:60%; height:8%; background:linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:10% / 40%; box-shadow:0 6px 12px rgba(0,0,0,.5); }
.scn-toby-generosity .toby { position:absolute; bottom:32%; left:25%; width:22%; height:45%; background:linear-gradient(180deg, #4a3a2a 0%, #1a100a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:tg-toby 4s ease-in-out infinite; }
.scn-toby-generosity .landlord { position:absolute; bottom:32%; right:25%; width:18%; height:42%; background:linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom; animation:tg-landlord 6s ease-in-out infinite; }
.scn-toby-generosity .bottle1 { position:absolute; bottom:36%; left:42%; width:4%; height:12%; background:linear-gradient(180deg, #805030 0%, #604020 100%); border-radius:0 0 20% 20%; box-shadow:0 2px 6px rgba(0,0,0,.4); animation:tg-bottle 8s ease-in-out infinite; }
.scn-toby-generosity .bottle2 { position:absolute; bottom:36%; left:50%; width:4%; height:12%; background:linear-gradient(180deg, #7a4a2a 0%, #5a3a1a 100%); border-radius:0 0 20% 20%; box-shadow:0 2px 6px rgba(0,0,0,.4); animation:tg-bottle 8s ease-in-out infinite reverse; }
.scn-toby-generosity .shelf { position:absolute; bottom:50%; right:10%; width:15%; height:2%; background:#4a2a1a; box-shadow:0 4px 6px rgba(0,0,0,.4); }
.scn-toby-generosity .lamp { position:absolute; bottom:40%; left:55%; width:10%; height:12%; background:radial-gradient(circle, #c08040 0%, #804020 50%, transparent 100%); border-radius:50%; filter:blur(6px); animation:tg-lamp 3s ease-in-out infinite alternate; }
@keyframes tg-toby { 0%,100% { transform:rotate(0deg) translateX(0); } 50% { transform:rotate(2deg) translateX(2px); } }
@keyframes tg-landlord { 0%,100% { transform:rotate(0deg) scaleY(1); } 50% { transform:rotate(-5deg) scaleY(1.03); } }
@keyframes tg-bottle { 0% { opacity:0.8; transform:translateY(0); } 50% { opacity:1; transform:translateY(-2px); } 100% { opacity:0.9; transform:translateY(0); } }
@keyframes tg-lamp { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.15); } 100% { opacity:0.7; transform:scale(0.9); } }

.scn-toby-moved {
  background:
    linear-gradient(180deg, #1a0e05 0%, #2a1a0a 40%, #0d0703 100%),
    radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 60%);
}
.scn-toby-moved .bg-room { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-toby-moved .table { position:absolute; bottom:30%; left:15%; width:70%; height:8%; background:linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:10% / 40%; box-shadow:0 6px 12px rgba(0,0,0,.5); }
.scn-toby-moved .chair { position:absolute; bottom:30%; left:30%; width:15%; height:30%; background:linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:20% 20% 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,.4); animation:tm-chair 10s ease-in-out infinite; }
.scn-toby-moved .toby { position:absolute; bottom:32%; left:32%; width:18%; height:40%; background:linear-gradient(180deg, #4a3a2a 0%, #1a100a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:tm-toby 4s ease-in-out infinite; }
.scn-toby-moved .plate { position:absolute; bottom:35%; left:46%; width:12%; height:6%; background:radial-gradient(ellipse, #b08040 0%, #6a4020 100%); border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.4); animation:tm-plate 6s ease-in-out infinite; }
.scn-toby-moved .knife-fork { position:absolute; bottom:36%; left:44%; width:8%; height:12%; background:linear-gradient(180deg, #a0a0a0 0%, #606060 100%); border-radius:20% 20% 10% 10%; transform:rotate(15deg); animation:tm-cutlery 5s ease-in-out infinite; }
.scn-toby-moved .pipe { position:absolute; bottom:42%; left:25%; width:3%; height:18%; background:linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:0 0 30% 30%; transform:rotate(-10deg); animation:tm-pipe 7s ease-in-out infinite; }
.scn-toby-moved .tobacco { position:absolute; bottom:38%; left:22%; width:6%; height:4%; background:radial-gradient(circle, #4a3a2a 0%, #1a100a 100%); border-radius:50%; box-shadow:0 2px 4px rgba(0,0,0,.4); }
@keyframes tm-chair { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(2deg); } }
@keyframes tm-toby { 0%,100% { transform:rotate(0deg) translateX(0); } 50% { transform:rotate(-2deg) translateX(-2px); } }
@keyframes tm-plate { 0% { opacity:0.9; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.95; transform:scale(1); } }
@keyframes tm-cutlery { 0%,100% { transform:rotate(15deg); } 50% { transform:rotate(20deg) translateY(-1px); } }
@keyframes tm-pipe { 0%,100% { transform:rotate(-10deg); } 50% { transform:rotate(-5deg) translateY(-2px); } }

/* different-burdens */
.scn-different-burdens {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e18 40%, #3a2820 100%), radial-gradient(ellipse at 50% 100%, #2a1e18 0%, transparent 70%);
}
.scn-different-burdens .wall-left { position:absolute; inset:0 50% 30% 0; background: linear-gradient(90deg, #2a1e18 0%, #1a1210 100%); border-right: 2px solid #3a2820; animation: db-wall 12s ease-in-out infinite alternate; }
.scn-different-burdens .wall-right { position:absolute; inset:0 0 30% 50%; background: linear-gradient(90deg, #1a1210 0%, #2a1e18 100%); }
.scn-different-burdens .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1e18 0%, #120c08 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-different-burdens .bed { position:absolute; bottom:25%; left:10%; width:60%; height:30%; background: linear-gradient(180deg, #3a2820 0%, #1a1210 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: db-bed 9s ease-in-out infinite; }
.scn-different-burdens .figure { position:absolute; bottom:35%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: db-figure 6s ease-in-out infinite; }
.scn-different-burdens .candle { position:absolute; bottom:40%; right:20%; width:8px; height:40px; background: linear-gradient(180deg, #e8d0a0 0%, #4a3a20 100%); border-radius: 4px 4px 2px 2px; animation: db-candle 4s ease-in-out infinite; }
.scn-different-burdens .glow { position:absolute; bottom:40%; right:20%; width:80px; height:80px; background: radial-gradient(circle, rgba(232,208,160,.5) 0%, transparent 70%); animation: db-glow 3s ease-in-out infinite alternate; }
.scn-different-burdens .shadow { position:absolute; bottom:30%; left:30%; width:40px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%); animation: db-shadow 6s ease-in-out infinite; }
@keyframes db-wall { 0% { opacity:.9; } 50% { opacity:.7; } 100% { opacity:.9; } }
@keyframes db-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes db-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(0deg); } 50% { transform: translateX(16px) rotate(1deg); } 75% { transform: translateX(24px) rotate(0deg); } 100% { transform: translateX(32px) rotate(-2deg); } }
@keyframes db-candle { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(1); opacity:.8; } }
@keyframes db-glow { 0% { transform: scale(1); opacity:.4; } 50% { transform: scale(1.3); opacity:.6; } 100% { transform: scale(1); opacity:.4; } }
@keyframes db-shadow { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(8px) scaleX(.8); } 50% { transform: translateX(16px) scaleX(1.2); } 75% { transform: translateX(24px) scaleX(.9); } 100% { transform: translateX(32px) scaleX(1); } }

/* fish-pond-walk */
.scn-fish-pond-walk {
  background: linear-gradient(180deg, #1c1c2a 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 80%);
}
.scn-fish-pond-walk .room-wall { position:absolute; inset:0 20% 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1c1c2a 100%); border-right: 1px solid #4a4a5e; }
.scn-fish-pond-walk .window-frame { position:absolute; top:10%; right:15%; width:40%; height:50%; background: linear-gradient(135deg, #3a3a4e 0%, #2a2a3e 100%); border: 4px solid #1c1c2a; border-radius: 8px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: fp-frame 15s ease-in-out infinite alternate; }
.scn-fish-pond-walk .window-pane { position:absolute; top:12%; right:17%; width:36%; height:46%; background: linear-gradient(180deg, rgba(100,140,180,.3) 0%, rgba(60,80,120,.2) 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.4); animation: fp-pane 20s ease-in-out infinite; }
.scn-fish-pond-walk .pond-reflection { position:absolute; bottom:40%; left:10%; width:30%; height:15%; background: radial-gradient(ellipse, rgba(80,120,160,.4) 0%, transparent 70%); animation: fp-reflection 12s ease-in-out infinite alternate; }
.scn-fish-pond-walk .figure-walking { position:absolute; bottom:30%; left:30%; width:18px; height:48px; background: linear-gradient(180deg, #12121e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: fp-walk 5s ease-in-out infinite; }
.scn-fish-pond-walk .door { position:absolute; bottom:25%; left:5%; width:15%; height:40%; background: linear-gradient(180deg, #2a2a3e 0%, #1c1c2a 100%); border: 2px solid #3a3a4e; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-fish-pond-walk .lamp { position:absolute; bottom:45%; left:8%; width:6px; height:20px; background: linear-gradient(180deg, #d0c080 0%, #4a3a20 100%); border-radius: 2px; }
.scn-fish-pond-walk .lamp-glow { position:absolute; bottom:45%; left:8%; width:40px; height:40px; background: radial-gradient(circle, rgba(208,192,128,.5) 0%, transparent 70%); animation: fp-lamp-glow 4s ease-in-out infinite alternate; }
@keyframes fp-frame { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes fp-pane { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.5; } }
@keyframes fp-reflection { 0% { transform: scaleY(1); opacity:.3; } 50% { transform: scaleY(1.2); opacity:.5; } 100% { transform: scaleY(1); opacity:.3; } }
@keyframes fp-walk { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(12px) rotate(1deg); } 60% { transform: translateX(24px) rotate(-1deg); } 100% { transform: translateX(36px) rotate(0deg); } }
@keyframes fp-lamp-glow { 0% { transform: scale(1); opacity:.4; } 50% { transform: scale(1.5); opacity:.6; } 100% { transform: scale(1); opacity:.4; } }

/* trim-justifies */
.scn-trim-justifies {
  background: linear-gradient(180deg, #3c3020 0%, #4a3a2a 40%, #5a4a3a 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-trim-justifies .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #5a4a3a 0%, #3c3020 100%); }
.scn-trim-justifies .table { position:absolute; bottom:25%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: tj-table 10s ease-in-out infinite; }
.scn-trim-justifies .chair { position:absolute; bottom:20%; left:35%; width:20%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #3c3020 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 8px rgba(0,0,0,.5); }
.scn-trim-justifies .figure-bowing { position:absolute; bottom:28%; left:45%; width:16px; height:44px; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tj-bow 3s ease-in-out infinite; }
.scn-trim-justifies .candle-funny { position:absolute; bottom:38%; left:50%; width:6px; height:30px; background: linear-gradient(180deg, #e8d0a0 0%, #4a3a20 100%); border-radius: 2px; transform: translateX(-50%); animation: tj-candle 2s ease-in-out infinite; }
.scn-trim-justifies .candle-flame { position:absolute; bottom:65%; left:50%; width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, #ffa040 70%, transparent 100%); transform: translateX(-50%); animation: tj-flame 1.5s ease-in-out infinite alternate; }
.scn-trim-justifies .carpet { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2820 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); animation: tj-carpet 15s ease-in-out infinite alternate; }
@keyframes tj-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tj-bow { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-4px) rotate(-10deg); } 40% { transform: translateX(4px) rotate(10deg); } 60% { transform: translateX(-4px) rotate(-8deg); } 80% { transform: translateX(4px) rotate(8deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tj-candle { 0% { transform: translateX(-50%) scaleY(1); } 25% { transform: translateX(-50%) scaleY(1.2); } 50% { transform: translateX(-50%) scaleY(0.9); } 75% { transform: translateX(-50%) scaleY(1.1); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes tj-flame { 0% { transform: translateX(-50%) scale(1); opacity:.8; } 50% { transform: translateX(-50%) scale(1.4); opacity:1; } 100% { transform: translateX(-50%) scale(0.8); opacity:.6; } }
@keyframes tj-carpet { 0% { transform: scaleX(1); opacity:.9; } 50% { transform: scaleX(1.05); opacity:1; } 100% { transform: scaleX(1); opacity:.9; } }

/* names-and-fighting */
.scn-names-and-fighting {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2820 40%, #5a3a2a 100%), radial-gradient(ellipse at 50% 60%, #3a2820 0%, transparent 70%);
}
.scn-names-and-fighting .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); }
.scn-names-and-fighting .fireplace { position:absolute; bottom:20%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-names-and-fighting .fire { position:absolute; bottom:25%; left:12%; width:26%; height:25%; background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6020 40%, transparent 100%); animation: nf-fire 2s ease-in-out infinite alternate; }
.scn-names-and-fighting .soldier { position:absolute; bottom:25%; right:20%; width:24px; height:60px; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: nf-soldier 8s ease-in-out infinite; }
.scn-names-and-fighting .sword { position:absolute; bottom:35%; right:15%; width:4px; height:50px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 2px; transform: rotate(-20deg); transform-origin: bottom; animation: nf-sword 4s ease-in-out infinite; }
.scn-names-and-fighting .shield { position:absolute; bottom:30%; right:25%; width:30px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2820 100%); border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow: inset 0 0 8px rgba(0,0,0,.5); animation: nf-shield 6s ease-in-out infinite; }
.scn-names-and-fighting .armor-glow { position:absolute; bottom:30%; right:20%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(255,128,64,.3) 0%, transparent 80%); animation: nf-glow 3s ease-in-out infinite alternate; }
@keyframes nf-fire { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.3); opacity:1; } 100% { transform: scaleY(0.8); opacity:.6; } }
@keyframes nf-soldier { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(6px) rotate(3deg); } 40% { transform: translateX(-6px) rotate(-3deg); } 60% { transform: translateX(6px) rotate(3deg); } 80% { transform: translateX(-6px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nf-sword { 0% { transform: rotate(-20deg); } 25% { transform: rotate(-5deg); } 50% { transform: rotate(-20deg); } 75% { transform: rotate(-30deg); } 100% { transform: rotate(-20deg); } }
@keyframes nf-shield { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes nf-glow { 0% { transform: scale(1); opacity:.3; } 50% { transform: scale(1.2); opacity:.5; } 100% { transform: scale(1); opacity:.3; } }

/* estate-conveyance – calm dim interior */
.scn-estate-conveyance {
  background: linear-gradient(180deg, #2a2218 0%, #3a2e1e 30%, #2a1e12 100%),
              radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 70%);
}
.scn-estate-conveyance .bg-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #1e1812 0%, #2a2218 40%, transparent 100%);
  animation: si2-wall 20s ease-in-out infinite alternate;
}
.scn-estate-conveyance .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(5deg);
  animation: si2-table 12s ease-in-out infinite;
}
.scn-estate-conveyance .scroll {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #c8b090 0%, #a08870 100%);
  border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-2deg);
  animation: si2-scroll 8s ease-in-out infinite;
}
.scn-estate-conveyance .inkwell {
  position: absolute; bottom: 15%; left: 55%; width: 20px; height: 22px;
  background: radial-gradient(circle at 50% 30%, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: si2-ink 6s ease-in-out infinite;
}
.scn-estate-conveyance .quill {
  position: absolute; bottom: 20%; left: 58%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e8d8c8 0%, #c0a890 50%, #8a7058 100%);
  border-radius: 50% / 10% 10% 20% 20%;
  transform: rotate(20deg); transform-origin: bottom;
  animation: si2-quill 4s ease-in-out infinite;
}
.scn-estate-conveyance .candle {
  position: absolute; bottom: 12%; left: 45%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 50%, #c0a880 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px #f0c880;
  animation: si2-candle 3s ease-in-out infinite;
}
.scn-estate-conveyance .candle-glow {
  position: absolute; bottom: 22%; left: 42%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(240,200,120,0.6) 0%, rgba(240,200,120,0.2) 50%, transparent 100%);
  animation: si2-glow 3s ease-in-out infinite alternate;
}
@keyframes si2-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes si2-table { 0%,100% { transform: perspective(400px) rotateX(5deg) translateY(0) } 50% { transform: perspective(400px) rotateX(4deg) translateY(-2px) } }
@keyframes si2-scroll { 0%,100% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(0deg) scale(1.02) } }
@keyframes si2-ink { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes si2-quill { 0%,100% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-3px) } }
@keyframes si2-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } }
@keyframes si2-glow { 0% { opacity: 0.7; transform: scale(1) } 100% { opacity: 1; transform: scale(1.1) } }

/* legal-mumbo-jumbo – funny dim interior */
.scn-legal-mumbo-jumbo {
  background: linear-gradient(180deg, #2a2a1e 0%, #3a3a2a 40%, #1a1a12 100%),
              radial-gradient(ellipse at 30% 80%, #4a4a3a 0%, transparent 70%);
}
.scn-legal-mumbo-jumbo .bg-panel {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1a12 0%, transparent 20%, transparent 80%, #1a1a12 100%);
  animation: si3-panel 10s ease-in-out infinite alternate;
}
.scn-legal-mumbo-jumbo .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -6px 18px rgba(0,0,0,0.7);
  transform: perspective(300px) rotateX(10deg);
  animation: si3-desk 8s ease-in-out infinite;
}
.scn-legal-mumbo-jumbo .wig {
  position: absolute; bottom: 22%; left: 30%; width: 50px; height: 40px;
  background: radial-gradient(ellipse at 50% 60%, #e8e0d0 0%, #c8c0b0 60%, #a8a090 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: si3-wig 4s ease-in-out infinite;
}
.scn-legal-mumbo-jumbo .gavel {
  position: absolute; bottom: 16%; left: 55%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(15deg); transform-origin: bottom;
  animation: si3-gavel 0.6s ease-in-out infinite;
}
.scn-legal-mumbo-jumbo .papers {
  position: absolute; bottom: 14%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8d0c0 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(2deg);
  animation: si3-papers 6s ease-in-out infinite;
}
.scn-legal-mumbo-jumbo .quill-big {
  position: absolute; bottom: 20%; left: 48%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0e0d0 0%, #c0a890 50%, #8a7058 100%);
  border-radius: 50% / 5% 5% 15% 15%;
  transform: rotate(-30deg); transform-origin: bottom;
  animation: si3-quill 3s ease-in-out infinite;
}
.scn-legal-mumbo-jumbo .ink-splash {
  position: absolute; bottom: 12%; left: 50%; width: 12px; height: 12px;
  background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 60%, transparent 100%);
  border-radius: 50%;
  animation: si3-splash 2s ease-in-out infinite;
}
@keyframes si3-panel { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes si3-desk { 0%,100% { transform: perspective(300px) rotateX(10deg) translateY(0) } 50% { transform: perspective(300px) rotateX(8deg) translateY(-3px) } }
@keyframes si3-wig { 0%,100% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(3deg) scale(1.05) } }
@keyframes si3-gavel { 0%,100% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-4px) } }
@keyframes si3-papers { 0%,100% { transform: rotate(2deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(5px) } }
@keyframes si3-quill { 0%,100% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(-5px) } }
@keyframes si3-splash { 0%,100% { transform: scale(0.8); opacity: 0.6 } 50% { transform: scale(1.2); opacity: 1 } }

/* penalty-clause – funny dim interior */
.scn-penalty-clause {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1e 40%, #1a1208 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-penalty-clause .bg-curtain {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1410 0%, transparent 20%, transparent 80%, #1a1410 100%);
  animation: si4-curtain 15s ease-in-out infinite alternate;
}
.scn-penalty-clause .bed-frame {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 10% 10% 4% 4% / 30% 30% 10% 10%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.7);
  transform: perspective(400px) rotateX(8deg);
  animation: si4-bed 10s ease-in-out infinite;
}
.scn-penalty-clause .pillow {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8d0c0 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-3deg);
  animation: si4-pillow 6s ease-in-out infinite;
}
.scn-penalty-clause .figure-silhouette {
  position: absolute; bottom: 12%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1212 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si4-figure 5s ease-in-out infinite;
}
.scn-penalty-clause .hand-on-belly {
  position: absolute; bottom: 18%; left: 45%; width: 12px; height: 14px;
  background: #2a1e1e;
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: si4-hand 3s ease-in-out infinite;
}
.scn-penalty-clause .scroll-message {
  position: absolute; bottom: 20%; right: 25%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #d0c0a8 0%, #b0a088 100%);
  border-radius: 8% 8% 8% 8% / 20% 20% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  transform: rotate(5deg);
  animation: si4-scroll 7s ease-in-out infinite;
}
.scn-penalty-clause .candle-small {
  position: absolute; bottom: 10%; left: 55%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #f0d8b0 0%, #d8b890 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px 2px #f0c880;
  animation: si4-candle 3s ease-in-out infinite;
}
@keyframes si4-curtain { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes si4-bed { 0%,100% { transform: perspective(400px) rotateX(8deg) translateY(0) } 50% { transform: perspective(400px) rotateX(6deg) translateY(-4px) } }
@keyframes si4-pillow { 0%,100% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } }
@keyframes si4-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-2px) rotate(0deg) } }
@keyframes si4-hand { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } }
@keyframes si4-scroll { 0%,100% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(0deg) scale(1.03) } }
@keyframes si4-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.08) } }

/* nose-squeezed – dark dim interior */
.scn-nose-squeezed {
  background: linear-gradient(180deg, #0a0a14 0%, #14141e 40%, #0a0a10 100%),
              radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, transparent 60%);
}
.scn-nose-squeezed .bg-darkness {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a14 0%, #14141e 50%, #0a0a10 100%);
  animation: si5-dark 12s ease-in-out infinite alternate;
}
.scn-nose-squeezed .face-profile {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%;
  box-shadow: 0 0 8px rgba(0,0,0,0.8);
  transform: rotate(5deg);
  animation: si5-face 8s ease-in-out infinite;
}
.scn-nose-squeezed .nose {
  position: absolute; bottom: 34%; left: 42%; width: 14px; height: 10px;
  background: #1a1a2a;
  border-radius: 60% 20% 20% 60% / 70% 30% 30% 70%;
  transform: rotate(-10deg);
  animation: si5-nose 4s ease-in-out infinite;
}
.scn-nose-squeezed .hand-squeeze {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%;
  transform: rotate(-20deg);
  animation: si5-hand 3s ease-in-out infinite;
}
.scn-nose-squeezed .light-pool {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(20,20,30,0.6) 0%, rgba(10,10,20,0.2) 50%, transparent 100%);
  animation: si5-light 6s ease-in-out infinite alternate;
}
.scn-nose-squeezed .shadow-streak {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 4px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 50%, transparent 100%);
  animation: si5-streak 5s ease-in-out infinite;
}
@keyframes si5-dark { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes si5-face { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } }
@keyframes si5-nose { 0%,100% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-15deg) scale(1.1) } }
@keyframes si5-hand { 0%,100% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(-4px) } }
@keyframes si5-light { 0% { opacity: 0.5; transform: scale(0.9) } 100% { opacity: 0.8; transform: scale(1.1) } }
@keyframes si5-streak { 0%,100% { transform: translateX(0) } 50% { transform: translateX(10px) } }

/* tobys-oath – warm interior, candlelit */
.scn-tobys-oath {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 40%, #4a2a0a 100%),
              radial-gradient(ellipse at 50% 60%, #6a3a0a 0%, transparent 70%);
}
.scn-tobys-oath .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-tobys-oath .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  transform: perspective(600px) rotateX(40deg);
  transform-origin: bottom center;
}
.scn-tobys-oath .window {
  position: absolute; top: 20%; left: 20%; width: 30%; height: 35%;
  background: radial-gradient(ellipse at 50% 50%, #8a6a3a 0%, #3a2a1a 100%);
  border: 4px solid #2a1a0a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px #6a4a2a, 0 0 30px rgba(200,150,80,.3);
  animation: to-window 8s ease-in-out infinite alternate;
}
.scn-tobys-oath .candle {
  position: absolute; bottom: 38%; left: 45%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #ffd080 0%, #8a6020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 10px #ffa040, 0 0 80px 25px rgba(255,160,64,.4);
  animation: to-flicker 0.5s ease-in-out infinite alternate;
}
.scn-tobys-oath .table {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a220e 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-tobys-oath .figure-toby {
  position: absolute; bottom: 30%; left: 50%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: to-toby 6s ease-in-out infinite;
}
.scn-tobys-oath .shadow {
  position: absolute; bottom: 30%; left: 52%; width: 50px; height: 10px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: to-shadow 6s ease-in-out infinite;
}

@keyframes to-window {
  0% { opacity: .7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: .8; transform: scaleX(.98); }
}
@keyframes to-flicker {
  0% { transform: translateY(0) scaleY(1); opacity: .9; }
  25% { transform: translateY(-2px) scaleY(1.02); opacity: 1; }
  50% { transform: translateY(0) scaleY(0.98); opacity: .95; }
  75% { transform: translateY(-1px) scaleY(1.01); opacity: .85; }
  100% { transform: translateY(0) scaleY(1); opacity: .9; }
}
@keyframes to-toby {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-2deg); }
  50% { transform: translateX(8px) rotate(0deg); }
  75% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes to-shadow {
  0% { transform: scaleX(1); opacity: .3; }
  50% { transform: scaleX(1.3); opacity: .5; }
  100% { transform: scaleX(1); opacity: .3; }
}

/* le-fever-dies – morning light, bleak */
.scn-le-fever-dies {
  background: linear-gradient(180deg, #2a2a3a 0%, #4a4a5a 30%, #6a6a7a 100%),
              radial-gradient(ellipse at 50% 20%, #8a8a9a 0%, transparent 60%);
}
.scn-le-fever-dies .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-le-fever-dies .window.bright {
  position: absolute; top: 15%; left: 40%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #c0c0d0 0%, #7a7a8a 60%, #4a4a5a 100%);
  border: 4px solid #2a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px #aaaabc, 0 0 30px rgba(192,192,208,.6);
  animation: lfd-glare 12s ease-in-out infinite alternate;
}
.scn-le-fever-dies .bed {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-le-fever-dies .figure-lefever {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: lfd-lefever 4s ease-in-out infinite;
}
.scn-le-fever-dies .figure-toby {
  position: absolute; bottom: 30%; left: 50%; width: 25px; 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: lfd-toby 6s ease-in-out infinite;
}
.scn-le-fever-dies .bureau {
  position: absolute; bottom: 22%; left: 15%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 2px 0 6px rgba(0,0,0,.5);
}

@keyframes lfd-glare {
  0% { opacity: .6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.03); }
  100% { opacity: .7; transform: scaleY(0.98); }
}
@keyframes lfd-lefever {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-3px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes lfd-toby {
  0% { transform: translateX(0) rotate(5deg); }
  25% { transform: translateX(3px) rotate(0deg); }
  50% { transform: translateX(6px) rotate(-3deg); }
  75% { transform: translateX(3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(5deg); }
}
@keyframes lfd-bureau {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}

/* death-scene – dark interior, kneeling son */
.scn-death-scene {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 60%, #3a3a4a 0%, transparent 70%);
}
.scn-death-scene .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-death-scene .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  transform: perspective(400px) rotateX(30deg);
  transform-origin: bottom center;
}
.scn-death-scene .bed {
  position: absolute; bottom: 15%; left: 35%; width: 35%; height: 28%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
}
.scn-death-scene .figure-lefever {
  position: absolute; bottom: 20%; left: 40%; width: 28px; height: 38px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: ds-lefever 5s ease-in-out infinite;
}
.scn-death-scene .figure-son {
  position: absolute; bottom: 5%; left: 42%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.8) translateY(0);
  transform-origin: bottom center;
  animation: ds-son 8s ease-in-out infinite;
}
.scn-death-scene .figure-toby {
  position: absolute; bottom: 22%; left: 55%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-toby 6s ease-in-out infinite alternate;
}
.scn-death-scene .candle {
  position: absolute; bottom: 30%; left: 30%; width: 6px; height: 22px;
  background: linear-gradient(180deg, #ffc060 0%, #6a4010 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #ffa040, 0 0 60px 20px rgba(255,160,64,.3);
  animation: ds-candle 0.6s ease-in-out infinite alternate;
}
.scn-death-scene .shadow-son {
  position: absolute; bottom: 5%; left: 42%; width: 30px; height: 6px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: ds-shadow 8s ease-in-out infinite;
}

@keyframes ds-lefever {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ds-son {
  0% { transform: scale(0.8) translateY(0) rotate(-10deg); }
  25% { transform: scale(0.82) translateY(-2px) rotate(-5deg); }
  50% { transform: scale(0.8) translateY(0) rotate(0deg); }
  75% { transform: scale(0.82) translateY(-2px) rotate(5deg); }
  100% { transform: scale(0.8) translateY(0) rotate(10deg); }
}
@keyframes ds-toby {
  0% { transform: translateX(0) rotate(5deg); }
  100% { transform: translateX(8px) rotate(-5deg); }
}
@keyframes ds-candle {
  0% { transform: translateY(0) scaleY(1); opacity: .8; }
  100% { transform: translateY(-2px) scaleY(1.03); opacity: 1; }
}
@keyframes ds-shadow {
  0% { transform: scaleX(1); opacity: .4; }
  50% { transform: scaleX(0.7); opacity: .2; }
  100% { transform: scaleX(1); opacity: .4; }
}

/* le-fever-buried – outdoor funeral, graveyard */
.scn-le-fever-buried {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 10%, #3a3a4a 0%, transparent 60%);
}
.scn-le-fever-buried .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: lfb-sky 15s ease-in-out infinite alternate;
}
.scn-le-fever-buried .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-le-fever-buried .grave {
  position: absolute; bottom: 20%; left: 40%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 10% 10% 4% 4% / 50% 50% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,.7);
}
.scn-le-fever-buried .figure-toby {
  position: absolute; bottom: 28%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lfb-toby 6s ease-in-out infinite;
}
.scn-le-fever-buried .figure-son {
  position: absolute; bottom: 28%; left: 41%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: lfb-son 8s ease-in-out infinite;
}
.scn-le-fever-buried .candle-procession {
  position: absolute; bottom: 32%; left: 31%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #ffc060 0%, #6a4010 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,.2);
  animation: lfb-candle 0.8s ease-in-out infinite alternate;
}
.scn-le-fever-buried .church-spire {
  position: absolute; bottom: 50%; left: 15%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 0 20px rgba(0,0,0,.5);
}
.scn-le-fever-buried .cloud {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 20px;
  background: rgba(255,255,255,.08);
  border-radius: 50%;
  filter: blur(8px);
  animation: lfb-cloud 40s linear infinite;
}

@keyframes lfb-sky {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .5; }
}
@keyframes lfb-toby {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes lfb-son {
  0% { transform: scale(0.9) translateY(0); }
  50% { transform: scale(0.91) translateY(-3px); }
  100% { transform: scale(0.9) translateY(0); }
}
@keyframes lfb-candle {
  0% { transform: translateY(0) scaleY(1); opacity: .7; }
  100% { transform: translateY(-2px) scaleY(1.04); opacity: 1; }
}
@keyframes lfb-cloud {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}

/* peireskius-walk */
.scn-peireskius-walk {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 60%, #362614 100%),
    radial-gradient(ellipse at 30% 70%, #4a3220 0%, transparent 70%);
}
.scn-peireskius-walk .wall  { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3e2c1a 0%, #2a1e14 100%); border-radius:0 0 20% 20%; }
.scn-peireskius-walk .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3620 0%, #2a1a0e 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-peireskius-walk .window{ position:absolute; top:15%; right:12%; width:80px; height:100px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 0 0 3px #4a3620; animation: pw-fade 7s ease-in-out infinite alternate; }
.scn-peireskius-walk .table { position:absolute; bottom:28%; left:15%; width:120px; height:30px; background: linear-gradient(180deg, #5a3e28 0%, #3a2618 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-peireskius-walk .candle{ position:absolute; bottom:45%; left:18%; width:12px; height:30px; background: linear-gradient(180deg, #c8a860 0%, #a08040 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 6px #d0a860, 0 0 40px 15px rgba(208,168,96,.3); animation: pw-candle 3s ease-in-out infinite alternate; }
.scn-peireskius-walk .walker{ position:absolute; bottom:28%; left:20%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pw-walk 4s ease-in-out infinite; }
.scn-peireskius-walk .shadow{ position:absolute; bottom:23%; left:18%; width:24px; height:8px; background: rgba(0,0,0,.5); border-radius:50%; filter: blur(3px); animation: pw-shadow 4s ease-in-out infinite; }
.scn-peireskius-walk .dust  { position:absolute; top:40%; left:30%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,180,120,.15) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: pw-drift 25s linear infinite; }

@keyframes pw-fade    { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.4 } }
@keyframes pw-candle  { 0% { transform: scaleY(1) ; box-shadow: 0 0 15px 4px #c0a050,0 0 30px 10px rgba(192,160,80,.3) } 50% { transform: scaleY(1.05) ; box-shadow: 0 0 25px 8px #e0c060,0 0 50px 20px rgba(224,192,96,.5) } 100% { transform: scaleY(.98) ; box-shadow: 0 0 18px 5px #c0a050,0 0 35px 12px rgba(192,160,80,.35) } }
@keyframes pw-walk    { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes pw-shadow  { 0% { transform: translateX(2px) scale(1) } 25% { transform: translateX(8px) scale(.9) } 50% { transform: translateX(14px) scale(1.1) } 75% { transform: translateX(20px) scale(.95) } 100% { transform: translateX(28px) scale(1) } }
@keyframes pw-drift   { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(40px,-10px) scale(1.3) } 100% { transform: translate(-20px,20px) scale(.8) } }

/* chariot-principles */
.scn-chariot-principles {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 60%, #362614 100%),
    radial-gradient(ellipse at 70% 40%, #4a3220 0%, transparent 70%);
}
.scn-chariot-principles .bg-room     { position:absolute; inset:0; background: linear-gradient(180deg, #3e2c1a 0%, #2a1e14 100%); border-radius:0 0 30% 30%; }
.scn-chariot-principles .desk        { position:absolute; bottom:20%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #5a3e28 0%, #3a2618 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 6px 18px rgba(0,0,0,.6); }
.scn-chariot-principles .chariot-body{ position:absolute; bottom:30%; left:30%; width:70px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2e1a 100%); border-radius:20% 20% 10% 10%; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: cp-rock 12s ease-in-out infinite; }
.scn-chariot-principles .chariot-sail{ position:absolute; bottom:48%; left:37%; width:40px; height:55px; background: linear-gradient(135deg, #c8a860 0%, #a08040 100%); border-radius:20% 20% 10% 10%; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 85%); transform: rotate(15deg); box-shadow: 0 0 15px 5px rgba(200,168,96,.4); animation: cp-sail 4s ease-in-out infinite alternate; }
.scn-chariot-principles .sail-shadow{ position:absolute; bottom:30%; left:32%; width:50px; height:20px; background: rgba(0,0,0,.3); border-radius:50%; filter: blur(6px); animation: cp-shadow 4s ease-in-out infinite; }
.scn-chariot-principles .lamp       { position:absolute; bottom:50%; left:55%; width:14px; height:30px; background: linear-gradient(180deg, #d0a860 0%, #a08040 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 25px 8px #d0a860, 0 0 50px 20px rgba(208,168,96,.3); animation: cp-lamp 3s ease-in-out infinite alternate; }
.scn-chariot-principles .book-stack { position:absolute; bottom:36%; left:50%; width:50px; height:20px; background: linear-gradient(180deg, #4a3620 0%, #2a1a0e 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.5), inset 0 -4px 6px rgba(0,0,0,.2); }

@keyframes cp-rock   { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes cp-sail   { 0% { transform: rotate(15deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(1.1) } 100% { transform: rotate(20deg) scaleX(.9) } }
@keyframes cp-shadow { 0%,100% { transform: translateX(0) scale(1) ; opacity:.4 } 50% { transform: translateX(5px) scale(1.2) ; opacity:.6 } }
@keyframes cp-lamp   { 0% { box-shadow: 0 0 18px 4px #c0a050,0 0 30px 10px rgba(192,160,80,.3) } 50% { box-shadow: 0 0 35px 10px #e0c060,0 0 60px 25px rgba(224,192,96,.5) } 100% { box-shadow: 0 0 22px 6px #c0a050,0 0 40px 15px rgba(192,160,80,.35) } }

/* wind-husbandry */
.scn-wind-husbandry {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #362614 100%),
    radial-gradient(ellipse at 20% 60%, #4a3220 0%, transparent 70%);
}
.scn-wind-husbandry .wall-dark  { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3e2c1a 0%, #2a1e14 100%); border-radius:0 0 40% 40%; }
.scn-wind-husbandry .hearth    { position:absolute; bottom:20%; left:10%; width:100px; height:50px; background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%); border-radius:40% 40% 10% 10%; box-shadow: inset 0 0 0 6px #1a0e06; }
.scn-wind-husbandry .flame     { position:absolute; bottom:40%; left:13%; width:20px; height:40px; background: radial-gradient(circle, #f0c060 0%, #c07020 70%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 30px 10px #d08030, 0 0 60px 20px rgba(200,100,40,.4); animation: wh-flame 2s ease-in-out infinite alternate; }
.scn-wind-husbandry .curtain-left  { position:absolute; top:5%; left:0; width:30%; height:70%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2618 100%); border-radius:0 20% 20% 0; transform-origin: left center; animation: wh-curtainL 8s ease-in-out infinite; }
.scn-wind-husbandry .curtain-right { position:absolute; top:5%; right:0; width:30%; height:70%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2618 100%); border-radius:20% 0 0 20%; transform-origin: right center; animation: wh-curtainR 8s ease-in-out infinite; }
.scn-wind-husbandry .vane      { position:absolute; bottom:50%; left:60%; width:40px; height:6px; background: linear-gradient(90deg, #8a6a3a 0%, #4a2e1a 100%); border-radius:2px; transform-origin: left center; animation: wh-vane 3s ease-in-out infinite alternate; }
.scn-wind-husbandry .wind-line { position:absolute; top:30%; left:20%; width:120px; height:2px; background: linear-gradient(90deg, rgba(200,180,120,.2) 0%, rgba(200,180,120,.6) 50%, transparent 100%); animation: wh-wind 15s linear infinite; }

@keyframes wh-flame      { 0% { transform: scaleY(1) scaleX(.8); box-shadow: 0 0 25px 8px #c07020,0 0 50px 15px rgba(192,112,32,.4) } 50% { transform: scaleY(1.15) scaleX(.9); box-shadow: 0 0 40px 15px #e08030,0 0 70px 25px rgba(224,128,48,.6) } 100% { transform: scaleY(.9) scaleX(.85); box-shadow: 0 0 20px 6px #c07020,0 0 40px 10px rgba(192,112,32,.35) } }
@keyframes wh-curtainL   { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(6deg) translateX(-5px) } }
@keyframes wh-curtainR   { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-6deg) translateX(5px) } }
@keyframes wh-vane       { 0% { transform: rotate(-15deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(10deg) } }
@keyframes wh-wind       { 0% { transform: translateX(-100%) scaleX(1) } 50% { transform: translateX(50%) scaleX(1.5) } 100% { transform: translateX(100%) scaleX(.8) } }

/* trade-dissertation */
.scn-trade-dissertation {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 60%, #362614 100%),
    radial-gradient(ellipse at 50% 80%, #4a3220 0%, transparent 70%);
}
.scn-trade-dissertation .bg-study    { position:absolute; inset:0; background: linear-gradient(180deg, #3e2c1a 0%, #2a1e14 100%); border-radius:0 0 20% 20%; }
.scn-trade-dissertation .candle-stick{ position:absolute; bottom:15%; left:20%; width:10px; height:35px; background: linear-gradient(180deg, #c8a860 0%, #a08040 100%); border-radius:40% 40% 10% 10%; }
.scn-trade-dissertation .candle-fire { position:absolute; bottom:40%; left:18%; width:16px; height:24px; background: radial-gradient(circle, #f0c060 0%, #c07020 70%); border-radius:50%; box-shadow: 0 0 30px 12px #d08030, 0 0 60px 25px rgba(200,100,40,.3); animation: td-fire 3s ease-in-out infinite alternate; }
.scn-trade-dissertation .inkwell    { position:absolute; bottom:20%; left:40%; width:20px; height:20px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 2px 8px rgba(0,0,0,.6); }
.scn-trade-dissertation .quill      { position:absolute; bottom:38%; left:42%; width:4px; height:30px; background: linear-gradient(180deg, #d0a860 0%, #a08040 100%); border-radius:50%; transform: rotate(20deg); transform-origin: bottom center; animation: td-quill 5s ease-in-out infinite alternate; }
.scn-trade-dissertation .paper-pile { position:absolute; bottom:12%; left:50%; width:80px; height:16px; background: linear-gradient(180deg, #c8b890 0%, #a09070 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.4), inset 0 -2px 4px rgba(0,0,0,.1); animation: td-paper 10s ease-in-out infinite; }
.scn-trade-dissertation .coin-slot  { position:absolute; bottom:30%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #c8a860 0%, #a08040 70%); border-radius:50%; box-shadow: 0 0 0 3px #5a3e28; animation: td-coin 7s ease-in-out infinite; }
.scn-trade-dissertation .globe-shadow{ position:absolute; bottom:25%; right:25%; width:50px; height:50px; background: radial-gradient(circle, rgba(0,0,0,.3) 0%, transparent 70%); border-radius:50%; filter: blur(5px); animation: td-globe 15s linear infinite; }

@keyframes td-fire   { 0% { transform: scaleY(1) scaleX(.9); box-shadow: 0 0 25px 8px #c07020,0 0 50px 15px rgba(192,112,32,.35) } 50% { transform: scaleY(1.1) scaleX(.95); box-shadow: 0 0 40px 15px #e08030,0 0 70px 25px rgba(224,128,48,.55) } 100% { transform: scaleY(.95) scaleX(.85); box-shadow: 0 0 20px 6px #c07020,0 0 40px 10px rgba(192,112,32,.3) } }
@keyframes td-quill  { 0%{ transform: rotate(15deg) translateY(0) } 50%{ transform: rotate(25deg) translateY(-2px) } 100%{ transform: rotate(18deg) translateY(0) } }
@keyframes td-paper  { 0%,100%{ transform: translateY(0) scale(1) } 50%{ transform: translateY(-3px) scale(1.02) } }
@keyframes td-coin   { 0%,100%{ transform: translateY(0) rotate(0) } 50%{ transform: translateY(-4px) rotate(10deg) } }
@keyframes td-globe  { 0%{ transform: translateX(0) scale(1) } 50%{ transform: translateX(10px) scale(1.1) } 100%{ transform: translateX(-5px) scale(.9) } }

.scn-pun-offence {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2218 50%, #1e1e1e 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-pun-offence .bg { position:absolute; inset:0; background:linear-gradient(180deg, transparent 60%, #0a0a0a 100%); }
.scn-pun-offence .wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:0 0 20% 20%; }
.scn-pun-offence .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-pun-offence .table { position:absolute; bottom:20%; left:50%; width:120px; height:12px; transform:translateX(-50%); background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.6); }
.scn-pun-offence .candle-glow { position:absolute; bottom:38%; left:55%; width:8px; height:20px; background:radial-gradient(circle at 50% 30%, #ffe080 0%, #ffb040 30%, transparent 70%); border-radius:50%; box-shadow:0 0 30px 10px #ffb040; animation:po-glow 2s ease-in-out infinite alternate; }
.scn-pun-offence .figure-slop { position:absolute; bottom:18%; left:42%; width:24px; height:50px; background:linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation:po-slop 0.8s ease-in-out infinite; }
.scn-pun-offence .figure-father { position:absolute; bottom:18%; right:38%; width:24px; height:50px; background:linear-gradient(180deg, #2a1a0a 0%, #0e0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation:po-father 3s ease-in-out infinite; }
@keyframes po-glow {
  0% { box-shadow:0 0 20px 6px #ffb040; opacity:0.7; }
  50% { box-shadow:0 0 40px 15px #ffd080; opacity:1; }
  100% { box-shadow:0 0 25px 8px #ffb040; opacity:0.8; }
}
@keyframes po-slop {
  0% { transform:translateX(0) rotate(0deg); }
  25% { transform:translateX(6px) rotate(8deg); }
  50% { transform:translateX(-4px) rotate(-5deg); }
  75% { transform:translateX(8px) rotate(10deg); }
  100% { transform:translateX(0) rotate(0deg); }
}
@keyframes po-father {
  0% { transform:translateY(0); }
  50% { transform:translateY(-2px) rotate(2deg); }
  100% { transform:translateY(0); }
}

.scn-ravelin-half-moon {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 30% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-ravelin-half-moon .bg { position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, #0a0500 100%); }
.scn-ravelin-half-moon .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-ravelin-half-moon .table { position:absolute; bottom:20%; left:40%; width:160px; height:10px; transform:translateX(-50%); background:linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow:0 4px 10px rgba(0,0,0,.5); }
.scn-ravelin-half-moon .map { position:absolute; bottom:28%; left:32%; width:100px; height:60px; background:linear-gradient(135deg, #d4c9a8 0%, #b8a88a 50%, #8a7a5a 100%); border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,.4); transform:rotate(-5deg); animation:rh-map 12s ease-in-out infinite alternate; }
.scn-ravelin-half-moon .figure-left { position:absolute; bottom:18%; left:30%; width:22px; height:48px; background:linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation:rh-point 4s ease-in-out infinite; }
.scn-ravelin-half-moon .figure-right { position:absolute; bottom:18%; right:30%; width:22px; height:48px; background:linear-gradient(180deg, #3a2a1a 0%, #0e0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation:rh-look 5s ease-in-out infinite; }
.scn-ravelin-half-moon .fire-glow { position:absolute; bottom:10%; left:10%; width:40px; height:40px; background:radial-gradient(circle, #ff8040 0%, #ff6020 40%, transparent 80%); border-radius:50%; box-shadow:0 0 60px 30px #ff6020; animation:rh-fire 3s ease-in-out infinite alternate; }
@keyframes rh-map {
  0% { transform:rotate(-5deg) scale(1); }
  50% { transform:rotate(-2deg) scale(1.02); }
  100% { transform:rotate(-8deg) scale(0.98); }
}
@keyframes rh-point {
  0% { transform:translateX(0) rotate(-5deg); }
  25% { transform:translateX(10px) rotate(0deg); }
  75% { transform:translateX(-6px) rotate(8deg); }
  100% { transform:translateX(0) rotate(-5deg); }
}
@keyframes rh-look {
  0% { transform:translateY(0) rotate(2deg); }
  50% { transform:translateY(-2px) rotate(0deg); }
  100% { transform:translateY(0) rotate(2deg); }
}
@keyframes rh-fire {
  0% { box-shadow:0 0 40px 20px #ff6020; opacity:0.6; }
  50% { box-shadow:0 0 80px 40px #ff8040; opacity:1; }
  100% { box-shadow:0 0 50px 25px #ff6020; opacity:0.7; }
}

.scn-horn-work-offer {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 50%, #1e1008 100%),
              radial-gradient(ellipse at 60% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-horn-work-offer .bg { position:absolute; inset:0; background:linear-gradient(180deg, transparent 50%, #0a0500 100%); }
.scn-horn-work-offer .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #2a1a0a 0%, #0e0500 100%); }
.scn-horn-work-offer .table { position:absolute; bottom:20%; left:50%; width:100px; height:10px; transform:translateX(-50%); background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-horn-work-offer .figure-holder { position:absolute; bottom:20%; left:35%; width:22px; height:50px; background:linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation:ho-holder 3s ease-in-out infinite; }
.scn-horn-work-offer .figure-puzzled { position:absolute; bottom:20%; right:35%; width:22px; height:48px; background:linear-gradient(180deg, #2a1a0a 0%, #0e0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation:ho-puzzled 5s ease-in-out infinite; }
.scn-horn-work-offer .half-moon-shape { position:absolute; bottom:32%; left:32%; width:30px; height:30px; background:linear-gradient(135deg, #b8a88a 0%, #8a7a5a 100%); border-radius:50% 0 50% 0 / 50% 0 50% 0; box-shadow:0 2px 6px rgba(0,0,0,.4); transform:rotate(20deg); animation:ho-moon 4s ease-in-out infinite alternate; }
.scn-horn-work-offer .candle-glow { position:absolute; bottom:38%; right:20%; width:8px; height:20px; background:radial-gradient(circle at 50% 30%, #ffe080 0%, #ffb040 30%, transparent 70%); border-radius:50%; box-shadow:0 0 30px 10px #ffb040; animation:ho-candle 2.5s ease-in-out infinite alternate; }
@keyframes ho-holder {
  0% { transform:translateY(0) rotate(0deg); }
  50% { transform:translateY(-3px) rotate(5deg); }
  100% { transform:translateY(0) rotate(0deg); }
}
@keyframes ho-puzzled {
  0% { transform:translateX(0) rotate(0deg); }
  25% { transform:translateX(4px) rotate(-8deg); }
  75% { transform:translateX(-6px) rotate(12deg); }
  100% { transform:translateX(0) rotate(0deg); }
}
@keyframes ho-moon {
  0% { transform:rotate(15deg) scale(1); }
  50% { transform:rotate(25deg) scale(1.05); }
  100% { transform:rotate(15deg) scale(1); }
}
@keyframes ho-candle {
  0% { box-shadow:0 0 20px 5px #ffb040; opacity:0.8; }
  50% { box-shadow:0 0 40px 15px #ffd080; opacity:1; }
  100% { box-shadow:0 0 25px 8px #ffb040; opacity:0.9; }
}

.scn-fathers-exasperation {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2018 40%, #1e1a14 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-fathers-exasperation .bg { position:absolute; inset:0; background:linear-gradient(180deg, transparent 50%, #0a0a0a 100%); }
.scn-fathers-exasperation .wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%); border-radius:0 0 10% 10%; }
.scn-fathers-exasperation .door { position:absolute; bottom:20%; right:20%; width:40px; height:80px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:6px 6px 0 0; box-shadow:inset 2px 0 6px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.4); }
.scn-fathers-exasperation .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #2a1a0a 0%, #0e0500 100%); }
.scn-fathers-exasperation .figure-father { position:absolute; bottom:22%; left:30%; width:24px; height:52px; background:linear-gradient(180deg, #2a1a0a 0%, #0e0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation:fe-father 2.5s ease-in-out infinite; }
.scn-fathers-exasperation .figure-toby { position:absolute; bottom:20%; right:30%; width:22px; height:48px; background:linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation:fe-toby 4s ease-in-out infinite; }
.scn-fathers-exasperation .lamp-glow { position:absolute; bottom:55%; left:25%; width:16px; height:24px; background:radial-gradient(circle at 50% 40%, #ffe080 0%, #ffb040 40%, transparent 80%); border-radius:50%; box-shadow:0 0 40px 15px #ffb040; animation:fe-glow 2.8s ease-in-out infinite alternate; }
@keyframes fe-father {
  0% { transform:translateY(0) rotate(-2deg); }
  25% { transform:translateX(8px) translateY(-2px) rotate(3deg); }
  50% { transform:translateX(0) translateY(0) rotate(-1deg); }
  75% { transform:translateX(-6px) translateY(-1px) rotate(2deg); }
  100% { transform:translateY(0) rotate(-2deg); }
}
@keyframes fe-toby {
  0% { transform:translateY(0); }
  50% { transform:translateY(-3px); }
  100% { transform:translateY(0); }
}
@keyframes fe-glow {
  0% { box-shadow:0 0 25px 8px #ffb040; opacity:0.7; }
  50% { box-shadow:0 0 50px 20px #ffd080; opacity:1; }
  100% { box-shadow:0 0 30px 10px #ffb040; opacity:0.8; }
}

/* sunshine-on-tobys-face */
.scn-sunshine-on-tobys-face {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 30% 20%, #c8a04a 0%, transparent 50%);
}
.scn-sunshine-on-tobys-face .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%);
  border-bottom: 4px solid #2a1a0a;
}
.scn-sunshine-on-tobys-face .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-sunshine-on-tobys-face .window-frame {
  position: absolute; top: 15%; left: 25%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border: 6px solid #5a3a1a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  border-radius: 8px;
}
.scn-sunshine-on-tobys-face .sunbeam {
  position: absolute; top: 15%; left: 30%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(200,160,74,0.4) 0%, rgba(200,160,74,0) 100%);
  transform: skewX(-10deg);
  animation: stf-beam 6s ease-in-out infinite alternate;
}
.scn-sunshine-on-tobys-face .toby-chair {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 8px 12px rgba(0,0,0,0.6);
}
.scn-sunshine-on-tobys-face .toby-figure {
  position: absolute; bottom: 35%; left: 48%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: stf-toby 8s ease-in-out infinite alternate;
}
.scn-sunshine-on-tobys-face .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(200,160,74,0.15) 0%, transparent 70%);
  animation: stf-dust 12s ease-in-out infinite alternate;
}
@keyframes stf-beam { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes stf-toby {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes stf-dust { 0%,100% { opacity: 0.2; } 50% { opacity: 0.6; } }

/* grenadier-comparison */
.scn-grenadier-comparison {
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 40% 60%, #5a4a3a 0%, transparent 60%);
}
.scn-grenadier-comparison .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
}
.scn-grenadier-comparison .bed {
  position: absolute; bottom: 25%; left: 10%; width: 45%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 20px 20px 8px 8px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.5);
}
.scn-grenadier-comparison .father-arm {
  position: absolute; bottom: 40%; left: 15%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom right;
  animation: gc-arm 4s ease-in-out infinite alternate;
}
.scn-grenadier-comparison .chair {
  position: absolute; bottom: 25%; right: 15%; width: 70px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.6);
}
.scn-grenadier-comparison .uncle-toby {
  position: absolute; bottom: 38%; right: 22%; width: 28px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: gc-toby 5s ease-in-out infinite alternate;
}
.scn-grenadier-comparison .crutch {
  position: absolute; bottom: 25%; right: 28%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  transform: rotate(10deg);
  transform-origin: bottom;
  animation: gc-crutch 3s ease-in-out infinite alternate;
}
.scn-grenadier-comparison .fringe {
  position: absolute; bottom: 30%; right: 17%; width: 40px; height: 10px;
  background: repeating-linear-gradient(90deg, #7a5a3a 0px, #7a5a3a 4px, transparent 4px, transparent 8px);
  animation: gc-fringe 2s ease-in-out infinite alternate;
}
@keyframes gc-arm {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-4px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes gc-toby {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gc-crutch {
  0% { transform: rotate(8deg); }
  50% { transform: rotate(12deg); }
  100% { transform: rotate(10deg); }
}
@keyframes gc-fringe {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

/* innocents-suffer */
.scn-innocents-suffer {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #05050a 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%);
}
.scn-innocents-suffer .dungeon-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-bottom: 8px solid #0a0a1a;
}
.scn-innocents-suffer .stone-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-innocents-suffer .window-grate {
  position: absolute; top: 15%; left: 50%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 4px solid #3a3a4a;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  transform: translateX(-50%);
  border-radius: 4px;
}
.scn-innocents-suffer .light-ray {
  position: absolute; top: 15%; left: 45%; width: 20%; height: 70%;
  background: linear-gradient(180deg, rgba(100,100,150,0.15) 0%, rgba(100,100,150,0) 100%);
  transform: skewX(-8deg);
  animation: is-ray 10s ease-in-out infinite alternate;
}
.scn-innocents-suffer .grenadier-figure {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #0a0a1a 0%, #05050a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(-5deg);
  animation: is-grenadier 6s ease-in-out infinite alternate;
}
.scn-innocents-suffer .whip {
  position: absolute; bottom: 35%; left: 30%; width: 80px; height: 4px;
  background: linear-gradient(90deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 2px;
  transform-origin: right center;
  transform: rotate(20deg);
  animation: is-whip 3s ease-in-out infinite alternate;
}
.scn-innocents-suffer .chain {
  position: absolute; bottom: 22%; left: 45%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 3px;
  animation: is-chain 4s ease-in-out infinite alternate;
}
@keyframes is-ray { 0% { opacity: 0.1; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }
@keyframes is-grenadier {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes is-whip {
  0% { transform: rotate(15deg) scaleX(1); }
  50% { transform: rotate(25deg) scaleX(1.1); }
  100% { transform: rotate(20deg) scaleX(1); }
}
@keyframes is-chain {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

/* trims-tears */
.scn-trims-tears {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 60% 30%, #c8553d 0%, transparent 60%);
}
.scn-trims-tears .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-trims-tears .shoulder {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
}
.scn-trims-tears .head-silhouette {
  position: absolute; bottom: 40%; left: 35%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: tt-head 6s ease-in-out infinite alternate;
}
.scn-trims-tears .tear-drop {
  position: absolute; bottom: 48%; left: 42%; width: 6px; height: 10px;
  background: radial-gradient(circle, #a08060 0%, #806040 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(160,128,96,0.5);
  animation: tt-tear 4s ease-in-out infinite;
}
.scn-trims-tears .hand {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  transform: rotate(15deg);
  animation: tt-hand 7s ease-in-out infinite alternate;
}
.scn-trims-tears .handkerchief {
  position: absolute; bottom: 22%; left: 28%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 10% 40% 40% 10%;
  transform: rotate(10deg);
  animation: tt-cloth 5s ease-in-out infinite alternate;
}
.scn-trims-tears .warm-glow {
  position: absolute; bottom: 30%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,85,61,0.4) 0%, transparent 70%);
  animation: tt-glow 3s ease-in-out infinite alternate;
}
@keyframes tt-head {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tt-tear {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  25% { transform: translateY(2px) scale(1.1); opacity: 1; }
  50% { transform: translateY(5px) scale(0.9); opacity: 0.8; }
  75% { transform: translateY(8px) scale(1); opacity: 0.4; }
  100% { transform: translateY(10px) scale(0.8); opacity: 0; }
}
@keyframes tt-hand {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(2px); }
  100% { transform: rotate(15deg) translateX(0); }
}
@keyframes tt-cloth {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-3px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes tt-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(1.1); }
}

.scn-map-expedient {
  background: 
    linear-gradient(180deg, #2a1f0e 0%, #3a2a1a 30%, #1e140a 70%, #0d0a06 100%),
    radial-gradient(ellipse at 50% 60%, #4a3520 0%, transparent 70%);
}
.scn-map-expedient .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1f0e 100%);
  animation: me-wall 30s ease-in-out infinite alternate;
}
.scn-map-expedient .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1f0e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: me-desk 12s ease-in-out infinite;
}
.scn-map-expedient .map {
  position: absolute; bottom: 20%; left: 20%; width: 55%; height: 30%;
  background: linear-gradient(135deg, #c8a87a 0%, #a8845a 50%, #d4b88a 100%);
  border-radius: 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4), inset 0 0 20px rgba(200,168,122,0.2);
  transform: rotate(-3deg);
  animation: me-map 20s ease-in-out infinite alternate;
}
.scn-map-expedient .candle {
  position: absolute; bottom: 35%; left: 15%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #d4b88a 0%, #a8845a 100%);
  border-radius: 10% 10% 20% 20%;
  animation: me-candle 8s ease-in-out infinite;
}
.scn-map-expedient .flame {
  position: absolute; bottom: 48%; left: 15%; width: 3%; height: 8%;
  background: radial-gradient(circle, #ffd060 0%, #ffa040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 12px #ff8c00;
  animation: me-flame 3s ease-in-out infinite alternate;
}
.scn-map-expedient .hand {
  position: absolute; bottom: 18%; left: 35%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #d4b88a 0%, #b89060 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: me-hand 6s ease-in-out infinite;
}
.scn-map-expedient .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: me-shadow 14s ease-in-out infinite alternate;
}
@keyframes me-wall { 0% { opacity:0.7 } 50% { opacity:0.85 } 100% { opacity:0.75 } }
@keyframes me-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes me-map { 0% { transform: rotate(-3deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(2px) } 100% { transform: rotate(-4deg) translateX(-1px) } }
@keyframes me-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes me-flame { 0% { transform: scale(1) translateY(0); opacity:0.9 } 50% { transform: scale(1.15) translateY(-2px); opacity:1 } 100% { transform: scale(0.9) translateY(1px); opacity:0.85 } }
@keyframes me-hand { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(6px) rotate(4deg) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes me-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }

.scn-item-map-namur {
  background: 
    linear-gradient(180deg, #2a1f0e 0%, #1e140a 40%, #1a1208 100%),
    radial-gradient(ellipse at 40% 70%, #4a3520 0%, transparent 80%);
}
.scn-item-map-namur .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  animation: mn-wall 25s ease-in-out infinite alternate;
}
.scn-item-map-namur .shelf {
  position: absolute; top: 15%; left: 5%; right: 5%; height: 5%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1f0e 100%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: mn-shelf 15s ease-in-out infinite;
}
.scn-item-map-namur .horse {
  position: absolute; bottom: 20%; left: 15%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: mn-horse 8s ease-in-out infinite alternate;
}
.scn-item-map-namur .map-roll {
  position: absolute; bottom: 35%; left: 45%; width: 30%; height: 6%;
  background: linear-gradient(90deg, #c8a87a, #a8845a, #c8a87a);
  border-radius: 30%;
  transform: rotate(-10deg);
  animation: mn-maproll 18s linear infinite;
}
.scn-item-map-namur .candle {
  position: absolute; bottom: 18%; left: 70%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #d4b88a 0%, #a8845a 100%);
  border-radius: 10% 10% 20% 20%;
  animation: mn-candle 10s ease-in-out infinite;
}
.scn-item-map-namur .glow {
  position: absolute; bottom: 20%; left: 65%; width: 15%; height: 25%;
  background: radial-gradient(ellipse, #ffd060 0%, #ffa040 30%, transparent 70%);
  border-radius: 50%;
  opacity: 0.5;
  animation: mn-glow 4s ease-in-out infinite alternate;
}
@keyframes mn-wall { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes mn-shelf { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes mn-horse { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(3deg) scale(1.02) } 100% { transform: rotate(7deg) scale(0.98) } }
@keyframes mn-maproll { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(2px) } 100% { transform: rotate(-12deg) translateX(-2px) } }
@keyframes mn-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes mn-glow { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.2) } 100% { opacity:0.3; transform: scale(0.9) } }

.scn-locke-essay-reference {
  background: 
    linear-gradient(180deg, #2a1f0e 0%, #1e140a 50%, #120d08 100%),
    radial-gradient(ellipse at 60% 50%, #4a3520 0%, transparent 70%);
}
.scn-locke-essay-reference .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  animation: ler-wall 30s ease-in-out infinite alternate;
}
.scn-locke-essay-reference .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1f0e 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: ler-desk 12s ease-in-out infinite;
}
.scn-locke-essay-reference .book {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ler-book 20s ease-in-out infinite alternate;
}
.scn-locke-essay-reference .book-page {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 15%;
  background: linear-gradient(135deg, #d4b88a 0%, #c8a87a 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
  animation: ler-page 10s ease-in-out infinite alternate;
}
.scn-locke-essay-reference .candle {
  position: absolute; bottom: 25%; left: 75%; width: 3%; height: 15%;
  background: linear-gradient(180deg, #d4b88a 0%, #a8845a 100%);
  border-radius: 10% 10% 20% 20%;
  animation: ler-candle 8s ease-in-out infinite;
}
.scn-locke-essay-reference .hand {
  position: absolute; bottom: 15%; left: 55%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #d4b88a 0%, #b89060 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: ler-hand 7s ease-in-out infinite;
}
.scn-locke-essay-reference .inkwell {
  position: absolute; bottom: 18%; left: 15%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #2a1f0e 0%, #0d0a06 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: ler-inkwell 15s linear infinite;
}
@keyframes ler-wall { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ler-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ler-book { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(2deg) scale(1.01) } 100% { transform: rotate(-1deg) scale(0.99) } }
@keyframes ler-page { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(1px) } }
@keyframes ler-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes ler-hand { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(4px) rotate(4deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ler-inkwell { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

.scn-unsteady-words {
  background: 
    linear-gradient(180deg, #2a1f0e 0%, #1e140a 40%, #120d08 100%),
    radial-gradient(ellipse at 50% 80%, #4a3520 0%, transparent 70%);
}
.scn-unsteady-words .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 10% 10% 0 0;
  animation: uw-floor 20s ease-in-out infinite alternate;
}
.scn-unsteady-words .figure {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #2a1f0e 0%, #0d0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: uw-figure 6s ease-in-out infinite;
}
.scn-unsteady-words .quill {
  position: absolute; bottom: 35%; left: 48%; width: 2%; height: 18%;
  background: linear-gradient(180deg, #d4b88a 0%, #a8845a 100%);
  border-radius: 10% 10% 50% 50%;
  transform: rotate(20deg);
  animation: uw-quill 4s ease-in-out infinite alternate;
}
.scn-unsteady-words .paper {
  position: absolute; bottom: 20%; left: 45%; width: 20%; height: 15%;
  background: linear-gradient(135deg, #d4b88a 0%, #c8a87a 100%);
  border-radius: 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: uw-paper 8s ease-in-out infinite;
}
.scn-unsteady-words .candle {
  position: absolute; bottom: 18%; left: 25%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #d4b88a 0%, #a8845a 100%);
  border-radius: 10% 10% 20% 20%;
  animation: uw-candle 10s ease-in-out infinite;
}
.scn-unsteady-words .shadow {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: uw-shadow 9s ease-in-out infinite alternate;
}
.scn-unsteady-words .drift-word {
  position: absolute; top: 10%; right: 10%; width: 8%; height: 6%;
  background: radial-gradient(circle at 30% 30%, rgba(200,168,122,0.4) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(4px);
  animation: uw-drift 25s linear infinite;
}
.scn-unsteady-words .drift-word-2 {
  position: absolute; top: 20%; left: 15%; width: 6%; height: 4%;
  background: radial-gradient(circle at 50% 50%, rgba(200,168,122,0.3) 0%, transparent 50%);
  border-radius: 50%;
  filter: blur(3px);
  animation: uw-drift-2 40s linear infinite reverse;
}
@keyframes uw-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes uw-figure { 0% { transform: rotate(0) translateX(0) } 25% { transform: rotate(2deg) translateX(3px) } 50% { transform: rotate(-2deg) translateX(6px) } 75% { transform: rotate(1deg) translateX(3px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes uw-quill { 0% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(25deg) scale(1.05) } 100% { transform: rotate(15deg) scale(0.95) } }
@keyframes uw-paper { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(2px) translateY(-2px) } 100% { transform: translateX(-1px) translateY(1px) } }
@keyframes uw-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes uw-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }
@keyframes uw-drift { 0% { transform: translateX(0) } 50% { transform: translateX(-20px) } 100% { transform: translateX(40px) } }
@keyframes uw-drift-2 { 0% { transform: translateX(0) } 50% { transform: translateX(30px) } 100% { transform: translateX(-30px) } }

/* scene 1: slawkenbergius-intricacy */
.scn-slawkenbergius-intricacy {
  background: 
    radial-gradient(ellipse at 30% 60%, #4a3020 0%, transparent 60%),
    linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
}
.scn-slawkenbergius-intricacy .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); }
.scn-slawkenbergius-intricacy .desk { position:absolute; bottom:8%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #5c3a22 0%, #3a2416 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.5); }
.scn-slawkenbergius-intricacy .papers { position:absolute; bottom:26%; left:15%; width:28%; height:8%; background: #7a5a3a; border-radius: 2px; transform: rotate(-3deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.4); animation: si-papers 8s ease-in-out infinite; }
.scn-slawkenbergius-intricacy .candle { position:absolute; bottom:26%; left:60%; width:8px; height:22%; background: linear-gradient(180deg, #d4b080 0%, #8a6a40 100%); border-radius: 3px 3px 0 0; animation: si-candle 5s ease-in-out infinite; }
.scn-slawkenbergius-intricacy .flame { position:absolute; bottom:46%; left:60%; width:12px; height:16px; margin-left:-2px; background: radial-gradient(circle, #ffd080 0%, #ffa050 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #ffa050, 0 0 40px 12px rgba(255,160,80,0.3); animation: si-flame 1.2s ease-in-out infinite alternate; }
.scn-slawkenbergius-intricacy .jar { position:absolute; bottom:26%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #6a4a3a 60%, #3a2a1a 100%); border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); overflow: hidden; }
.scn-slawkenbergius-intricacy .jar-glow { position:absolute; bottom:36%; left:36%; width:30px; height:30px; background: radial-gradient(circle, #ffcc80 0%, #8a6a40 100%); border-radius: 50%; opacity: 0.7; animation: si-jar-glow 4s ease-in-out infinite; }
.scn-slawkenbergius-intricacy .figure { position:absolute; bottom:20%; left:22%; width:20%; height:30%; background: linear-gradient(180deg, #1a0e08 50%, #0d0704 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-figure 6s ease-in-out infinite; }

@keyframes si-papers {
  0%,100% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
}
@keyframes si-candle {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
}
@keyframes si-flame {
  0% { transform: scaleY(1) rotate(-5deg); opacity:0.9; }
  50% { transform: scaleY(1.2) rotate(3deg); opacity:1; }
  100% { transform: scaleY(0.95) rotate(-2deg); opacity:0.85; }
}
@keyframes si-jar-glow {
  0%,100% { opacity:0.5; transform: scale(0.95); }
  50% { opacity:0.8; transform: scale(1.05); }
}
@keyframes si-figure {
  0%,100% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(-2deg) translateX(2px); }
  75% { transform: rotate(2deg) translateX(-2px); }
}

/* scene 2: whispered-conference */
.scn-whispered-conference {
  background: 
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1208 0%, #0e0804 100%);
}
.scn-whispered-conference .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); }
.scn-whispered-conference .curtain-left { position:absolute; left:0; top:0; width:20%; height:100%; background: linear-gradient(90deg, #2a1a10 0%, transparent 100%); }
.scn-whispered-conference .curtain-right { position:absolute; right:0; top:0; width:20%; height:100%; background: linear-gradient(270deg, #2a1a10 0%, transparent 100%); }
.scn-whispered-conference .figure-left { position:absolute; bottom:20%; left:25%; width:18%; height:40%; background: linear-gradient(180deg, #0d0704 0%, #1a0e08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: wc-fig-left 6s ease-in-out infinite; }
.scn-whispered-conference .figure-right { position:absolute; bottom:20%; right:25%; width:18%; height:40%; background: linear-gradient(180deg, #1a0e08 0%, #0d0704 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: wc-fig-right 6s ease-in-out infinite; }
.scn-whispered-conference .string { position:absolute; bottom:38%; left:38%; right:38%; height:2px; background: linear-gradient(90deg, transparent 0%, #c8a060 50%, transparent 100%); transform: translateY(0); animation: wc-string 3s ease-in-out infinite; }
.scn-whispered-conference .heart-glow { position:absolute; bottom:35%; left:50%; width:14px; height:14px; margin-left:-7px; background: radial-gradient(circle, #ffa060 0%, #c87040 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #c87040; animation: wc-heart 2s ease-in-out infinite; }
.scn-whispered-conference .shadow { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); }

@keyframes wc-fig-left {
  0%,100% { transform: scaleX(-1) translateX(0); }
  50% { transform: scaleX(-1) translateX(-4px); }
}
@keyframes wc-fig-right {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(4px); }
}
@keyframes wc-string {
  0%,100% { transform: translateY(0) scaleX(1); opacity:0.6; }
  50% { transform: translateY(-2px) scaleX(1.02); opacity:1; }
}
@keyframes wc-heart {
  0%,100% { transform: scale(0.9); opacity:0.7; }
  50% { transform: scale(1.2); opacity:1; }
}

/* scene 3: dangerous-proximity */
.scn-dangerous-proximity {
  background: 
    radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 50%),
    linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
}
.scn-dangerous-proximity .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); }
.scn-dangerous-proximity .face-left { position:absolute; bottom:25%; left:18%; width:32%; height:50%; background: #1a0e08; border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%; transform: rotate(5deg); clip-path: polygon(0 0, 100% 0, 100% 80%, 80% 100%, 0 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: dp-face-left 4s ease-in-out infinite; }
.scn-dangerous-proximity .face-right { position:absolute; bottom:25%; right:18%; width:32%; height:50%; background: #1a0e08; border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%; transform: rotate(-5deg); clip-path: polygon(0 0, 100% 0, 100% 100%, 20% 100%, 0 80%); box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: dp-face-right 4s ease-in-out infinite; }
.scn-dangerous-proximity .beam { position:absolute; top:0; left:45%; right:45%; height:30%; background: linear-gradient(180deg, rgba(255,200,120,0.3) 0%, transparent 100%); transform: rotate(0deg); animation: dp-beam 5s ease-in-out infinite; }
.scn-dangerous-proximity .cheek-glow { position:absolute; bottom:52%; left:44%; width:12%; height:10%; background: radial-gradient(circle, #ffb060 0%, transparent 100%); opacity:0.4; animation: dp-cheek 3s ease-in-out infinite; }
.scn-dangerous-proximity .ear-left { position:absolute; bottom:55%; left:16%; width:8%; height:14%; background: #1a0e08; border-radius: 50%; transform: rotate(-15deg); box-shadow: inset 0 0 6px rgba(0,0,0,0.5); }
.scn-dangerous-proximity .ear-right { position:absolute; bottom:55%; right:16%; width:8%; height:14%; background: #1a0e08; border-radius: 50%; transform: rotate(15deg); box-shadow: inset 0 0 6px rgba(0,0,0,0.5); }

@keyframes dp-face-left {
  0%,100% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(4deg) translateX(-2px); }
}
@keyframes dp-face-right {
  0%,100% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-4deg) translateX(2px); }
}
@keyframes dp-beam {
  0%,100% { opacity:0.3; transform: rotate(0deg) scaleY(1); }
  50% { opacity:0.6; transform: rotate(2deg) scaleY(1.1); }
}
@keyframes dp-cheek {
  0%,100% { opacity:0.3; transform: scale(0.9); }
  50% { opacity:0.6; transform: scale(1.2); }
}

/* scene 4: father-revives */
.scn-father-revives {
  background: 
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
}
.scn-father-revives .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); }
.scn-father-revives .bed { position:absolute; bottom:0; left:15%; right:15%; height:45%; background: linear-gradient(180deg, #4a3422 0%, #2a1c10 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -8px 16px rgba(0,0,0,0.7); }
.scn-father-revives .headboard { position:absolute; top:45%; left:18%; right:18%; height:10%; background: linear-gradient(180deg, #5c3a22 0%, #3a2416 100%); border-radius: 6px 6px 0 0; }
.scn-father-revives .figure { position:absolute; bottom:30%; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #0d0704 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fr-figure 8s ease-in-out infinite; }
.scn-father-revives .hand { position:absolute; bottom:32%; left:38%; width:10%; height:8%; background: #2a1a10; border-radius: 50% 50% 0 0; transform-origin: bottom left; animation: fr-hand 6s ease-in-out infinite; }
.scn-father-revives .chamber-pot { position:absolute; bottom:8%; left:55%; width:12%; height:10%; background: linear-gradient(180deg, #5a3a22 0%, #2a1a10 100%); border-radius: 0 0 50% 50%; transform: rotate(5deg); animation: fr-pot 12s ease-in-out infinite; }
.scn-father-revives .candle { position:absolute; bottom:18%; left:70%; width:6px; height:12%; background: linear-gradient(180deg, #d4b080 0%, #8a6a40 100%); border-radius: 2px; }
.scn-father-revives .candle-glow { position:absolute; bottom:28%; left:69%; width:10px; height:10px; background: radial-gradient(circle, #ffd080 0%, #ffa050 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 6px #ffa050; animation: fr-candle 2s ease-in-out infinite alternate; }

@keyframes fr-figure {
  0%,100% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(-2px); }
}
@keyframes fr-hand {
  0%,100% { transform: rotate(0deg) translate(0,0); }
  50% { transform: rotate(25deg) translate(4px,-6px); }
}
@keyframes fr-pot {
  0%,100% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(7deg) translateY(-2px); }
}
@keyframes fr-candle {
  0% { transform: scaleY(1); opacity:0.8; }
  100% { transform: scaleY(1.15); opacity:1; }
}

.scn-fortification-books { background: linear-gradient(180deg, #1a1410 0%, #2c2018 40%, #3a2e22 100%), radial-gradient(ellipse at 50% 60%, #3a2e22 0%, transparent 70%); }
.scn-fortification-books .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0f0c0a 0%, transparent 40%, #1a1410 100%); animation: fb-bg 20s ease-in-out infinite alternate; }
.scn-fortification-books .table { position:absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #5a3a28 0%, #3a2214 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6); }
.scn-fortification-books .books-left { position:absolute; bottom:28%; left:15%; width:12%; height:20%; background: linear-gradient(180deg, #8a5a3a 0%, #6a3a1a 100%); border-radius:6% 6% 4% 4%; box-shadow: 2px 0 4px rgba(0,0,0,.4); animation: fb-book 8s ease-in-out infinite alternate; }
.scn-fortification-books .books-right { position:absolute; bottom:30%; right:20%; width:10%; height:18%; background: linear-gradient(180deg, #7a4a2a 0%, #5a2a0a 100%); border-radius:4% 4% 2% 2%; box-shadow: -2px 0 4px rgba(0,0,0,.4); animation: fb-book 8s ease-in-out infinite alternate-reverse; }
.scn-fortification-books .map { position:absolute; bottom:35%; left:30%; width:40%; height:15%; background: linear-gradient(135deg, #b89870 0%, #a08050 50%, #c8a870 100%); border-radius:20%; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform: rotate(-2deg); }
.scn-fortification-books .candle { position:absolute; bottom:40%; left:55%; width:8px; height:24px; background: linear-gradient(180deg, #e8c080 0%, #c89860 40%, #a07040 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 10px #d0a060, 0 0 40px 20px rgba(200,140,80,.5); animation: fb-candle 2s ease-in-out infinite alternate; }
.scn-fortification-books .figure { position:absolute; bottom:25%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #2a1c14 0%, #0f0a06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fb-figure 4s ease-in-out infinite; }
@keyframes fb-bg { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fb-book { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fb-candle { 0% { box-shadow: 0 0 15px 5px #d0a060, 0 0 30px 10px rgba(200,140,80,.4); } 50% { box-shadow: 0 0 25px 10px #e8b070, 0 0 50px 20px rgba(232,176,112,.5); } 100% { box-shadow: 0 0 18px 6px #d0a060, 0 0 35px 12px rgba(200,140,80,.45); } }
@keyframes fb-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-apostrophe-to-uncle { background: linear-gradient(180deg, #1a1410 0%, #2c1e14 50%, #3a2a1a 100%), radial-gradient(ellipse at 40% 50%, #4a3a2a 0%, transparent 60%); }
.scn-apostrophe-to-uncle .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0f0a06 0%, transparent 50%, #1a1410 100%); }
.scn-apostrophe-to-uncle .halo { position:absolute; top:20%; left:30%; width:120px; height:120px; background: radial-gradient(circle, rgba(200,180,140,.6) 0%, rgba(200,180,140,.2) 40%, transparent 70%); border-radius:50%; filter: blur(10px); animation: ap-halo 8s ease-in-out infinite alternate; }
.scn-apostrophe-to-uncle .desk { position:absolute; bottom:15%; left:10%; right:30%; height:20%; background: linear-gradient(180deg, #5a3a28 0%, #3a2214 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 6px rgba(0,0,0,.5); }
.scn-apostrophe-to-uncle .book { position:absolute; bottom:22%; left:18%; width:15%; height:12%; background: linear-gradient(180deg, #8a6040 0%, #6a4020 100%); border-radius:4px; transform: rotate(-5deg); }
.scn-apostrophe-to-uncle .uncle-silhouette { position:absolute; bottom:20%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-figure 5s ease-in-out infinite; }
.scn-apostrophe-to-uncle .hand { position:absolute; bottom:40%; left:48%; width:8px; height:14px; background: #1a1410; border-radius:30% 30% 20% 20%; transform-origin: bottom left; animation: ap-hand 3s ease-in-out infinite; }
.scn-apostrophe-to-uncle .sparkles { position:absolute; top:30%; left:25%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,230,180,.8) 0%, transparent 70%); border-radius:50%; filter: blur(5px); animation: ap-spark 4s ease-in-out infinite alternate; }
@keyframes ap-halo { 0% { opacity:.3; transform: scale(0.8); } 50% { opacity:.6; transform: scale(1.2); } 100% { opacity:.4; transform: scale(0.9); } }
@keyframes ap-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ap-hand { 0% { transform: rotate(-10deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-10deg) } }
@keyframes ap-spark { 0% { opacity:.2; } 50% { opacity:.8; } 100% { opacity:.3; } }

.scn-recovery-impatience { background: linear-gradient(180deg, #1e1412 0%, #2a1e1a 40%, #3a2a22 100%), radial-gradient(ellipse at 60% 70%, #2a1e1a 0%, transparent 70%); }
.scn-recovery-impatience .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #0a0604 0%, transparent 40%, #1e1412 100%); }
.scn-recovery-impatience .wall-shadow { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: ri-shadow 3s ease-in-out infinite alternate; }
.scn-recovery-impatience .bed { position:absolute; bottom:12%; left:10%; right:20%; height:25%; background: linear-gradient(180deg, #4a3a30 0%, #2a1c14 100%); border-radius:8% 8% 4% 4%; box-shadow: inset 0 -6px 10px rgba(0,0,0,.6); }
.scn-recovery-impatience .clock { position:absolute; top:20%; right:15%; width:30px; height:30px; background: radial-gradient(circle, #8a7050 0%, #4a3820 100%); border-radius:50%; box-shadow: 0 0 4px rgba(0,0,0,.5); animation: ri-clock 2s ease-in-out infinite; }
.scn-recovery-impatience .figure-impatient { position:absolute; bottom:25%; left:35%; width:22px; height:55px; background: linear-gradient(180deg, #2a1c16 0%, #0f0a06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ri-figure 2s ease-in-out infinite; }
.scn-recovery-impatience .chair { position:absolute; bottom:20%; right:30%; width:30px; height:35px; background: linear-gradient(180deg, #3a2a20 0%, #1a100a 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 -2px 4px rgba(0,0,0,.4); animation: ri-chair 3s ease-in-out infinite alternate; }
.scn-recovery-impatience .shadow-motion { position:absolute; bottom:10%; left:20%; right:20%; height:10%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 60%); animation: ri-shadow-move 4s ease-in-out infinite alternate; }
@keyframes ri-shadow { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes ri-clock { 0% { transform: rotate(0deg) } 25% { transform: rotate(30deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-30deg) } 100% { transform: rotate(0deg) } }
@keyframes ri-figure { 0% { transform: translateX(0) rotate(-2deg) } 20% { transform: translateX(8px) rotate(2deg) } 40% { transform: translateX(-8px) rotate(-2deg) } 60% { transform: translateX(10px) rotate(1deg) } 80% { transform: translateX(-5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ri-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ri-shadow-move { 0% { left:20%; right:30% } 50% { left:30%; right:20% } 100% { left:20%; right:30% } }

.scn-secret-departure { background: linear-gradient(180deg, #0f0a08 0%, #1e1410 50%, #2a1c16 100%), radial-gradient(ellipse at 30% 60%, #1e1410 0%, transparent 70%); }
.scn-secret-departure .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0604 0%, transparent 50%, #0f0a08 100%); }
.scn-secret-departure .doorway { position:absolute; bottom:5%; left:40%; width:40%; height:80%; background: linear-gradient(180deg, #2a1a14 0%, #0f0806 100%); border-radius:40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-secret-departure .door-open { position:absolute; bottom:5%; left:40%; width:40%; height:80%; background: linear-gradient(90deg, transparent 30%, rgba(30,20,16,.9) 70%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); transform: skewY(-3deg); transform-origin: left bottom; animation: sd-door 5s ease-in-out infinite alternate; }
.scn-secret-departure .figure-leaving { position:absolute; bottom:15%; left:50%; width:24px; height:60px; background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sd-figure 4s ease-in-out infinite; }
.scn-secret-departure .bag { position:absolute; bottom:12%; left:55%; width:18px; height:22px; background: linear-gradient(180deg, #3a2820 0%, #1a0e08 100%); border-radius:20% 20% 30% 30%; transform: rotate(5deg); animation: sd-bag 4s ease-in-out infinite; }
.scn-secret-departure .lantern-glow { position:absolute; bottom:30%; left:35%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,160,100,.3) 0%, transparent 70%); border-radius:50%; animation: sd-lantern 3s ease-in-out infinite alternate; }
.scn-secret-departure .coat { position:absolute; bottom:16%; left:48%; width:20px; height:40px; background: linear-gradient(180deg, #2a1c16 0%, #0f0a06 100%); border-radius:30% 30% 10% 10%; transform: rotate(-8deg); animation: sd-coat 5s ease-in-out infinite alternate; }
@keyframes sd-door { 0% { transform: skewY(-3deg) } 50% { transform: skewY(0deg) } 100% { transform: skewY(3deg) } }
@keyframes sd-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0deg) } }
@keyframes sd-bag { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes sd-lantern { 0% { opacity:.3; transform: scale(0.8); } 50% { opacity:.6; transform: scale(1.3); } 100% { opacity:.4; transform: scale(0.9); } }
@keyframes sd-coat { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(-8deg) } }

/* Scene: fathers-oath-theory (fo1) – funny, dim interior */
.scn-fathers-oath-theory {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 40%, #1f160e 100%),
              radial-gradient(ellipse at 50% 20%, #5a3a1a 0%, transparent 80%);
}
.scn-fathers-oath-theory .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  animation: fo1-wall 12s ease-in-out infinite alternate;
}
.scn-fathers-oath-theory .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a100a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-fathers-oath-theory .couch {
  position: absolute; bottom: 25%; left: 10%; width: 45%; height: 20%;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: fo1-couch 6s ease-in-out infinite;
}
.scn-fathers-oath-theory .mistress {
  position: absolute; bottom: 28%; left: 35%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fo1-figure 4s ease-in-out infinite;
}
.scn-fathers-oath-theory .bottle {
  position: absolute; bottom: 30%; left: 28%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #6a8a6a 0%, #3a5a3a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-20deg);
  animation: fo1-bottle 3s ease-in-out infinite;
}
.scn-fathers-oath-theory .nurse {
  position: absolute; bottom: 28%; left: 55%; width: 10%; height: 16%;
  background: linear-gradient(180deg, #6a6a8a 0%, #3a3a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fo1-nurse 5s ease-in-out infinite;
}
.scn-fathers-oath-theory .midwife {
  position: absolute; bottom: 28%; left: 68%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #8a6a6a 0%, #5a3a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fo1-figure 4s ease-in-out infinite reverse;
}
.scn-fathers-oath-theory .drip {
  position: absolute; bottom: 33%; left: 30%; width: 2%; height: 6%;
  background: radial-gradient(circle, #b08040 0%, transparent 80%);
  box-shadow: 0 0 8px 2px rgba(176,128,64,.5);
  animation: fo1-drip 1.5s ease-in-out infinite;
}
@keyframes fo1-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes fo1-couch { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes fo1-figure { 0% { transform: rotate(-2deg) } 25% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes fo1-bottle { 0%,100% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(-3px) } }
@keyframes fo1-nurse { 0% { transform: translateX(0) } 25% { transform: translateX(4px) } 50% { transform: translateX(0) } 75% { transform: translateX(-4px) } 100% { transform: translateX(0) } }
@keyframes fo1-drip { 0% { transform: translateY(0) scaleY(1); opacity: 1 } 50% { transform: translateY(5px) scaleY(1.5); opacity: .6 } 100% { transform: translateY(10px) scaleY(1); opacity: 0 } }

/* Scene: midwife-summons (mi2) – tense, dim interior */
.scn-midwife-summons {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2a 100%),
              radial-gradient(ellipse at 50% 60%, #3a3a5a 0%, transparent 70%);
}
.scn-midwife-summons .bg-stairs {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  clip-path: polygon(0% 40%, 100% 30%, 100% 100%, 0% 100%);
  animation: mi2-stairs 10s ease-in-out infinite alternate;
}
.scn-midwife-summons .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-midwife-summons .doorway {
  position: absolute; bottom: 35%; left: 50%; width: 20%; height: 45%;
  background: #1a1a2a;
  border-radius: 10% 10% 0 0;
  border: 2px solid #3a3a5a;
  transform: translateX(-50%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-midwife-summons .figure-top {
  position: absolute; bottom: 55%; left: 55%; width: 8%; height: 15%;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi2-figure-top 3s ease-in-out infinite;
}
.scn-midwife-summons .figure-bottom {
  position: absolute; bottom: 32%; left: 45%; width: 8%; height: 15%;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi2-figure-bottom 4s ease-in-out infinite;
}
.scn-midwife-summons .shadow-line {
  position: absolute; bottom: 45%; left: 30%; width: 40%; height: 2%;
  background: linear-gradient(90deg, transparent, #5a5a7a, transparent);
  box-shadow: 0 0 10px 2px rgba(90,90,122,.4);
  animation: mi2-shadow 2s ease-in-out infinite alternate;
}
.scn-midwife-summons .lamp {
  position: absolute; bottom: 42%; left: 35%; width: 4%; height: 8%;
  background: radial-gradient(circle, #c0a080 0%, #8a6a4a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(192,160,128,.5);
  animation: mi2-lamp 5s ease-in-out infinite;
}
.scn-midwife-summons .dust {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,180,160,.1) 0%, transparent 70%);
  filter: blur(8px);
  animation: mi2-dust 20s linear infinite;
}
@keyframes mi2-stairs { 0% { opacity: .7; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-4px) } 100% { opacity: .8; transform: translateY(2px) } }
@keyframes mi2-figure-top { 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 mi2-figure-bottom { 0% { transform: translateX(0) } 50% { transform: translateX(6px) } 100% { transform: translateX(0) } }
@keyframes mi2-shadow { 0% { opacity: .4; transform: scaleX(1) } 100% { opacity: .8; transform: scaleX(1.2) } }
@keyframes mi2-lamp { 0%,100% { box-shadow: 0 0 15px 4px rgba(192,160,128,.4) } 50% { box-shadow: 0 0 30px 8px rgba(192,160,128,.7) } }
@keyframes mi2-dust { 0% { transform: translateX(0) } 100% { transform: translateX(20px) } }

/* Scene: squirt-revealed (sq3) – funny, dim interior */
.scn-squirt-revealed {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a12 40%, #1a100a 100%),
              radial-gradient(ellipse at 50% 70%, #5a3a2a 0%, transparent 60%);
}
.scn-squirt-revealed .bg-curtain {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40%;
  animation: sq3-curtain 15s ease-in-out infinite alternate;
}
.scn-squirt-revealed .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a100a 100%);
  border-radius: 30% 70% 0 0;
}
.scn-squirt-revealed .infant {
  position: absolute; bottom: 18%; left: 40%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sq3-infant 5s ease-in-out infinite;
}
.scn-squirt-revealed .squirt {
  position: absolute; bottom: 25%; left: 50%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-30deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: sq3-squirt 3s ease-in-out infinite;
}
.scn-squirt-revealed .cloak {
  position: absolute; bottom: 20%; left: 55%; width: 15%; height: 25%;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: sq3-cloak 7s ease-in-out infinite;
}
.scn-squirt-revealed .puddle {
  position: absolute; bottom: 15%; left: 30%; width: 30%; height: 4%;
  background: radial-gradient(ellipse, #6a8a6a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sq3-puddle 4s ease-in-out infinite;
}
.scn-squirt-revealed .sparkle {
  position: absolute; bottom: 30%; left: 48%; width: 2%; height: 2%;
  background: #c0a080;
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(192,160,128,.8);
  animation: sq3-sparkle 1.5s ease-in-out infinite;
}
@keyframes sq3-curtain { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes sq3-infant { 0%,100% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes sq3-squirt { 0%,100% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-20deg) translateY(-5px) } }
@keyframes sq3-cloak { 0%,100% { transform: scale(1) } 50% { transform: scale(1.03) } }
@keyframes sq3-puddle { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .8; transform: scaleX(1.1) } 100% { opacity: .6; transform: scaleX(1) } }
@keyframes sq3-sparkle { 0% { opacity: 0; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-8px) } 100% { opacity: 0; transform: translateY(-16px) } }

/* Scene: forceps-dispute (fo4) – tense, dim interior */
.scn-forceps-dispute {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2a 100%),
              radial-gradient(ellipse at 50% 50%, #3a3a5a 0%, transparent 70%);
}
.scn-forceps-dispute .bg-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #0e0e1e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-forceps-dispute .bg-table {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(135deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-forceps-dispute .hands-left {
  position: absolute; bottom: 25%; left: 25%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-10deg);
  animation: fo4-hands-left 2s ease-in-out infinite;
}
.scn-forceps-dispute .hands-right {
  position: absolute; bottom: 25%; right: 25%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: fo4-hands-right 2s ease-in-out infinite alternate;
}
.scn-forceps-dispute .forceps {
  position: absolute; bottom: 28%; left: 50%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #6a6a8a 0%, #3a3a5a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%) rotate(0deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: fo4-forceps 3s ease-in-out infinite;
}
.scn-forceps-dispute .blood-drop {
  position: absolute; bottom: 32%; left: 52%; width: 2%; height: 4%;
  background: radial-gradient(circle, #5e1a1d 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(94,26,29,.6);
  animation: fo4-blood 1s ease-in-out infinite;
}
.scn-forceps-dispute .shadow-arm {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(90deg, transparent, #1a1a2a, transparent);
  filter: blur(4px);
  animation: fo4-shadow-arm 4s ease-in-out infinite alternate;
}
@keyframes fo4-hands-left { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } }
@keyframes fo4-hands-right { 0% { transform: rotate(10deg) translateY(0) } 100% { transform: rotate(15deg) translateY(-2px) } }
@keyframes fo4-forceps { 0%,100% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(3deg) } }
@keyframes fo4-blood { 0% { opacity: 1; transform: scale(1) } 50% { opacity: .6; transform: scale(1.5) } 100% { opacity: 0; transform: translateY(5px) scale(.5) } }
@keyframes fo4-shadow-arm { 0% { opacity: .3; transform: scaleX(1) } 100% { opacity: .7; transform: scaleX(1.2) } }

/* Scene: calais-history (warm, overcast, siege) */
.scn-calais-history { background: linear-gradient(180deg, #9a9a8a 0%, #7a7a6a 40%, #6a6a5a 100%), radial-gradient(ellipse at 50% 100%, #8a8a7a 0%, transparent 70%); }
.scn-calais-history .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0b0a0 0%, #8a8a7a 100%); animation: ch-sky 12s ease-in-out infinite alternate; }
.scn-calais-history .clouds { position:absolute; top:15%; left:0; right:0; height:20%; background: linear-gradient(90deg, transparent 0%, #c0c0b0 30%, #b0b0a0 70%, transparent 100%); filter: blur(10px); animation: ch-drift 40s linear infinite; }
.scn-calais-history .castle { position:absolute; bottom:30%; left:50%; width:120px; height:100px; transform:translateX(-60%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 8% 8%; box-shadow: 0 10px 20px rgba(0,0,0,.5); animation: ch-float 8s ease-in-out infinite; }
.scn-calais-history .walls  { position:absolute; bottom:28%; left:30%; right:30%; height:40px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 -4px 6px rgba(0,0,0,.4); animation: ch-shake 6s ease-in-out infinite; }
.scn-calais-history .soldiers{ position:absolute; bottom:24%; left:20%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 80%, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ch-march 4s ease-in-out infinite; }
.scn-calais-history .banner { position:absolute; bottom:35%; left:55%; width:20px; height:30px; background: #a0461a; border-radius: 4px; box-shadow: 0 0 8px #a0461a; animation: ch-flag 3s ease-in-out infinite alternate; }
.scn-calais-history .siege-tower{ position:absolute; bottom:25%; left:15%; width:50px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 5px 0 10px rgba(0,0,0,.4); animation: ch-tower 10s ease-in-out infinite; }
@keyframes ch-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ch-drift { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes ch-float { 0%,100% { transform: translateX(-60%) translateY(0) } 50% { transform: translateX(-60%) translateY(-3px) } }
@keyframes ch-shake { 0%,100% { transform: rotate(0) } 25% { transform: rotate(0.5deg) } 75% { transform: rotate(-0.5deg) } }
@keyframes ch-march { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(-3deg) } 50% { transform: translateX(16px) rotate(0) } 75% { transform: translateX(24px) rotate(3deg) } 100% { transform: translateX(32px) rotate(0) } }
@keyframes ch-flag { 0% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes ch-tower { 0%,100% { transform: translateX(0) } 50% { transform: translateX(10px) } }

/* Scene: pursuit-continued (funny, overcast, chase) */
.scn-pursuit-continued { background: linear-gradient(180deg, #b8b8a8 0%, #9a9a8a 40%, #8a8a7a 100%), radial-gradient(ellipse at 50% 30%, #c8c8b8 0%, transparent 60%); }
.scn-pursuit-continued .road   { position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 0; box-shadow: inset 0 10px 15px rgba(0,0,0,.4); animation: pc-road 6s ease-in-out infinite; }
.scn-pursuit-continued .carriage{ position:absolute; bottom:25%; left:30%; width:80px; height:50px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,.3); animation: pc-bounce 0.8s ease-in-out infinite; }
.scn-pursuit-continued .horse  { position:absolute; bottom:25%; left:50%; width:60px; height:40px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 50% 20% 30% 50%; transform-origin: right center; animation: pc-gallop 0.6s ease-in-out infinite; }
.scn-pursuit-continued .little-man{ position:absolute; bottom:30%; left:55%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 70%, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40%; animation: pc-scramble 1.2s ease-in-out infinite; }
.scn-pursuit-continued .tall-man{ position:absolute; bottom:30%; left:65%; width:15px; height:45px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 40% 40% 30% 30%; animation: pc-stagger 1.5s ease-in-out infinite; }
.scn-pursuit-continued .dust   { position:absolute; bottom:20%; left:25%; width:30px; height:10px; background: rgba(200,200,180,.5); border-radius: 50%; filter: blur(4px); animation: pc-dust 1s ease-out infinite; }
.scn-pursuit-continued .clouds { position:absolute; top:12%; left:10%; width:70px; height:18px; background: linear-gradient(180deg, rgba(200,200,190,.5) 0%, rgba(180,180,170,.1) 100%); border-radius: 50%; filter: blur(8px); animation: pc-drift 30s linear infinite; }
@keyframes pc-road { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pc-bounce { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-8px) } }
@keyframes pc-gallop { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(10px) rotate(5deg) } 50% { transform: translateX(20px) rotate(0) } 75% { transform: translateX(30px) rotate(-5deg) } 100% { transform: translateX(40px) rotate(0) } }
@keyframes pc-scramble { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(5px) translateY(-2px) } 50% { transform: translateX(10px) translateY(0) } 75% { transform: translateX(15px) translateY(-1px) } 100% { transform: translateX(20px) translateY(0) } }
@keyframes pc-stagger { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(3deg) } }
@keyframes pc-dust { 0% { opacity:1; transform: scale(1) translateY(0) } 100% { opacity:0; transform: scale(2) translateY(-10px) } }
@keyframes pc-drift { 0% { transform: translateX(0) } 100% { transform: translateX(100vw) } }

/* Scene: debt-of-nature (funny, overcast, death pursuit) */
.scn-debt-of-nature { background: linear-gradient(180deg, #8a8a7a 0%, #6a6a5a 40%, #5a5a4a 100%), radial-gradient(ellipse at 50% 20%, #7a7a6a 0%, transparent 60%); }
.scn-debt-of-nature .road   { position:absolute; bottom:15%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.5); animation: dn-shift 10s ease-in-out infinite; }
.scn-debt-of-nature .traveller{ position:absolute; bottom:22%; left:20%; width:25px; height:35px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40%; animation: dn-walk 3s ease-in-out infinite; }
.scn-debt-of-nature .death-figure{ position:absolute; bottom:22%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 60% 60% 30% 30%; box-shadow: 0 0 12px rgba(0,0,0,.6); animation: dn-glide 5s ease-in-out infinite; }
.scn-debt-of-nature .trees  { position:absolute; bottom:20%; left:5%; width:40px; height:60px; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%); border-radius: 50% 50% 10% 10%; animation: dn-sway 4s ease-in-out infinite; }
.scn-debt-of-nature .cart   { position:absolute; bottom:15%; left:75%; width:50px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 10px; box-shadow: 0 6px 10px rgba(0,0,0,.4); animation: dn-rattle 2s ease-in-out infinite; }
.scn-debt-of-nature .clouds { position:absolute; top:10%; left:0; width:80px; height:15px; background: linear-gradient(180deg, rgba(180,180,170,.5) 0%, rgba(160,160,150,.1) 100%); border-radius: 50%; filter: blur(6px); animation: dn-drift 35s linear infinite; }
@keyframes dn-shift { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes dn-walk { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(6px) rotate(-2deg) } 50% { transform: translateX(12px) rotate(0) } 75% { transform: translateX(18px) rotate(2deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes dn-glide { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-10px) translateY(-3px) } }
@keyframes dn-sway { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes dn-rattle { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes dn-drift { 0% { transform: translateX(0) } 100% { transform: translateX(100vw) } }

/* Scene: french-post-chaise (funny, overcast, frustration) */
.scn-french-post-chaise { background: linear-gradient(180deg, #a8a898 0%, #8a8a7a 40%, #7a7a6a 100%), radial-gradient(ellipse at 50% 30%, #b8b8a8 0%, transparent 60%); }
.scn-french-post-chaise .road   { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0; box-shadow: inset 0 10px 15px rgba(0,0,0,.4); animation: fp-shake 8s ease-in-out infinite; }
.scn-french-post-chaise .chaise { position:absolute; bottom:25%; left:30%; width:90px; height:45px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 30% 30% 15% 15%; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: fp-creak 4s ease-in-out infinite; }
.scn-french-post-chaise .horses{ position:absolute; bottom:25%; left:55%; width:70px; height:35px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 30% 40% 50%; animation: fp-plod 3s ease-in-out infinite; }
.scn-french-post-chaise .driver{ position:absolute; bottom:30%; left:35%; width:15px; height:25px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40%; animation: fp-slump 6s ease-in-out infinite; }
.scn-french-post-chaise .clouds{ position:absolute; top:12%; left:20%; width:60px; height:14px; background: linear-gradient(180deg, rgba(200,200,190,.4) 0%, rgba(180,180,170,.1) 100%); border-radius: 50%; filter: blur(5px); animation: fp-drift 45s linear infinite; }
.scn-french-post-chaise .wheels{ position:absolute; bottom:25%; left:35%; width:18px; height:18px; border: 3px solid #4a3a2a; background: transparent; border-radius: 50%; box-shadow: 0 0 0 3px #5a4a3a; animation: fp-spin 2s linear infinite; }
.scn-french-post-chaise .wheels:before{ content:''; position:absolute; top:50%; left:50%; width:2px; height:8px; background:#4a3a2a; transform:translate(-50%,-50%) rotate(0deg); }
.scn-french-post-chaise .wheels:after{ content:''; position:absolute; top:50%; left:50%; width:2px; height:8px; background:#4a3a2a; transform:translate(-50%,-50%) rotate(90deg); }
@keyframes fp-shake { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes fp-creak { 0% { transform: translateX(-2px) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(0) } 75% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(-2px) rotate(0) } }
@keyframes fp-plod { 0%,100% { transform: translateX(0) } 50% { transform: translateX(5px) } }
@keyframes fp-slump { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(2px) rotate(-3deg) } }
@keyframes fp-drift { 0% { transform: translateX(0) } 100% { transform: translateX(100vw) } }
@keyframes fp-spin { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }

/* Scene: virtues-listed */
.scn-virtues-listed { background: linear-gradient(180deg, #2c1a0e 0%, #3a2214 50%, #1f1008 100%), radial-gradient(ellipse at 60% 30%, #4a2a1a 0%, transparent 70%); }
.scn-virtues-listed .desk { position:absolute; bottom:20%; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 4px 4px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
.scn-virtues-listed .paper { position:absolute; bottom:35%; left:25%; width:40%; height:20%; background: linear-gradient(135deg, #d4c0a0 0%, #b8a080 100%); border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.3); transform: rotate(-3deg); animation: vt-paper 6s ease-in-out infinite alternate; }
.scn-virtues-listed .inkpot { position:absolute; bottom:40%; left:18%; width:12px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-virtues-listed .pen { position:absolute; bottom:42%; left:22%; width:6px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 50%, #2a1a0a 100%); border-radius: 50% 50% 10% 10%; transform-origin: bottom center; animation: vt-pen 4s ease-in-out infinite; }
.scn-virtues-listed .hand { position:absolute; bottom:38%; left:35%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 30%, #b89878 0%, #8a6a4a 60%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vt-hand 5s ease-in-out infinite; }
.scn-virtues-listed .candle { position:absolute; bottom:45%; left:70%; width:8px; height:30px; background: linear-gradient(180deg, #d4b890 0%, #a08060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px rgba(255,200,100,0.4); }
.scn-virtues-listed .flame-glow { position:absolute; bottom:65%; left:70%; width:10px; height:14px; background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%); border-radius: 50%; animation: vt-flame 2s ease-in-out infinite alternate; }
.scn-virtues-listed .list-line { position:absolute; bottom:38%; left:30%; width:20%; height:2px; background: #3a2a1a; border-radius: 1px; box-shadow: 0 6px 0 #3a2a1a, 0 12px 0 #3a2a1a; animation: vt-list 8s linear infinite; }
@keyframes vt-paper { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes vt-pen { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes vt-hand { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(-6px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes vt-flame { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.2); } 100% { opacity: 0.8; transform: scaleY(0.9); } }
@keyframes vt-list { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

/* Scene: truth-dawns */
.scn-truth-dawns { background: linear-gradient(180deg, #1e1a2a 0%, #2a2435 50%, #15101a 100%), radial-gradient(ellipse at 70% 80%, #3a3045 0%, transparent 60%); }
.scn-truth-dawns .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2435 0%, #1e1a2a 100%); }
.scn-truth-dawns .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a3045 0%, #1a1520 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-truth-dawns .figure-toby { position:absolute; bottom:30%; left:25%; width:40px; height:70px; background: linear-gradient(180deg, #2a2435 0%, #15101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: td-toby 6s ease-in-out infinite; }
.scn-truth-dawns .figure-trim { position:absolute; bottom:30%; left:55%; width:36px; height:66px; background: linear-gradient(180deg, #2a2435 0%, #15101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: td-trim 6s ease-in-out infinite 1s; }
.scn-truth-dawns .knee-wound { position:absolute; bottom:38%; left:62%; width:10px; height:8px; background: radial-gradient(circle, #5a3a2a 0%, #2a1a10 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(90,58,42,0.5); animation: td-knee 4s ease-in-out infinite alternate; }
.scn-truth-dawns .window-light { position:absolute; bottom:50%; left:10%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.3) 0%, transparent 100%); border-radius: 10%; animation: td-window 12s ease-in-out infinite alternate; }
.scn-truth-dawns .shadow-pool { position:absolute; bottom:20%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); }
@keyframes td-toby { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(1deg); } 75% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes td-trim { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes td-knee { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(0.9); } }
@keyframes td-window { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

/* Scene: rumor-spreads */
.scn-rumor-spreads { background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0e1a0e 100%), radial-gradient(ellipse at 50% 30%, #3a4a3a 0%, transparent 70%); }
.scn-rumor-spreads .garden-wall { position:absolute; bottom:30%; left:0; right:0; height:60%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); }
.scn-rumor-spreads .bush-left { position:absolute; bottom:40%; left:5%; width:50px; height:40px; background: radial-gradient(ellipse at 50% 100%, #3a5a3a 0%, #1a2a1a 100%); border-radius: 50%; filter: blur(3px); }
.scn-rumor-spreads .bush-right { position:absolute; bottom:40%; right:5%; width:50px; height:40px; background: radial-gradient(ellipse at 50% 100%, #3a5a3a 0%, #1a2a1a 100%); border-radius: 50%; filter: blur(3px); }
.scn-rumor-spreads .figure-wadman { position:absolute; bottom:35%; left:15%; width:30px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rs-fig 8s ease-in-out infinite; }
.scn-rumor-spreads .figure-bridget { position:absolute; bottom:35%; left:40%; width:28px; height:56px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rs-fig 8s ease-in-out infinite 1.5s; }
.scn-rumor-spreads .figure-susannah { position:absolute; bottom:35%; left:65%; width:26px; height:54px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rs-fig 8s ease-in-out infinite 3s; }
.scn-rumor-spreads .secret-dot { position:absolute; bottom:45%; left:25%; width:6px; height:6px; background: radial-gradient(circle, #c0a060 0%, #806020 100%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(192,160,96,0.6); animation: rs-secret 4s ease-in-out infinite; }
.scn-rumor-spreads .fame-trumpet { position:absolute; bottom:55%; right:10%; width:20px; height:30px; background: linear-gradient(180deg, #c8b080 0%, #a08050 100%); border-radius: 50% 50% 20% 20%; transform: rotate(20deg); animation: rs-trumpet 6s ease-in-out infinite alternate; }
@keyframes rs-fig { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes rs-secret { 0% { transform: translateX(0) translateY(0); opacity: 0.8; } 25% { transform: translateX(20px) translateY(-5px); opacity: 1; } 50% { transform: translateX(40px) translateY(-10px); opacity: 0.6; } 75% { transform: translateX(60px) translateY(-5px); opacity: 0.9; } 100% { transform: translateX(80px) translateY(0); opacity: 0.7; } }
@keyframes rs-trumpet { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(30deg) scale(1.1); } 100% { transform: rotate(20deg) scale(1); } }

/* Scene: obadiahs-bull */
.scn-obadiahs-bull { background: linear-gradient(180deg, #1a1a0e 0%, #2a2a14 50%, #0e0e08 100%), radial-gradient(ellipse at 40% 60%, #3a3a1a 0%, transparent 70%); }
.scn-obadiahs-bull .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a14 0%, #1a1a0e 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-obadiahs-bull .bull-body { position:absolute; bottom:15%; left:30%; width:80px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ob-bull 8s ease-in-out infinite; }
.scn-obadiahs-bull .bull-head { position:absolute; bottom:30%; left:50%; width:30px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ob-head 8s ease-in-out infinite 0.5s; }
.scn-obadiahs-bull .candle-out { position:absolute; bottom:35%; left:65%; width:8px; height:20px; background: linear-gradient(180deg, #b8a070 0%, #8a6a40 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 2px 1px rgba(255,200,100,0.2); }
.scn-obadiahs-bull .smoke { position:absolute; bottom:50%; left:65%; width:14px; height:20px; background: radial-gradient(circle, rgba(200,180,160,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: ob-smoke 3s ease-out infinite; }
.scn-obadiahs-bull .weapon-shoulder { position:absolute; bottom:28%; left:20%; width:60px; height:8px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; transform: rotate(-15deg); animation: ob-weapon 5s ease-in-out infinite alternate; }
.scn-obadiahs-bull .figure-obadiah { position:absolute; bottom:20%; left:10%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ob-fig 5s ease-in-out infinite; }
@keyframes ob-bull { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ob-head { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes ob-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-12px) scale(1.5); opacity: 0.3; } 100% { transform: translateY(-25px) scale(2); opacity: 0; } }
@keyframes ob-weapon { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(4px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes ob-fig { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(1deg); } 75% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* yorick-epitaph */
.scn-yorick-epitaph {
  background: linear-gradient(180deg, #0d0b1a 0%, #1a162e 40%, #2a1e3a 100%), radial-gradient(ellipse at 50% 30%, #2a1e3a 0%, transparent 80%);
}
.scn-yorick-epitaph .bg-ye { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, #1a162e 0%, transparent 70%); animation: ye-ambient 12s ease-in-out infinite alternate; }
.scn-yorick-epitaph .tombstone-ye { position: absolute; bottom: 20%; left: 50%; width: 120px; height: 80px; transform: translateX(-50%); background: linear-gradient(135deg, #4a4a5e 0%, #2a2a3a 50%, #3a3a4e 100%); border-radius: 4px 4px 20% 20% / 8px 8px 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,0.8), inset 0 2px 4px rgba(200,200,220,0.1); }
.scn-yorick-epitaph .epitaph-line-ye { position: absolute; left: 50%; transform: translateX(-50%); height: 2px; background: #5a5a6e; border-radius: 2px; box-shadow: 0 0 4px rgba(200,200,220,0.3); }
.scn-yorick-epitaph .line1 { bottom: 32%; width: 40px; animation: ye-fade 4s ease-in-out infinite; }
.scn-yorick-epitaph .line2 { bottom: 28%; width: 60px; animation: ye-fade 4s ease-in-out 1s infinite; }
.scn-yorick-epitaph .line3 { bottom: 24%; width: 30px; animation: ye-fade 4s ease-in-out 2s infinite; }
.scn-yorick-epitaph .candle-ye { position: absolute; bottom: 38%; left: calc(50% + 10px); width: 8px; height: 24px; background: linear-gradient(180deg, #e8d8b0 0%, #c8a878 100%); border-radius: 4px 4px 2px 2px; transform: rotate(2deg); }
.scn-yorick-epitaph .flame-ye { position: absolute; bottom: calc(38% + 24px); left: calc(50% + 10px); width: 10px; height: 16px; background: radial-gradient(ellipse at 50% 60%, #ffd080 0%, #ffa040 40%, #ff6000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 16px rgba(255,160,64,0.3); transform: translateX(-50%); animation: ye-flame 1.5s ease-in-out infinite; }
.scn-yorick-epitaph .shadow-ye { position: absolute; bottom: 20%; left: 50%; width: 140px; height: 20px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); border-radius: 50%; animation: ye-shadow 8s ease-in-out infinite alternate; }

@keyframes ye-ambient { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ye-fade { 0%,100% { opacity: 0.3; } 50% { opacity: 0.8; } }
@keyframes ye-flame { 0%,100% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 25% { transform: translateX(-48%) scaleY(1.1) rotate(2deg); } 75% { transform: translateX(-52%) scaleY(0.9) rotate(-2deg); } }
@keyframes ye-shadow { 0% { transform: translateX(-50%) scaleX(1); } 100% { transform: translateX(-50%) scaleX(1.2); } }

/* midwife-reintroduced */
.scn-midwife-reintroduced {
  background: linear-gradient(135deg, #2a2236 0%, #3a2e4a 50%, #1e1e2e 100%), radial-gradient(ellipse at 60% 80%, #4a3e5a 0%, transparent 70%);
}
.scn-midwife-reintroduced .bg-mr { position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, transparent 60%); animation: mr-ambient 10s ease-in-out infinite alternate; }
.scn-midwife-reintroduced .floor-mr { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a2236 0%, #1a1226 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-midwife-reintroduced .wall-mr { position: absolute; top: 0; left: 0; right: 0; bottom: 30%; background: linear-gradient(180deg, #3a2e4a 0%, #2a2236 80%); }
.scn-midwife-reintroduced .door-mr { position: absolute; left: 20%; bottom: 30%; width: 16%; height: 70%; background: linear-gradient(180deg, #4a3e5a 0%, #2a1e3a 100%); border-radius: 8% 8% 0 0; border-left: 2px solid #5a4e6a; border-right: 2px solid #5a4e6a; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); }
.scn-midwife-reintroduced .midwife-mr { position: absolute; left: 52%; bottom: 30%; width: 30px; height: 70px; background: linear-gradient(180deg, #3a2e4a 0%, #2a1e3a 50%, #1a122e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: scaleY(1.1); animation: mr-breathe 6s ease-in-out infinite; }
.scn-midwife-reintroduced .midwife-mr::before { content: ''; position: absolute; top: -8px; left: 50%; width: 20px; height: 20px; background: #2a2236; border-radius: 50% 50% 40% 40%; transform: translateX(-50%); }
.scn-midwife-reintroduced .candle-mr { position: absolute; left: 45%; bottom: 32%; width: 6px; height: 18px; background: linear-gradient(180deg, #e8d8b0 0%, #c8a878 100%); border-radius: 2px; }
.scn-midwife-reintroduced .glow-mr { position: absolute; left: 45%; bottom: 38%; width: 40px; height: 60px; background: radial-gradient(ellipse at 50% 60%, #ffd080 0%, #ffa040 30%, transparent 70%); border-radius: 50%; filter: blur(8px); opacity: 0.6; animation: mr-glow 4s ease-in-out infinite alternate; }

@keyframes mr-ambient { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes mr-breathe { 0%,100% { transform: scaleY(1.1) translateY(0); } 50% { transform: scaleY(1.12) translateY(-2px); } }
@keyframes mr-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.95); } }

/* midwife-circle */
.scn-midwife-circle {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4e 30%, #4a4a5e 100%), radial-gradient(ellipse at 50% 50%, #4a4a5e 0%, transparent 70%);
}
.scn-midwife-circle .bg-mc { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, #4a4a5e 0%, transparent 80%); animation: mc-rotate 30s linear infinite; }
.scn-midwife-circle .table-mc { position: absolute; top: 10%; left: 10%; right: 10%; bottom: 10%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 10px 30px rgba(0,0,0,0.6), inset 0 4px 8px rgba(255,220,180,0.1); }
.scn-midwife-circle .map-mc { position: absolute; top: 15%; left: 15%; right: 15%; bottom: 15%; background: linear-gradient(180deg, #c8b888 0%, #a89868 100%); border-radius: 50%; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
.scn-midwife-circle .circle-arc-mc { position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-radius: 50%; border: 2px solid #6a5a4a; animation: mc-expand 8s ease-in-out infinite; }
.scn-midwife-circle .arc1 { transform: translate(-50%, -50%); width: 30%; height: 30%; animation-delay: 0s; }
.scn-midwife-circle .arc2 { transform: translate(-50%, -50%); width: 50%; height: 50%; animation-delay: 2s; }
.scn-midwife-circle .arc3 { transform: translate(-50%, -50%); width: 70%; height: 70%; animation-delay: 4s; }
.scn-midwife-circle .center-dot-mc { position: absolute; top: 50%; left: 50%; width: 12px; height: 12px; transform: translate(-50%, -50%); background: radial-gradient(circle, #c04030 0%, #802010 100%); border-radius: 50%; box-shadow: 0 0 10px 4px rgba(192,64,48,0.5); animation: mc-pulse 3s ease-in-out infinite; }
.scn-midwife-circle .hand-mc { position: absolute; bottom: 25%; left: 45%; width: 30px; height: 16px; background: #a08060; border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%; transform: rotate(30deg); transform-origin: 50% 100%; animation: mc-point 5s ease-in-out infinite; }

@keyframes mc-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes mc-expand { 0%,100% { border-width: 2px; opacity: 0.3; } 50% { border-width: 4px; opacity: 0.8; } }
@keyframes mc-pulse { 0%,100% { transform: translate(-50%, -50%) scale(1); box-shadow: 0 0 10px 4px rgba(192,64,48,0.5); } 50% { transform: translate(-50%, -50%) scale(1.3); box-shadow: 0 0 20px 8px rgba(192,64,48,0.8); } }
@keyframes mc-point { 0%,100% { transform: rotate(25deg) translateX(0); } 50% { transform: rotate(35deg) translateX(4px); } }

/* marriage-settlement-search */
.scn-marriage-settlement-search {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a22 40%, #4a3a32 100%), radial-gradient(ellipse at 50% 60%, #4a3a32 0%, transparent 70%);
}
.scn-marriage-settlement-search .bg-ms { position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 50%, #3a2a22 0%, transparent 80%); }
.scn-marriage-settlement-search .desk-ms { position: absolute; bottom: 10%; left: 5%; right: 5%; height: 40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6); }
.scn-marriage-settlement-search .paper-ms { position: absolute; bottom: 15%; left: 15%; right: 15%; height: 28%; background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 2px; box-shadow: 2px 2px 8px rgba(0,0,0,0.4); transform: rotate(-2deg); animation: ms-rustle 6s ease-in-out infinite; }
.scn-marriage-settlement-search .candle-ms { position: absolute; bottom: 35%; left: 22%; width: 8px; height: 28px; background: linear-gradient(180deg, #e8d8b0 0%, #c8a878 100%); border-radius: 2px; transform: rotate(3deg); }
.scn-marriage-settlement-search .flame-ms { position: absolute; bottom: calc(35% + 28px); left: 22%; width: 12px; height: 20px; background: radial-gradient(ellipse at 50% 60%, #ffd080 0%, #ffa040 30%, #ff6000 60%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 30px 12px #ffa040, 0 0 60px 24px rgba(255,160,64,0.3); transform: translateX(2px); animation: ms-flame 2s ease-in-out infinite; }
.scn-marriage-settlement-search .hand-ms { position: absolute; bottom: 20%; left: 50%; width: 24px; height: 20px; background: linear-gradient(135deg, #b09070 0%, #806050 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: rotate(-10deg); transform-origin: 50% 100%; animation: ms-turn 4s ease-in-out infinite; }
.scn-marriage-settlement-search .glow-ms { position: absolute; bottom: 30%; left: 20%; width: 60px; height: 80px; background: radial-gradient(ellipse at 50% 60%, #ffa040 0%, transparent 80%); border-radius: 50%; filter: blur(10px); opacity: 0.5; animation: ms-glow 3s ease-in-out infinite alternate; }
.scn-marriage-settlement-search .inkwell-ms { position: absolute; bottom: 18%; right: 20%; width: 14px; height: 18px; background: #2a1a1a; border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }

@keyframes ms-rustle { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-2.5deg) translateY(-2px); } }
@keyframes ms-flame { 0%,100% { transform: translateX(2px) scaleY(1) rotate(0deg); } 25% { transform: translateX(0px) scaleY(1.1) rotate(2deg); } 75% { transform: translateX(4px) scaleY(0.9) rotate(-2deg); } }
@keyframes ms-turn { 0%,100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(4px); } }
@keyframes ms-glow { 0% { opacity: 0.3; transform: scale(0.9); } 100% { opacity: 0.6; transform: scale(1.1); } }

.scn-toby-interprets-kindly { background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); }
.scn-toby-interprets-kindly .room { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, #1a0e08 100%); }
.scn-toby-interprets-kindly .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-toby-interprets-kindly .window-glow { position:absolute; top:8%; left:15%; width:60px; height:80px; background: radial-gradient(circle at 50% 50%, #f0c068 0%, #b08040 50%, transparent 100%); border-radius: 4px; box-shadow: 0 0 60px 20px #c08040, 0 0 120px 40px rgba(192,128,64,.3); animation: ti-glow 4s ease-in-out infinite alternate; }
.scn-toby-interprets-kindly .chair { position:absolute; bottom:20%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: ti-chair 6s ease-in-out infinite; }
.scn-toby-interprets-kindly .toby { position:absolute; bottom:20%; left:30%; width:25px; height:60px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: ti-toby 4s ease-in-out infinite; }
.scn-toby-interprets-kindly .father { position:absolute; bottom:20%; left:55%; width:28px; height:65px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: ti-father 2.5s ease-in-out infinite alternate; }
.scn-toby-interprets-kindly .lamp { position:absolute; bottom:30%; left:48%; width:8px; height:12px; background: radial-gradient(circle, #ffd680 0%, #b08040 80%); border-radius: 50%; box-shadow: 0 0 20px 6px #ffd680, 0 0 40px 12px rgba(255,214,128,.4); animation: ti-lamp 1.5s ease-in-out infinite alternate; }
@keyframes ti-glow { 0% { opacity:.6; box-shadow: 0 0 40px 15px #c08040; } 50% { opacity:1; box-shadow: 0 0 80px 30px #ffd060; } 100% { opacity:.7; box-shadow: 0 0 50px 20px #c08040; } }
@keyframes ti-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ti-toby { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes ti-father { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-2px) rotate(2deg); } }
@keyframes ti-lamp { 0% { opacity:.8; transform: scale(1); } 100% { opacity:1; transform: scale(1.2); } }

.scn-toby-whistles { background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%), radial-gradient(circle at 50% 50%, #3a2a1a 0%, transparent 60%); }
.scn-toby-whistles .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 70%, #1a0e08 100%); }
.scn-toby-whistles .table { position:absolute; bottom:10%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); }
.scn-toby-whistles .bag { position:absolute; bottom:25%; left:35%; width:50px; height:60px; background: radial-gradient(ellipse at 50% 100%, #6a5a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: tw-bag 3s ease-in-out infinite; }
.scn-toby-whistles .hand-left { position:absolute; bottom:28%; left:28%; width:20px; height:20px; background: radial-gradient(circle, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50%; transform-origin: 80% 80%; animation: tw-hand 0.8s ease-in-out infinite alternate; }
.scn-toby-whistles .hand-right { position:absolute; bottom:28%; right:28%; width:20px; height:20px; background: radial-gradient(circle, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50%; transform-origin: 20% 80%; animation: tw-hand 0.8s ease-in-out infinite alternate-reverse; }
.scn-toby-whistles .rope { position:absolute; bottom:30%; left:38%; right:38%; height:4px; background: #5a4a3a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: tw-rope 4s ease-in-out infinite; }
@keyframes tw-bag { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes tw-hand { 0% { transform: scale(1) translate(0,0); } 100% { transform: scale(1.1) translate(2px,-2px); } }
@keyframes tw-rope { 0%,100% { opacity:.6; } 50% { opacity:1; } }

.scn-instrument-knots { background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%), radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 70%); }
.scn-instrument-knots .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%); }
.scn-instrument-knots .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #1a0e08 100%); border-radius: 30% 30% 0 0; }
.scn-instrument-knots .obadiah { position:absolute; bottom:15%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: ik-walk 2s ease-in-out infinite; }
.scn-instrument-knots .bag { position:absolute; bottom:20%; left:26%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #2a1a0e 100%); border-radius: 30% 30% 10% 10%; transform-origin: 50% 100%; animation: ik-bag 2s ease-in-out infinite; }
.scn-instrument-knots .jingle { position:absolute; bottom:30%; left:30%; width:20px; height:10px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 50%; box-shadow: 0 0 8px 2px #b0a080; animation: ik-jingle 0.4s ease-in-out infinite alternate; }
.scn-instrument-knots .shadow { position:absolute; bottom:10%; left:18%; width:40px; height:8px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px); animation: ik-shadow 2s ease-in-out infinite; }
@keyframes ik-walk { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(3deg); } 50% { transform: translateX(16px) rotate(0); } 75% { transform: translateX(8px) rotate(-3deg); } }
@keyframes ik-bag { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(5deg); } }
@keyframes ik-jingle { 0% { transform: translateX(0) scale(1); opacity:.8; } 100% { transform: translateX(2px) scale(1.2); opacity:1; } }
@keyframes ik-shadow { 0%,100% { transform: scale(1); opacity:.4; } 50% { transform: scale(1.2); opacity:.6; } }

.scn-bag-knots { background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%), radial-gradient(circle at 50% 60%, #3a2a1a 0%, transparent 80%); }
.scn-bag-knots .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 50%, #1a0e08 100%); }
.scn-bag-knots .bag { position:absolute; bottom:20%; left:30%; right:30%; height:50%; background: radial-gradient(ellipse at 50% 50%, #6a5a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: bk-bag 6s ease-in-out infinite; }
.scn-bag-knots .knot.top { position:absolute; bottom:55%; left:38%; width:12px; height:12px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: bk-knot 3s ease-in-out infinite; }
.scn-bag-knots .knot.mid { position:absolute; bottom:45%; left:48%; width:12px; height:12px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: bk-knot 3s ease-in-out infinite 1s; }
.scn-bag-knots .knot.bot { position:absolute; bottom:35%; left:42%; width:12px; height:12px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: bk-knot 3s ease-in-out infinite 2s; }
.scn-bag-knots .hand { position:absolute; bottom:30%; left:28%; width:22px; height:22px; background: radial-gradient(circle, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50%; transform-origin: 70% 70%; animation: bk-hand 1s ease-in-out infinite alternate; }
.scn-bag-knots .candle { position:absolute; bottom:15%; left:60%; width:6px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #b08040 100%); border-radius: 2px 2px 0 0; box-shadow: 0 0 16px 6px #ffd680; animation: bk-candle 2s ease-in-out infinite alternate; }
@keyframes bk-bag { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } }
@keyframes bk-knot { 0%,100% { transform: scale(1) rotate(0); } 50% { transform: scale(1.3) rotate(20deg); } }
@keyframes bk-hand { 0% { transform: translate(0,0) scale(1); } 100% { transform: translate(4px,-2px) scale(1.1); } }
@keyframes bk-candle { 0% { opacity:.7; box-shadow: 0 0 12px 4px #ffd680; } 100% { opacity:1; box-shadow: 0 0 20px 8px #ffe080; } }

.scn-north-west-passage { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 50%, #3a1a0a 100%), radial-gradient(ellipse at 50% 0, #6a3a1a 0%, transparent 60%); }
.scn-north-west-passage .bg    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%); animation: nwpsky 8s ease-in-out infinite alternate; }
.scn-north-west-passage .wall  { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-north-west-passage .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 20% 20%; }
.scn-north-west-passage .hearth{ position:absolute; bottom:28%; left:15%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 90%, #c8553d 0%, #8a3a2a 40%, #2a1a0a 100%); border-radius: 40% 40% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: nwphearth 5s ease-in-out infinite alternate; }
.scn-north-west-passage .desk  { position:absolute; bottom:22%; right:20%; width:120px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-north-west-passage .book  { position:absolute; bottom:30%; right:25%; width:30px; height:20px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 1px 1px 3px rgba(0,0,0,.3); animation: nwpbook 12s ease-in-out infinite; }
.scn-north-west-passage .figure{ position:absolute; bottom:22%; right:30%; width:28px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nwpfigure 6s ease-in-out infinite; }
.scn-north-west-passage .candle{ position:absolute; bottom:30%; right:18%; width:6px; height:12px; background: linear-gradient(180deg, #f0d0a0 0%, #c08040 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,100,50,.7); animation: nwpcandle 3s ease-in-out infinite alternate; }
@keyframes nwpsky    { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes nwphearth { 0% { transform: scaleY(1); box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); } 50% { transform: scaleY(1.05); box-shadow: inset 0 -10px 30px rgba(200,80,40,.3); } 100% { transform: scaleY(1); } }
@keyframes nwpbook   { 0%,100% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-2px) rotate(-8deg); } }
@keyframes nwpfigure { 0%,100% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(-2px) scaleY(1.02); } 75% { transform: translateX(2px) scaleY(0.98); } }
@keyframes nwpcandle { 0% { opacity:.85; box-shadow: 0 0 15px 4px rgba(200,100,50,.6); } 50% { opacity:1; box-shadow: 0 0 25px 8px rgba(240,200,100,.8); } 100% { opacity:.9; box-shadow: 0 0 18px 5px rgba(200,100,50,.7); } }

.scn-auxiliary-system { background: linear-gradient(180deg, #1a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-auxiliary-system .bg    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a1a 0%, transparent 100%); animation: auxsky 10s ease-in-out infinite alternate; }
.scn-auxiliary-system .wall  { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #3a3a2a 0%, #4a4a3a 50%, #3a3a2a 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.5); }
.scn-auxiliary-system .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 0 0 15% 15%; }
.scn-auxiliary-system .globe { position:absolute; bottom:20%; left:20%; width:50px; height:50px; background: radial-gradient(circle at 40% 35%, #6a8a6a 0%, #3a5a3a 100%); border-radius: 50%; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: auxglobe 20s linear infinite; }
.scn-auxiliary-system .chair  { position:absolute; bottom:12%; right:25%; width:40px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-auxiliary-system .lamp   { position:absolute; bottom:28%; right:15%; width:8px; height:25px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a3a 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 12px rgba(200,150,80,.5); animation: auxlamp 4s ease-in-out infinite alternate; }
.scn-auxiliary-system .figure { position:absolute; bottom:14%; right:30%; width:24px; height:55px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: auxfigure 7s ease-in-out infinite; }
.scn-auxiliary-system .shadow { position:absolute; bottom:8%; right:15%; width:60px; height:15px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(4px); animation: auxshadow 5s ease-in-out infinite alternate; }
@keyframes auxsky    { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes auxglobe { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.02); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes auxlamp   { 0% { opacity:.8; box-shadow: 0 0 20px 8px rgba(200,150,80,.4); } 50% { opacity:1; box-shadow: 0 0 35px 15px rgba(240,200,100,.7); } 100% { opacity:.9; box-shadow: 0 0 25px 10px rgba(200,150,80,.5); } }
@keyframes auxfigure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 75% { transform: translateY(1px) rotate(2deg); } }
@keyframes auxshadow { 0% { transform: scaleX(1); opacity:.3; } 100% { transform: scaleX(1.1); opacity:.4; } }

.scn-auxiliaries-explained { background: linear-gradient(180deg, #1a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 60% 50%, #4a3a2a 0%, transparent 60%); }
.scn-auxiliaries-explained .bg    { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a1a 0%, transparent 100%); animation: auesky 12s ease-in-out infinite alternate; }
.scn-auxiliaries-explained .wall  { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #3a3a2a 0%, #4a4a3a 50%, #3a3a2a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-auxiliaries-explained .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%); border-radius: 0 0 10% 10%; }
.scn-auxiliaries-explained .diagram{ position:absolute; top:15%; left:10%; width:80px; height:100px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #5a4a3a 100%); border: 2px solid #7a6a5a; border-radius: 4%; box-shadow: 0 0 20px rgba(0,0,0,.3); animation: auediagram 8s ease-in-out infinite; }
.scn-auxiliaries-explained .pointing{ position:absolute; bottom:20%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: auepoint 5s ease-in-out infinite; }
.scn-auxiliaries-explained .book   { position:absolute; bottom:22%; right:15%; width:40px; height:30px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%); border-radius: 4% 4% 20% 20%; transform: rotate(15deg); box-shadow: 1px 1px 4px rgba(0,0,0,.3); animation: auebook 15s ease-in-out infinite; }
.scn-auxiliaries-explained .glow   { position:absolute; top:20%; right:30%; width:20px; height:20px; background: radial-gradient(circle, #f0d0a0 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: aueglow 4s ease-in-out infinite alternate; }
@keyframes auesky    { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes auediagram { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.03) rotate(2deg); } }
@keyframes auepoint   { 0%,100% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(-10deg) scaleY(1.1); } 75% { transform: rotate(5deg) scaleY(1.05); } }
@keyframes auebook    { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } }
@keyframes aueglow    { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.7; transform: scale(1.5); } 100% { opacity:.4; transform: scale(1.2); } }

.scn-white-bear { background: linear-gradient(180deg, #1a2a2a 0%, #3a4a4a 50%, #2a3a3a 100%), radial-gradient(ellipse at 40% 80%, #5a6a6a 0%, transparent 60%); }
.scn-white-bear .bg    { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a3a3a 0%, transparent 100%); animation: wbebg 15s ease-in-out infinite alternate; }
.scn-white-bear .wall  { position:absolute; inset:0 0 15% 0; background: linear-gradient(90deg, #3a4a4a 0%, #4a5a5a 50%, #3a4a4a 100%); border-radius: 12% 12% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-white-bear .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 0 0 30% 30%; }
.scn-white-bear .bear  { position:absolute; bottom:12%; left:40%; width:70px; height:90px; background: radial-gradient(ellipse at 40% 30%, #e0e0e0 0%, #a0a0a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.2); animation: wbebear 6s ease-in-out infinite; }
.scn-white-bear .shadow{ position:absolute; bottom:8%; left:35%; width:100px; height:20px; background: rgba(0,0,0,.2); border-radius: 50%; filter: blur(6px); animation: wbeshadow 6s ease-in-out infinite alternate; }
.scn-white-bear .ribbon{ position:absolute; bottom:45%; left:45%; width:30px; height:8px; background: linear-gradient(90deg, #b87878 0%, #a05858 100%); border-radius: 20%; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: wberibbon 4s ease-in-out infinite; }
.scn-white-bear .feather{ position:absolute; top:10%; left:60%; width:12px; height:20px; background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 100%); border-radius: 50% 50% 0 0; transform: rotate(30deg); filter: blur(1px); animation: wbefeather 12s linear infinite; }
@keyframes wbebg    { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes wbebear   { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-3deg); } 75% { transform: translateY(2px) rotate(2deg); } }
@keyframes wbeshadow { 0% { transform: scaleX(1) scaleY(1); opacity:.4; } 50% { transform: scaleX(1.2) scaleY(1.1); opacity:.6; } 100% { transform: scaleX(1) scaleY(1); opacity:.4; } }
@keyframes wberibbon { 0%,100% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.1); } }
@keyframes wbefeather{ 0% { transform: translateX(0) translateY(0) rotate(30deg); } 25% { transform: translateX(10px) translateY(-10px) rotate(45deg); } 50% { transform: translateX(20px) translateY(-5px) rotate(20deg); } 75% { transform: translateX(10px) translateY(5px) rotate(35deg); } 100% { transform: translateX(0) translateY(0) rotate(30deg); } }

/* Scene: siege-metaphor */
.scn-siege-metaphor {
  background: linear-gradient(135deg, #2a1f1a 0%, #3a2a20 50%, #1f1410 100%),
              radial-gradient(ellipse at 30% 70%, #4a3020 0%, transparent 60%);
}
.scn-siege-metaphor .wall { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #1f1410 0%, transparent 100%); }
.scn-siege-metaphor .table { position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-siege-metaphor .fort { position: absolute; bottom: 26%; left: 30%; width: 80px; height: 60px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: sieg-fort 6s ease-in-out infinite; }
.scn-siege-metaphor .cannon { position: absolute; bottom: 28%; left: 34%; width: 20px; height: 10px; background: #4a4030; border-radius: 40% 40% 10% 10%; transform-origin: left center; animation: sieg-cannon 4s ease-in-out infinite alternate; }
.scn-siege-metaphor .bowling-ball { position: absolute; bottom: 22%; left: 60%; width: 16px; height: 16px; background: radial-gradient(circle at 35% 35%, #6a5a4a, #2a1a10); border-radius: 50%; box-shadow: -2px 2px 4px rgba(0,0,0,0.4); animation: sieg-ball 5s ease-in-out infinite; }
.scn-siege-metaphor .candle { position: absolute; bottom: 30%; left: 15%; width: 6px; height: 20px; background: linear-gradient(180deg, #c8a070 0%, #8a6a40 50%, #5a4020 100%); border-radius: 2px; }
.scn-siege-metaphor .flame { position: absolute; bottom: 46%; left: 15.5%; width: 4px; height: 8px; background: radial-gradient(circle, #ffd080, #e09030 50%, transparent 100%); border-radius: 50%; animation: sieg-flame 0.8s ease-in-out infinite alternate; }
@keyframes sieg-fort { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sieg-cannon { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(0deg); } }
@keyframes sieg-ball { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(8px) rotate(30deg); } 60% { transform: translateX(12px) rotate(60deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sieg-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; } 50% { transform: scaleY(1.3) translateY(-1px); opacity: 1; } 100% { transform: scaleY(0.9) translateY(1px); opacity: 0.8; } }

/* Scene: toby-placidity */
.scn-toby-placidity {
  background: linear-gradient(180deg, #1f1a15 0%, #2e241e 50%, #3a2e24 100%),
              radial-gradient(ellipse at 70% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-toby-placidity .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1f1410 0%, transparent 100%); }
.scn-toby-placidity .chair { position: absolute; bottom: 20%; left: 30%; right: 30%; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
.scn-toby-placidity .figure { position: absolute; bottom: 30%; left: 35%; width: 25%; height: 40%; background: linear-gradient(180deg, #1a1510 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: toby-figure 8s ease-in-out infinite; }
.scn-toby-placidity .pipe { position: absolute; bottom: 55%; left: 52%; width: 20px; height: 4px; background: #4a3a2a; border-radius: 2px; transform: rotate(20deg); animation: toby-pipe 4s ease-in-out infinite alternate; }
.scn-toby-placidity .smoke-a { position: absolute; bottom: 65%; left: 55%; width: 14px; height: 20px; background: radial-gradient(circle, rgba(200,180,160,0.4), transparent); filter: blur(4px); animation: toby-smoke 6s ease-out infinite; }
.scn-toby-placidity .smoke-b { position: absolute; bottom: 70%; left: 58%; width: 10px; height: 16px; background: radial-gradient(circle, rgba(200,180,160,0.3), transparent); filter: blur(3px); animation: toby-smoke 9s ease-out infinite 3s; }
.scn-toby-placidity .candle { position: absolute; bottom: 28%; left: 10%; width: 6px; height: 18px; background: linear-gradient(180deg, #c8a070 0%, #8a6a40 50%, #5a4020 100%); border-radius: 2px; }
.scn-toby-placidity .flame { position: absolute; bottom: 44%; left: 10.2%; width: 4px; height: 8px; background: radial-gradient(circle, #ffc080, #d08030 50%, transparent 100%); border-radius: 50%; animation: toby-flame 1.2s ease-in-out infinite alternate; }
@keyframes toby-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes toby-pipe { 0% { transform: rotate(15deg); } 100% { transform: rotate(25deg); } }
@keyframes toby-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.2; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }
@keyframes toby-flame { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.2); } 100% { transform: scaleY(0.8); } }

/* Scene: gods-pleasure */
.scn-gods-pleasure {
  background: linear-gradient(180deg, #1a2028 0%, #2a3040 50%, #1a2028 100%),
              radial-gradient(ellipse at 50% 30%, #3a4a5a 0%, transparent 60%);
}
.scn-gods-pleasure .bg { position: absolute; inset: 0; background: linear-gradient(180deg, #0a0e14 0%, transparent 100%); }
.scn-gods-pleasure .moon { position: absolute; top: 8%; left: 60%; width: 40px; height: 40px; background: radial-gradient(circle, #c8d0d8, #8a9aa8); border-radius: 50%; box-shadow: 0 0 40px 12px rgba(200,210,220,0.3); animation: godp-moon 12s ease-in-out infinite alternate; }
.scn-gods-pleasure .profile-head { position: absolute; bottom: 30%; left: 25%; width: 50px; height: 60px; background: #1a1a1a; border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%; box-shadow: -4px 0 8px rgba(0,0,0,0.5); animation: godp-head 8s ease-in-out infinite; }
.scn-gods-pleasure .nose-long { position: absolute; bottom: 42%; left: 27%; width: 30px; height: 6px; background: #1a1a1a; border-radius: 0 50% 50% 0; transform-origin: left center; animation: godp-nose-long 6s ease-in-out infinite alternate; }
.scn-gods-pleasure .nose-short { position: absolute; bottom: 50%; left: 35%; width: 12px; height: 5px; background: #2a2a2a; border-radius: 0 50% 50% 0; opacity: 0.6; transform: rotate(5deg); animation: godp-nose-short 8s ease-in-out infinite alternate; }
.scn-gods-pleasure .candle { position: absolute; bottom: 28%; left: 65%; width: 5px; height: 16px; background: linear-gradient(180deg, #c8a070 0%, #8a6a40 50%, #5a4020 100%); border-radius: 2px; }
.scn-gods-pleasure .flame { position: absolute; bottom: 42%; left: 65.5%; width: 3px; height: 6px; background: radial-gradient(circle, #ffc080, #d08030 50%, transparent 100%); border-radius: 50%; animation: godp-flame 1.5s ease-in-out infinite alternate; }
@keyframes godp-moon { 0% { transform: translateX(0) scale(0.95); } 50% { transform: translateX(2px) scale(1); } 100% { transform: translateX(-1px) scale(0.98); } }
@keyframes godp-head { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes godp-nose-long { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.15); } 100% { transform: scaleX(0.95); } }
@keyframes godp-nose-short { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(2px) scaleX(0.8); } 100% { transform: translateX(0) scaleX(1.1); } }
@keyframes godp-flame { 0% { transform: scaleY(0.8); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(0.9); } }

/* Scene: slawkenbergius-treasure */
.scn-slawkenbergius-treasure {
  background: linear-gradient(180deg, #2a1f14 0%, #3a2a1e 50%, #1f1410 100%),
              radial-gradient(ellipse at 40% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-slawkenbergius-treasure .wall { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #1a100e 0%, transparent 100%); }
.scn-slawkenbergius-treasure .desk { position: absolute; bottom: 15%; left: 10%; right: 10%; height: 10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-slawkenbergius-treasure .book { position: absolute; bottom: 22%; left: 30%; right: 20%; height: 18%; background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); transform-origin: right center; animation: slaw-book 10s ease-in-out infinite; }
.scn-slawkenbergius-treasure .pages { position: absolute; bottom: 24%; left: 32%; right: 22%; height: 14%; background: linear-gradient(180deg, #c8a070, #8a6a40); border-radius: 2%; animation: slaw-pages 12s ease-in-out infinite alternate; }
.scn-slawkenbergius-treasure .hand { position: absolute; bottom: 30%; left: 45%; width: 20px; height: 30px; background: linear-gradient(180deg, #c0a080 0%, #806050 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: 50% 100%; animation: slaw-hand 8s ease-in-out infinite; }
.scn-slawkenbergius-treasure .candle { position: absolute; bottom: 28%; left: 12%; width: 6px; height: 18px; background: linear-gradient(180deg, #c8a070 0%, #8a6a40 50%, #5a4020 100%); border-radius: 2px; }
.scn-slawkenbergius-treasure .flame { position: absolute; bottom: 44%; left: 12.2%; width: 4px; height: 8px; background: radial-gradient(circle, #ffd080, #d09040 50%, transparent 100%); border-radius: 50%; animation: slaw-flame 1s ease-in-out infinite alternate; }
.scn-slawkenbergius-treasure .sparkle { position: absolute; top: 20%; left: 20%; width: 4px; height: 4px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255,208,128,0.6); animation: slaw-sparkle 7s ease-in-out infinite; }
@keyframes slaw-book { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes slaw-pages { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes slaw-hand { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(3deg); } 60% { transform: translateX(8px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes slaw-flame { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.3); opacity: 1; } 100% { transform: scaleY(0.8); opacity: 0.85; } }
@keyframes slaw-sparkle { 0% { transform: translateY(0) scale(0.5); opacity: 0; } 50% { transform: translateY(-15px) scale(1.2); opacity: 1; } 100% { transform: translateY(-30px) scale(0.5); opacity: 0; } }

.scn-francis-and-swiss {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2b1f 40%, #1a1210 100%),
    radial-gradient(ellipse at 40% 80%, #b86a2e 0%, transparent 60%);
}
.scn-francis-and-swiss .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3525 0%, #2a1e14 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: ff-wall 12s ease-in-out infinite alternate;
}
.scn-francis-and-swiss .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 40% 30%, #3d2b1f 0%, #1a1210 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-francis-and-swiss .fireplace {
  position: absolute; bottom: 30%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #5e3a24 0%, #3a2214 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
}
.scn-francis-and-swiss .fire {
  position: absolute; bottom: 30%; left: 28%; width: 14%; height: 25%;
  background: radial-gradient(ellipse at 50% 80%, #ff9933 0%, #cc4400 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ff-fire 2s ease-in-out infinite alternate;
}
.scn-francis-and-swiss .king {
  position: absolute; bottom: 30%; left: 50%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #5e3a24 0%, #2a1e14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ff-king 4s ease-in-out infinite;
}
.scn-francis-and-swiss .minister {
  position: absolute; bottom: 30%; left: 35%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3525 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ff-minister 5s ease-in-out infinite alternate;
}
.scn-francis-and-swiss .log {
  position: absolute; bottom: 30%; left: 25%; width: 8%; height: 4%;
  background: #3a2214;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: ff-log 4s ease-in-out infinite;
}
@keyframes ff-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes ff-fire { 0% { transform: scaleY(1) scaleX(1); opacity: .7 } 50% { transform: scaleY(1.2) scaleX(.9); opacity: 1 } 100% { transform: scaleY(.9) scaleX(1.1); opacity: .6 } }
@keyframes ff-king { 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) } }
@keyframes ff-minister { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(2px) scaleY(.98) } 100% { transform: translateX(0) scaleY(1.02) } }
@keyframes ff-log { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } }

.scn-swiss-naming {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2b1f 40%, #1a1210 100%),
    radial-gradient(ellipse at 40% 80%, #b86a2e 0%, transparent 60%);
}
.scn-swiss-naming .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3525 0%, #2a1e14 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: sn-wall 15s ease-in-out infinite alternate;
}
.scn-swiss-naming .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 40% 30%, #3d2b1f 0%, #1a1210 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-swiss-naming .fireplace {
  position: absolute; bottom: 30%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #5e3a24 0%, #3a2214 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
}
.scn-swiss-naming .fire {
  position: absolute; bottom: 30%; left: 28%; width: 14%; height: 25%;
  background: radial-gradient(ellipse at 50% 80%, #ff9933 0%, #cc4400 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sn-fire 2s ease-in-out infinite alternate;
}
.scn-swiss-naming .king {
  position: absolute; bottom: 30%; left: 55%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #5e3a24 0%, #2a1e14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sn-king 4s ease-in-out infinite;
}
.scn-swiss-naming .minister {
  position: absolute; bottom: 30%; left: 38%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3525 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sn-minister 5s ease-in-out infinite alternate;
}
.scn-swiss-naming .dispatches {
  position: absolute; bottom: 35%; left: 44%; width: 8%; height: 2%;
  background: #b8966a;
  border-radius: 4px;
  filter: blur(1px);
  animation: sn-disp 6s ease-in-out infinite;
}
.scn-swiss-naming .scroll {
  position: absolute; bottom: 33%; left: 48%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #d4b88a 0%, #a6845a 100%);
  border-radius: 20%;
  transform: rotate(-20deg);
  animation: sn-scroll 7s ease-in-out infinite alternate;
}
@keyframes sn-wall { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes sn-fire { 0% { transform: scaleY(1) scaleX(1); opacity: .6 } 50% { transform: scaleY(1.15) scaleX(.85); opacity: 1 } 100% { transform: scaleY(.9) scaleX(1.1); opacity: .7 } }
@keyframes sn-king { 0%,100% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes sn-minister { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(1px) scaleY(.97) } 100% { transform: translateX(0) scaleY(1.03) } }
@keyframes sn-disp { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(5deg) } }
@keyframes sn-scroll { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-3px) } 100% { transform: rotate(-25deg) translateY(0) } }

.scn-francis-rage {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2b1f 40%, #1a1210 100%),
    radial-gradient(ellipse at 40% 80%, #b86a2e 0%, transparent 60%);
}
.scn-francis-rage .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3525 0%, #2a1e14 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: fr-wall 10s ease-in-out infinite alternate;
}
.scn-francis-rage .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 40% 30%, #3d2b1f 0%, #1a1210 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-francis-rage .fireplace {
  position: absolute; bottom: 30%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #5e3a24 0%, #3a2214 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
}
.scn-francis-rage .fire {
  position: absolute; bottom: 30%; left: 28%; width: 14%; height: 25%;
  background: radial-gradient(ellipse at 50% 80%, #ff9933 0%, #cc4400 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fr-fire 2.5s ease-in-out infinite alternate;
}
.scn-francis-rage .king.rage {
  position: absolute; bottom: 30%; left: 52%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #5e3a24 0%, #2a1e14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fr-king-rage .8s ease-in-out infinite;
}
.scn-francis-rage .minister.cower {
  position: absolute; bottom: 30%; left: 35%; width: 9%; height: 28%;
  background: linear-gradient(180deg, #4a3525 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fr-minister-cower 1s ease-in-out infinite alternate;
}
.scn-francis-rage .shatter {
  position: absolute; bottom: 40%; left: 45%; width: 6%; height: 6%;
  background: radial-gradient(circle, #d4b88a 0%, #a6845a 100%);
  border-radius: 50%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 0% 20%);
  animation: fr-shatter .5s ease-in-out infinite;
}
.scn-francis-rage .papers {
  position: absolute; bottom: 32%; left: 40%; width: 10%; height: 1%;
  background: #b8966a;
  border-radius: 2px;
  filter: blur(1px);
  transform: rotate(-10deg);
  animation: fr-papers 3s ease-in-out infinite;
}
@keyframes fr-wall { 0% { opacity: .9 } 50% { opacity: .7 } 100% { opacity: 1 } }
@keyframes fr-fire { 0% { transform: scaleY(1) scaleX(1); opacity: .8 } 50% { transform: scaleY(1.3) scaleX(.8); opacity: 1 } 100% { transform: scaleY(.8) scaleX(1.2); opacity: .6 } }
@keyframes fr-king-rage { 0%,100% { transform: translateX(0) rotate(-3deg) scaleY(1) } 25% { transform: translateX(4px) rotate(3deg) scaleY(1.05) } 50% { transform: translateX(0) rotate(-5deg) scaleY(1) } 75% { transform: translateX(-4px) rotate(5deg) scaleY(.95) } }
@keyframes fr-minister-cower { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-2px) scaleY(.9) } 100% { transform: translateX(0) scaleY(1.1) } }
@keyframes fr-shatter { 0%,100% { transform: rotate(0) scale(1) } 50% { transform: rotate(15deg) scale(1.2) } }
@keyframes fr-papers { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-2px) } }

.scn-yorick-counsel {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2b1f 40%, #1a1210 100%),
    radial-gradient(ellipse at 40% 80%, #b86a2e 0%, transparent 60%);
}
.scn-yorick-counsel .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3525 0%, #2a1e14 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: yc-wall 14s ease-in-out infinite alternate;
}
.scn-yorick-counsel .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 40% 30%, #3d2b1f 0%, #1a1210 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-yorick-counsel .fireplace {
  position: absolute; bottom: 30%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #5e3a24 0%, #3a2214 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
}
.scn-yorick-counsel .fire {
  position: absolute; bottom: 30%; left: 28%; width: 14%; height: 25%;
  background: radial-gradient(ellipse at 50% 80%, #ff9933 0%, #cc4400 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: yc-fire 2.2s ease-in-out infinite alternate;
}
.scn-yorick-counsel .table {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 5%;
  background: linear-gradient(90deg, #5e3a24 0%, #7a4a30 50%, #5e3a24 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: yc-table 8s ease-in-out infinite alternate;
}
.scn-yorick-counsel .yorick {
  position: absolute; bottom: 32%; left: 38%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3525 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: yc-yorick 5s ease-in-out infinite;
}
.scn-yorick-counsel .father {
  position: absolute; bottom: 32%; left: 50%; width: 11%; height: 32%;
  background: linear-gradient(180deg, #5e3a24 0%, #2a1e14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: yc-father 6s ease-in-out infinite alternate;
}
.scn-yorick-counsel .toby {
  position: absolute; bottom: 32%; left: 58%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #4a3525 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: yc-toby 7s ease-in-out infinite alternate;
}
.scn-yorick-counsel .wig {
  position: absolute; bottom: 34%; left: 53%; width: 6%; height: 6%;
  background: linear-gradient(180deg, #d4b88a 0%, #a6845a 100%);
  border-radius: 50% 50% 40% 40%;
  filter: blur(2px);
  transform: rotate(-10deg);
  animation: yc-wig 4s ease-in-out infinite;
}
@keyframes yc-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes yc-fire { 0% { transform: scaleY(1) scaleX(1); opacity: .7 } 50% { transform: scaleY(1.1) scaleX(.9); opacity: 1 } 100% { transform: scaleY(.9) scaleX(1.1); opacity: .6 } }
@keyframes yc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes yc-yorick { 0%,100% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(2deg) } }
@keyframes yc-father { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(1px) scaleY(.98) } 100% { transform: translateX(0) scaleY(1.02) } }
@keyframes yc-toby { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-1px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(.98) } }
@keyframes yc-wig { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } }

.scn-shaving-inspires { background: linear-gradient(180deg, #2a241a 0%, #1c1610 30%, #120e0a 70%), radial-gradient(ellipse at 70% 20%, #3a3020 0%, transparent 60%); }
.scn-shaving-inspires .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f14 0%, #1a120c 100%); }
.scn-shaving-inspires .mirror-frame { position:absolute; top:15%; left:20%; width:60%; height:70%; border: 6px solid #5a4028; border-radius: 12px; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 4px 10px rgba(0,0,0,.4); }
.scn-shaving-inspires .mirror-glass { position:absolute; top:18%; left:22%; width:56%; height:64%; background: linear-gradient(135deg, rgba(180,160,120,.15) 0%, rgba(100,80,60,.05) 50%, rgba(180,160,120,.1) 100%); border-radius: 8px; backdrop-filter: blur(2px); box-shadow: 0 0 30px rgba(200,180,140,.1); animation: si-reflect 8s ease-in-out infinite alternate; }
.scn-shaving-inspires .man-silhouette { position:absolute; bottom:12%; left:28%; width:40%; height:60%; background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-tilt 4s ease-in-out infinite; }
.scn-shaving-inspires .razor { position:absolute; bottom:35%; left:32%; width:4%; height:18%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%); border-radius: 2px; transform: rotate(-20deg); transform-origin: bottom left; animation: si-razor 3s ease-in-out infinite; }
.scn-shaving-inspires .lather-bowl { position:absolute; bottom:10%; left:16%; width:14%; height:6%; background: radial-gradient(ellipse, #d6c8a8 0%, #b8a88a 60%, #8a7a62 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-shaving-inspires .candle { position:absolute; bottom:18%; left:70%; width:3%; height:10%; background: linear-gradient(180deg, #c8b898 0%, #a08870 100%); border-radius: 3px 3px 1px 1px; }
.scn-shaving-inspires .candle-glow { position:absolute; bottom:27%; left:69%; width:6%; height:8%; background: radial-gradient(ellipse, #ffd98a 0%, #e8b060 40%, transparent 80%); border-radius: 50%; filter: blur(6px); animation: si-candle 2s ease-in-out infinite alternate; }
.scn-shaving-inspires .lather-bubble { position:absolute; bottom:30%; left:24%; width:4%; height:4%; background: radial-gradient(circle, rgba(240,230,210,.6) 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: si-bubble 6s ease-in-out infinite; }
@keyframes si-reflect { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }
@keyframes si-tilt { 0% { transform: rotate(0) } 25% { transform: rotate(2deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0) } }
@keyframes si-razor { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-20deg) } }
@keyframes si-candle { 0% { opacity:.7; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }
@keyframes si-bubble { 0% { transform: translate(0,0) scale(1); opacity:.6 } 50% { transform: translate(2px,-4px) scale(1.3); opacity:.8 } 100% { transform: translate(-1px,-2px) scale(1); opacity:.5 } }

.scn-laundress-bill { background: linear-gradient(180deg, #2c2218 0%, #1e1610 40%, #120c08 100%), radial-gradient(ellipse at 40% 60%, #2a1e14 0%, transparent 80%); }
.scn-laundress-bill .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f14 0%, #1a120c 100%); }
.scn-laundress-bill .basket { position:absolute; bottom:5%; left:10%; width:50%; height:30%; background: linear-gradient(180deg, #7a6a58 0%, #4a3e30 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: lb-basket 12s ease-in-out infinite; }
.scn-laundress-bill .laundry-pile { position:absolute; bottom:18%; left:15%; width:30%; height:20%; background: linear-gradient(180deg, #b8a890 0%, #8a7a6a 50%, #5a4e42 100%); border-radius: 40% 50% 20% 20% / 60% 70% 20% 20%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.3); animation: lb-settle 8s ease-in-out infinite alternate; }
.scn-laundress-bill .laundry-pile-2 { position:absolute; bottom:22%; left:35%; width:25%; height:18%; background: linear-gradient(180deg, #a89880 0%, #786a5a 100%); border-radius: 50% 40% 20% 20% / 60% 50% 20% 20%; transform: scale(.9); animation: lb-settle 10s ease-in-out infinite alternate-reverse; }
.scn-laundress-bill .bill { position:absolute; top:35%; left:40%; width:12%; height:8%; background: linear-gradient(135deg, #d4c4a8 0%, #b8a88a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); transform: rotate(5deg); animation: lb-bill 6s ease-in-out infinite; }
.scn-laundress-bill .sock { position:absolute; bottom:8%; left:60%; width:10%; height:14%; background: linear-gradient(180deg, #a08068 0%, #705a4a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(15deg); animation: lb-sock 9s ease-in-out infinite; }
.scn-laundress-bill .washboard { position:absolute; bottom:4%; left:55%; width:20%; height:8%; background: linear-gradient(180deg, #6a5a48 0%, #3a2e22 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: lb-wash 7s ease-in-out infinite; }
.scn-laundress-bill .stain { position:absolute; top:40%; left:42%; width:6%; height:4%; background: radial-gradient(circle, #6a4a3a 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: lb-stain 15s ease-in-out infinite; }
@keyframes lb-basket { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lb-settle { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes lb-bill { 0% { transform: rotate(5deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(6deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(5deg) } }
@keyframes lb-sock { 0% { transform: rotate(15deg) translate(0,0) } 33% { transform: rotate(10deg) translate(2px,-1px) } 66% { transform: rotate(20deg) translate(-1px,1px) } 100% { transform: rotate(15deg) translate(0,0) } }
@keyframes lb-wash { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(1) } }
@keyframes lb-stain { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.3 } }

.scn-objections-raised { background: linear-gradient(180deg, #1e1a14 0%, #14100c 40%, #0a0806 100%), radial-gradient(ellipse at 20% 40%, #2a2018 0%, transparent 70%); }
.scn-objections-raised .study-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #100c08 100%); }
.scn-objections-raised .desk { position:absolute; bottom:5%; left:10%; width:80%; height:35%; background: linear-gradient(180deg, #5a4a38 0%, #3a2e22 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-objections-raised .inkwell { position:absolute; bottom:30%; left:20%; width:8%; height:12%; background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: or-ink 5s ease-in-out infinite; }
.scn-objections-raised .quill { position:absolute; bottom:38%; left:22%; width:2%; height:20%; background: linear-gradient(180deg, #b8a890 0%, #6a5a48 100%); border-radius: 2px; transform: rotate(-25deg); transform-origin: bottom center; animation: or-quill 3s ease-in-out infinite; }
.scn-objections-raised .paper-stack { position:absolute; bottom:10%; left:30%; width:25%; height:18%; background: linear-gradient(180deg, #d4c4a8 0%, #b8a88a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3), 0 6px 8px rgba(0,0,0,.2); animation: or-paper 10s ease-in-out infinite alternate; }
.scn-objections-raised .ink-splash-1 { position:absolute; bottom:22%; left:26%; width:6%; height:4%; background: radial-gradient(circle, #1a1412 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: or-splash 7s ease-in-out infinite; }
.scn-objections-raised .ink-splash-2 { position:absolute; bottom:18%; left:36%; width:5%; height:3%; background: radial-gradient(circle, #1a1412 0%, transparent 70%); border-radius: 50%; filter: blur(1px); animation: or-splash 9s ease-in-out infinite reverse; }
.scn-objections-raised .lamp-light { position:absolute; top:5%; right:10%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 10%, rgba(200,180,120,.15) 0%, transparent 70%); filter: blur(8px); animation: or-lamp 4s ease-in-out infinite alternate; }
@keyframes or-ink { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes or-quill { 0% { transform: rotate(-25deg) } 25% { transform: rotate(-20deg) } 75% { transform: rotate(-30deg) } 100% { transform: rotate(-25deg) } }
@keyframes or-paper { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes or-splash { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.3) } 100% { opacity:.4; transform: scale(1) } }
@keyframes or-lamp { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

.scn-seventy-fourth-chapter { background: linear-gradient(180deg, #241e16 0%, #18120e 40%, #0c0a08 100%), radial-gradient(ellipse at 60% 70%, #2a1f14 0%, transparent 60%); }
.scn-seventy-fourth-chapter .room-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #100c08 100%); }
.scn-seventy-fourth-chapter .window { position:absolute; top:8%; left:10%; width:30%; height:40%; border: 4px solid #3a2e22; border-radius: 6px; background: linear-gradient(135deg, rgba(80,60,40,.08) 0%, rgba(40,30,20,.02) 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: sc-window 15s ease-in-out infinite; }
.scn-seventy-fourth-chapter .woman-silhouette { position:absolute; bottom:15%; left:55%; width:25%; height:55%; background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-woman 6s ease-in-out infinite; }
.scn-seventy-fourth-chapter .book { position:absolute; bottom:18%; left:58%; width:15%; height:12%; background: linear-gradient(180deg, #7a6a58 0%, #4a3e30 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: sc-book 8s ease-in-out infinite; }
.scn-seventy-fourth-chapter .ribbon-slip { position:absolute; bottom:22%; left:65%; width:3%; height:20%; background: linear-gradient(180deg, #a08068 0%, #705a4a 100%); border-radius: 2px; transform: rotate(10deg); animation: sc-ribbon 4s ease-in-out infinite; }
.scn-seventy-fourth-chapter .clock-face { position:absolute; top:15%; right:15%; width:12%; height:12%; border: 3px solid #5a4a38; border-radius: 50%; background: linear-gradient(180deg, #3a2e22 0%, #1a1410 100%); box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-seventy-fourth-chapter .clock-hand { position:absolute; top:19%; right:19%; width:2%; height:8%; background: #8a7a6a; border-radius: 1px; transform-origin: bottom center; transform: rotate(45deg); animation: sc-clock 60s linear infinite; }
.scn-seventy-fourth-chapter .shadow-mood { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); pointer-events: none; animation: sc-shadow 10s ease-in-out infinite alternate; }
@keyframes sc-window { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes sc-woman { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(1deg) translateY(-1px) } 75% { transform: rotate(-1deg) translateY(1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes sc-book { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-5deg) } }
@keyframes sc-ribbon { 0% { transform: rotate(10deg) translate(0,0) } 50% { transform: rotate(5deg) translate(2px,-4px) } 100% { transform: rotate(10deg) translate(0,0) } }
@keyframes sc-clock { 0% { transform: rotate(45deg) } 100% { transform: rotate(405deg) } }
@keyframes sc-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

.scn-secret-revealed {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0e05 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-secret-revealed .bg-wall { position:absolute; inset:0 30% 0 0; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%); }
.scn-secret-revealed .bg-shadow { position:absolute; inset:0; background: radial-gradient(circle at 70% 60%, #1a0e05 20%, transparent 60%); animation: sr-shadow 12s ease-in-out infinite alternate; }
.scn-secret-revealed .parson-figure { position:absolute; bottom:10%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sr-parson 8s ease-in-out infinite; }
.scn-secret-revealed .midwife-figure { position:absolute; bottom:10%; right:20%; width:38px; height:78px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sr-midwife 8s ease-in-out infinite; }
.scn-secret-revealed .document { position:absolute; bottom:40%; left:45%; width:30px; height:40px; background: #c8a878; border-radius: 4px; box-shadow: 2px 2px 6px rgba(0,0,0,.6); transform: rotate(-15deg); animation: sr-doc 10s ease-in-out infinite alternate; }
.scn-secret-revealed .candle-glow { position:absolute; bottom:50%; left:42%; width:10px; height:10px; background: radial-gradient(circle, #ffd680 0%, #ffa040 50%, transparent 100%); box-shadow: 0 0 30px 15px #ffa040; animation: sr-candle 2s ease-in-out infinite alternate; }
.scn-secret-revealed .book-shelf { position:absolute; bottom:10%; left:5%; width:15%; height:60%; background: linear-gradient(90deg, #5a3a1a 0%, #4a2a0a 100%); border-radius: 4px; box-shadow: inset 0 0 10px #2a1a0a; }
@keyframes sr-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes sr-parson { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(1deg) } }
@keyframes sr-midwife { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-4px) rotate(-2deg) } 60% { transform: translateX(2px) rotate(1deg) } 90% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes sr-doc { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-5px) scale(1.02) } 100% { transform: rotate(-18deg) translateY(2px) } }
@keyframes sr-candle { 0% { opacity:.7; box-shadow: 0 0 25px 10px #ffa040 } 50% { opacity:1; box-shadow: 0 0 35px 18px #ffc060 } 100% { opacity:.8; box-shadow: 0 0 28px 12px #ffa040 } }

.scn-parsons-fate {
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a4e 0%, transparent 70%);
}
.scn-parsons-fate .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); }
.scn-parsons-fate .chair-silhouette { position:absolute; bottom:10%; left:40%; width:60px; height:90px; background: #1a1a2e; border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 0 20px #12122a; animation: pf-chair 20s ease-in-out infinite alternate; }
.scn-parsons-fate .cross { position:absolute; top:15%; left:50%; width:4px; height:70px; background: #2a2a3e; transform: translateX(-50%) rotate(0); box-shadow: 0 0 8px #2a2a4e; animation: pf-cross 25s ease-in-out infinite; }
.scn-parsons-fate .candle { position:absolute; bottom:25%; left:35%; width:6px; height:30px; background: linear-gradient(180deg, #ffd680 10%, #c0a060 100%); border-radius: 2px; box-shadow: 0 0 20px 8px #ffa040; animation: pf-candle 3s ease-in-out infinite alternate; }
.scn-parsons-fate .shadow-shape { position:absolute; bottom:10%; left:0; width:100%; height:30%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); animation: pf-shadow 15s ease-in-out infinite alternate; }
.scn-parsons-fate .dust-mote-a { position:absolute; top:20%; left:10%; width:4px; height:4px; background: rgba(200,200,220,.3); border-radius:50%; filter: blur(1px); animation: pf-dust 30s linear infinite; }
.scn-parsons-fate .dust-mote-b { position:absolute; top:30%; right:20%; width:6px; height:6px; background: rgba(200,200,220,.2); border-radius:50%; filter: blur(2px); animation: pf-dust 45s linear infinite reverse; }
@keyframes pf-chair { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } 100% { transform: translateY(2px) scale(.99) } }
@keyframes pf-cross { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) scaleY(1.02) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes pf-candle { 0% { height:30px; opacity:.8 } 50% { height:35px; opacity:1; box-shadow: 0 0 25px 12px #ffa040 } 100% { height:28px; opacity:.9 } }
@keyframes pf-shadow { 0% { opacity:.7 } 50% { opacity:.5 } 100% { opacity:.8 } }
@keyframes pf-dust { 0% { transform: translate(0,0) opacity(0) } 10% { opacity:.3 } 90% { opacity:.3 } 100% { transform: translate(200px, -150px) opacity(0) } }

.scn-yorick-introduced {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 0, #5a4a3a 0%, transparent 60%);
}
.scn-yorick-introduced .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); }
.scn-yorick-introduced .desk { position:absolute; bottom:5%; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -6px 20px #1a0e05; }
.scn-yorick-introduced .book-open { position:absolute; bottom:25%; left:25%; width:50%; height:30%; background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: yi-book 8s ease-in-out infinite alternate; }
.scn-yorick-introduced .candle { position:absolute; bottom:45%; left:35%; width:10px; height:40px; background: linear-gradient(180deg, #ffd680 10%, #c0a060 100%); border-radius: 2px; box-shadow: 0 0 30px 15px #ffa040; animation: yi-candle 3s ease-in-out infinite alternate; }
.scn-yorick-introduced .quill { position:absolute; bottom:30%; left:60%; width:6px; height:45px; background: linear-gradient(180deg, #a08060 0%, #604020 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; transform: rotate(-20deg); animation: yi-quill 6s ease-in-out infinite; }
.scn-yorick-introduced .yorick-silhouette { position:absolute; bottom:10%; left:15%; width:45px; height:90px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yi-yorick 10s ease-in-out infinite; }
.scn-yorick-introduced .inkwell { position:absolute; bottom:20%; left:55%; width:20px; height:18px; background: #1a0e05; border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.6); }
@keyframes yi-book { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(.98) } }
@keyframes yi-candle { 0% { height:40px; opacity:.8 } 50% { height:45px; opacity:1; box-shadow: 0 0 35px 18px #ffc060 } 100% { height:38px; opacity:.9 } }
@keyframes yi-quill { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) translateY(-2px) } 100% { transform: rotate(-22deg) } }
@keyframes yi-yorick { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(1deg) } }

.scn-yorick-ancestry {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 70%, #1a0e05 100%),
              radial-gradient(ellipse at 30% 40%, #5a4a3a 0%, transparent 60%);
}
.scn-yorick-ancestry .bg-arch { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%); }
.scn-yorick-ancestry .book-old { position:absolute; bottom:20%; left:20%; width:60%; height:40%; background: linear-gradient(135deg, #a08060 0%, #805040 100%); border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: ya-book 12s ease-in-out infinite alternate; }
.scn-yorick-ancestry .candle { position:absolute; bottom:45%; left:25%; width:8px; height:35px; background: linear-gradient(180deg, #ffd680 10%, #c0a060 100%); border-radius: 2px; box-shadow: 0 0 25px 12px #ffa040; animation: ya-candle 3s ease-in-out infinite alternate; }
.scn-yorick-ancestry .hand-reaching { position:absolute; bottom:25%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ya-hand 8s ease-in-out infinite; }
.scn-yorick-ancestry .records-scroll { position:absolute; bottom:30%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ya-scroll 15s ease-in-out infinite; }
.scn-yorick-ancestry .ancestry-line { position:absolute; top:10%; left:50%; width:2px; height:70%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 70%, transparent 100%); transform: translateX(-50%); animation: ya-line 20s linear infinite; }
@keyframes ya-book { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(0) scale(1.01) } 100% { transform: translateY(2px) rotate(1deg) } }
@keyframes ya-candle { 0% { opacity:.8; height:35px } 50% { opacity:1; height:40px; box-shadow: 0 0 30px 15px #ffc060 } 100% { opacity:.85; height:33px } }
@keyframes ya-hand { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(5px) rotate(5deg) } 60% { transform: translateX(-2px) rotate(-3deg) } 100% { transform: translateX(3px) rotate(2deg) } }
@keyframes ya-scroll { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.1) translateY(-5px) } 100% { transform: scaleY(.95) translateY(2px) } }
@keyframes ya-line { 0% { opacity:.3 } 25% { opacity:.8 } 50% { opacity:.5 } 75% { opacity:.9 } 100% { opacity:.2 } }

.scn-poor-maria {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #c8a96e 100%), radial-gradient(ellipse at 50% 100%, #c8a96e 0%, transparent 60%);
  overflow: hidden;
}
.scn-poor-maria .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87CEEB 0%, #ffdab9 100%); animation: pm-sky 12s ease-in-out infinite alternate; }
.scn-poor-maria .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #b8860b 0%, #8b5e3c 40%, #5c3a21 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.5); animation: pm-ground 20s ease-in-out infinite alternate; }
.scn-poor-maria .figure-maria { position:absolute; bottom:30%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #2c1a0e 0%, #1a0f07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pm-maria 4s ease-in-out infinite; }
.scn-poor-maria .goat { position:absolute; bottom:28%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #d3cba7 0%, #a09773 100%); border-radius: 40% 60% 30% 50% / 50% 40% 60% 50%; animation: pm-goat 3s ease-in-out infinite; }
.scn-poor-maria .pipe { position:absolute; bottom:40%; left:38%; width:4px; height:20px; background: #4a3a2a; border-radius: 10% 10% 40% 40%; transform: rotate(15deg); animation: pm-pipe 5s ease-in-out infinite alternate; }
.scn-poor-maria .smoke { position:absolute; bottom:48%; left:38%; width:10px; height:10px; background: rgba(200,200,200,0.4); border-radius: 50%; filter: blur(4px); }
.scn-poor-maria .cloud-a { animation: pm-smoke1 4s ease-out infinite; }
.scn-poor-maria .cloud-b { animation: pm-smoke2 3s ease-out infinite 1.5s; }

@keyframes pm-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pm-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes pm-maria { 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(0); } }
@keyframes pm-goat { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(0.95); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes pm-pipe { 0% { opacity:0.6; transform: rotate(10deg); } 50% { opacity:1; transform: rotate(20deg); } 100% { opacity:0.6; transform: rotate(10deg); } }
@keyframes pm-smoke1 { 0% { transform: translate(0,0) scale(1); opacity:0.5; } 100% { transform: translate(-20px,-40px) scale(3); opacity:0; } }
@keyframes pm-smoke2 { 0% { transform: translate(0,0) scale(1); opacity:0.5; } 100% { transform: translate(15px,-50px) scale(2.5); opacity:0; } }

.scn-maria-encounter {
  background: linear-gradient(180deg, #aed9e0 0%, #f4d03f 40%, #b8860b 100%), radial-gradient(ellipse at 50% 100%, #b8860b 0%, transparent 70%);
  overflow: hidden;
}
.scn-maria-encounter .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 80%); animation: me-bg 15s ease-in-out infinite alternate; }
.scn-maria-encounter .figure-narrator { position:absolute; bottom:20%; left:20%; width:35px; height:65px; background: linear-gradient(180deg, #1a0f07 0%, #0d0703 100%); border-radius: 45% 55% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: me-narrator 5s ease-in-out infinite; }
.scn-maria-encounter .figure-maria-kneel { position:absolute; bottom:15%; left:35%; width:32px; height:55px; background: linear-gradient(180deg, #2c1a0e 0%, #1a0f07 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: me-maria 4s ease-in-out infinite 0.5s; }
.scn-maria-encounter .goat-side { position:absolute; bottom:18%; left:50%; width:22px; height:32px; background: linear-gradient(180deg, #d3cba7 0%, #a09773 100%); border-radius: 40% 60% 30% 50% / 50% 40% 60% 50%; animation: me-goat 3s ease-in-out infinite 1s; }
.scn-maria-encounter .rock { position:absolute; bottom:10%; left:40%; width:50px; height:20px; background: radial-gradient(ellipse, #7a6b5a 0%, #4d3f2f 100%); border-radius: 40% 60% 40% 60% / 50% 50% 50% 50%; animation: me-rock 30s linear infinite alternate; }
.scn-maria-encounter .shadow { position:absolute; bottom:0; left:15%; width:70%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%); animation: me-shadow 6s ease-in-out infinite alternate; }

@keyframes me-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes me-narrator { 0% { transform: translateX(0) rotate(-1deg) scaleY(1); } 25% { transform: translateX(5px) rotate(2deg) scaleY(0.98); } 50% { transform: translateX(10px) rotate(0deg) scaleY(1); } 75% { transform: translateX(5px) rotate(-2deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(-1deg) scaleY(1); } }
@keyframes me-maria { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes me-goat { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(8px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }
@keyframes me-rock { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.05); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes me-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-moulins-inn {
  background: linear-gradient(180deg, #4a2e1e 0%, #8b5e3c 30%, #d4a76a 60%, #f5deb3 100%), radial-gradient(ellipse at 50% 0%, #ffa07a 0%, transparent 80%);
  overflow: hidden;
}
.scn-moulins-inn .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a2e1e 0%, #6b3a2a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,0.5); animation: mi-wall 10s ease-in-out infinite alternate; }
.scn-moulins-inn .hearth { position:absolute; bottom:25%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #8b4513 0%, #4a2e1e 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,0.6); animation: mi-hearth 8s ease-in-out infinite; }
.scn-moulins-inn .fire { position:absolute; bottom:35%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ff4500 0%, #ff8c00 30%, #ffd700 60%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: mi-fire 0.8s ease-in-out infinite alternate; }
.scn-moulins-inn .table { position:absolute; bottom:10%; left:60%; width:60px; height:10px; background: linear-gradient(180deg, #8b5e3c 0%, #5c3a21 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: mi-table 12s ease-in-out infinite alternate; }
.scn-moulins-inn .bottle { position:absolute; bottom:15%; left:68%; width:8px; height:25px; background: linear-gradient(180deg, #2e8b57 0%, #1a5a32 100%); border-radius: 30% 30% 10% 10%; transform: rotate(5deg); animation: mi-bottle 6s ease-in-out infinite; }
.scn-moulins-inn .chair { position:absolute; bottom:5%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #5c3a21 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; animation: mi-chair 7s ease-in-out infinite 1s; }
.scn-moulins-inn .figure-inn { position:absolute; bottom:10%; left:45%; width:28px; height:50px; background: linear-gradient(180deg, #2c1a0e 0%, #1a0f07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mi-figure 6s ease-in-out infinite; }

@keyframes mi-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes mi-hearth { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes mi-fire { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 25% { transform: translateX(-50%) scaleY(1.1) rotate(2deg); } 50% { transform: translateX(-50%) scaleY(0.95) rotate(-1deg); } 75% { transform: translateX(-50%) scaleY(1.05) rotate(3deg); } 100% { transform: translateX(-50%) scaleY(1) rotate(0deg); } }
@keyframes mi-table { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mi-bottle { 0% { transform: rotate(3deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(3deg); } }
@keyframes mi-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mi-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }

.scn-wadman-receives {
  background: linear-gradient(180deg, #8b7d6b 0%, #6b5a4a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 0%, #f5deb3 0%, transparent 70%);
  overflow: hidden;
}
.scn-wadman-receives .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, transparent 80%); animation: wr-room 20s ease-in-out infinite alternate; }
.scn-wadman-receives .curtain { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(180deg, #b8860b 0%, #8b4513 50%, #4a2e1e 100%); border-radius: 0 0 0 50%; box-shadow: -10px 0 20px rgba(0,0,0,0.5); animation: wr-curtain 10s ease-in-out infinite alternate; }
.scn-wadman-receives .bible-table { position:absolute; bottom:15%; left:45%; width:50px; height:15px; background: linear-gradient(180deg, #5c3a21 0%, #3a2a1a 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: wr-table 12s ease-in-out infinite; }
.scn-wadman-receives .sofa { position:absolute; bottom:10%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #8b4513 0%, #4a2e1e 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 6px 10px rgba(0,0,0,0.5); animation: wr-sofa 15s ease-in-out infinite alternate; }
.scn-wadman-receives .figure-wadman { position:absolute; bottom:20%; left:35%; width:30px; height:55px; background: linear-gradient(180deg, #5c3a21 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-wadman 3s ease-in-out infinite; }
.scn-wadman-receives .figure-toby { position:absolute; bottom:18%; left:55%; width:30px; height:55px; background: linear-gradient(180deg, #2c1a0e 0%, #1a0f07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-toby 4s ease-in-out infinite 0.5s; }
.scn-wadman-receives .door { position:absolute; top:10%; left:5%; width:20px; height:60px; background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 3px 0 6px rgba(0,0,0,0.4); animation: wr-door 8s ease-in-out infinite alternate; }

@keyframes wr-room { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes wr-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes wr-table { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wr-sofa { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.97); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes wr-wadman { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(3deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes wr-toby { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-4px) rotate(-1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes wr-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }

/* -- necromancy-of-names (funny, dim interior) -- */
.scn-necromancy-of-names {
  background: linear-gradient(180deg, #2d2a1e 0%, #4a3f2e 40%, #6a5a3a 100%),
              radial-gradient(ellipse at 50% 100%, #5a4a2a 0%, transparent 70%);
}
.scn-necromancy-of-names .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #1f1b12 0%, transparent 60%);
}
.scn-necromancy-of-names .desk {
  position:absolute; bottom:10%; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, #6a5030 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.5);
  animation: non-bob 8s ease-in-out infinite;
}
.scn-necromancy-of-names .book-stack {
  position:absolute; bottom:16%; left:20%; width:40px; height:30px;
  background: linear-gradient(180deg, #8a6a40 0%, #5a3a1a 100%);
  border-radius: 4px; box-shadow: 2px 2px 8px rgba(0,0,0,0.4);
  animation: non-stack 6s ease-in-out infinite alternate;
}
.scn-necromancy-of-names .hat {
  position:absolute; bottom:22%; left:30%; width:50px; height:30px;
  background: radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 80% 80% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: non-hat 3s ease-in-out infinite;
}
.scn-necromancy-of-names .figure {
  position:absolute; bottom:20%; left:45%; width:24px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: non-gesture 4s ease-in-out infinite;
}
.scn-necromancy-of-names .lantern {
  position:absolute; bottom:28%; left:60%; width:12px; height:18px;
  background: radial-gradient(circle, #f0c870 0%, #c08040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(192,128,64,0.6), 0 0 40px 12px rgba(192,128,64,0.3);
  animation: non-flicker 3s ease-in-out infinite alternate;
}
.scn-necromancy-of-names .shadow {
  position:absolute; bottom:10%; left:35%; width:100px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: non-shake 5s ease-in-out infinite;
}
@keyframes non-bob { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes non-stack { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-1deg) } }
@keyframes non-hat { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes non-gesture { 0% { transform: rotate(0) translateY(0) } 30% { transform: rotate(4deg) translateY(-3px) } 60% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes non-flicker { 0% { opacity:0.8; box-shadow:0 0 15px 4px #c08040 } 100% { opacity:1; box-shadow:0 0 30px 8px #e0a050 } }
@keyframes non-shake { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.9) translateX(2px) } }

/* -- fathers-eloquence (warm, dim interior) -- */
.scn-fathers-eloquence {
  background: linear-gradient(180deg, #2a1e12 0%, #4a3a24 40%, #6a5038 100%),
              radial-gradient(ellipse at 50% 100%, #5a4a32 0%, transparent 70%);
}
.scn-fathers-eloquence .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #1f170e 0%, transparent 60%);
}
.scn-fathers-eloquence .podium {
  position:absolute; bottom:10%; left:30%; right:30%; height:30%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.6);
  animation: fel-pulse 8s ease-in-out infinite;
}
.scn-fathers-eloquence .father {
  position:absolute; bottom:18%; left:40%; width:28px; height:70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: fel-orate 5s ease-in-out infinite;
}
.scn-fathers-eloquence .glow {
  position:absolute; bottom:25%; left:55%; width:40px; height:40px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: fel-glow 4s ease-in-out infinite alternate;
}
.scn-fathers-eloquence .books {
  position:absolute; bottom:20%; left:15%; width:30px; height:20px;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a20 100%);
  border-radius: 4px; box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: fel-tilt 7s ease-in-out infinite;
}
.scn-fathers-eloquence .hand {
  position:absolute; bottom:38%; left:48%; width:8px; height:16px;
  background: #5a4a3a; border-radius: 50%;
  animation: fel-hand 3s ease-in-out infinite;
}
.scn-fathers-eloquence .scroll {
  position:absolute; bottom:22%; left:25%; width:40px; height:12px;
  background: linear-gradient(180deg, #c8b080 0%, #a08860 100%);
  border-radius: 50% 50% 10% 10%;
  animation: fel-scroll 10s linear infinite;
}
@keyframes fel-pulse { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fel-orate { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(3deg) translateY(-2px) } 50% { transform: rotate(-1deg) translateY(0) } 75% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes fel-glow { 0% { opacity:0.7; transform: scale(0.95) } 100% { opacity:1; transform: scale(1.05) } }
@keyframes fel-tilt { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes fel-hand { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(10deg) translateY(-4px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes fel-scroll { 0% { transform: translateX(0) } 100% { transform: translateX(20px) } }

/* -- tristram-abhorrence (funny, dim interior) -- */
.scn-tristram-abhorrence {
  background: linear-gradient(180deg, #2a241e 0%, #4a3e32 40%, #6a5a4a 100%),
              radial-gradient(ellipse at 50% 100%, #5a4e3e 0%, transparent 70%);
}
.scn-tristram-abhorrence .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #1f1a14 0%, transparent 60%);
}
.scn-tristram-abhorrence .cradle {
  position:absolute; bottom:10%; left:25%; right:25%; height:35%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4a30 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 -4px 20px rgba(0,0,0,0.5);
  animation: tab-rock 6s ease-in-out infinite;
}
.scn-tristram-abhorrence .baby {
  position:absolute; bottom:18%; left:35%; width:30px; height:40px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tab-baby 4s ease-in-out infinite;
}
.scn-tristram-abhorrence .father {
  position:absolute; bottom:22%; left:48%; width:22px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tab-point 5s ease-in-out infinite;
}
.scn-tristram-abhorrence .name-scroll {
  position:absolute; bottom:28%; left:38%; width:50px; height:14px;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 10% 10% 30% 30%;
  animation: tab-unroll 8s linear infinite;
}
.scn-tristram-abhorrence .mark {
  position:absolute; bottom:30%; left:42%; width:16px; height:16px;
  background: radial-gradient(circle, #e0c080 0%, #c0a060 60%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(192,160,96,0.5);
  animation: tab-bounce 3s ease-in-out infinite;
}
@keyframes tab-rock { 0%,100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes tab-baby { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) } }
@keyframes tab-point { 0% { transform: rotate(0) } 25% { transform: rotate(5deg) translateY(-1px) } 50% { transform: rotate(0) } 75% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(0) } }
@keyframes tab-unroll { 0% { width:50px; height:14px } 50% { width:60px; height:10px } 100% { width:50px; height:14px } }
@keyframes tab-bounce { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-6px) scale(1.2) } 100% { transform: translateY(0) scale(1) } }

/* -- dissertation-on-tristram (dark, dim interior) -- */
.scn-dissertation-on-tristram {
  background: linear-gradient(180deg, #12101a 0%, #2a2430 40%, #3a3250 100%),
              radial-gradient(ellipse at 50% 100%, #2a2430 0%, transparent 70%);
}
.scn-dissertation-on-tristram .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #0a0a12 0%, transparent 60%);
}
.scn-dissertation-on-tristram .desk {
  position:absolute; bottom:8%; left:15%; right:15%; height:25%;
  background: linear-gradient(180deg, #3a3020 0%, #1a1408 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.6);
}
.scn-dissertation-on-tristram .figure-writing {
  position:absolute; bottom:15%; left:40%; width:26px; height:70px;
  background: linear-gradient(180deg, #2a2438 0%, #12102a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: dot-write 6s ease-in-out infinite;
}
.scn-dissertation-on-tristram .candle {
  position:absolute; bottom:22%; left:55%; width:10px; height:24px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0b080 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 18px 6px rgba(200,150,80,0.5), 0 0 30px 12px rgba(200,150,80,0.2);
  animation: dot-flicker 3s ease-in-out infinite alternate;
}
.scn-dissertation-on-tristram .paper-stack {
  position:absolute; bottom:18%; left:25%; width:40px; height:16px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform-origin: left center;
  animation: dot-stack 12s ease-in-out infinite;
}
.scn-dissertation-on-tristram .inkwell {
  position:absolute; bottom:20%; left:35%; width:14px; height:18px;
  background: #1a1420; border-radius: 50% 50% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-dissertation-on-tristram .deep-shadow {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: dot-fade 8s ease-in-out infinite;
}
@keyframes dot-write { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(0) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes dot-flicker { 0% { opacity:0.8; box-shadow:0 0 12px 4px rgba(200,150,80,0.4) } 50% { opacity:0.9; box-shadow:0 0 24px 8px rgba(200,150,80,0.6) } 100% { opacity:0.7; box-shadow:0 0 15px 5px rgba(200,150,80,0.3) } }
@keyframes dot-stack { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0) } }
@keyframes dot-fade { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }

.scn-post-office-demand {
  background: linear-gradient(180deg, #fef9e0 0%, #fce8c4 40%, #d4a76a 100%), radial-gradient(ellipse at 30% 70%, #f3c68a 0%, transparent 70%);
}
.scn-post-office-demand .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #fef3d6 0%, #e6c99a 100%); animation: pod-bg 10s ease-in-out infinite alternate;
}
.scn-post-office-demand .counter {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #b78c5c 0%, #8b673c 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.2); animation: pod-counter 8s ease-in-out infinite;
}
.scn-post-office-demand .window-sun {
  position: absolute; top: 8%; left: 5%; width: 30%; height: 35%; background: radial-gradient(circle at 50% 50%, #fff9e6 0%, #ffdd99 60%, transparent 80%); border-radius: 8px; box-shadow: inset 0 0 30px #ffeebb; animation: pod-window 14s ease-in-out infinite alternate;
}
.scn-post-office-demand .clerk {
  position: absolute; bottom: 22%; left: 15%; width: 40px; height: 70px; background: linear-gradient(180deg, #7a5e3a 0%, #4f3b22 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: pod-clerk 3s ease-in-out infinite;
}
.scn-post-office-demand .customer {
  position: absolute; bottom: 22%; right: 20%; width: 36px; height: 68px; background: linear-gradient(180deg, #5a7040 0%, #3a4d2a 100%); border-radius: 35% 35% 25% 25% / 45% 45% 35% 35%; animation: pod-customer 4s ease-in-out infinite;
}
.scn-post-office-demand .letter {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 14px; background: linear-gradient(135deg, #fcf4e2 0%, #e8dbb6 100%); border-radius: 1px; transform: rotate(10deg); box-shadow: 1px 1px 3px rgba(0,0,0,0.15); animation: pod-letter 5s ease-in-out infinite alternate;
}
.scn-post-office-demand .mail-sack {
  position: absolute; bottom: 10%; right: 10%; width: 44px; height: 32px; background: linear-gradient(180deg, #8b6f4a 0%, #5c482b 100%); border-radius: 40% 40% 30% 30%; transform: skewX(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: pod-sack 12s ease-in-out infinite alternate;
}
.scn-post-office-demand .coin {
  position: absolute; bottom: 32%; left: 42%; width: 12px; height: 12px; background: radial-gradient(circle at 30% 30%, #ffd966 0%, #cc9a3a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: pod-coin 2s ease-in-out infinite;
}
@keyframes pod-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pod-counter { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pod-window { 0% { filter: brightness(1); } 50% { filter: brightness(1.2); } 100% { filter: brightness(0.95); } }
@keyframes pod-clerk { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pod-customer { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pod-letter { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-4px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes pod-sack { 0% { transform: skewX(-5deg) scale(1); } 50% { transform: skewX(-8deg) scale(1.02); } 100% { transform: skewX(-4deg) scale(0.98); } }
@keyframes pod-coin { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(180deg); } 100% { transform: scale(1) rotate(360deg); } }

.scn-post-royal-dispute {
  background: linear-gradient(180deg, #fcf6e8 0%, #f5dbaa 40%, #c9a56a 100%), radial-gradient(ellipse at 80% 40%, #fbe5b5 0%, transparent 60%);
}
.scn-post-royal-dispute .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #d4c098 0%, #b39b78 100%); border-radius: 40% 30% 0 0 / 20% 15% 0 0; animation: prd-road 20s ease-in-out infinite alternate;
}
.scn-post-royal-dispute .royal-coach {
  position: absolute; bottom: 30%; left: 10%; width: 90px; height: 50px; background: linear-gradient(180deg, #8b653d 0%, #5a4128 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: prd-coach 5s ease-in-out infinite;
}
.scn-post-royal-dispute .official {
  position: absolute; bottom: 35%; left: 30%; width: 30px; height: 60px; background: linear-gradient(180deg, #c04040 0%, #802020 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: prd-official 3s ease-in-out infinite;
}
.scn-post-royal-dispute .traveler {
  position: absolute; bottom: 35%; right: 20%; width: 28px; height: 58px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 35% 35% 25% 25% / 45% 45% 35% 35%; animation: prd-traveler 4s ease-in-out infinite;
}
.scn-post-royal-dispute .post-horn {
  position: absolute; bottom: 42%; left: 40%; width: 10px; height: 24px; background: linear-gradient(180deg, #dbb86e 0%, #a77e42 100%); border-radius: 20% 20% 40% 40% / 40% 40% 60% 60%; transform: rotate(-30deg); animation: prd-horn 2s ease-in-out infinite alternate;
}
.scn-post-royal-dispute .sunburst {
  position: absolute; top: 5%; left: 50%; width: 120px; height: 120px; transform: translateX(-50%); background: radial-gradient(circle, #fff9e0 0%, #ffdd66 30%, transparent 60%); animation: prd-sun 8s ease-in-out infinite alternate;
}
.scn-post-royal-dispute .tree {
  position: absolute; bottom: 25%; right: 5%; width: 30px; height: 70px; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: prd-tree 12s ease-in-out infinite alternate;
}
@keyframes prd-road { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes prd-coach { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes prd-official { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes prd-traveler { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-6px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes prd-horn { 0% { transform: rotate(-30deg) scale(1); } 50% { transform: rotate(-20deg) scale(1.1); } 100% { transform: rotate(-35deg) scale(0.9); } }
@keyframes prd-sun { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.2); } 100% { filter: brightness(1); } }
@keyframes prd-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }

.scn-england-apostrophe {
  background: linear-gradient(180deg, #ffeaa7 0%, #f7dc6f 30%, #d4ac0d 100%), radial-gradient(ellipse at 50% 30%, #fff3b0 0%, transparent 70%);
}
.scn-england-apostrophe .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #fdebd0 0%, #f5d6a8 100%); animation: eng-sky 10s ease-in-out infinite alternate;
}
.scn-england-apostrophe .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #bca56a 0%, #8b7340 100%); border-radius: 30% 40% 0 0 / 50% 60% 0 0; animation: eng-ground 15s ease-in-out infinite alternate;
}
.scn-england-apostrophe .figure-kneeling {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: eng-kneel 4s ease-in-out infinite;
}
.scn-england-apostrophe .liberty-cap {
  position: absolute; bottom: 65%; left: 50%; width: 20px; height: 16px; transform: translateX(-50%); background: linear-gradient(180deg, #b03a2e 0%, #7a2215 100%); border-radius: 50% 50% 0 0; animation: eng-cap 3s ease-in-out infinite alternate;
}
.scn-england-apostrophe .sun-rays {
  position: absolute; top: 5%; left: 20%; width: 200px; height: 200px; background: radial-gradient(circle, #fff5cc 0%, transparent 60%); animation: eng-rays 6s ease-in-out infinite alternate;
}
.scn-england-apostrophe .cloud {
  position: absolute; top: 12%; left: 15%; width: 80px; height: 18px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50%; filter: blur(6px); animation: eng-cloud 30s linear infinite;
}
@keyframes eng-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes eng-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes eng-kneel { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes eng-cap { 0% { transform: translateX(-50%) rotate(-5deg) scale(1); } 50% { transform: translateX(-50%) rotate(5deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(-3deg) scale(0.95); } }
@keyframes eng-rays { 0% { filter: brightness(1) rotate(0deg); } 50% { filter: brightness(1.3) rotate(5deg); } 100% { filter: brightness(1) rotate(-3deg); } }
@keyframes eng-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(150vw); } }

.scn-six-livres-paid {
  background: linear-gradient(180deg, #f9eac3 0%, #edd4a0 40%, #b89962 100%), radial-gradient(ellipse at 50% 60%, #e5c896 0%, transparent 70%);
}
.scn-six-livres-paid .table {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 30%; background: linear-gradient(180deg, #a07d52 0%, #6e5232 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -6px 18px rgba(0,0,0,0.25); animation: slp-table 10s ease-in-out infinite alternate;
}
.scn-six-livres-paid .hand {
  position: absolute; bottom: 35%; left: 45%; width: 24px; height: 30px; background: linear-gradient(180deg, #c7a57b 0%, #9f7d55 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(-15deg); transform-origin: bottom right; animation: slp-hand 3s ease-in-out infinite;
}
.scn-six-livres-paid .coin-pile {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 20px; display: flex; flex-wrap: wrap; gap: 2px; background: radial-gradient(circle at 30% 30%, #ffd966 0%, #cca53a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: slp-pile 4s ease-in-out infinite alternate;
}
.scn-six-livres-paid .coin-single {
  position: absolute; bottom: 32%; left: 50%; width: 14px; height: 14px; background: radial-gradient(circle at 30% 30%, #ffd966 0%, #b3802a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: slp-coin 2s ease-in-out infinite;
}
.scn-six-livres-paid .prison-bars {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: repeating-linear-gradient(0deg, #3a3a3a 0px, #3a3a3a 6px, transparent 6px, transparent 18px); background-size: 100% 36px; mask-image: linear-gradient(180deg, #000 0%, #000 40%, transparent 70%); -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 40%, transparent 70%); animation: slp-bars 8s ease-in-out infinite alternate;
}
.scn-six-livres-paid .document {
  position: absolute; bottom: 25%; right: 15%; width: 30px; height: 24px; background: linear-gradient(135deg, #fcf4e2 0%, #e8dbb6 100%); border-radius: 2px; transform: rotate(5deg); box-shadow: 1px 1px 4px rgba(0,0,0,0.15); animation: slp-doc 6s ease-in-out infinite alternate;
}
.scn-six-livres-paid .seal {
  position: absolute; bottom: 27%; right: 18%; width: 10px; height: 10px; background: radial-gradient(circle, #b03a2e 0%, #7a2215 100%); border-radius: 50%; box-shadow: 0 0 4px rgba(176,58,46,0.5); animation: slp-seal 3s ease-in-out infinite alternate;
}
@keyframes slp-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes slp-hand { 0% { transform: rotate(-15deg) scale(1); } 25% { transform: rotate(-10deg) scale(1.05); } 50% { transform: rotate(-15deg) scale(1); } 75% { transform: rotate(-20deg) scale(0.95); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes slp-pile { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1) translateY(-2px); } 100% { transform: scaleY(0.95) translateY(1px); } }
@keyframes slp-coin { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.15); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes slp-bars { 0% { filter: brightness(1); } 50% { filter: brightness(1.2); } 100% { filter: brightness(0.8); } }
@keyframes slp-doc { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(-3px); } 100% { transform: rotate(3deg) translateX(0); } }
@keyframes slp-seal { 0% { transform: scale(1); box-shadow: 0 0 2px rgba(176,58,46,0.5); } 50% { transform: scale(1.2); box-shadow: 0 0 6px rgba(176,58,46,0.8); } 100% { transform: scale(0.9); box-shadow: 0 0 2px rgba(176,58,46,0.5); } }

.scn-pipe-snapping { background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 50%, #1a1210 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%); }
.scn-pipe-snapping .room { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); }
.scn-pipe-snapping .fire { position: absolute; bottom: 20%; left: 60%; width: 60px; height: 90px; background: radial-gradient(ellipse at 50% 100%, #e86020 0%, #c04010 40%, #802010 70%, transparent); border-radius: 50% 50% 30% 30%; box-shadow: 0 -20px 40px #c04010; animation: ps-fire 1.5s ease-in-out infinite alternate; }
.scn-pipe-snapping .figure { position: absolute; bottom: 22%; left: 35%; width: 30px; height: 80px; background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-fig 2s ease-in-out infinite; }
.scn-pipe-snapping .pipe { position: absolute; bottom: 30%; left: 40%; width: 8px; height: 4px; background: #5a3a2a; border-radius: 2px; box-shadow: 2px 0 #4a2a1a; animation: ps-pipe 1.2s cubic-bezier(.68,-.55,.27,1.55) infinite; }
.scn-pipe-snapping .chair { position: absolute; bottom: 20%; left: 50%; width: 40px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-pipe-snapping .glow { position: absolute; bottom: 22%; left: 55%; width: 80px; height: 80px; background: radial-gradient(circle, #ff8040 0%, transparent 70%); filter: blur(10px); animation: ps-glow 3s ease-in-out infinite alternate; }
@keyframes ps-fire { 0% { transform: scaleY(1) scaleX(1); opacity: .8 } 50% { transform: scaleY(1.2) scaleX(.9); opacity: 1 } 100% { transform: scaleY(.9) scaleX(1.1); opacity: .7 } }
@keyframes ps-fig { 0% { transform: rotate(-2deg) translateY(0) } 30% { transform: rotate(3deg) translateY(-2px) } 60% { transform: rotate(-1deg) translateY(0) } 100% { transform: rotate(2deg) translateY(-1px) } }
@keyframes ps-pipe { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(-10px,-8px) rotate(-40deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes ps-glow { 0% { opacity: .4 } 50% { opacity: .8 } 100% { opacity: .3 } }

.scn-widows-wound { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #1e1e32 100%), radial-gradient(ellipse at 50% 80%, #2a2a44 0%, transparent 60%); }
.scn-widows-wound .bg { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #2a2a44 0%, #1a1a2e 100%); }
.scn-widows-wound .figure-a { position: absolute; bottom: 20%; left: 25%; width: 34px; height: 70px; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ww-fig1 4s ease-in-out infinite; }
.scn-widows-wound .figure-b { position: absolute; bottom: 22%; left: 45%; width: 32px; height: 68px; background: linear-gradient(180deg, #12122a 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ww-fig2 4.5s ease-in-out infinite; }
.scn-widows-wound .table { position: absolute; bottom: 20%; left: 35%; width: 60px; height: 10px; background: linear-gradient(180deg, #2a2a44 0%, #1e1e32 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-widows-wound .candle { position: absolute; bottom: 28%; left: 38%; width: 6px; height: 18px; background: linear-gradient(180deg, #f0e0a0 0%, #c0b080 100%); border-radius: 2px; box-shadow: 0 0 12px #f0e0a0; animation: ww-candle 2s ease-in-out infinite alternate; }
.scn-widows-wound .shadow { position: absolute; bottom: 0; left: 20%; width: 80%; height: 40%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); animation: ww-shade 6s ease-in-out infinite alternate; }
@keyframes ww-fig1 { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-2deg) translateY(-1px) } 50% { transform: rotate(1deg) translateY(0) } 75% { transform: rotate(0) translateY(1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes ww-fig2 { 0% { transform: rotate(0) translateY(0) } 20% { transform: rotate(3deg) translateY(-2px) } 40% { transform: rotate(0) translateY(0) } 60% { transform: rotate(-2deg) translateY(1px) } 80% { transform: rotate(0) translateY(0) } 100% { transform: rotate(0) translateY(0) } }
@keyframes ww-candle { 0% { transform: scaleY(1); opacity: .8 } 50% { transform: scaleY(1.1); opacity: 1 } 100% { transform: scaleY(.9); opacity: .7 } }
@keyframes ww-shade { 0% { transform: translateY(0); opacity: .6 } 50% { transform: translateY(-5px); opacity: .8 } 100% { transform: translateY(0); opacity: .5 } }

.scn-two-handles { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%); }
.scn-two-handles .bg { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-two-handles .figure-l { position: absolute; bottom: 20%; left: 20%; width: 32px; height: 70px; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: th-fig1 3s ease-in-out infinite; }
.scn-two-handles .figure-r { position: absolute; bottom: 20%; left: 50%; width: 32px; height: 70px; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: th-fig2 3.5s ease-in-out infinite; }
.scn-two-handles .hand-a { position: absolute; bottom: 40%; left: 28%; width: 18px; height: 22px; background: radial-gradient(circle, #c8a060 0%, #a08040 70%); border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: th-hand1 2s ease-in-out infinite alternate; }
.scn-two-handles .hand-b { position: absolute; bottom: 40%; left: 58%; width: 18px; height: 22px; background: radial-gradient(circle, #c8a060 0%, #a08040 70%); border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: th-hand2 2.3s ease-in-out infinite alternate; }
.scn-two-handles .handle-object { position: absolute; bottom: 32%; left: 42%; width: 12px; height: 20px; background: linear-gradient(180deg, #d0b070 0%, #b09050 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 8px rgba(200,160,96,.5); animation: th-object 1.5s ease-in-out infinite; }
.scn-two-handles .sparkle { position: absolute; top: 20%; left: 30%; width: 6px; height: 6px; background: #ffe080; border-radius: 50%; box-shadow: 0 0 12px #ffe080; animation: th-spark 1s ease-in-out infinite alternate; }
@keyframes th-fig1 { 0% { transform: rotate(0) } 25% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0) } }
@keyframes th-fig2 { 0% { transform: rotate(0) } 20% { transform: rotate(4deg) } 40% { transform: rotate(-2deg) } 60% { transform: rotate(1deg) } 80% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes th-hand1 { 0% { transform: translate(0,0) rotate(-20deg) } 50% { transform: translate(5px,-5px) rotate(10deg) } 100% { transform: translate(0,0) rotate(-20deg) } }
@keyframes th-hand2 { 0% { transform: translate(0,0) rotate(15deg) } 50% { transform: translate(-5px,-5px) rotate(-15deg) } 100% { transform: translate(0,0) rotate(15deg) } }
@keyframes th-object { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.2) rotate(15deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes th-spark { 0% { transform: scale(1); opacity: .5 } 100% { transform: scale(1.5); opacity: 1 } }

.scn-time-discrepancy { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 80%, #2a2a44 0%, transparent 60%); }
.scn-time-discrepancy .bg { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #2a2a44 0%, #1a1a2e 100%); }
.scn-time-discrepancy .bell { position: absolute; top: 15%; left: 30%; width: 20px; height: 20px; background: radial-gradient(circle, #c8a060 0%, #a08040 70%); border-radius: 50%; box-shadow: 0 0 16px #a08040; animation: td-bell .8s ease-in-out infinite alternate; }
.scn-time-discrepancy .toby { position: absolute; bottom: 22%; left: 40%; width: 34px; height: 70px; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: td-toby 3s ease-in-out infinite; }
.scn-time-discrepancy .obadiah { position: absolute; bottom: 20%; left: 60%; width: 28px; height: 60px; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: td-obad 2s linear infinite; }
.scn-time-discrepancy .clock { position: absolute; top: 10%; right: 20%; width: 50px; height: 50px; background: radial-gradient(circle, #d0b070 0%, #b09050 50%, #806030 100%); border-radius: 50%; box-shadow: 0 0 12px rgba(200,160,96,.5); animation: td-clock 4s linear infinite; }
.scn-time-discrepancy .lines { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: repeating-linear-gradient(90deg, rgba(255,255,255,.02) 0px, rgba(255,255,255,.02) 3px, transparent 3px, transparent 15px); animation: td-lines 10s linear infinite; }
@keyframes td-bell { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(15deg) scale(1.1) } 100% { transform: rotate(-15deg) scale(1) } }
@keyframes td-toby { 0% { transform: rotate(-2deg) translateY(0) } 30% { transform: rotate(3deg) translateY(-2px) } 60% { transform: rotate(0) translateY(0) } 100% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes td-obad { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes td-clock { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes td-lines { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .3 } }

/* ---- catastrophe-approaches (tense, sunlit) ---- */
.scn-catastrophe-approaches {
  background: linear-gradient(180deg, #f4d78a 0%, #e8b56a 40%, #c48a4a 100%), radial-gradient(ellipse at 20% 30%, #ffe0a0 0%, transparent 60%);
}
.scn-catastrophe-approaches .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0c8e0 0%, #f0d8a0 100%);
  animation: cta-sky 8s ease-in-out infinite alternate;
}
.scn-catastrophe-approaches .sun {
  position: absolute; top: 12%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4c0 0%, #ffd070 70%, transparent 100%);
  border-radius: 50%;
  animation: cta-sun 12s ease-in-out infinite;
}
.scn-catastrophe-approaches .storm-clouds {
  position: absolute; top: 18%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 0 0 40% 40%;
  filter: blur(8px);
  animation: cta-storm 6s ease-in-out infinite alternate;
}
.scn-catastrophe-approaches .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #7a8a5a 0%, #4a5a3a 100%);
  border-radius: 30% 50% 0 0 / 60% 40% 0 0;
  animation: cta-hills 15s ease-in-out infinite alternate;
}
.scn-catastrophe-approaches .tower {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #9a7a5a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: cta-tower 4s ease-in-out infinite;
}
.scn-catastrophe-approaches .figure {
  position: absolute; bottom: 26%; left: 56%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cta-figure 3s ease-in-out infinite;
}
.scn-catastrophe-approaches .dust {
  position: absolute; bottom: 28%; left: 48%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: cta-dust 5s ease-in-out infinite;
}

@keyframes cta-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes cta-sun { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-4px); } 100% { transform: scale(0.95) translateY(2px); } }
@keyframes cta-storm { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-20px) scaleY(1.1); } 100% { transform: translateX(10px) scaleY(0.9); } }
@keyframes cta-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes cta-tower { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(0.5deg); } }
@keyframes cta-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-2deg); } 75% { transform: translateX(12px) rotate(1deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes cta-dust { 0%,100% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.4); } }

/* ---- dramatic-structure (warm, sunlit) ---- */
.scn-dramatic-structure {
  background: linear-gradient(180deg, #f0d4a0 0%, #d4b080 50%, #a08050 100%), radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 70%);
}
.scn-dramatic-structure .bg-curtain {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #c06040 0%, #a04030 50%, #803020 100%);
  border-radius: 0 0 20% 20%;
  animation: drs-curtain 10s ease-in-out infinite alternate;
}
.scn-dramatic-structure .stage {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #b09060 0%, #6a5030 100%);
  border-radius: 20% 20% 0 0;
}
.scn-dramatic-structure .column-left {
  position: absolute; bottom: 15%; left: 18%; width: 18px; height: 80px;
  background: linear-gradient(180deg, #d0b080 0%, #8a6a4a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
  animation: drs-columns 12s ease-in-out infinite;
}
.scn-dramatic-structure .column-right {
  position: absolute; bottom: 15%; right: 18%; width: 18px; height: 80px;
  background: linear-gradient(180deg, #d0b080 0%, #8a6a4a 100%);
  border-radius: 4px;
  box-shadow: -2px 0 6px rgba(0,0,0,0.2);
  animation: drs-columns 12s ease-in-out infinite reverse;
}
.scn-dramatic-structure .steps {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 18%;
  background: linear-gradient(180deg, #c0a070 0%, #7a5a3a 100%);
  border-radius: 10% 10% 0 0;
  animation: drs-steps 8s ease-in-out infinite alternate;
}
.scn-dramatic-structure .spotlight-left {
  position: absolute; top: 8%; left: 22%; width: 40px; height: 100px;
  background: linear-gradient(180deg, rgba(255,240,200,0.7) 0%, transparent 100%);
  transform: rotate(-10deg);
  filter: blur(6px);
  animation: drs-spotlight 5s ease-in-out infinite alternate;
}
.scn-dramatic-structure .spotlight-right {
  position: absolute; top: 8%; right: 22%; width: 40px; height: 100px;
  background: linear-gradient(180deg, rgba(255,240,200,0.7) 0%, transparent 100%);
  transform: rotate(10deg);
  filter: blur(6px);
  animation: drs-spotlight 5s ease-in-out infinite alternate-reverse;
}

@keyframes drs-curtain { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes drs-columns { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } }
@keyframes drs-steps { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes drs-spotlight { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }

/* ---- diego-found (warm, dawn) ---- */
.scn-diego-found {
  background: linear-gradient(180deg, #f4c8a0 0%, #d8a870 30%, #b08858 100%), radial-gradient(ellipse at 50% 100%, #ffe0b0 0%, transparent 80%);
}
.scn-diego-found .dawn-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c0d8e0 0%, #e8c8a0 60%, #f0b080 100%);
  animation: dfn-sky 10s ease-in-out infinite alternate;
}
.scn-diego-found .dawn-sun {
  position: absolute; bottom: 40%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd080 0%, #ffa050 60%, transparent 100%);
  border-radius: 50%;
  animation: dfn-sun 8s ease-in-out infinite;
}
.scn-diego-found .road {
  position: absolute; bottom: 0; left: 20%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 0 0;
  animation: dfn-road 12s ease-in-out infinite alternate;
}
.scn-diego-found .inn {
  position: absolute; bottom: 20%; left: 55%; width: 70px; height: 60px;
  background: linear-gradient(180deg, #c0a070 0%, #8a6a4a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.3);
}
.scn-diego-found .roof {
  position: absolute; bottom: 43%; left: 53%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #805030 0%, #502818 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  animation: dfn-roof 6s ease-in-out infinite;
}
.scn-diego-found .tree {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #507030 0%, #2a4018 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: dfn-tree 15s ease-in-out infinite;
}
.scn-diego-found .horse {
  position: absolute; bottom: 6%; left: 28%; width: 30px; height: 18px;
  background: linear-gradient(135deg, #604020 0%, #3a2010 100%);
  border-radius: 50% 30% 40% 30% / 60% 40% 60% 40%;
  animation: dfn-horse 4s ease-in-out infinite;
}
.scn-diego-found .rider {
  position: absolute; bottom: 12%; left: 30%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dfn-rider 4s ease-in-out infinite;
}

@keyframes dfn-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dfn-sun { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.08) translateX(4px); } 100% { transform: scale(0.95) translateX(-2px); } }
@keyframes dfn-road { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } }
@keyframes dfn-roof { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } }
@keyframes dfn-tree { 0%,100% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(-2deg) scaleX(1.02); } 75% { transform: rotate(2deg) scaleX(0.98); } }
@keyframes dfn-horse { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(3px) translateY(-1px); } 50% { transform: translateX(6px) translateY(0); } 75% { transform: translateX(9px) translateY(-1px); } 100% { transform: translateX(12px) translateY(0); } }
@keyframes dfn-rider { 0%,100% { transform: translateX(12px) rotate(0deg); } 50% { transform: translateX(6px) rotate(2deg); } }

/* ---- julias-message (dark, dawn) ---- */
.scn-julias-message {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 50%, #3a3a5e 100%), radial-gradient(ellipse at 50% 100%, #4a4a6a 0%, transparent 70%);
}
.scn-julias-message .dark-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #0a0a15 0%, #1a1a2a 100%);
  animation: jlm-wall 8s ease-in-out infinite alternate;
}
.scn-julias-message .window {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  overflow: hidden;
}
.scn-julias-message .dawn-glow {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, rgba(180,140,100,0.3) 0%, rgba(80,60,40,0.1) 100%);
  border-radius: 4px;
  animation: jlm-dawn 12s ease-in-out infinite alternate;
}
.scn-julias-message .desk {
  position: absolute; top: 55%; left: 35%; right: 35%; height: 6%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-julias-message .figure {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jlm-figure 5s ease-in-out infinite;
}
.scn-julias-message .letter {
  position: absolute; top: 54%; left: 46%; width: 24px; height: 16px;
  background: linear-gradient(135deg, #b09060 0%, #7a5a3a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: jlm-letter 4s ease-in-out infinite alternate;
}
.scn-julias-message .candle {
  position: absolute; top: 46%; left: 40%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #a08050 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(200,160,80,0.4);
  animation: jlm-candle 3s ease-in-out infinite alternate;
}
@keyframes jlm-wall { 0%,100% { opacity: 0.5; } 50% { opacity: 0.7; } }
@keyframes jlm-dawn { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes jlm-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } }
@keyframes jlm-letter { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes jlm-candle { 0% { opacity: 0.6; box-shadow: 0 0 8px 2px rgba(200,160,80,0.3); } 50% { opacity: 1; box-shadow: 0 0 18px 6px rgba(200,160,80,0.6); } 100% { opacity: 0.7; box-shadow: 0 0 10px 3px rgba(200,160,80,0.4); } }

/* calesh-prepared */
.scn-calesh-prepared {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #d2b48c 100%),
              radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 60%);
}
.scn-calesh-prepared .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b0e0ff 0%, transparent 100%); animation: cp-sky 12s ease-in-out infinite alternate; }
.scn-calesh-prepared .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #e6c280 0%, #c4953a 100%); border-radius: 30% 70% 0 0; animation: cp-ground 8s ease-in-out infinite; }
.scn-calesh-prepared .calesh { position:absolute; bottom:35%; left:25%; width:20%; height:25%; background: linear-gradient(135deg, #8B4513 0%, #5c2e0b 100%); border-radius: 10% 10% 5% 5%; box-shadow: 4px 4px 8px rgba(0,0,0,.3); animation: cp-calesh 6s ease-in-out infinite; }
.scn-calesh-prepared .abbess { position:absolute; bottom:40%; left:35%; width:8%; height:20%; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-figure 4s ease-in-out infinite; }
.scn-calesh-prepared .margarita { position:absolute; bottom:40%; left:45%; width:7%; height:18%; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-figure 5s ease-in-out infinite 0.5s; }
.scn-calesh-prepared .veil-1 { position:absolute; bottom:55%; left:33%; width:6%; height:12%; background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.1) 100%); border-radius: 50% 50% 0 0; filter: blur(1px); animation: cp-veil 3s ease-in-out infinite alternate; }
.scn-calesh-prepared .veil-2 { position:absolute; bottom:55%; left:43%; width:6%; height:12%; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.05) 100%); border-radius: 50% 50% 0 0; filter: blur(1px); animation: cp-veil 3.5s ease-in-out infinite alternate-reverse; }
.scn-calesh-prepared .halo-a { position:absolute; bottom:58%; left:36%; width:10%; height:5%; background: radial-gradient(circle, #ffd700 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: cp-halo 4s ease-in-out infinite; }
.scn-calesh-prepared .halo-b { position:absolute; bottom:58%; left:46%; width:10%; height:5%; background: radial-gradient(circle, #ffd700 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: cp-halo 4.5s ease-in-out infinite 0.5s; }

@keyframes cp-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes cp-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cp-calesh { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(0.5deg); } }
@keyframes cp-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes cp-veil { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(-8px) rotate(-3deg); } }
@keyframes cp-halo { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(1); } }

/* muleteer-vortex */
.scn-muleteer-vortex {
  background: linear-gradient(180deg, #87CEEB 0%, #e0c090 50%, #c8a56a 100%),
              radial-gradient(ellipse at 30% 80%, #ffe4b5 0%, transparent 60%);
}
.scn-muleteer-vortex .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #add8e6 0%, transparent 100%); animation: mv-sky 15s ease-in-out infinite alternate; }
.scn-muleteer-vortex .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #d2b48c 0%, #b8860b 100%); border-radius: 60% 40% 0 0; animation: mv-ground 10s ease-in-out infinite; }
.scn-muleteer-vortex .calesh-bg { position:absolute; bottom:30%; left:15%; width:28%; height:30%; background: linear-gradient(135deg, #8B4513 0%, #4a250a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 4px 4px 10px rgba(0,0,0,.4); animation: mv-calesh 8s ease-in-out infinite; }
.scn-muleteer-vortex .muleteer { position:absolute; bottom:25%; left:50%; width:10%; height:22%; background: linear-gradient(180deg, #3e2723 0%, #1e130c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mv-figure 4s ease-in-out infinite; }
.scn-muleteer-vortex .wineskin { position:absolute; bottom:28%; left:45%; width:8%; height:10%; background: radial-gradient(circle at 50% 30%, #c0392b 0%, #8e2318 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: mv-wineskin 3s ease-in-out infinite; }
.scn-muleteer-vortex .drip-1, .drip-2, .drip-3 { position:absolute; width:2%; height:4%; background: radial-gradient(circle, #e74c3c 0%, #c0392b 100%); border-radius: 50% 50% 30% 30%; }
.scn-muleteer-vortex .drip-1 { bottom:28%; left:44%; animation: mv-drip 1.5s ease-in-out infinite 0s; }
.scn-muleteer-vortex .drip-2 { bottom:28%; left:46%; animation: mv-drip 1.8s ease-in-out infinite 0.3s; }
.scn-muleteer-vortex .drip-3 { bottom:28%; left:43%; animation: mv-drip 2s ease-in-out infinite 0.6s; }

@keyframes mv-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes mv-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes mv-calesh { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px) rotate(-0.5deg); } }
@keyframes mv-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } }
@keyframes mv-wineskin { 0%,100% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.1) rotate(-5deg); } 50% { transform: scale(1.2) rotate(5deg); } 75% { transform: scale(1.05) rotate(-2deg); } }
@keyframes mv-drip { 0% { transform: translateY(0) scale(1); opacity:1; } 50% { transform: translateY(15px) scale(1.2); opacity:0.8; } 100% { transform: translateY(30px) scale(0.5); opacity:0; } }

/* mules-rebel */
.scn-mules-rebel {
  background: linear-gradient(180deg, #87CEEB 0%, #f5deb3 40%, #deb887 100%),
              radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%);
}
.scn-mules-rebel .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #b0c4de 0%, transparent 100%); animation: mr-sky 14s ease-in-out infinite alternate; }
.scn-mules-rebel .road { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #c8a56a 0%, #a0522d 100%); border-radius: 0 0 10% 10%; animation: mr-road 12s ease-in-out infinite; }
.scn-mules-rebel .mule-1 { position:absolute; bottom:25%; left:30%; width:15%; height:20%; background: linear-gradient(180deg, #6b4226 0%, #3e2723 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform-origin: bottom; animation: mr-mule 4s ease-in-out infinite; }
.scn-mules-rebel .mule-2 { position:absolute; bottom:25%; left:45%; width:15%; height:20%; background: linear-gradient(180deg, #5c4033 0%, #2c1e16 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; transform-origin: bottom; animation: mr-mule 4.5s ease-in-out infinite 0.5s; }
.scn-mules-rebel .muleteer-lost { position:absolute; bottom:20%; left:20%; width:8%; height:18%; background: linear-gradient(180deg, #8B4513 0%, #4a250a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mr-lost 5s ease-in-out infinite; }
.scn-mules-rebel .bush { position:absolute; bottom:20%; left:10%; width:12%; height:10%; background: radial-gradient(circle, #228b22 0%, #004d00 100%); border-radius: 50%; filter: blur(2px); animation: mr-bush 8s ease-in-out infinite; }
.scn-mules-rebel .dust { position:absolute; bottom:28%; left:35%; width:20%; height:8%; background: radial-gradient(ellipse, rgba(255,215,0,.3) 0%, transparent 100%); filter: blur(3px); animation: mr-dust 6s ease-in-out infinite; }

@keyframes mr-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes mr-road { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes mr-mule { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } }
@keyframes mr-lost { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(10deg); } }
@keyframes mr-bush { 0%,100% { transform: scale(1); } 50% { transform: scale(1.1); } }
@keyframes mr-dust { 0% { opacity:0.3; transform: translateX(0) scale(1); } 50% { opacity:0.6; transform: translateX(10px) scale(1.2); } 100% { opacity:0.2; transform: translateX(20px) scale(1); } }

/* magic-words */
.scn-magic-words {
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 60%, #c8a56a 100%),
              radial-gradient(ellipse at 50% 30%, #ffe4b5 0%, transparent 50%);
}
.scn-magic-words .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #d2b48c 0%, #b8860b 100%); border-radius: 10%; animation: mw-bg 10s ease-in-out infinite alternate; }
.scn-magic-words .table { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #8B4513 0%, #4a250a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: mw-table 6s ease-in-out infinite; }
.scn-magic-words .abbess-profile { position:absolute; bottom:25%; left:30%; width:10%; height:25%; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); transform: scaleX(-1); animation: mw-abbess 4s ease-in-out infinite; }
.scn-magic-words .margarita-profile { position:absolute; bottom:25%; right:30%; width:10%; height:25%; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mw-margarita 4.5s ease-in-out infinite 0.5s; }
.scn-magic-words .sound-wave-1 { position:absolute; bottom:45%; left:40%; width:5%; height:5%; border: 2px solid #ffd700; border-radius:50%; animation: mw-wave 1.5s ease-out infinite; }
.scn-magic-words .sound-wave-2 { position:absolute; bottom:45%; right:40%; width:5%; height:5%; border: 2px solid #ffa500; border-radius:50%; animation: mw-wave 2s ease-out infinite 0.3s; }
.scn-magic-words .thump { position:absolute; bottom:35%; left:50%; width:8%; height:8%; background: radial-gradient(circle, #ff4500 0%, transparent 70%); border-radius:50%; animation: mw-thump 1s ease-in-out infinite; }

@keyframes mw-bg { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.85; } }
@keyframes mw-table { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } }
@keyframes mw-abbess { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(3deg); } }
@keyframes mw-margarita { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-3deg); } }
@keyframes mw-wave { 0% { transform: scale(0); opacity:0.8; } 50% { transform: scale(1.5); opacity:0.4; } 100% { transform: scale(2); opacity:0; } }
@keyframes mw-thump { 0%,100% { transform: scale(1); opacity:0.3; } 50% { transform: scale(1.5); opacity:0.7; } }

.scn-apothecary-criticized {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #3a2822 100%),
              radial-gradient(ellipse at 50% 60%, #4a3228 0%, transparent 70%);
}
.scn-apothecary-criticized .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(30,20,15,0.9) 0%, transparent 60%);
  animation: ap1-bg 12s ease-in-out infinite alternate;
}
.scn-apothecary-criticized .counter {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.7);
  animation: ap1-counter 8s ease-in-out infinite;
}
.scn-apothecary-criticized .bottle {
  position: absolute; bottom: 32%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-apothecary-criticized .b1 { left: 20%; animation: ap1-bottle1 6s ease-in-out infinite; }
.scn-apothecary-criticized .b2 { left: 28%; width: 10px; height: 18px; animation: ap1-bottle2 7s ease-in-out infinite reverse; }
.scn-apothecary-criticized .apothecary {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap1-apothecary 4s ease-in-out infinite;
}
.scn-apothecary-criticized .patient {
  position: absolute; bottom: 28%; left: 62%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #221612 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 30% 30%;
  animation: ap1-patient 5s ease-in-out infinite alternate;
}
.scn-apothecary-criticized .lamp {
  position: absolute; bottom: 38%; left: 38%; width: 8px; height: 12px;
  background: radial-gradient(circle, #f0c060 0%, #c09040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,140,60,0.5), 0 0 40px 16px rgba(200,140,60,0.2);
  animation: ap1-lamp 3s ease-in-out infinite alternate;
}
@keyframes ap1-bg { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes ap1-counter { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ap1-bottle1 { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes ap1-bottle2 { 0%,100% { transform: rotate(3deg) } 50% { transform: rotate(-3deg) } }
@keyframes ap1-apothecary { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ap1-patient { 0% { transform: translateY(0) rotate(0) scaleX(1) } 50% { transform: translateY(-3px) rotate(2deg) scaleX(0.98) } 100% { transform: translateY(0) rotate(0) scaleX(1) } }
@keyframes ap1-lamp { 0% { opacity: 0.7; box-shadow: 0 0 15px 5px rgba(200,140,60,0.4); } 50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(200,140,60,0.7); } 100% { opacity: 0.8; box-shadow: 0 0 20px 6px rgba(200,140,60,0.5); } }

.scn-love-and-cuckoldom {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #302220 100%),
              radial-gradient(ellipse at 50% 70%, #3a2822 0%, transparent 70%);
}
.scn-love-and-cuckoldom .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(40,25,20,0.8) 0%, transparent 60%);
  animation: lc2-bg 15s ease-in-out infinite alternate;
}
.scn-love-and-cuckoldom .bed {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.8);
  animation: lc2-bed 10s ease-in-out infinite;
}
.scn-love-and-cuckoldom .woman {
  position: absolute; bottom: 18%; left: 38%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: lc2-woman 6s ease-in-out infinite;
}
.scn-love-and-cuckoldom .man-hiding {
  position: absolute; bottom: 16%; left: 15%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #2a1a12 0%, #120a06 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lc2-hide 4s ease-in-out infinite;
}
.scn-love-and-cuckoldom .lover {
  position: absolute; bottom: 16%; left: 55%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #3a1a12 0%, #1a0a06 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 30% 30%;
  animation: lc2-lover 5s ease-in-out infinite alternate;
}
.scn-love-and-cuckoldom .lantern {
  position: absolute; bottom: 45%; left: 30%; width: 10px; height: 14px;
  background: radial-gradient(circle, #f0c060 0%, #c09040 60%, transparent 80%);
  border-radius: 30%;
  box-shadow: 0 0 25px 10px rgba(200,140,60,0.5), 0 0 50px 20px rgba(200,140,60,0.2);
  animation: lc2-lantern 3s ease-in-out infinite alternate;
}
@keyframes lc2-bg { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes lc2-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lc2-woman { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes lc2-hide { 0%,100% { transform: translateX(0) rotate(0) scaleY(1) } 30% { transform: translateX(-5px) rotate(-5deg) scaleY(0.95) } 70% { transform: translateX(5px) rotate(5deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }
@keyframes lc2-lover { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(10px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lc2-lantern { 0% { opacity: 0.6; box-shadow: 0 0 15px 5px rgba(200,140,60,0.3); } 50% { opacity: 1; box-shadow: 0 0 35px 12px rgba(200,140,60,0.6); } 100% { opacity: 0.7; box-shadow: 0 0 20px 6px rgba(200,140,60,0.4); } }

.scn-water-drinkers {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #3a2822 100%),
              radial-gradient(ellipse at 50% 60%, #4a3228 0%, transparent 70%);
}
.scn-water-drinkers .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(30,20,15,0.9) 0%, transparent 60%);
  animation: wd3-bg 14s ease-in-out infinite alternate;
}
.scn-water-drinkers .table {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 8% 8%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.7);
  animation: wd3-table 9s ease-in-out infinite;
}
.scn-water-drinkers .jug {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: wd3-jug 7s ease-in-out infinite alternate;
}
.scn-water-drinkers .cup {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  animation: wd3-cup 5s ease-in-out infinite;
}
.scn-water-drinkers .drinker {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a12 0%, #120a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wd3-drinker 4s ease-in-out infinite;
}
.scn-water-drinkers .nymph {
  position: absolute; bottom: 28%; left: 12%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 30% 30%;
  animation: wd3-nymph 6s ease-in-out infinite alternate;
}
@keyframes wd3-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes wd3-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes wd3-jug { 0% { transform: rotate(-4deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-2deg) } }
@keyframes wd3-cup { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(5deg) } }
@keyframes wd3-drinker { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(6px) rotate(2deg) } 75% { transform: translateX(9px) rotate(-1deg) } 100% { transform: translateX(12px) rotate(0) } }
@keyframes wd3-nymph { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }

.scn-curiosity-fancy-desire {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 30%, #3a2822 100%),
              radial-gradient(ellipse at 50% 50%, #4a3228 0%, transparent 70%);
}
.scn-curiosity-fancy-desire .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(30,20,15,0.9) 0%, transparent 60%);
  animation: cfd4-bg 18s ease-in-out infinite alternate;
}
.scn-curiosity-fancy-desire .head {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: cfd4-head 8s ease-in-out infinite;
}
.scn-curiosity-fancy-desire .stream {
  position: absolute; bottom: 40%; left: 45%; width: 4px; height: 60px;
  background: linear-gradient(180deg, rgba(240,200,100,0.4) 0%, rgba(200,140,60,0.1) 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-curiosity-fancy-desire .s1 { left: 35%; animation: cfd4-stream1 6s ease-in-out infinite; }
.scn-curiosity-fancy-desire .s2 { left: 50%; height: 80px; animation: cfd4-stream2 8s ease-in-out infinite reverse; }
.scn-curiosity-fancy-desire .s3 { left: 60%; height: 50px; animation: cfd4-stream3 7s ease-in-out infinite; }
.scn-curiosity-fancy-desire .curiosity {
  position: absolute; bottom: 35%; left: 30%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 30% 30%;
  animation: cfd4-curiosity 5s ease-in-out infinite;
}
.scn-curiosity-fancy-desire .fancy {
  position: absolute; bottom: 35%; left: 55%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: cfd4-fancy 6s ease-in-out infinite alternate;
}
.scn-curiosity-fancy-desire .desire {
  position: absolute; bottom: 30%; left: 42%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 30% 30%;
  animation: cfd4-desire 7s ease-in-out infinite alternate;
}
@keyframes cfd4-bg { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes cfd4-head { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes cfd4-stream1 { 0% { transform: translateY(0) scaleY(1); opacity: 0.3 } 50% { transform: translateY(-15px) scaleY(1.2); opacity: 0.6 } 100% { transform: translateY(0) scaleY(1); opacity: 0.3 } }
@keyframes cfd4-stream2 { 0% { transform: translateY(0) scaleY(1); opacity: 0.4 } 50% { transform: translateY(10px) scaleY(0.8); opacity: 0.7 } 100% { transform: translateY(0) scaleY(1); opacity: 0.4 } }
@keyframes cfd4-stream3 { 0% { transform: translateY(0) rotate(0); opacity: 0.2 } 50% { transform: translateY(-20px) rotate(10deg); opacity: 0.5 } 100% { transform: translateY(0) rotate(0); opacity: 0.2 } }
@keyframes cfd4-curiosity { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cfd4-fancy { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-6px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes cfd4-desire { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(4px, -4px) rotate(3deg) } 100% { transform: translate(0,0) rotate(0) } }

/* Scene: ambrose-pareus (ap) – funny, dim interior, nose-mender close-up */
.scn-ambrose-pareus {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #1a120a 50%, #2a1a0e 100%),
    radial-gradient(ellipse at 40% 60%, #5a3a2a 0%, transparent 70%);
}
.scn-ambrose-pareus .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0e 0%, transparent 100%); }
.scn-ambrose-pareus .wall-dark { position:absolute; top:0; left:60%; width:40%; height:100%; background: linear-gradient(90deg, transparent 0%, #1a120a 100%); }
.scn-ambrose-pareus .figure { position:absolute; bottom:25%; left:20%; width:60px; height:120px; background: linear-gradient(180deg, #1a120a 0%, #0a0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-figure 4s ease-in-out infinite; }
.scn-ambrose-pareus .nose { position:absolute; bottom:65%; left:35%; width:50px; height:20px; background: linear-gradient(180deg, #1a120a 0%, #0a0805 100%); border-radius: 50% 50% 40% 40% / 60% 50% 50% 40%; transform: rotate(-10deg); animation: ap-nose 3s ease-in-out infinite; }
.scn-ambrose-pareus .candle { position:absolute; bottom:30%; left:65%; width:12px; height:40px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 20% 20% 10% 10%; }
.scn-ambrose-pareus .book { position:absolute; bottom:15%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; transform: rotate(5deg); animation: ap-book 8s ease-in-out infinite; }
.scn-ambrose-pareus .glow-spot { position:absolute; bottom:30%; left:65%; width:80px; height:80px; background: radial-gradient(circle, #ffd08030 0%, transparent 70%); border-radius:50%; animation: ap-glow 3s ease-in-out infinite alternate; }
.scn-ambrose-pareus .shadow { position:absolute; bottom:20%; left:15%; width:120px; height:20px; background: radial-gradient(ellipse, #00000080 0%, transparent 70%); animation: ap-shadow 4s ease-in-out infinite; }
@keyframes ap-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ap-nose {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(-5deg) scaleX(1.05); }
  100% { transform: rotate(-10deg) scaleX(1); }
}
@keyframes ap-book {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes ap-glow {
  0% { opacity:0.6; transform: scale(0.95); }
  50% { opacity:1; transform: scale(1.05); }
  100% { opacity:0.7; transform: scale(1); }
}
@keyframes ap-shadow {
  0% { transform: scaleX(1); opacity:0.5; }
  50% { transform: scaleX(1.1); opacity:0.7; }
  100% { transform: scaleX(1); opacity:0.5; }
}

/* Scene: pareus-hypothesis (ph) – funny, dim interior, books falling */
.scn-pareus-hypothesis {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #1a120a 50%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a20 0%, transparent 70%);
}
.scn-pareus-hypothesis .bg-books { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0e 0%, transparent 100%); }
.scn-pareus-hypothesis .shelf { position:absolute; top:25%; left:10%; width:80%; height:8px; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%); border-radius:2px; }
.scn-pareus-hypothesis .book-fall { position:absolute; top:10%; left:40%; width:25px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:2px; transform-origin: top center; animation: ph-fall 5s ease-in-out infinite; }
.scn-pareus-hypothesis .book-stack1 { position:absolute; top:35%; left:20%; width:30px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0e 100%); border-radius:2px; transform: rotate(2deg); animation: ph-stack 10s ease-in-out infinite; }
.scn-pareus-hypothesis .book-stack2 { position:absolute; top:38%; left:22%; width:28px; height:18px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:2px; transform: rotate(-1deg); }
.scn-pareus-hypothesis .candle-desk { position:absolute; bottom:30%; left:55%; width:10px; height:35px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:10% 10% 5% 5%; }
.scn-pareus-hypothesis .paper-drift { position:absolute; bottom:45%; left:70%; width:30px; height:20px; background: #6a5a4a; border-radius:1px; transform: rotate(15deg); animation: ph-paper 12s ease-in-out infinite; }
.scn-pareus-hypothesis .glow-desk { position:absolute; bottom:30%; left:55%; width:70px; height:70px; background: radial-gradient(circle, #ffd08030 0%, transparent 70%); border-radius:50%; animation: ph-glow 3s ease-in-out infinite alternate; }
@keyframes ph-fall {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(20deg) translateY(80px); }
  50% { transform: rotate(-15deg) translateY(160px); }
  75% { transform: rotate(5deg) translateY(240px); }
  100% { transform: rotate(0deg) translateY(320px); opacity:0; }
}
@keyframes ph-stack {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-3px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes ph-paper {
  0% { transform: rotate(15deg) translateY(0) translateX(0); }
  50% { transform: rotate(-10deg) translateY(-10px) translateX(10px); }
  100% { transform: rotate(15deg) translateY(0) translateX(0); }
}
@keyframes ph-glow {
  0% { opacity:0.5; transform: scale(0.9); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.6; transform: scale(1); }
}

/* Scene: toby-misunderstanding (tm) – funny, dim interior, pipe & thought bubble */
.scn-toby-misunderstanding {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #1a120a 50%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a2a20 0%, transparent 70%);
}
.scn-toby-misunderstanding .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0e 0%, transparent 100%); }
.scn-toby-misunderstanding .chair { position:absolute; bottom:20%; left:30%; width:60px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 4px 8px #00000040; }
.scn-toby-misunderstanding .figure-toby { position:absolute; bottom:30%; left:35%; width:40px; height:90px; background: linear-gradient(180deg, #1a120a 0%, #0a0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tm-figure 4s ease-in-out infinite; }
.scn-toby-misunderstanding .pipe { position:absolute; bottom:55%; left:42%; width:30px; height:6px; background: #4a3a2a; border-radius: 50% 50% 10% 10% / 50% 50% 10% 10%; transform: rotate(20deg); animation: tm-pipe 3s ease-in-out infinite; }
.scn-toby-misunderstanding .thought-bubble { position:absolute; top:15%; left:25%; width:80px; height:60px; background: radial-gradient(circle, #ffffffee 0%, #ffffdd90 70%, transparent 100%); border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; filter: blur(2px); animation: tm-bubble 6s ease-in-out infinite; }
.scn-toby-misunderstanding .nose-idea { position:absolute; top:18%; left:38%; width:30px; height:12px; background: #1a120a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: tm-nose 4s ease-in-out infinite; }
.scn-toby-misunderstanding .lamp { position:absolute; bottom:40%; left:10%; width:8px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; }
.scn-toby-misunderstanding .shadow-chair { position:absolute; bottom:15%; left:28%; width:70px; height:15px; background: radial-gradient(ellipse, #00000080 0%, transparent 80%); animation: tm-shadow 4s ease-in-out infinite; }
@keyframes tm-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tm-pipe {
  0% { transform: rotate(20deg) translateX(0); }
  50% { transform: rotate(25deg) translateX(2px); }
  100% { transform: rotate(20deg) translateX(0); }
}
@keyframes tm-bubble {
  0% { transform: scale(0.9); opacity:0.7; }
  50% { transform: scale(1.1); opacity:1; }
  100% { transform: scale(0.95); opacity:0.8; }
}
@keyframes tm-nose {
  0% { transform: rotate(-5deg) scaleX(1); }
  50% { transform: rotate(-2deg) scaleX(1.1); }
  100% { transform: rotate(-5deg) scaleX(1); }
}
@keyframes tm-shadow {
  0% { transform: scaleX(1); opacity:0.4; }
  50% { transform: scaleX(0.9); opacity:0.6; }
  100% { transform: scaleX(1); opacity:0.4; }
}

/* Scene: medius-terminus (mt) – funny, dim interior, pipe and yardstick */
.scn-medius-terminus {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #1a120a 50%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 40%, #5a3a2a30 0%, transparent 70%);
}
.scn-medius-terminus .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0e 0%, transparent 100%); }
.scn-medius-terminus .table { position:absolute; bottom:20%; left:15%; width:70%; height:12px; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius:2px; box-shadow: 0 2px 6px #00000060; }
.scn-medius-terminus .yardstick { position:absolute; bottom:35%; left:20%; width:100px; height:8px; background: linear-gradient(90deg, #8a7a5a 0%, #6a5a4a 50%, #8a7a5a 100%); border-radius:2px; transform: rotate(-5deg); animation: mt-yardstick 10s ease-in-out infinite; }
.scn-medius-terminus .pipe-med { position:absolute; bottom:40%; left:60%; width:40px; height:8px; background: #4a3a2a; border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%; transform: rotate(15deg); animation: mt-pipe 4s ease-in-out infinite; }
.scn-medius-terminus .book-logic { position:absolute; bottom:15%; left:30%; width:35px; height:25px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; transform: rotate(2deg); }
.scn-medius-terminus .candle-med { position:absolute; bottom:25%; left:45%; width:8px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:10% 10% 5% 5%; }
.scn-medius-terminus .shadow-med { position:absolute; bottom:15%; left:25%; width:120px; height:20px; background: radial-gradient(ellipse, #00000080 0%, transparent 80%); animation: mt-shadow 5s ease-in-out infinite; }
.scn-medius-terminus .glow-med { position:absolute; bottom:25%; left:45%; width:60px; height:60px; background: radial-gradient(circle, #ffd08030 0%, transparent 70%); border-radius:50%; animation: mt-glow 3s ease-in-out infinite alternate; }
.scn-medius-terminus .smoke { position:absolute; bottom:55%; left:62%; width:20px; height:30px; background: radial-gradient(circle, #ffffff20 0%, transparent 100%); filter: blur(3px); animation: mt-smoke 8s ease-in-out infinite; }
@keyframes mt-yardstick {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(5px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes mt-pipe {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes mt-shadow {
  0% { transform: scaleX(1); opacity:0.4; }
  50% { transform: scaleX(1.1); opacity:0.6; }
  100% { transform: scaleX(1); opacity:0.4; }
}
@keyframes mt-glow {
  0% { opacity:0.5; transform: scale(0.9); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.6; transform: scale(1); }
}
@keyframes mt-smoke {
  0% { transform: translateY(0) scale(1); opacity:0.3; }
  50% { transform: translateY(-20px) scale(1.2); opacity:0.5; }
  100% { transform: translateY(0) scale(1); opacity:0.2; }
}

.scn-penetrating-eye {
  background: 
    linear-gradient(135deg, #2a1e12 0%, #4a3420 40%, #6a4e32 70%, #8a6e4a 100%),
    radial-gradient(ellipse at 30% 60%, #c8a070 0%, transparent 60%);
}
.scn-penetrating-eye .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%);
  opacity: 0.7;
}
.scn-penetrating-eye .window {
  position: absolute; top: 15%; left: 12%; width: 35%; height: 55%;
  background: linear-gradient(135deg, #4a3a2a 0%, #6a5a4a 100%);
  border-radius: 50% / 40% 40% 60% 60%;
  box-shadow: inset 0 0 30px #1a120a;
}
.scn-penetrating-eye .profile {
  position: absolute; top: 30%; left: 42%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0a06 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform: scaleX(-1);
  z-index: 2;
}
.scn-penetrating-eye .eye-glow {
  position: absolute; top: 42%; left: 49%; width: 4%; height: 4%;
  background: radial-gradient(circle, #f0d0a0 0%, #c8a060 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px #f0d0a0, 0 0 40px 20px rgba(240,208,160,0.4);
  animation: pe-glance 5s ease-in-out infinite alternate;
  z-index: 3;
}
.scn-penetrating-eye .candle {
  position: absolute; bottom: 20%; left: 12%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 2px #d0b080;
}
.scn-penetrating-eye .candle-flicker {
  position: absolute; bottom: 31%; left: 12.5%; width: 1.5%; height: 4%;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #e0a040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: pe-flicker 0.8s ease-in-out infinite alternate;
}
@keyframes pe-glance {
  0% { transform: translate(0,0) scale(1); opacity: 0.6; box-shadow: 0 0 10px 5px #d0a060; }
  50% { transform: translate(-2px,-1px) scale(1.3); opacity: 1; box-shadow: 0 0 30px 15px #f0d0a0; }
  100% { transform: translate(1px,-2px) scale(0.9); opacity: 0.7; box-shadow: 0 0 15px 8px #d0a060; }
}
@keyframes pe-flicker {
  0% { transform: scaleY(1) translate(0,0); opacity: 0.8; }
  50% { transform: scaleY(1.2) translate(1px,-1px); opacity: 1; }
  100% { transform: scaleY(1) translate(-1px,0); opacity: 0.9; }
}

.scn-governors-qualities {
  background:
    linear-gradient(180deg, #1a1612 0%, #2a221c 40%, #3a2e26 100%),
    radial-gradient(ellipse at 50% 30%, #4a382a 0%, transparent 70%);
}
.scn-governors-qualities .stage {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a221c 0%, #1a1612 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
}
.scn-governors-qualities .podium {
  position: absolute; bottom: 26%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-governors-qualities .governor-body {
  position: absolute; bottom: 34%; left: 50%; transform: translateX(-50%);
  width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a221c 0%, #1a1612 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  z-index: 2;
}
.scn-governors-qualities .arm-left {
  position: absolute; bottom: 42%; left: 40%; width: 14%; height: 4%;
  background: #1a1612;
  border-radius: 40% 40% 20% 20%;
  transform-origin: right center;
  animation: gq-arm-left 1.2s ease-in-out infinite alternate;
}
.scn-governors-qualities .arm-right {
  position: absolute; bottom: 44%; left: 55%; width: 14%; height: 4%;
  background: #1a1612;
  border-radius: 40% 40% 20% 20%;
  transform-origin: left center;
  animation: gq-arm-right 1.5s ease-in-out infinite alternate;
}
.scn-governors-qualities .arm-top {
  position: absolute; bottom: 48%; left: 46%; width: 12%; height: 4%;
  background: #1a1612;
  border-radius: 40% 40% 20% 20%;
  transform-origin: 50% 20%;
  animation: gq-arm-top 1s ease-in-out infinite alternate-reverse;
}
.scn-governors-qualities .leg-stomp {
  position: absolute; bottom: 26%; left: 47%; width: 4%; height: 10%;
  background: #1a1612;
  border-radius: 10% 10% 30% 30%;
  animation: gq-stomp 0.6s ease-in-out infinite alternate;
}
.scn-governors-qualities .shadow-clock {
  position: absolute; bottom: 20%; left: 70%; width: 8%; height: 8%;
  background: radial-gradient(circle, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: gq-spin 8s linear infinite;
}
@keyframes gq-arm-left {
  0% { transform: rotate(10deg) translateY(0); }
  100% { transform: rotate(-20deg) translateY(-5px); }
}
@keyframes gq-arm-right {
  0% { transform: rotate(-15deg) translateY(0); }
  100% { transform: rotate(25deg) translateY(-3px); }
}
@keyframes gq-arm-top {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(30deg) scaleY(0.8); }
  100% { transform: rotate(-10deg) scaleY(1); }
}
@keyframes gq-stomp {
  0% { transform: translate(0,0) scaleY(1); }
  100% { transform: translate(2px,-2px) scaleY(1.2); }
}
@keyframes gq-spin {
  0% { transform: rotate(0deg) scale(1); opacity: 0.3; }
  50% { transform: rotate(180deg) scale(1.3); opacity: 0.6; }
  100% { transform: rotate(360deg) scale(1); opacity: 0.3; }
}

.scn-ideal-governor {
  background:
    linear-gradient(135deg, #2a1e12 0%, #4a3420 40%, #6a4e32 100%),
    radial-gradient(ellipse at 70% 50%, #c8a070 0%, transparent 60%);
}
.scn-ideal-governor .chamber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%);
  opacity: 0.6;
}
.scn-ideal-governor .desk {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #6a4e32 0%, #4a3420 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-ideal-governor .gentleman {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 16%; height: 40%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0a06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  z-index: 2;
}
.scn-ideal-governor .glow-halo {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 24%; height: 40%;
  background: radial-gradient(ellipse, #f0d0a0 0%, transparent 70%);
  opacity: 0.3;
  animation: ig-halo 4s ease-in-out infinite alternate;
  z-index: 1;
}
.scn-ideal-governor .book {
  position: absolute; bottom: 22%; left: 40%; width: 8%; height: 10%;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2a12 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
}
.scn-ideal-governor .pipe {
  position: absolute; bottom: 34%; left: 65%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(30deg);
  transform-origin: 50% 10%;
  animation: ig-pipe 3s ease-in-out infinite alternate;
}
.scn-ideal-governor .smoke-1 {
  position: absolute; bottom: 40%; left: 67%; width: 3%; height: 6%;
  background: radial-gradient(circle, rgba(200,160,120,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ig-smoke-1 6s ease-out infinite;
}
.scn-ideal-governor .smoke-2 {
  position: absolute; bottom: 42%; left: 69%; width: 2%; height: 4%;
  background: radial-gradient(circle, rgba(200,160,120,0.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: ig-smoke-2 8s ease-out infinite 2s;
}
@keyframes ig-halo {
  0% { opacity: 0.2; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 0.4; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.3; transform: translateX(-50%) scale(1); }
}
@keyframes ig-pipe {
  0% { transform: rotate(25deg) translateY(0); }
  100% { transform: rotate(35deg) translateY(-3px); }
}
@keyframes ig-smoke-1 {
  0% { transform: translate(0,0) scale(1); opacity: 0.4; }
  100% { transform: translate(10px,-30px) scale(2); opacity: 0; }
}
@keyframes ig-smoke-2 {
  0% { transform: translate(0,0) scale(1); opacity: 0.3; }
  100% { transform: translate(15px,-20px) scale(1.5); opacity: 0; }
}

.scn-le-fever-recommended {
  background:
    linear-gradient(180deg, #2a1e12 0%, #4a3420 40%, #6a4e32 100%),
    radial-gradient(ellipse at 50% 60%, #c8a070 0%, transparent 60%);
}
.scn-le-fever-recommended .room-warm {
  position: absolute; inset: 0;
  background: linear-gradient(45deg, #3a2a1a 0%, #2a1e12 100%);
  opacity: 0.7;
}
.scn-le-fever-recommended .fireplace {
  position: absolute; bottom: 20%; left: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-le-fever-recommended .fire-glow {
  position: absolute; bottom: 28%; left: 12%; width: 16%; height: 20%;
  background: radial-gradient(circle, #e08050 0%, #c06030 40%, transparent 80%);
  border-radius: 50%;
  animation: lf-fire 2s ease-in-out infinite alternate;
  z-index: 1;
}
.scn-le-fever-recommended .uncle-toby {
  position: absolute; bottom: 30%; left: 35%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0a06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  z-index: 2;
}
.scn-le-fever-recommended .father-shandy {
  position: absolute; bottom: 30%; left: 55%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0a06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  z-index: 2;
}
.scn-le-fever-recommended .handshake {
  position: absolute; bottom: 48%; left: 47%; width: 8%; height: 4%;
  background: #1a120a;
  border-radius: 40% 40% 20% 20%;
  z-index: 3;
  animation: lf-shake 1.5s ease-in-out infinite alternate;
}
.scn-le-fever-recommended .pipe-fall {
  position: absolute; bottom: 36%; left: 38%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(-40deg);
  transform-origin: 50% 0%;
  animation: lf-pipe-drop 3s ease-in infinite;
}
.scn-le-fever-recommended .shadow-merge {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 6%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.3) 40%, rgba(0,0,0,0.3) 60%, transparent);
  border-radius: 50%;
  filter: blur(4px);
  animation: lf-shadow 4s ease-in-out infinite alternate;
}
@keyframes lf-fire {
  0% { transform: scale(1) translate(0,0); opacity: 0.7; }
  50% { transform: scale(1.1) translate(2px,-2px); opacity: 1; }
  100% { transform: scale(1.2) translate(-2px,-1px); opacity: 0.9; }
}
@keyframes lf-shake {
  0% { transform: translate(0,0) rotate(0deg); }
  100% { transform: translate(1px,-1px) rotate(2deg); }
}
@keyframes lf-pipe-drop {
  0% { transform: rotate(-40deg) translateY(0); opacity: 1; }
  100% { transform: rotate(-40deg) translateY(30px); opacity: 0.5; }
}
@keyframes lf-shadow {
  0% { transform: translateY(0) scaleX(1); opacity: 0.3; }
  100% { transform: translateY(3px) scaleX(1.1); opacity: 0.5; }
}

.scn-readers-patience-again {
  background: linear-gradient(180deg, #2b1e14 0%, #3c2a1c 50%, #4a3424 100%), radial-gradient(ellipse at 50% 100%, #5c3e2a 0%, transparent 70%);
}
.scn-readers-patience-again .candle {
  position: absolute; bottom: 20%; left: 22%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #d4a56a 0%, #c8924a 60%, #1a0e06 100%);
  border-radius: 2px 2px 1px 1px; box-shadow: 0 0 12px 3px #f0c080;
  animation: rpa-candle 4s ease-in-out infinite alternate;
}
.scn-readers-patience-again .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2818 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-readers-patience-again .book {
  position: absolute; bottom: 8%; left: 50%; width: 120px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: rpa-book 10s ease-in-out infinite alternate;
}
.scn-readers-patience-again .page-illustration {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #c8a878 0%, #a08050 60%, transparent 70%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 6px rgba(160,128,80,0.5);
  animation: rpa-illustration 8s ease-in-out infinite;
}
.scn-readers-patience-again .scholar {
  position: absolute; bottom: 32%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rpa-scholar 6s ease-in-out infinite alternate;
}
.scn-readers-patience-again .glow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 22% 55%, rgba(240,192,128,0.15) 0%, transparent 60%);
  pointer-events: none;
  animation: rpa-glow 5s ease-in-out infinite alternate;
}
@keyframes rpa-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.85; }
}
@keyframes rpa-book {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(1deg) translateY(1px); }
}
@keyframes rpa-illustration {
  0% { opacity: 0.6; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.02); }
  100% { opacity: 0.7; transform: translateX(-50%) scale(0.98); }
}
@keyframes rpa-scholar {
  0% { transform: translateX(0) rotate(-2deg); }
  100% { transform: translateX(4px) rotate(2deg); }
}
@keyframes rpa-glow {
  0% { opacity: 0.5; }
  100% { opacity: 0.8; }
}

.scn-toby-wish-repeated {
  background: linear-gradient(180deg, #2b1e14 0%, #3c2a1c 50%, #4a3424 100%), radial-gradient(ellipse at 50% 40%, #6a4a34 0%, transparent 70%);
}
.scn-toby-wish-repeated .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2818 0%, #2a1a0e 100%);
}
.scn-toby-wish-repeated .fireplace {
  position: absolute; bottom: 0; left: 20%; width: 100px; height: 120px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-toby-wish-repeated .toby {
  position: absolute; bottom: 18%; left: 35%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: twr-toby 4s ease-in-out infinite alternate;
}
.scn-toby-wish-repeated .slop {
  position: absolute; bottom: 20%; right: 30%; width: 45px; height: 65px;
  background: linear-gradient(180deg, #3a2818 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: twr-slop 5s ease-in-out infinite alternate;
}
.scn-toby-wish-repeated .flames {
  position: absolute; bottom: 8%; left: 22%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 80%, #f0a040 0%, #c06020 50%, transparent 90%);
  filter: blur(4px);
  animation: twr-flames 3s ease-in-out infinite alternate;
}
.scn-toby-wish-repeated .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 35% 50%, rgba(240,160,64,0.12) 0%, transparent 60%);
  pointer-events: none;
  animation: twr-glow 6s ease-in-out infinite alternate;
}
@keyframes twr-toby {
  0% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(8px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes twr-slop {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-6px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes twr-flames {
  0% { transform: scaleY(1); opacity: 0.7; }
  50% { transform: scaleY(1.4); opacity: 1; }
  100% { transform: scaleY(1.1); opacity: 0.8; }
}
@keyframes twr-glow {
  0% { opacity: 0.4; }
  100% { opacity: 0.7; }
}

.scn-wig-handkerchief-contretemps {
  background: linear-gradient(180deg, #2b1e14 0%, #3c2a1c 50%, #4a3424 100%), radial-gradient(ellipse at 60% 30%, #6a4a34 0%, transparent 70%);
}
.scn-wig-handkerchief-contretemps .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2818 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-wig-handkerchief-contretemps .wig {
  position: absolute; bottom: 8%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #c8a060 0%, #a08040 70%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: whc-wig 3s ease-in-out infinite alternate;
}
.scn-wig-handkerchief-contretemps .handkerchief {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e8c8a0 0%, #c8a070 100%);
  border-radius: 50%; opacity: 0.8; filter: blur(1px);
  animation: whc-handkerchief 2.5s ease-in-out infinite alternate;
}
.scn-wig-handkerchief-contretemps .slop-hand {
  position: absolute; bottom: 22%; left: 36%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2818 100%);
  border-radius: 30% 30% 20% 20%; transform-origin: bottom center;
  animation: whc-hand 4s ease-in-out infinite;
}
.scn-wig-handkerchief-contretemps .wig-shadow {
  position: absolute; bottom: 4%; left: 50%; width: 70px; height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: whc-shadow 3s ease-in-out infinite alternate;
}
.scn-wig-handkerchief-contretemps .confusion-lines {
  position: absolute; top: 20%; left: 35%; width: 80px; height: 60px;
  background: repeating-linear-gradient(45deg, rgba(200,160,80,0.2) 0px, rgba(200,160,80,0.2) 2px, transparent 2px, transparent 6px);
  animation: whc-lines 1s steps(2) infinite;
}
.scn-wig-handkerchief-contretemps .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 25%, rgba(240,200,128,0.1) 0%, transparent 60%);
  pointer-events: none;
  animation: whc-glow 4s ease-in-out infinite alternate;
}
@keyframes whc-wig {
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(5deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes whc-handkerchief {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(15deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes whc-hand {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(5deg); }
  50% { transform: translateX(0) rotate(-3deg); }
  75% { transform: translateX(-8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes whc-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity: 0.5; }
  100% { transform: translateX(-50%) scaleX(1.3); opacity: 0.3; }
}
@keyframes whc-lines {
  0% { opacity: 0.8; }
  100% { opacity: 0.2; }
}
@keyframes whc-glow {
  0% { opacity: 0.3; }
  100% { opacity: 0.7; }
}

.scn-right-hand-wig {
  background: linear-gradient(180deg, #2b1e14 0%, #3c2a1c 50%, #4a3424 100%), radial-gradient(ellipse at 50% 50%, #5e4030 0%, transparent 70%);
}
.scn-right-hand-wig .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2818 0%, #2a1a0e 100%);
}
.scn-right-hand-wig .father {
  position: absolute; bottom: 0; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3424 0%, #2a1a0e 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
  animation: rhw-father 6s ease-in-out infinite alternate;
}
.scn-right-hand-wig .wig-held {
  position: absolute; bottom: 55%; right: 20%; width: 50px; height: 35px;
  background: radial-gradient(ellipse at 50% 30%, #c8a060 0%, #a08040 70%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: rhw-wig-held 3s ease-in-out infinite alternate;
}
.scn-right-hand-wig .left-hand {
  position: absolute; bottom: 30%; left: 18%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2818 100%);
  border-radius: 30% 30% 20% 20%; transform-origin: bottom center;
  animation: rhw-left-hand 4s ease-in-out infinite alternate;
}
.scn-right-hand-wig .wig-box {
  position: absolute; bottom: 5%; left: 30%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #6a4a34 0%, #4a2e1a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: rhw-box 8s ease-in-out infinite;
}
.scn-right-hand-wig .candle {
  position: absolute; bottom: 45%; right: 12%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #d4a56a 0%, #c8924a 60%, #1a0e06 100%);
  border-radius: 2px; box-shadow: 0 0 10px 2px #f0c080;
  animation: rhw-candle 4s ease-in-out infinite alternate;
}
.scn-right-hand-wig .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 80% 55%, rgba(240,192,128,0.12) 0%, transparent 60%);
  pointer-events: none;
  animation: rhw-glow 5s ease-in-out infinite alternate;
}
@keyframes rhw-father {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-2deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(1deg) translateY(0); }
}
@keyframes rhw-wig-held {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg) scale(1.05); }
  100% { transform: rotate(-5deg); }
}
@keyframes rhw-left-hand {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes rhw-box {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes rhw-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.06); opacity: 1; }
  100% { transform: scaleY(0.94); opacity: 0.85; }
}
@keyframes rhw-glow {
  0% { opacity: 0.4; }
  100% { opacity: 0.7; }
}

.scn-prodigies-of-childhood { background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 40%, #0d0702 100%), radial-gradient(ellipse at 60% 20%, #4a2a1a 0%, transparent 70%); }
.scn-prodigies-of-childhood .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,12,5,.6) 0%, transparent 100%); animation: poc-bg 8s ease-in-out infinite alternate; }
.scn-prodigies-of-childhood .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%); border-bottom: 3px solid #5a4a3a; box-shadow: inset 0 0 60px rgba(0,0,0,.5); }
.scn-prodigies-of-childhood .desk { position:absolute; bottom:18%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #5a3a1a 0%, #3a220e 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.6); animation: poc-desk 6s ease-in-out infinite; }
.scn-prodigies-of-childhood .child { position:absolute; bottom:18%; left:18%; width:20%; height:42%; background: linear-gradient(180deg, #1a1208 0%, #0d0904 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: poc-child 4s ease-in-out infinite; }
.scn-prodigies-of-childhood .book { position:absolute; bottom:24%; left:32%; width:15%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: poc-book 7s ease-in-out infinite; }
.scn-prodigies-of-childhood .candle { position:absolute; bottom:30%; left:50%; width:3%; height:14%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 3px; transform-origin: bottom center; animation: poc-candle 2s ease-in-out infinite alternate; }
.scn-prodigies-of-childhood .glow { position:absolute; bottom:30%; left:50%; width:12%; height:18%; background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%); transform: translate(-50%, -10%); animation: poc-glow 3s ease-in-out infinite alternate; }
.scn-prodigies-of-childhood .shadow { position:absolute; bottom:18%; left:10%; width:30%; height:20%; background: linear-gradient(135deg, rgba(0,0,0,.4) 0%, transparent 100%); transform: skewX(-10deg); animation: poc-shadow 5s ease-in-out infinite alternate; }
@keyframes poc-bg { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes poc-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes poc-child { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-3px); } 50% { transform: rotate(-1deg) translateY(-1px); } 75% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes poc-book { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes poc-candle { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.02) rotate(0deg); } 100% { transform: scaleY(0.98) rotate(2deg); } }
@keyframes poc-glow { 0% { opacity:.6; transform: translate(-50%, -10%) scale(1); } 50% { opacity:1; transform: translate(-50%, -12%) scale(1.1); } 100% { opacity:.7; transform: translate(-50%, -8%) scale(0.95); } }
@keyframes poc-shadow { 0% { opacity:.3; transform: skewX(-10deg) translateX(0); } 100% { opacity:.5; transform: skewX(-8deg) translateX(5px); } }

.scn-prodigies-continued { background: linear-gradient(180deg, #1f1508 0%, #120a04 50%, #080402 100%), radial-gradient(ellipse at 40% 30%, #3a2510 0%, transparent 60%); }
.scn-prodigies-continued .bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(30,18,5,.5) 0%, transparent 100%); animation: pc-bg 12s ease-in-out infinite alternate; }
.scn-prodigies-continued .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #1a0e05 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-prodigies-continued .shelf { position:absolute; bottom:40%; left:5%; right:5%; height:6%; background: linear-gradient(180deg, #5a3a1a 0%, #3a220e 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-prodigies-continued .book-a { position:absolute; bottom:42%; left:12%; width:8%; height:18%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,.4); animation: pc-book 8s ease-in-out infinite; }
.scn-prodigies-continued .book-b { position:absolute; bottom:42%; left:22%; width:6%; height:22%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,.4); animation: pc-book 8s ease-in-out infinite 2s; }
.scn-prodigies-continued .book-c { position:absolute; bottom:42%; left:30%; width:10%; height:14%; background: linear-gradient(180deg, #4a321a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,.4); animation: pc-book 8s ease-in-out infinite 4s; }
.scn-prodigies-continued .child { position:absolute; bottom:30%; left:45%; width:18%; height:40%; background: linear-gradient(180deg, #1a1208 0%, #0d0904 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pc-child 5s ease-in-out infinite; }
.scn-prodigies-continued .ladder { position:absolute; bottom:30%; left:60%; width:4%; height:50%; background: linear-gradient(180deg, #6a4a2a 0%, #3a220e 100%); border-radius: 2px; transform: rotate(5deg); animation: pc-ladder 10s ease-in-out infinite; }
@keyframes pc-bg { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.7; } }
@keyframes pc-book { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes pc-child { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(-1px); } 75% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes pc-ladder { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }

.scn-lipsius-prodigy { background: linear-gradient(180deg, #1a1008 0%, #0f0804 40%, #050200 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%); }
.scn-lipsius-prodigy .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,6,2,.5) 0%, transparent 100%); animation: lp-bg 10s ease-in-out infinite alternate; }
.scn-lipsius-prodigy .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-lipsius-prodigy .globe { position:absolute; bottom:30%; left:20%; width:20%; height:30%; background: radial-gradient(circle at 40% 30%, #6a8a5a 0%, #3a5a2a 50%, #1a2a0a 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: lp-globe 15s ease-in-out infinite alternate; }
.scn-lipsius-prodigy .figure { position:absolute; bottom:30%; left:45%; width:16%; height:45%; background: linear-gradient(180deg, #1a1208 0%, #0d0904 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lp-figure 6s ease-in-out infinite; }
.scn-lipsius-prodigy .scroll { position:absolute; bottom:28%; left:62%; width:12%; height:8%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 4px; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: lp-scroll 4s ease-in-out infinite alternate; }
.scn-lipsius-prodigy .lantern { position:absolute; bottom:35%; left:55%; width:5%; height:10%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 4px; box-shadow: 0 0 12px 4px #ffd080; animation: lp-lantern 3s ease-in-out infinite alternate; }
.scn-lipsius-prodigy .glow { position:absolute; bottom:35%; left:55%; width:15%; height:20%; background: radial-gradient(circle, #ffd080 0%, #c08040 30%, transparent 70%); transform: translate(-50%, -20%); animation: lp-glow 4s ease-in-out infinite alternate; }
@keyframes lp-bg { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes lp-globe { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(0.98); } }
@keyframes lp-figure { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(-1px); } 75% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes lp-scroll { 0% { transform: rotate(-10deg) translateX(0); } 100% { transform: rotate(-12deg) translateX(3px); } }
@keyframes lp-lantern { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.03) rotate(0deg); } 100% { transform: scaleY(0.97) rotate(2deg); } }
@keyframes lp-glow { 0% { opacity:.5; transform: translate(-50%, -20%) scale(1); } 50% { opacity:1; transform: translate(-50%, -22%) scale(1.1); } 100% { opacity:.6; transform: translate(-50%, -18%) scale(0.95); } }

.scn-slop-susannah-quarrel { background: linear-gradient(180deg, #1a1008 0%, #0f0804 50%, #050200 100%), radial-gradient(ellipse at 60% 20%, #4a2a1a 0%, transparent 70%); }
.scn-slop-susannah-quarrel .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,12,5,.4) 0%, transparent 100%); animation: ss-bg 9s ease-in-out infinite alternate; }
.scn-slop-susannah-quarrel .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-slop-susannah-quarrel .slop { position:absolute; bottom:25%; left:15%; width:18%; height:50%; background: linear-gradient(180deg, #1a1208 0%, #0d0904 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; animation: ss-slop 3s ease-in-out infinite alternate; }
.scn-slop-susannah-quarrel .susannah { position:absolute; bottom:25%; right:15%; width:18%; height:50%; background: linear-gradient(180deg, #1a1208 0%, #0d0904 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg) scaleX(-1); transform-origin: bottom center; animation: ss-susannah 3s ease-in-out infinite alternate 0.5s; }
.scn-slop-susannah-quarrel .candle { position:absolute; bottom:30%; left:49%; width:3%; height:16%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 3px; transform-origin: bottom center; animation: ss-candle 2s ease-in-out infinite alternate; }
.scn-slop-susannah-quarrel .glow { position:absolute; bottom:30%; left:49%; width:15%; height:20%; background: radial-gradient(circle, #ffd080 0%, #c08040 30%, transparent 70%); transform: translate(-50%, -10%); animation: ss-glow 3s ease-in-out infinite alternate; }
.scn-slop-susannah-quarrel .plaster { position:absolute; bottom:28%; left:40%; width:8%; height:6%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 50%; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: ss-plaster 4s ease-in-out infinite; }
@keyframes ss-bg { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.7; } }
@keyframes ss-slop { 0% { transform: rotate(8deg) translateY(0); } 25% { transform: rotate(12deg) translateY(-2px); } 50% { transform: rotate(10deg) translateY(-1px); } 75% { transform: rotate(14deg) translateY(-3px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes ss-susannah { 0% { transform: rotate(-8deg) scaleX(-1) translateY(0); } 25% { transform: rotate(-12deg) scaleX(-1) translateY(-2px); } 50% { transform: rotate(-10deg) scaleX(-1) translateY(-1px); } 75% { transform: rotate(-14deg) scaleX(-1) translateY(-3px); } 100% { transform: rotate(-8deg) scaleX(-1) translateY(0); } }
@keyframes ss-candle { 0% { transform: scaleY(1) rotate(-3deg); } 50% { transform: scaleY(1.03) rotate(0deg); } 100% { transform: scaleY(0.97) rotate(3deg); } }
@keyframes ss-glow { 0% { opacity:.5; transform: translate(-50%, -10%) scale(1); } 50% { opacity:1; transform: translate(-50%, -12%) scale(1.15); } 100% { opacity:.6; transform: translate(-50%, -8%) scale(0.95); } }
@keyframes ss-plaster { 0%,100% { transform: rotate(15deg) translateY(0) scale(1); } 50% { transform: rotate(12deg) translateY(-2px) scale(0.95); } }

/* Scene: trims-false-hope */
.scn-trims-false-hope {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e30 40%, #0e0e16 100%), radial-gradient(ellipse at 30% 70%, #4a2a3a 0%, transparent 60%);
}
.scn-trims-false-hope .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2e1e2a 0%, #1a121e 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-trims-false-hope .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%); border-radius: 20% 0 0 0 / 40% 0 0 0; }
.scn-trims-false-hope .table { position:absolute; bottom:20%; left:35%; width:120px; height:40px; background: linear-gradient(180deg, #3a2a20 0%, #1e140e 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 6px 12px rgba(0,0,0,.5); transform: perspective(300px) rotateX(10deg); }
.scn-trims-false-hope .candle { position:absolute; bottom:34%; left:45%; width:8px; height:30px; background: linear-gradient(180deg, #f0e0b0 0%, #c0a070 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 20px 6px rgba(255,200,100,.5); animation: tfh-candle 4s ease-in-out infinite alternate; }
.scn-trims-false-hope .book { position:absolute; bottom:24%; left:40%; width:50px; height:35px; background: linear-gradient(135deg, #3e2a1c 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.5); transform: rotate(5deg); animation: tfh-book 6s ease-in-out infinite; }
.scn-trims-false-hope .figure-trim { position:absolute; bottom:18%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #2a1e22 0%, #161016 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tfh-figure 3s ease-in-out infinite; }
.scn-trims-false-hope .shadow-layer { position:absolute; inset:0; background: radial-gradient(ellipse at 45% 60%, transparent 0%, rgba(0,0,0,.5) 70%); animation: tfh-shadow 8s ease-in-out infinite alternate; }
@keyframes tfh-candle { 0% { transform: scaleY(1) rotate(0deg); opacity:0.9; box-shadow: 0 0 15px 4px rgba(255,200,100,.4); } 50% { transform: scaleY(1.05) rotate(1deg); opacity:1; box-shadow: 0 0 25px 8px rgba(255,200,100,.6); } 100% { transform: scaleY(0.95) rotate(-1deg); opacity:0.85; box-shadow: 0 0 18px 5px rgba(255,200,100,.45); } }
@keyframes tfh-book { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(6deg) translateY(1px); } }
@keyframes tfh-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes tfh-shadow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* Scene: sermon-rules */
.scn-sermon-rules {
  background: linear-gradient(180deg, #2a2a38 0%, #1e2030 40%, #12141e 100%), radial-gradient(ellipse at 60% 30%, #3a4a5a 0%, transparent 60%);
}
.scn-sermon-rules .bg-window { position:absolute; top:10%; right:15%; width:80px; height:120px; background: radial-gradient(ellipse at center, #4a6a8a 0%, #1e2a3a 70%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.4), 0 0 30px rgba(74,106,138,.3); animation: sru-window 12s ease-in-out infinite alternate; }
.scn-sermon-rules .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a2a36 0%, #1e1e2a 100%); }
.scn-sermon-rules .pulpit { position:absolute; bottom:25%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3028 0%, #221a14 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-sermon-rules .bible { position:absolute; bottom:32%; left:50%; width:30px; height:20px; transform:translateX(-50%); background: linear-gradient(135deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: sru-bible 5s ease-in-out infinite alternate; }
.scn-sermon-rules .figure-preacher { position:absolute; bottom:18%; left:50%; width:22px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1e26 0%, #0e121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sru-preacher 3s ease-in-out infinite; }
.scn-sermon-rules .light-ray { position:absolute; top:12%; left:50%; width:120px; height:200px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(160,200,230,.15) 0%, transparent 100%); clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%); animation: sru-ray 8s ease-in-out infinite alternate; }
@keyframes sru-window { 0% { opacity:0.6; box-shadow: 0 0 20px rgba(74,106,138,.2); } 50% { opacity:1; box-shadow: 0 0 40px rgba(74,106,138,.5); } 100% { opacity:0.7; box-shadow: 0 0 25px rgba(74,106,138,.3); } }
@keyframes sru-bible { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) rotate(2deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-1deg) scale(0.98); } }
@keyframes sru-preacher { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(1px) rotate(0deg); } }
@keyframes sru-ray { 0% { opacity:0.2; transform: translateX(-50%) scaleY(1); } 50% { opacity:0.5; transform: translateX(-50%) scaleY(1.05); } 100% { opacity:0.3; transform: translateX(-50%) scaleY(0.95); } }

/* Scene: sermon-praised */
.scn-sermon-praised {
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 40%, #1a0e08 100%), radial-gradient(ellipse at 40% 70%, #6a4a2a 0%, transparent 60%);
}
.scn-sermon-praised .bg-room { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); }
.scn-sermon-praised .wall-panel { position:absolute; top:15%; left:25%; width:50%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: spr-panel 10s ease-in-out infinite alternate; }
.scn-sermon-praised .lamp { position:absolute; bottom:40%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #c0a070 0%, #806040 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 30px 8px rgba(255,200,100,.4); animation: spr-lamp 3s ease-in-out infinite alternate; }
.scn-sermon-praised .chair { position:absolute; bottom:22%; left:15%; width:40px; height:50px; background: linear-gradient(180deg, #3a2a1e 0%, #1e140e 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-sermon-praised .figure-father { position:absolute; bottom:18%; left:20%; width:24px; height:55px; background: linear-gradient(180deg, #2a1e1a 0%, #16100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spr-figure 4s ease-in-out infinite; }
.scn-sermon-praised .figure-trim { position:absolute; bottom:20%; left:40%; width:20px; height:45px; background: linear-gradient(180deg, #221e1a 0%, #14100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spr-trim 3.5s ease-in-out infinite 0.5s; }
.scn-sermon-praised .candle-glow { position:absolute; bottom:18%; left:30%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%); animation: spr-glow 4s ease-in-out infinite alternate; }
@keyframes spr-panel { 0% { opacity:0.8; box-shadow: inset 0 0 15px rgba(0,0,0,.2); } 50% { opacity:1; box-shadow: inset 0 0 25px rgba(0,0,0,.4); } 100% { opacity:0.9; box-shadow: inset 0 0 20px rgba(0,0,0,.3); } }
@keyframes spr-lamp { 0% { box-shadow: 0 0 20px 4px rgba(255,200,100,.3); transform: scaleY(1); } 50% { box-shadow: 0 0 35px 10px rgba(255,200,100,.6); transform: scaleY(1.02); } 100% { box-shadow: 0 0 25px 6px rgba(255,200,100,.4); transform: scaleY(0.98); } }
@keyframes spr-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(0deg); } }
@keyframes spr-trim { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes spr-glow { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }

/* Scene: sermon-authorship */
.scn-sermon-authorship {
  background: linear-gradient(180deg, #2e221a 0%, #1e1410 40%, #100a08 100%), radial-gradient(ellipse at 50% 60%, #5a3a22 0%, transparent 60%);
}
.scn-sermon-authorship .bg-curtain { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(90deg, #3a2a1e 0%, #2a1a12 50%, #3a2a1e 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); }
.scn-sermon-authorship .table { position:absolute; bottom:20%; left:30%; width:160px; height:30px; background: linear-gradient(180deg, #3a2a1e 0%, #1e140e 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); transform: perspective(400px) rotateX(5deg); }
.scn-sermon-authorship .paper { position:absolute; bottom:28%; left:38%; width:60px; height:45px; background: linear-gradient(135deg, #c8b898 0%, #a08870 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); transform: rotate(-8deg); animation: sau-paper 6s ease-in-out infinite; }
.scn-sermon-authorship .figure-uncle { position:absolute; bottom:18%; left:15%; width:22px; height:50px; background: linear-gradient(180deg, #2a1e1a 0%, #16100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sau-figure 3s ease-in-out infinite; }
.scn-sermon-authorship .figure-father { position:absolute; bottom:20%; left:35%; width:24px; height:52px; background: linear-gradient(180deg, #1e1612 0%, #12100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sau-figure 3.5s ease-in-out infinite 0.3s; }
.scn-sermon-authorship .figure-slop { position:absolute; bottom:19%; left:55%; width:22px; height:48px; background: linear-gradient(180deg, #2a1e1a 0%, #14100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sau-figure 3.2s ease-in-out infinite 0.6s; }
.scn-sermon-authorship .candle { position:absolute; bottom:30%; left:48%; width:8px; height:28px; background: linear-gradient(180deg, #f0d8b0 0%, #c0a070 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(255,200,100,.5); animation: sau-candle 4s ease-in-out infinite alternate; }
.scn-sermon-authorship .inkwell { position:absolute; bottom:26%; left:54%; width:14px; height:16px; background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: sau-ink 7s ease-in-out infinite alternate; }
@keyframes sau-paper { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(1px); } }
@keyframes sau-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(0deg); } }
@keyframes sau-candle { 0% { transform: scaleY(1) rotate(0deg); opacity:0.9; box-shadow: 0 0 15px 4px rgba(255,200,100,.4); } 50% { transform: scaleY(1.04) rotate(1deg); opacity:1; box-shadow: 0 0 25px 8px rgba(255,200,100,.6); } 100% { transform: scaleY(0.96) rotate(-1deg); opacity:0.85; box-shadow: 0 0 18px 5px rgba(255,200,100,.45); } }
@keyframes sau-ink { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.03); } 100% { transform: translateY(1px) scale(0.97); } }

.scn-le-fevers-prayers {
  background: linear-gradient(180deg, #1a1208 0%, #2a1e10 35%, #3a2a16 70%, #2a1e10 100%), radial-gradient(ellipse at 50% 30%, #4a3820 0%, transparent 70%);
}
.scn-le-fevers-prayers .wall {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #3a2a16 0%, #2a1e10 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-le-fevers-prayers .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a1e10 0%, #1a1208 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
}
.scn-le-fevers-prayers .table {
  position: absolute; bottom: 30%; left: 35%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #4a3820 0%, #3a2a16 100%);
  border-radius: 4px;
  transform: perspective(600px) rotateX(8deg);
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-le-fevers-prayers .candle {
  position: absolute; bottom: 42%; left: 40%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 6px #ffb050;
  animation: lfp-candle 4s ease-in-out infinite alternate;
}
.scn-le-fevers-prayers .glow {
  position: absolute; bottom: 42%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,176,80,0.4) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: lfp-glow 3s ease-in-out infinite alternate;
}
.scn-le-fevers-prayers .toast {
  position: absolute; bottom: 36%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #8a6020 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: lfp-toast 6s ease-in-out infinite;
}
.scn-le-fevers-prayers .figure-servant {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1e10 0%, #1a1208 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lfp-servant 8s ease-in-out infinite;
}
.scn-le-fevers-prayers .figure-shandy {
  position: absolute; bottom: 20%; left: 60%; width: 32px; height: 85px;
  background: linear-gradient(180deg, #3a2a16 0%, #2a1e10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lfp-shandy 7s ease-in-out infinite alternate;
}
@keyframes lfp-candle {
  0% { box-shadow: 0 0 15px 4px #ffb050; height: 40px; }
  50% { box-shadow: 0 0 25px 8px #ffa040; height: 38px; }
  100% { box-shadow: 0 0 20px 6px #ffb050; height: 40px; }
}
@keyframes lfp-glow {
  0% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.95); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
  100% { opacity: 0.8; transform: translate(-50%, -50%) scale(1); }
}
@keyframes lfp-toast {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-3px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes lfp-servant {
  0%,100% { transform: translateX(0); }
  25% { transform: translateX(4px); }
  50% { transform: translateX(0); }
  75% { transform: translateX(-4px); }
}
@keyframes lfp-shandy {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) translateX(3px); }
  100% { transform: rotate(-2deg); }
}

.scn-curate-skeptic {
  background: linear-gradient(180deg, #1a1508 0%, #2a1e0e 50%, #3a2a14 100%), radial-gradient(ellipse at 50% 20%, #4a3820 0%, transparent 80%);
}
.scn-curate-skeptic .wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a2a14 0%, #2a1e0e 100%);
  box-shadow: inset 0 -30px 50px rgba(0,0,0,0.7);
}
.scn-curate-skeptic .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a1e0e 0%, #1a1508 100%);
  box-shadow: inset 0 30px 50px rgba(0,0,0,0.9);
}
.scn-curate-skeptic .chair {
  position: absolute; bottom: 30%; left: 25%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a3020 0%, #3a2014 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  transform: rotate(-3deg);
}
.scn-curate-skeptic .cushion {
  position: absolute; bottom: 50%; left: 28%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a5a3a 0%, #6a4024 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cs-cushion 6s ease-in-out infinite alternate;
}
.scn-curate-skeptic .book {
  position: absolute; bottom: 18%; left: 20%; width: 24px; height: 32px;
  background: linear-gradient(180deg, #5a4020 0%, #3a2a14 100%);
  border-radius: 4px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cs-book 12s ease-in-out infinite;
}
.scn-curate-skeptic .candle {
  position: absolute; bottom: 45%; left: 55%; width: 8px; height: 36px;
  background: linear-gradient(180deg, #ffc060 0%, #b08030 100%);
  border-radius: 3px;
  box-shadow: 0 0 20px 6px #ffb040;
  animation: cs-candle 3s ease-in-out infinite alternate;
}
.scn-curate-skeptic .curate {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 90px;
  background: linear-gradient(180deg, #1a1508 0%, #0a0804 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cs-curate 8s ease-in-out infinite;
}
.scn-curate-skeptic .trim {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1e0e 0%, #1a1508 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cs-trim 7s ease-in-out infinite alternate;
}
@keyframes cs-cushion {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes cs-book {
  0%,100% { transform: rotate(-15deg); }
  50% { transform: rotate(-12deg) translateY(2px); }
}
@keyframes cs-candle {
  0% { box-shadow: 0 0 15px 4px #ffb040; height: 36px; }
  50% { box-shadow: 0 0 25px 8px #ffa030; height: 34px; }
  100% { box-shadow: 0 0 20px 6px #ffb040; height: 36px; }
}
@keyframes cs-curate {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg) translateX(2px); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-2deg) translateX(-2px); }
  100% { transform: rotate(0deg); }
}
@keyframes cs-trim {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg) translateX(3px); }
  100% { transform: rotate(-1deg); }
}

.scn-soldier-prayers {
  background: linear-gradient(180deg, #1a120a 0%, #2a1a0e 40%, #3a2a14 70%, #2a1a0e 100%), radial-gradient(ellipse at 50% 40%, #4a3020 0%, transparent 70%);
}
.scn-soldier-prayers .trench-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a120a 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.8);
}
.scn-soldier-prayers .water {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a3a22 0%, #3a2a16 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: sp-water 15s ease-in-out infinite alternate;
}
.scn-soldier-prayers .soldier-kneel {
  position: absolute; bottom: 25%; left: 45%; width: 34px; height: 90px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sp-soldier 6s ease-in-out infinite;
}
.scn-soldier-prayers .rifle {
  position: absolute; bottom: 28%; left: 42%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%);
  border-radius: 2px;
  transform: rotate(-20deg) translateX(-10px);
  animation: sp-rifle 10s ease-in-out infinite;
}
.scn-soldier-prayers .prayer-hands {
  position: absolute; bottom: 42%; left: 48%; width: 12px; height: 14px;
  background: radial-gradient(circle, #4a3020 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(255,200,150,0.3);
  animation: sp-hands 3s ease-in-out infinite alternate;
}
.scn-soldier-prayers .mud {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a2a14 0%, #1a120a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.7);
  animation: sp-mud 20s ease-in-out infinite alternate;
}
.scn-soldier-prayers .tent {
  position: absolute; bottom: 45%; left: 15%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #4a3820 0%, #2a1a0e 100%);
  clip-path: polygon(0% 100%, 30% 0%, 70% 0%, 100% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: sp-tent 25s ease-in-out infinite alternate;
}
@keyframes sp-water {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sp-soldier {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes sp-rifle {
  0% { transform: rotate(-20deg) translateX(-10px); }
  50% { transform: rotate(-22deg) translateX(-12px); }
  100% { transform: rotate(-20deg) translateX(-10px); }
}
@keyframes sp-hands {
  0% { transform: scale(0.95); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes sp-mud {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}
@keyframes sp-tent {
  0% { transform: rotate(-1deg) scaleX(1); }
  50% { transform: rotate(1deg) scaleX(1.02); }
  100% { transform: rotate(-1deg) scaleX(1); }
}

.scn-judgment-review {
  background: linear-gradient(180deg, #2a2018 0%, #3a3020 40%, #4a3a28 70%, #3a3020 100%), radial-gradient(ellipse at 50% 30%, #5a4a30 0%, transparent 70%);
}
.scn-judgment-review .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a3020 0%, #2a2018 100%);
  box-shadow: inset 0 -30px 50px rgba(0,0,0,0.8);
}
.scn-judgment-review .clouds {
  position: absolute; top: 15%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 30% 50%, rgba(100,80,50,0.2) 0%, transparent 60%), radial-gradient(ellipse at 70% 30%, rgba(100,80,50,0.15) 0%, transparent 50%);
  filter: blur(10px);
  animation: jr-clouds 40s linear infinite;
}
.scn-judgment-review .book {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #8a7040 0%, #6a5030 100%);
  border-radius: 8px;
  transform: translate(-50%, 0) perspective(400px) rotateY(-10deg);
  box-shadow: 0 8px 16px rgba(0,0,0,0.7), inset 0 0 40px rgba(200,180,100,0.3);
  animation: jr-book 4s ease-in-out infinite alternate;
}
.scn-judgment-review .rays {
  position: absolute; bottom: 30%; left: 50%; width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(255,220,150,0.15) 0%, transparent 70%);
  transform: translate(-50%, -30%);
  animation: jr-rays 6s ease-in-out infinite alternate;
}
.scn-judgment-review .figure-toby {
  position: absolute; bottom: 15%; left: 30%; width: 36px; height: 100px;
  background: linear-gradient(180deg, #2a2018 0%, #1a140e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: jr-toby 8s ease-in-out infinite;
}
.scn-judgment-review .figure-trim {
  position: absolute; bottom: 15%; left: 55%; width: 32px; height: 90px;
  background: linear-gradient(180deg, #3a2a1c 0%, #2a1e12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: jr-trim 7s ease-in-out infinite alternate;
}
.scn-judgment-review .halo {
  position: absolute; bottom: 55%; left: 50%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, transparent 70%);
  transform: translate(-50%, 0);
  animation: jr-halo 5s ease-in-out infinite alternate;
}
@keyframes jr-clouds {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100px); }
}
@keyframes jr-book {
  0% { transform: translate(-50%, 0) perspective(400px) rotateY(-10deg); }
  50% { transform: translate(-50%, 0) perspective(400px) rotateY(-8deg) translateY(-3px); }
  100% { transform: translate(-50%, 0) perspective(400px) rotateY(-10deg); }
}
@keyframes jr-rays {
  0% { opacity: 0.6; transform: translate(-50%, -30%) scale(0.9); }
  50% { opacity: 1; transform: translate(-50%, -30%) scale(1.1); }
  100% { opacity: 0.8; transform: translate(-50%, -30%) scale(1); }
}
@keyframes jr-toby {
  0%,100% { transform: rotate(-1deg) translateX(0); }
  25% { transform: rotate(0deg) translateX(4px); }
  50% { transform: rotate(1deg) translateX(0); }
  75% { transform: rotate(0deg) translateX(-4px); }
}
@keyframes jr-trim {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0deg); }
}
@keyframes jr-halo {
  0% { transform: translate(-50%, 0) scale(0.95); opacity: 0.7; }
  50% { transform: translate(-50%, 0) scale(1.05); opacity: 1; }
  100% { transform: translate(-50%, 0) scale(1); opacity: 0.8; }
}

.scn-prelude-to-siege {
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 50%, #0a0a0a 100%), radial-gradient(ellipse at 50% 0%, #4a3a3a 0%, transparent 70%);
}
.scn-prelude-to-siege .wall { position:absolute; inset:20% 10% 30% 10%; background: linear-gradient(90deg, #4a3a3a 0%, #3a2a2a 100%); border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-prelude-to-siege .floor { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); }
.scn-prelude-to-siege .door { position:absolute; bottom:10%; left:38%; width:24%; height:60%; background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius:8% 8% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-prelude-to-siege .lock { position:absolute; bottom:45%; left:44%; width:6%; height:8%; background: radial-gradient(circle, #c0a060 0%, #806040 70%); border-radius:50%; box-shadow: 0 0 8px 2px #a08050; animation: prs-lock 4s ease-in-out infinite alternate; }
.scn-prelude-to-siege .candle-glow { position:absolute; bottom:40%; left:20%; width:8%; height:12%; background: radial-gradient(circle, #e0b070 0%, #c09050 40%, transparent 70%); border-radius:50%; filter: blur(6px); animation: prs-candle 3s ease-in-out infinite alternate; }
.scn-prelude-to-siege .figure { position:absolute; bottom:10%; left:30%; width:12%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prs-figure 6s ease-in-out infinite; }
.scn-prelude-to-siege .window { position:absolute; top:25%; right:15%; width:15%; height:20%; background: linear-gradient(180deg, #6a5a5a 0%, #4a3a3a 100%); border-radius:10%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-prelude-to-siege .daylight { position:absolute; top:25%; right:15%; width:15%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,.3) 0%, transparent 70%); animation: prs-daylight 20s ease-in-out infinite alternate; }
@keyframes prs-lock { 0% { transform: scale(1) rotate(0); opacity:.8; } 50% { transform: scale(1.2) rotate(10deg); opacity:1; } 100% { transform: scale(1) rotate(0); opacity:.85; } }
@keyframes prs-candle { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.2); } 100% { opacity:.75; transform: scaleY(1); } }
@keyframes prs-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4%) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-3%) rotate(2deg); } 100% { transform: translateX(2%) rotate(0); } }
@keyframes prs-daylight { 0% { opacity:.1; } 50% { opacity:.3; } 100% { opacity:.15; } }

.scn-endless-story {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #90ee90 70%, #f5deb3 100%), radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 60%);
}
.scn-endless-story .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #a0d8ef 0%, #ffffff 100%); animation: es-sky 30s ease-in-out infinite alternate; }
.scn-endless-story .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7ccd7c 0%, #3cb371 100%); }
.scn-endless-story .tree { position:absolute; bottom:40%; left:20%; width:30%; height:60%; background: linear-gradient(180deg, #8b4513 0%, #5c2e0e 100%); border-radius: 0 0 20% 20% / 0 0 60% 60%; }
.scn-endless-story .corporal { position:absolute; bottom:20%; left:40%; width:15%; height:30%; background: linear-gradient(180deg, #708090 0%, #2f4f4f 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: es-corporal 5s ease-in-out infinite; }
.scn-endless-story .listener { position:absolute; bottom:18%; left:60%; width:12%; height:28%; background: linear-gradient(180deg, #4a6741 0%, #2e4a28 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: es-listener 4s ease-in-out infinite; }
.scn-endless-story .story-bubble { position:absolute; top:15%; left:45%; width:25%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.9) 0%, rgba(255,255,255,.5) 60%, transparent 100%); border-radius:50%; filter: blur(3px); animation: es-bubble 6s ease-in-out infinite; }
.scn-endless-story .leaf-a { position:absolute; top:30%; left:25%; width:4%; height:2%; background: #32cd32; border-radius:50%; filter: blur(1px); animation: es-leafa 7s linear infinite; }
.scn-endless-story .leaf-b { position:absolute; top:35%; left:15%; width:3%; height:2%; background: #228b22; border-radius:50%; filter: blur(1px); animation: es-leafb 9s linear infinite; animation-delay: -3s; }
@keyframes es-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes es-corporal { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3%) rotate(5deg); } 50% { transform: translateX(0) rotate(-3deg); } 75% { transform: translateX(-2%) rotate(4deg); } 100% { transform: translateX(1%) rotate(0); } }
@keyframes es-listener { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-3%) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes es-bubble { 0% { transform: scale(1) translateY(0); opacity:.7; } 50% { transform: scale(1.2) translateY(-5%); opacity:1; } 100% { transform: scale(1) translateY(0); opacity:.8; } }
@keyframes es-leafa { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(40px) translateY(-20px) rotate(180deg); } 100% { transform: translateX(80px) translateY(0) rotate(360deg); opacity:0; } }
@keyframes es-leafb { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(30px) translateY(-15px) rotate(180deg); } 100% { transform: translateX(60px) translateY(0) rotate(360deg); opacity:0; } }

.scn-fathers-patience {
  background: linear-gradient(180deg, #1e90ff 0%, #87cefa 40%, #ffd700 100%), radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 70%);
}
.scn-fathers-patience .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4682b4 0%, #87cefa 100%); animation: fp-sky 20s ease-in-out infinite alternate; }
.scn-fathers-patience .sun { position:absolute; top:5%; left:80%; width:10%; height:10%; background: radial-gradient(circle, #ffa500 0%, #ff8c00 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,165,0,.5); animation: fp-sun 12s ease-in-out infinite; }
.scn-fathers-patience .father { position:absolute; bottom:20%; left:50%; width:14%; height:40%; transform:translateX(-50%); background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fp-father 4s ease-in-out infinite; }
.scn-fathers-patience .auxiliary-1 { position:absolute; bottom:20%; left:35%; width:6%; height:20%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fp-aux1 5s ease-in-out infinite; }
.scn-fathers-patience .auxiliary-2 { position:absolute; bottom:20%; left:45%; width:6%; height:18%; background: linear-gradient(180deg, #daa520 0%, #b8860b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fp-aux2 6s ease-in-out infinite; animation-delay: -2s; }
.scn-fathers-patience .auxiliary-3 { position:absolute; bottom:20%; left:55%; width:6%; height:22%; background: linear-gradient(180deg, #cd853f 0%, #a0522d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fp-aux3 7s ease-in-out infinite; animation-delay: -4s; }
.scn-fathers-patience .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #228b22 0%, #006400 100%); }
.scn-fathers-patience .shadow { position:absolute; bottom:20%; left:40%; width:20%; height:5%; background: rgba(0,0,0,.3); border-radius:50%; animation: fp-shadow 4s ease-in-out infinite; }
@keyframes fp-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes fp-sun { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.1) translate(10px,-5px); } 100% { transform: scale(1) translate(0,0); } }
@keyframes fp-father { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-52%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes fp-aux1 { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5%) rotate(5deg); } }
@keyframes fp-aux2 { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-8%) rotate(-5deg); } }
@keyframes fp-aux3 { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6%) rotate(8deg); } }
@keyframes fp-shadow { 0%,100% { transform: scaleX(1); opacity:.3; } 50% { transform: scaleX(1.2); opacity:.5; } }

.scn-fortifications-cursed {
  background: linear-gradient(180deg, #ffeb3b 0%, #ffc107 30%, #b8860b 100%), radial-gradient(ellipse at 50% 100%, #b8860b 0%, transparent 60%);
}
.scn-fortifications-cursed .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87cefa 0%, #ffd700 100%); animation: fc-sky 15s ease-in-out infinite alternate; }
.scn-fortifications-cursed .wall-left { position:absolute; bottom:20%; left:10%; width:20%; height:50%; background: linear-gradient(180deg, #8b4513 0%, #654321 100%); border-radius:10% 10% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: fc-wall 6s ease-in-out infinite alternate; }
.scn-fortifications-cursed .wall-right { position:absolute; bottom:20%; right:10%; width:20%; height:50%; background: linear-gradient(180deg, #8b4513 0%, #654321 100%); border-radius:10% 10% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: fc-wall 6s ease-in-out infinite alternate-reverse; }
.scn-fortifications-cursed .bastion { position:absolute; bottom:20%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); transform-origin: bottom center; animation: fc-bastion 8s ease-in-out infinite; }
.scn-fortifications-cursed .mound { position:absolute; bottom:15%; left:30%; width:40%; height:10%; background: radial-gradient(ellipse at 50% 50%, #6b4226 0%, #4a2c14 100%); border-radius:50%; }
.scn-fortifications-cursed .figure { position:absolute; bottom:10%; left:48%; width:10%; height:25%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fc-figure 4s ease-in-out infinite; }
.scn-fortifications-cursed .gesture { position:absolute; bottom:30%; left:48%; width:4%; height:6%; background: #1a1a1a; border-radius: 50% 50% 0 0; transform-origin: bottom left; animation: fc-gesture 4s ease-in-out infinite; }
.scn-fortifications-cursed .cloud { position:absolute; top:10%; left:20%; width:15%; height:8%; background: rgba(255,255,255,.7); border-radius:50%; filter: blur(4px); animation: fc-cloud 30s linear infinite; }
@keyframes fc-sky { 0% { opacity:.aa; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes fc-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-3%); } 100% { transform: translateY(0); } }
@keyframes fc-bastion { 0% { transform: scaleY(1); } 25% { transform: scaleY(0.95); } 50% { transform: scaleY(1.05); } 75% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes fc-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3%) rotate(10deg); } 50% { transform: translateX(-3%) rotate(-5deg); } 75% { transform: translateX(2%) rotate(8deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fc-gesture { 0% { transform: rotate(-30deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-30deg); } }
@keyframes fc-cloud { 0% { transform: translateX(-20vw); } 100% { transform: translateX(120vw); } }

.scn-name-confirmed {
  background: linear-gradient(180deg, #2b1e1e 0%, #3d2b1f 40%, #4a3728 70%, #2b1e1e 100%),
              radial-gradient(circle at 30% 60%, #5a3a1a 0%, transparent 50%);
}
.scn-name-confirmed .bg-dim { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #4a3728 0%, #1f1410 100%); animation: nc-bg-pulse 10s ease-in-out infinite alternate; }
.scn-name-confirmed .wall-panel { position:absolute; bottom:40%; left:10%; width:40%; height:50%; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 100%); border-radius:0 20% 0 0 / 0 30% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); transform: perspective(600px) rotateY(5deg); }
.scn-name-confirmed .table { position:absolute; bottom:20%; left:25%; width:120px; height:15px; background: linear-gradient(180deg, #5a3a2a 0%, #3d2b1f 100%); border-radius:10%; transform: skewX(-10deg); box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-name-confirmed .chair { position:absolute; bottom:20%; left:5%; width:40px; height:80px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10% / 40% 40% 10% 10%; transform: skewY(-5deg); animation: nc-chair-rock 8s ease-in-out infinite; }
.scn-name-confirmed .father-silhouette { position:absolute; bottom:18%; left:15%; width:55px; height:90px; background: linear-gradient(180deg, #1a0e0e 0%, #0f0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(0.5px); animation: nc-father 6s ease-in-out infinite; }
.scn-name-confirmed .button-pop { position:absolute; bottom:45%; left:30%; width:12px; height:12px; background: radial-gradient(circle, #c8a060 0%, #a08040 100%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(200,160,96,.4); animation: nc-button 2s ease-in-out infinite; }
.scn-name-confirmed .candle-glow { position:absolute; bottom:35%; left:48%; width:20px; height:20px; background: radial-gradient(circle, #f0c080 0%, transparent 70%); transform: scale(2); animation: nc-candle 5s ease-in-out infinite; }
.scn-name-confirmed .candle-flame { position:absolute; bottom:38%; left:48%; width:8px; height:16px; background: linear-gradient(180deg, #f0e0a0 0%, #e0a040 30%, #c06020 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: nc-flame 0.4s ease-in-out infinite; }
.scn-name-confirmed .dust-mote { position:absolute; top:30%; left:20%; width:4px; height:4px; background: rgba(255,220,180,.3); border-radius:50%; filter: blur(1px); animation: nc-dust 20s linear infinite; }
@keyframes nc-bg-pulse { 0%,100% { opacity:.7 } 50% { opacity:.85 } }
@keyframes nc-chair-rock { 0%,100% { transform: skewY(-5deg) rotate(0deg) } 50% { transform: skewY(-3deg) rotate(2deg) } }
@keyframes nc-father { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(-3px) translateY(-2px) rotate(2deg) } 60% { transform: translateX(2px) translateY(0) rotate(-2deg) } }
@keyframes nc-button { 0%,100% { transform: translateY(0) scale(1) } 40% { transform: translateY(-15px) scale(1.4) } 60% { transform: translateY(5px) scale(0.9) } 80% { transform: translateY(-3px) scale(1.1) } }
@keyframes nc-candle { 0%,100% { opacity:.6; transform: scale(2) } 50% { opacity:.9; transform: scale(2.2) } }
@keyframes nc-flame { 0%,100% { height:16px; width:8px; opacity:.9 } 50% { height:18px; width:6px; opacity:1 } }
@keyframes nc-dust { 0% { transform: translate(0,0) scale(1); opacity:.3 } 25% { transform: translate(30px,-20px) scale(1.2); opacity:.5 } 50% { transform: translate(60px,-10px) scale(.8); opacity:.2 } 75% { transform: translate(90px,-30px) scale(1.1); opacity:.4 } 100% { transform: translate(120px,-40px) scale(.9); opacity:.3 } }

.scn-button-holes-vs-sleep {
  background: linear-gradient(180deg, #1a1414 0%, #2a1f1a 40%, #3a2a20 70%, #1a1414 100%),
              radial-gradient(circle at 50% 70%, #4a3520 0%, transparent 60%);
}
.scn-button-holes-vs-sleep .bg-dim { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #2a1f1a 0%, #0f0a0a 100%); animation: bh-dim 12s ease-in-out infinite alternate; }
.scn-button-holes-vs-sleep .bed-frame { position:absolute; bottom:18%; left:15%; width:70%; height:12px; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius:20%; box-shadow: 0 2px 8px rgba(0,0,0,.6); }
.scn-button-holes-vs-sleep .blanket { position:absolute; bottom:22%; left:20%; width:60%; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10% / 50% 50% 10% 10%; transform-origin: bottom center; animation: bh-blanket 8s ease-in-out infinite; }
.scn-button-holes-vs-sleep .sleeping-figure { position:absolute; bottom:20%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #1a0e0e 0%, #0f0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bh-sleep 6s ease-in-out infinite; }
.scn-button-holes-vs-sleep .sewing-table { position:absolute; bottom:15%; right:10%; width:50px; height:10px; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 100%); border-radius:10%; transform: rotate(5deg); }
.scn-button-holes-vs-sleep .button-hole { position:absolute; bottom:40%; right:18%; width:14px; height:30px; background: radial-gradient(ellipse, #c8a060 0%, #8a6a40 100%); border-radius:40%; transform: rotate(-20deg); box-shadow: inset 0 0 4px rgba(0,0,0,.5); animation: bh-hole 4s ease-in-out infinite; }
.scn-button-holes-vs-sleep .thread { position:absolute; bottom:42%; right:22%; width:2px; height:40px; background: linear-gradient(180deg, #b09060 0%, #705030 100%); transform: rotate(30deg); animation: bh-thread 3s ease-in-out infinite; }
.scn-button-holes-vs-sleep .snore-puff { position:absolute; bottom:45%; left:35%; width:8px; height:8px; background: rgba(200,180,160,.2); border-radius:50%; filter: blur(3px); animation: bh-snore 5s ease-in-out infinite; }
@keyframes bh-dim { 0%,100% { opacity:.8 } 50% { opacity:.65 } }
@keyframes bh-blanket { 0%,100% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.05) translateY(-2px) } }
@keyframes bh-sleep { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(5deg) } }
@keyframes bh-hole { 0%,100% { transform: rotate(-20deg) scale(1) } 50% { transform: rotate(-15deg) scale(1.1) } }
@keyframes bh-thread { 0%,100% { transform: rotate(30deg) scaleY(1) } 50% { transform: rotate(35deg) scaleY(0.9) } }
@keyframes bh-snore { 0%,100% { transform: translate(0,0) scale(1); opacity:.2 } 50% { transform: translate(10px,-10px) scale(2); opacity:.5 } }

.scn-montaigne-sleep {
  background: linear-gradient(180deg, #1e1a16 0%, #2a221c 40%, #362e26 70%, #1e1a16 100%),
              radial-gradient(circle at 50% 60%, #4a3828 0%, transparent 50%);
}
.scn-montaigne-sleep .bg-dim { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #2a221c 0%, #0f0c0a 100%); animation: ms-dim 15s ease-in-out infinite alternate; }
.scn-montaigne-sleep .wall { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #362e26 0%, #2a221c 100%); border-radius:0 0 50% 50% / 0 0 30% 30%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-montaigne-sleep .wooden-bed { position:absolute; bottom:20%; left:10%; width:80%; height:15px; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius:10%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-montaigne-sleep .mattress { position:absolute; bottom:24%; left:15%; width:70%; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10% / 40% 40% 10% 10%; animation: ms-mattress 10s ease-in-out infinite; }
.scn-montaigne-sleep .figure-resting { position:absolute; bottom:22%; left:25%; width:50px; height:70px; background: linear-gradient(180deg, #1c1410 0%, #0e0a08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ms-figure 8s ease-in-out infinite; }
.scn-montaigne-sleep .pillow { position:absolute; bottom:32%; left:20%; width:30px; height:15px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ms-pillow 5s ease-in-out infinite; }
.scn-montaigne-sleep .candle-stub { position:absolute; bottom:15%; right:20%; width:6px; height:12px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:10% 10% 20% 20% / 20% 20% 20% 20%; }
.scn-montaigne-sleep .gentle-glow { position:absolute; bottom:10%; right:15%; width:30px; height:30px; background: radial-gradient(circle, rgba(240,200,160,.4) 0%, transparent 70%); animation: ms-glow 6s ease-in-out infinite alternate; }
.scn-montaigne-sleep .dust-drifting { position:absolute; top:20%; left:40%; width:6px; height:6px; background: rgba(220,200,180,.15); border-radius:50%; filter: blur(2px); animation: ms-dust 30s linear infinite; }
@keyframes ms-dim { 0%,100% { opacity:.75 } 50% { opacity:.9 } }
@keyframes ms-mattress { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ms-figure { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(3deg) } }
@keyframes ms-pillow { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }
@keyframes ms-glow { 0%,100% { opacity:.4; transform: scale(1) } 50% { opacity:.6; transform: scale(1.2) } }
@keyframes ms-dust { 0% { transform: translate(0,0) scale(1); opacity:.2 } 25% { transform: translate(20px,-10px) scale(1.3); opacity:.4 } 50% { transform: translate(40px,-5px) scale(.9); opacity:.1 } 75% { transform: translate(60px,-15px) scale(1.1); opacity:.3 } 100% { transform: translate(80px,-20px) scale(.8); opacity:.2 } }

.scn-tristram-lamented {
  background: linear-gradient(180deg, #0c0808 0%, #1a1210 40%, #261a14 70%, #0c0808 100%),
              radial-gradient(circle at 50% 70%, #2a1a12 0%, transparent 50%);
}
.scn-tristram-lamented .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #1a1210 0%, #050303 100%); animation: tl-bg 12s ease-in-out infinite alternate; }
.scn-tristram-lamented .wall-shadow { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius:0 0 40% 40% / 0 0 20% 20%; filter: drop-shadow(0 0 20px rgba(0,0,0,.8)); }
.scn-tristram-lamented .father-figure { position:absolute; bottom:15%; left:30%; width:50px; height:90px; background: linear-gradient(180deg, #0f0808 0%, #070404 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: tl-father 8s ease-in-out infinite; }
.scn-tristram-lamented .hat-in-hand { position:absolute; bottom:20%; left:45%; width:25px; height:10px; background: linear-gradient(90deg, #1a1210 0%, #2a1a12 100%); border-radius:40% 40% 10% 10% / 60% 60% 10% 10%; transform: rotate(-15deg); animation: tl-hat 6s ease-in-out infinite; }
.scn-tristram-lamented .tear-drip { position:absolute; bottom:35%; left:42%; width:4px; height:10px; background: rgba(180,200,220,.3); border-radius:50%; filter: blur(1px); animation: tl-tear 4s ease-in-out infinite; }
.scn-tristram-lamented .candle-glow-dim { position:absolute; bottom:10%; left:15%; width:25px; height:25px; background: radial-gradient(circle, rgba(200,150,100,.2) 0%, transparent 60%); animation: tl-glow 10s ease-in-out infinite alternate; }
.scn-tristram-lamented .candle-wax { position:absolute; bottom:8%; left:15%; width:6px; height:20px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:10% 10% 20% 20% / 20% 20% 20% 20%; transform: skewX(-5deg); }
.scn-tristram-lamented .shadow-shape { position:absolute; bottom:0; left:20%; width:60%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.4) 100%); border-radius:50% 50% 0 0 / 80% 80% 0 0; filter: blur(8px); animation: tl-shadow 15s ease-in-out infinite; }
@keyframes tl-bg { 0%,100% { opacity:.6 } 50% { opacity:.8 } }
@keyframes tl-father { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } }
@keyframes tl-hat { 0%,100% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.1) } }
@keyframes tl-tear { 0%,100% { transform: translateY(0) scaleY(1); opacity:.3 } 50% { transform: translateY(-5px) scaleY(1.5); opacity:.6 } }
@keyframes tl-glow { 0%,100% { opacity:.2; transform: scale(1) } 50% { opacity:.5; transform: scale(1.3) } }
@keyframes tl-shadow { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(5px) scaleY(1.1) } }

/* trim-consoles */
.scn-trim-consoles {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 60%, #2a1a0e 100%),
              radial-gradient(ellipse at 40% 70%, #6a4a2a 0%, transparent 60%);
}
.scn-trim-consoles .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, transparent 100%);
  animation: tc-wall 20s ease-in-out infinite alternate;
}
.scn-trim-consoles .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: tc-table 12s ease-in-out infinite;
}
.scn-trim-consoles .candle {
  position: absolute; bottom: 26%; left: 50%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #e8c088 0%, #b08040 80%);
  border-radius: 2px 2px 0 0;
  transform: translateX(-50%);
  animation: tc-candle 3s ease-in-out infinite alternate;
}
.scn-trim-consoles .soldier {
  position: absolute; bottom: 20%; left: 20%; width: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0e 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tc-soldier 8s ease-in-out infinite;
}
.scn-trim-consoles .cap {
  position: absolute; bottom: 26%; left: 38%; width: 6%; height: 6%;
  background: #5a3a1a;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: tc-cap 4s ease-in-out infinite;
}
.scn-trim-consoles .glow {
  position: absolute; bottom: 30%; left: 50%; width: 20%; height: 20%;
  background: radial-gradient(circle, #e8b060 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: tc-glow 2s ease-in-out infinite alternate;
}
@keyframes tc-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes tc-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes tc-candle { 0% { opacity: 0.9; transform: translateX(-50%) scaleY(1) } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.08) } 100% { opacity: 0.95; transform: translateX(-50%) scaleY(1) } }
@keyframes tc-soldier { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes tc-cap { 0% { transform: rotate(0) } 30% { transform: rotate(10deg) } 60% { transform: rotate(-5deg) } 100% { transform: rotate(0) } }
@keyframes tc-glow { 0% { opacity:0.4; transform: translate(-50%, -50%) scale(1) } 50% { opacity:0.8; transform: translate(-50%, -50%) scale(1.1) } 100% { opacity:0.5; transform: translate(-50%, -50%) scale(1) } }

/* king-of-bohemia */
.scn-king-of-bohemia {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a1208 100%),
              radial-gradient(ellipse at 50% 20%, #6a4a2a 0%, transparent 50%);
}
.scn-king-of-bohemia .throne {
  position: absolute; bottom: 10%; left: 30%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: kb-throne 16s ease-in-out infinite alternate;
}
.scn-king-of-bohemia .king {
  position: absolute; bottom: 25%; left: 42%; width: 12%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kb-king 6s ease-in-out infinite;
}
.scn-king-of-bohemia .crown {
  position: absolute; bottom: 58%; left: 42%; width: 14%; height: 8%;
  background: linear-gradient(180deg, #e8b060 0%, #b08040 100%);
  clip-path: polygon(0% 100%, 15% 0%, 30% 40%, 45% 0%, 60% 40%, 75% 0%, 90% 30%, 100% 100%);
  animation: kb-crown 3s ease-in-out infinite;
}
.scn-king-of-bohemia .castle-1 {
  position: absolute; bottom: 30%; right: 10%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: kb-castle1 12s ease-in-out infinite alternate;
}
.scn-king-of-bohemia .castle-2 {
  position: absolute; bottom: 30%; right: 3%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: kb-castle2 14s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.scn-king-of-bohemia .lantern {
  position: absolute; bottom: 45%; left: 50%; width: 4%; height: 10%;
  background: radial-gradient(circle, #e8b060 0%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: kb-lantern 4s ease-in-out infinite alternate;
}
@keyframes kb-throne { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes kb-king { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes kb-crown { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes kb-castle1 { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.04) } 100% { transform: scaleY(1) } }
@keyframes kb-castle2 { 0% { transform: scaleY(1) translateX(0) } 50% { transform: scaleY(1.03) translateX(2px) } 100% { transform: scaleY(1) translateX(0) } }
@keyframes kb-lantern { 0% { opacity:0.5; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.6; transform: translateX(-50%) scale(1) } }

/* cap-moralized */
.scn-cap-moralized {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1208 50%, #3a2a1a 100%),
              radial-gradient(ellipse at 30% 60%, #5a3a1a 0%, transparent 60%);
}
.scn-cap-moralized .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%);
  animation: cm-wall 18s ease-in-out infinite alternate;
}
.scn-cap-moralized .figure {
  position: absolute; bottom: 10%; left: 25%; width: 14%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0e 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cm-figure 8s ease-in-out infinite;
}
.scn-cap-moralized .arm {
  position: absolute; bottom: 25%; left: 38%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1208 100%);
  border-radius: 40%;
  transform-origin: bottom left;
  animation: cm-arm 4s ease-in-out infinite;
}
.scn-cap-moralized .cap {
  position: absolute; bottom: 40%; left: 38%; width: 8%; height: 6%;
  background: #5a3a1a;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cm-cap 6s ease-in-out infinite;
}
.scn-cap-moralized .table {
  position: absolute; bottom: 5%; left: 20%; width: 50%; height: 4%;
  background: linear-gradient(180deg, #4a2a0e 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cm-table 12s ease-in-out infinite;
}
.scn-cap-moralized .candle {
  position: absolute; bottom: 10%; left: 65%; width: 3%; height: 14%;
  background: linear-gradient(180deg, #e8c088 0%, #b08040 80%);
  border-radius: 2px 2px 0 0;
  animation: cm-candle 3s ease-in-out infinite alternate;
}
@keyframes cm-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cm-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes cm-arm { 0% { transform: rotate(0) } 30% { transform: rotate(20deg) } 60% { transform: rotate(-10deg) } 100% { transform: rotate(0) } }
@keyframes cm-cap { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(10deg) } 60% { transform: translateY(2px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cm-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes cm-candle { 0% { opacity:0.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.06) } 100% { opacity:0.95; transform: scaleY(1) } }

/* bohemia-date */
.scn-bohemia-date {
  background: linear-gradient(180deg, #1a1208 0%, #2a1a0e 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 0%, #5a3a1a 0%, transparent 50%);
}
.scn-bohemia-date .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 0 0 0 0;
  animation: bd-ground 24s ease-in-out infinite alternate;
}
.scn-bohemia-date .giant {
  position: absolute; bottom: 10%; left: 10%; width: 20%; height: 60%;
  background: radial-gradient(ellipse at 50% 40%, #2a1a0e 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 20% 20% 40% 40%;
  animation: bd-giant 10s ease-in-out infinite;
}
.scn-bohemia-date .king {
  position: absolute; bottom: 25%; left: 60%; width: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bd-king 6s ease-in-out infinite;
}
.scn-bohemia-date .moon {
  position: absolute; top: 10%; right: 20%; width: 12%; height: 12%;
  background: radial-gradient(circle, #e8c088 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(232,192,136,0.3);
  animation: bd-moon 8s ease-in-out infinite alternate;
}
.scn-bohemia-date .lantern {
  position: absolute; bottom: 40%; left: 50%; width: 4%; height: 10%;
  background: radial-gradient(circle, #e8b060 0%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: bd-lantern 4s ease-in-out infinite alternate;
}
.scn-bohemia-date .stars {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 30%;
  background: radial-gradient(2px 2px at 10% 40%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 30% 60%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 50% 20%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 70% 50%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 90% 30%, #fff 0%, transparent 100%);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  animation: bd-stars 30s linear infinite;
}
@keyframes bd-ground { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bd-giant { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes bd-king { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bd-moon { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.7; transform: scale(1) } }
@keyframes bd-lantern { 0% { opacity:0.5; transform: translateX(-50%) scale(1) } 50% { opacity:0.9; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.6; transform: translateX(-50%) scale(1) } }
@keyframes bd-stars { 0% { opacity:0.3 } 50% { opacity:0.8 } 100% { opacity:0.3 } }

.scn-volume-two-epigraph { background: linear-gradient(180deg, #2b2018 0%, #3d2b20 40%, #4d3a2a 100%), radial-gradient(ellipse at 50% 70%, #5a4530 0%, transparent 70%); }
.scn-volume-two-epigraph .wall { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #2d221a 0px, #3a2a1e 4px, #2d221a 8px); opacity:0.3; }
.scn-volume-two-epigraph .candle-base { position:absolute; bottom:35%; left:45%; width:8px; height:50px; background: linear-gradient(180deg, #b8956a 0%, #8c6b4a 100%); border-radius:4px 4px 2px 2px; box-shadow: 2px 0 4px rgba(0,0,0,0.3); }
.scn-volume-two-epigraph .candle-flame { position:absolute; bottom:67%; left:45.5%; width:6px; height:16px; background: radial-gradient(circle, #ffea80 20%, #e0a030 60%, transparent 80%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 20px 6px #ffd060; animation: v2e-flicker 4s ease-in-out infinite alternate; }
.scn-volume-two-epigraph .book-spine { position:absolute; bottom:20%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #6a4a2e 0%, #4a3020 100%); border-radius:2px 6px 6px 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.5); transform:rotate(-8deg); }
.scn-volume-two-epigraph .book-page { position:absolute; bottom:25%; left:32%; width:30px; height:50px; background: linear-gradient(135deg, #e8dcc8 0%, #c8b89a 100%); border-radius:0 6px 6px 0; transform:rotate(-8deg); box-shadow: 1px 1px 4px rgba(0,0,0,0.2); }
.scn-volume-two-epigraph .glow-orb { position:absolute; bottom:40%; left:42%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,80,0.25) 0%, transparent 70%); border-radius:50%; animation: v2e-pulse 7s ease-in-out infinite alternate; }
@keyframes v2e-flicker { 0% { transform: scaleY(1) translateY(0); opacity:0.8; } 50% { transform: scaleY(1.15) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.7; } }
@keyframes v2e-pulse { 0% { transform: scale(0.95); opacity:0.5; } 50% { transform: scale(1.05); opacity:0.8; } 100% { transform: scale(1); opacity:0.6; } }

.scn-slop-cuts-thumb { background: linear-gradient(180deg, #1a1614 0%, #2f2420 40%, #3d2c26 100%), radial-gradient(ellipse at 60% 50%, #4a352e 0%, transparent 60%); }
.scn-slop-cuts-thumb .hand-back { position:absolute; bottom:10%; left:20%; width:120px; height:80px; background: linear-gradient(135deg, #a0806a 0%, #7a5e4c 100%); border-radius:40% 20% 40% 40% / 60% 30% 60% 50%; transform:rotate(-10deg); box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
.scn-slop-cuts-thumb .thumb-cut { position:absolute; bottom:25%; left:28%; width:20px; height:30px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:50% 50% 30% 30%; transform:rotate(15deg); box-shadow: 0 0 12px 4px rgba(200,85,61,0.5); animation: sct-bleed 0.8s ease-in-out infinite alternate; }
.scn-slop-cuts-thumb .knife-blade { position:absolute; bottom:15%; left:45%; width:8px; height:70px; background: linear-gradient(180deg, #b0b8c0 0%, #707880 100%); border-radius:2px 2px 6px 6px; transform:rotate(25deg); box-shadow: -2px 0 4px rgba(0,0,0,0.3); animation: sct-shake 0.3s ease-in-out infinite; }
.scn-slop-cuts-thumb .blood-drop { position:absolute; bottom:5%; left:30%; width:12px; height:14px; background: radial-gradient(circle, #b87878 20%, #702243 80%); border-radius:50% 50% 50% 30%; transform:rotate(10deg); animation: sct-drip 2s ease-in-out infinite; }
.scn-slop-cuts-thumb .shadow-cut { position:absolute; bottom:0; left:15%; width:130px; height:20px; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); border-radius:50%; filter: blur(5px); transform:rotate(-5deg); }
.scn-slop-cuts-thumb .table-edge { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #4a3a32 0%, #2a201c 100%); box-shadow: inset 0 4px 6px rgba(0,0,0,0.6); }
@keyframes sct-bleed { 0% { transform: scale(1) rotate(15deg); opacity:0.9; } 50% { transform: scale(1.2) rotate(18deg); opacity:1; } 100% { transform: scale(0.95) rotate(12deg); opacity:0.8; } }
@keyframes sct-shake { 0% { transform: rotate(24deg) translateX(0); } 25% { transform: rotate(26deg) translateX(2px); } 50% { transform: rotate(23deg) translateX(-1px); } 75% { transform: rotate(25deg) translateX(1px); } 100% { transform: rotate(24deg) translateX(0); } }
@keyframes sct-drip { 0% { transform: translateY(0); opacity:1; } 70% { transform: translateY(8px); opacity:0.6; } 100% { transform: translateY(0); opacity:0.8; } }

.scn-cursing-discourse { background: linear-gradient(180deg, #252020 0%, #3a302a 50%, #4a3e36 100%), radial-gradient(ellipse at 50% 30%, #5a4a3e 0%, transparent 60%); }
.scn-cursing-discourse .floor-plank { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #3a302a 0px, #4a3e36 10px, #3a302a 20px); }
.scn-cursing-discourse .father-sil { position:absolute; bottom:20%; left:25%; width:40px; height:70px; background: #1a1614; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: cd-bob 2s ease-in-out infinite alternate; }
.scn-cursing-discourse .obadiah-sil { position:absolute; bottom:20%; right:25%; width:38px; height:68px; background: #1a1614; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(3deg); animation: cd-bob 2.3s ease-in-out infinite alternate-reverse; }
.scn-cursing-discourse .arm-waving { position:absolute; bottom:50%; left:34%; width:12px; height:30px; background: #1a1614; border-radius:30% 30% 40% 40%; transform-origin: bottom left; animation: cd-wave 0.8s ease-in-out infinite; }
.scn-cursing-discourse .candle-far { position:absolute; bottom:30%; left:50%; width:6px; height:40px; background: linear-gradient(180deg, #b8956a 0%, #7a5e3a 100%); border-radius:3px; box-shadow: 0 0 12px 4px #ffd060; }
.scn-cursing-discourse .shadow-cast { position:absolute; bottom:5%; left:20%; width:180px; height:30px; background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: cd-shift 5s ease-in-out infinite alternate; }
.scn-cursing-discourse .wall-panel { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0px, rgba(0,0,0,0.05) 2px, transparent 4px); pointer-events:none; }
@keyframes cd-bob { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-4px); } 100% { transform: rotate(-2deg) translateY(2px); } }
@keyframes cd-wave { 0% { transform: rotate(30deg); } 25% { transform: rotate(60deg); } 50% { transform: rotate(20deg); } 75% { transform: rotate(70deg); } 100% { transform: rotate(30deg); } }
@keyframes cd-shift { 0% { transform: translateX(0); opacity:0.5; } 100% { transform: translateX(20px); opacity:0.8; } }

.scn-ernulphus-introduced { background: linear-gradient(180deg, #201c18 0%, #2e2620 40%, #3d322a 100%), radial-gradient(ellipse at 50% 50%, #4a3c30 0%, transparent 60%); }
.scn-ernulphus-introduced .fireplace { position:absolute; bottom:10%; left:30%; width:120px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-ernulphus-introduced .mantel { position:absolute; top:35%; left:30%; width:140px; height:12px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-ernulphus-introduced .scroll-l { position:absolute; top:38%; left:32%; width:30px; height:50px; background: linear-gradient(180deg, #c8b89a 0%, #a8947a 100%); border-radius:0 20px 20px 0; transform:rotate(-15deg); box-shadow: 2px 2px 4px rgba(0,0,0,0.3); animation: ern-unroll 8s ease-in-out infinite alternate; }
.scn-ernulphus-introduced .scroll-r { position:absolute; top:36%; left:52%; width:28px; height:48px; background: linear-gradient(180deg, #c8b89a 0%, #a8947a 100%); border-radius:20px 0 0 20px; transform:rotate(10deg); box-shadow: -2px 2px 4px rgba(0,0,0,0.3); animation: ern-unroll 9s ease-in-out infinite alternate-reverse; }
.scn-ernulphus-introduced .fire-core { position:absolute; bottom:15%; left:38%; width:20px; height:30px; background: radial-gradient(circle, #ffc040 20%, #e07820 60%, transparent 80%); border-radius:50% 50% 30% 30%; animation: ern-fire 0.6s ease-in-out infinite alternate; }
.scn-ernulphus-introduced .fire-glow { position:absolute; bottom:10%; left:30%; width:120px; height:100px; background: radial-gradient(circle, rgba(255,160,40,0.15) 0%, transparent 70%); border-radius:50%; animation: ern-flicker 2s ease-in-out infinite alternate; }
.scn-ernulphus-introduced .chimney-back { position:absolute; top:0; left:30%; width:130px; height:40%; background: linear-gradient(180deg, #2a221e 0%, #1a1410 100%); border-radius:10% 10% 0 0; }
@keyframes ern-unroll { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.2); } 100% { transform: rotate(-15deg) scaleY(0.9); } }
@keyframes ern-fire { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.2) translateY(-3px); } 100% { transform: scaleY(0.9) translateY(1px); } }
@keyframes ern-flicker { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }

/* le-fevers-blessing - warm dim interior, farewell embrace */
.scn-le-fevers-blessing {
  background:
    linear-gradient(180deg, #2a1f18 0%, #3d2b20 40%, #5a3e2a 100%),
    radial-gradient(ellipse at 30% 60%, #5a3e2a 0%, transparent 50%);
}
.scn-le-fevers-blessing .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #2a1f18 0%, #3d2b20 100%);
  animation: lb-wall 8s ease-in-out infinite alternate;
}
.scn-le-fevers-blessing .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #4a3525 0%, #2e1f15 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-le-fevers-blessing .window {
  position:absolute; top:10%; left:20%; width:90px; height:120px;
  background: radial-gradient(circle at 50% 30%, #f5d4a0 0%, #b08040 70%);
  border: 4px solid #6a4a30;
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 0 20px 6px rgba(240,200,120,0.3);
  animation: lb-window 6s ease-in-out infinite alternate;
}
.scn-le-fevers-blessing .table {
  position:absolute; bottom:28%; left:25%; width:120px; height:18px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-le-fevers-blessing .figure-left {
  position:absolute; bottom:18%; left:30%; width:40px; height:90px;
  background: linear-gradient(180deg, #1a1512 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lb-figureL 4s ease-in-out infinite alternate;
}
.scn-le-fevers-blessing .figure-right {
  position:absolute; bottom:18%; left:42%; width:44px; height:92px;
  background: linear-gradient(180deg, #1a1512 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lb-figureR 4s ease-in-out infinite alternate;
}
.scn-le-fevers-blessing .lantern {
  position:absolute; bottom:50%; left:50%; width:16px; height:24px;
  background: radial-gradient(circle at 50% 40%, #ffd080 0%, #b06530 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(255,180,80,0.5);
  animation: lb-lantern 3s ease-in-out infinite alternate;
}
.scn-le-fevers-blessing .ring-glow {
  position:absolute; bottom:32%; left:36%; width:14px; height:14px;
  background: radial-gradient(circle, #ffcc66 0%, #c08040 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,200,80,0.6);
  animation: lb-ring 5s ease-in-out infinite alternate;
}
@keyframes lb-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes lb-window { 0% { box-shadow: 0 0 15px 4px rgba(240,200,120,0.2); } 50% { box-shadow: 0 0 30px 8px rgba(240,200,120,0.4); } 100% { box-shadow: 0 0 20px 5px rgba(240,200,120,0.25); } }
@keyframes lb-figureL { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes lb-figureR { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes lb-lantern { 0% { box-shadow: 0 0 20px 5px rgba(255,180,80,0.4); } 50% { box-shadow: 0 0 35px 12px rgba(255,180,80,0.6); } 100% { box-shadow: 0 0 25px 7px rgba(255,180,80,0.45); } }
@keyframes lb-ring { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(1); opacity:0.8; } }

/* recommendation-accepted - warm interior, three figures, handshake */
.scn-recommendation-accepted {
  background:
    linear-gradient(180deg, #2a2018 0%, #3d2e22 40%, #4e3a2a 100%),
    radial-gradient(ellipse at 60% 50%, #4e3a2a 0%, transparent 60%);
}
.scn-recommendation-accepted .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a2018 0%, #3d2e22 100%);
  animation: ra-wall 10s ease-in-out infinite alternate;
}
.scn-recommendation-accepted .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #4e3a2a 0%, #2e1f15 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
}
.scn-recommendation-accepted .chair {
  position:absolute; bottom:20%; left:18%; width:50px; height:70px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-recommendation-accepted .figure-toby {
  position:absolute; bottom:12%; left:22%; width:46px; height:100px;
  background: linear-gradient(180deg, #1a1512 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-toby 5s ease-in-out infinite alternate;
}
.scn-recommendation-accepted .figure-trim {
  position:absolute; bottom:12%; left:36%; width:44px; height:98px;
  background: linear-gradient(180deg, #1a1512 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-trim 5s ease-in-out infinite alternate;
}
.scn-recommendation-accepted .figure-boy {
  position:absolute; bottom:12%; left:30%; width:34px; height:70px;
  background: linear-gradient(180deg, #1a1512 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-boy 5s ease-in-out infinite alternate;
}
.scn-recommendation-accepted .candle {
  position:absolute; bottom:40%; left:50%; width:12px; height:30px;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b06530 60%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 25px 8px rgba(255,180,80,0.5);
  animation: ra-candle 3s ease-in-out infinite alternate;
}
.scn-recommendation-accepted .paper {
  position:absolute; bottom:24%; left:50%; width:30px; height:40px;
  background: linear-gradient(180deg, #d4c0a0 0%, #b09878 100%);
  border-radius: 4%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ra-paper 8s ease-in-out infinite alternate;
}
@keyframes ra-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ra-toby { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ra-trim { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ra-boy { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ra-candle { 0% { box-shadow: 0 0 15px 5px rgba(255,180,80,0.4); } 50% { box-shadow: 0 0 30px 10px rgba(255,180,80,0.6); } 100% { box-shadow: 0 0 20px 6px rgba(255,180,80,0.45); } }
@keyframes ra-paper { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(1); } }

/* fame-exaggerates - funny dim interior, exaggerated shadow of Doctor Slop */
.scn-fame-exaggerates {
  background:
    linear-gradient(180deg, #2a2218 0%, #3d3225 40%, #4e3e2e 100%),
    radial-gradient(ellipse at 40% 70%, #4e3e2e 0%, transparent 60%);
}
.scn-fame-exaggerates .room-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a2218 0%, #3d3225 100%);
  animation: fe-bg 8s ease-in-out infinite alternate;
}
.scn-fame-exaggerates .bookshelf {
  position:absolute; top:8%; right:5%; width:70px; height:130px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-fame-exaggerates .lamp {
  position:absolute; top:20%; left:30%; width:20px; height:40px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b06530 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 25px 8px rgba(255,180,80,0.5);
  animation: fe-lamp 3s ease-in-out infinite alternate;
}
.scn-fame-exaggerates .figure-slop {
  position:absolute; bottom:15%; left:25%; width:50px; height:110px;
  background: linear-gradient(180deg, #1a1512 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fe-slop 2s ease-in-out infinite;
}
.scn-fame-exaggerates .shadow-slop {
  position:absolute; bottom:10%; left:40%; width:90px; height:160px;
  background: linear-gradient(180deg, #0a0806 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.5;
  transform: scaleX(1.5) skewX(-10deg);
  animation: fe-shadow 2s ease-in-out infinite;
}
.scn-fame-exaggerates .trumpet {
  position:absolute; bottom:35%; left:35%; width:16px; height:40px;
  background: linear-gradient(180deg, #c8a060 0%, #a07040 100%);
  border-radius: 20% 20% 40% 40% / 40% 40% 60% 60%;
  transform: rotate(30deg);
  animation: fe-trumpet 4s ease-in-out infinite alternate;
}
@keyframes fe-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fe-lamp { 0% { box-shadow: 0 0 15px 5px rgba(255,180,80,0.4); } 50% { box-shadow: 0 0 30px 10px rgba(255,180,80,0.6); } 100% { box-shadow: 0 0 20px 6px rgba(255,180,80,0.45); } }
@keyframes fe-slop { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-6px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes fe-shadow { 0% { transform: scaleX(1.5) skewX(-10deg) translateY(0); } 30% { transform: scaleX(1.5) skewX(-10deg) translateY(-5px); } 50% { transform: scaleX(1.6) skewX(-12deg) translateY(0); } 70% { transform: scaleX(1.5) skewX(-10deg) translateY(-3px); } 100% { transform: scaleX(1.5) skewX(-10deg) translateY(0); } }
@keyframes fe-trumpet { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(35deg) scale(1.1); } 100% { transform: rotate(30deg) scale(1); } }

/* breeches-resolution - funny dim interior, father holding breeches */
.scn-breeches-resolution {
  background:
    linear-gradient(180deg, #2e241e 0%, #40332a 40%, #523e32 100%),
    radial-gradient(ellipse at 50% 60%, #523e32 0%, transparent 60%);
}
.scn-breeches-resolution .backdrop {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2e241e 0%, #40332a 100%);
  animation: br-back 9s ease-in-out infinite alternate;
}
.scn-breeches-resolution .chair {
  position:absolute; bottom:15%; left:15%; width:60px; height:80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-breeches-resolution .figure-father {
  position:absolute; bottom:10%; left:22%; width:50px; height:110px;
  background: linear-gradient(180deg, #1a1512 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-father 3s ease-in-out infinite alternate;
}
.scn-breeches-resolution .breeches {
  position:absolute; bottom:30%; left:30%; width:30px; height:40px;
  background: linear-gradient(180deg, #c08050 0%, #a06030 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: br-breeches 2s ease-in-out infinite alternate;
}
.scn-breeches-resolution .candle-stand {
  position:absolute; bottom:0; left:50%; width:12px; height:50px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-breeches-resolution .candle-stand::before {
  content: '';
  position:absolute; top:-10px; left:-4px; width:20px; height:12px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b06530 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,180,80,0.5);
  animation: br-candle 3s ease-in-out infinite alternate;
}
.scn-breeches-resolution .chest {
  position:absolute; bottom:0; right:5%; width:80px; height:50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
}
@keyframes br-back { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes br-father { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes br-breeches { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.1); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes br-candle { 0% { box-shadow: 0 0 15px 5px rgba(255,180,80,0.4); } 50% { box-shadow: 0 0 30px 10px rgba(255,180,80,0.6); } 100% { box-shadow: 0 0 20px 6px rgba(255,180,80,0.45); } }

/* Scene: astrology-aspects */
.scn-astrology-aspects {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 60%, #0f0f1a 100%),
              radial-gradient(circle at 40% 50%, #3a2a5e 0%, transparent 70%);
}
.scn-astrology-aspects .chart {
  position: absolute; left: 50%; top: 50%; width: 160px; height: 160px;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle, #4a3a6e 0%, #2a1a3e 100%);
  border-radius: 50%;
  border: 2px solid #b09050;
  box-shadow: 0 0 30px rgba(180,160,80,0.3);
  animation: asa-chart 12s ease-in-out infinite alternate;
}
.scn-astrology-aspects .line-a {
  position: absolute; left: 50%; top: 35%; width: 80px; height: 4px;
  transform: translate(-50%,-50%) rotate(30deg);
  background: linear-gradient(90deg, transparent, #c0a060, transparent);
  animation: asa-line-a 8s ease-in-out infinite;
}
.scn-astrology-aspects .line-b {
  position: absolute; left: 50%; top: 65%; width: 70px; height: 4px;
  transform: translate(-50%,-50%) rotate(-20deg);
  background: linear-gradient(90deg, transparent, #d0b070, transparent);
  animation: asa-line-b 8s ease-in-out infinite reverse;
}
.scn-astrology-aspects .pointer {
  position: absolute; left: 55%; top: 45%; width: 20px; height: 12px;
  background: #c0a060;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  animation: asa-pointer 4s ease-in-out infinite;
}
.scn-astrology-aspects .figure {
  position: absolute; left: 28%; bottom: 18%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: asa-figure 6s ease-in-out infinite;
}
.scn-astrology-aspects .candle {
  position: absolute; left: 72%; bottom: 20%; width: 8px; height: 24px;
  background: #d0b888;
  border-radius: 2px;
  animation: asa-candle 5s ease-in-out infinite alternate;
}
.scn-astrology-aspects .glow {
  position: absolute; left: 72%; bottom: 20%; width: 30px; height: 30px;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle, rgba(220,200,140,0.4) 0%, transparent 100%);
  animation: asa-glow 3s ease-in-out infinite alternate;
}
@keyframes asa-chart { 0% { transform: translate(-50%,-50%) scale(1); } 50% { transform: translate(-50%,-50%) scale(1.02); } 100% { transform: translate(-50%,-50%) scale(0.98); } }
@keyframes asa-line-a { 0% { opacity: 0.3; transform: translate(-50%,-50%) rotate(30deg) scaleX(0.8); } 50% { opacity: 1; transform: translate(-50%,-50%) rotate(32deg) scaleX(1.1); } 100% { opacity: 0.3; transform: translate(-50%,-50%) rotate(28deg) scaleX(0.9); } }
@keyframes asa-line-b { 0% { opacity: 0.5; transform: translate(-50%,-50%) rotate(-20deg) scaleX(0.9); } 50% { opacity: 1; transform: translate(-50%,-50%) rotate(-18deg) scaleX(1.15); } 100% { opacity: 0.5; transform: translate(-50%,-50%) rotate(-22deg) scaleX(0.85); } }
@keyframes asa-pointer { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(5px,-3px) rotate(8deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes asa-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes asa-candle { 0% { height: 24px; } 50% { height: 26px; } 100% { height: 22px; } }
@keyframes asa-glow { 0% { opacity: 0.5; transform: translate(-50%,-50%) scale(0.9); } 100% { opacity: 1; transform: translate(-50%,-50%) scale(1.1); } }

/* Scene: ilus-circumcision */
.scn-ilus-circumcision {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 50%, #0f0a1a 100%),
              radial-gradient(ellipse at 30% 20%, #3a2a3e 0%, transparent 70%);
}
.scn-ilus-circumcision .tent {
  position: absolute; left: 10%; right: 10%; top: 5%; bottom: 40%;
  background: linear-gradient(135deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
  animation: ic-tent 20s ease-in-out infinite alternate;
}
.scn-ilus-circumcision .figure-commander {
  position: absolute; left: 25%; bottom: 30%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ic-cmd 5s ease-in-out infinite;
}
.scn-ilus-circumcision .soldier {
  position: absolute; bottom: 25%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ic-soldier 8s ease-in-out infinite;
}
.scn-ilus-circumcision .soldier:nth-child(3) { left: 45%; animation-delay: 0s; }
.scn-ilus-circumcision .soldier:nth-child(4) { left: 58%; animation-delay: 0.5s; }
.scn-ilus-circumcision .soldier:nth-child(5) { left: 71%; animation-delay: 1s; }
.scn-ilus-circumcision .blade {
  position: absolute; left: 32%; bottom: 38%; width: 6px; height: 20px;
  background: #b0a090;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ic-blade 3s ease-in-out infinite alternate;
}
.scn-ilus-circumcision .lantern {
  position: absolute; left: 50%; top: 15%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 20%, #e0c090 0%, #b08050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px #c09060;
  animation: ic-lantern 4s ease-in-out infinite alternate;
}
@keyframes ic-tent { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes ic-cmd { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ic-soldier { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ic-blade { 0% { transform: rotate(-10deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-10deg); } }
@keyframes ic-lantern { 0% { opacity: 0.8; transform: translateY(0); } 100% { opacity: 1; transform: translateY(-3px); } }

/* Scene: polemic-divines */
.scn-polemic-divines {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 40%, #0f0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a3e 0%, transparent 70%);
}
.scn-polemic-divines .bg-curtain {
  position: absolute; left: 0; right: 0; top: 0; bottom: 0;
  background: repeating-linear-gradient(45deg, #2a1a2a 0px, #2a1a2a 15px, #1a0a1a 15px, #1a0a1a 30px);
  opacity: 0.3;
  animation: pd-curtain 30s linear infinite;
}
.scn-polemic-divines .pulpit {
  position: absolute; left: 50%; bottom: 30%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: pd-pulpit 7s ease-in-out infinite alternate;
}
.scn-polemic-divines .divine-left {
  position: absolute; left: 20%; bottom: 32%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pd-divine-l 6s ease-in-out infinite;
}
.scn-polemic-divines .divine-right {
  position: absolute; right: 20%; bottom: 32%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pd-divine-r 5s ease-in-out infinite reverse;
}
.scn-polemic-divines .book-left {
  position: absolute; left: 28%; bottom: 40%; width: 14px; height: 10px;
  background: #c0b090;
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: pd-book-l 9s ease-in-out infinite;
}
.scn-polemic-divines .book-right {
  position: absolute; right: 28%; bottom: 42%; width: 14px; height: 10px;
  background: #d0c0a0;
  border-radius: 2px;
  transform: rotate(10deg);
  animation: pd-book-r 9s ease-in-out infinite;
}
.scn-polemic-divines .argument-line {
  position: absolute; left: 30%; right: 30%; top: 50%; height: 2px;
  background: linear-gradient(90deg, transparent, #b0a080, transparent);
  animation: pd-arg 3s ease-in-out infinite alternate;
}
@keyframes pd-curtain { 0% { background-position: 0 0; } 100% { background-position: 60px 60px; } }
@keyframes pd-pulpit { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes pd-divine-l { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pd-divine-r { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pd-book-l { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes pd-book-r { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes pd-arg { 0% { opacity: 0.2; transform: scaleX(0.8); } 100% { opacity: 1; transform: scaleX(1.2); } }

/* Scene: gymnast-tripet */
.scn-gymnast-tripet {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 60%, #0f0a1a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a3e 0%, transparent 70%);
}
.scn-gymnast-tripet .ground {
  position: absolute; left: 0; right: 0; bottom: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-gymnast-tripet .horse {
  position: absolute; left: 50%; bottom: 10%; width: 80px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.4);
  animation: gt-horse 6s ease-in-out infinite alternate;
}
.scn-gymnast-tripet .gymnast {
  position: absolute; left: 55%; bottom: 28%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: gt-gymnast 3s ease-in-out infinite;
}
.scn-gymnast-tripet .stirrup {
  position: absolute; left: 52%; bottom: 20%; width: 6px; height: 12px;
  background: #b0a090;
  border-radius: 2px;
  animation: gt-stirrup 3s ease-in-out infinite;
}
.scn-gymnast-tripet .reins {
  position: absolute; left: 48%; bottom: 35%; width: 20px; height: 2px;
  background: #8a7a6a;
  transform: rotate(-30deg);
  animation: gt-reins 4s ease-in-out infinite;
}
.scn-gymnast-tripet .shadow {
  position: absolute; left: 50%; bottom: 5%; width: 60px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: gt-shadow 3s ease-in-out infinite alternate;
}
.scn-gymnast-tripet .sparkle {
  position: absolute; left: 60%; bottom: 40%; width: 6px; height: 6px;
  background: #e0d0a0;
  border-radius: 50%;
  box-shadow: 0 0 10px #e0d0a0;
  animation: gt-sparkle 2s ease-in-out infinite;
}
@keyframes gt-horse { 0% { transform: translateX(-50%) scaleX(1) rotate(0deg); } 50% { transform: translateX(-50%) scaleX(1.02) rotate(1deg); } 100% { transform: translateX(-50%) scaleX(0.98) rotate(-1deg); } }
@keyframes gt-gymnast { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-15deg) translateY(-10px); } 60% { transform: rotate(15deg) translateY(-8px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes gt-stirrup { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(10deg) translateY(3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes gt-reins { 0% { opacity: 0.8; transform: rotate(-30deg) scaleX(1); } 50% { opacity: 1; transform: rotate(-25deg) scaleX(1.1); } 100% { opacity: 0.8; transform: rotate(-30deg) scaleX(1); } }
@keyframes gt-shadow { 0% { opacity: 0.5; transform: translateX(-50%) scaleX(1); } 100% { opacity: 0.8; transform: translateX(-50%) scaleX(1.2); } }
@keyframes gt-sparkle { 0% { opacity: 0; transform: scale(0); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0); } }

/* marriages-made-in-heaven – warm dim interior with hearth and figure musing */
.scn-marriages-made-in-heaven {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 100%, #7a4a2a 0%, transparent 70%);
}
.scn-marriages-made-in-heaven .backwall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
.scn-marriages-made-in-heaven .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-marriages-made-in-heaven .hearth {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-marriages-made-in-heaven .fire {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 100%, #ffa040 0%, #ff6020 40%, #802010 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 20px #ff8030, 0 0 80px 40px rgba(255,128,48,0.3);
  animation: mmh-fire 4s ease-in-out infinite alternate;
}
.scn-marriages-made-in-heaven .figure {
  position: absolute; bottom: 15%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mmh-ponder 6s ease-in-out infinite;
}
.scn-marriages-made-in-heaven .window {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border: 3px solid #2a1a0a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,20,40,0.8);
}
.scn-marriages-made-in-heaven .stars {
  position: absolute; top: 10%; right: 17%; width: 30px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #ffd080 0%, transparent 70%);
  animation: mmh-twinkle 3s ease-in-out infinite alternate;
}
.scn-marriages-made-in-heaven .book {
  position: absolute; bottom: 18%; left: 55%; width: 15px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: mmh-pages 10s ease-in-out infinite;
}
@keyframes mmh-fire {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.15); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.9; }
}
@keyframes mmh-ponder {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0); }
  75% { transform: translateX(-5px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes mmh-twinkle {
  0% { opacity: 0.4; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes mmh-pages {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}

/* sausage-capitulation – funny dim kitchen, two figures with sausages */
.scn-sausage-capitulation {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #5a4a3a 0%, transparent 60%);
}
.scn-sausage-capitulation .backwall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-sausage-capitulation .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 40% 40% / 40% 40% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-sausage-capitulation .sausage-a {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #b8755a 0%, #8a503a 100%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: sc-snatch 2s ease-in-out infinite alternate;
}
.scn-sausage-capitulation .sausage-b {
  position: absolute; bottom: 30%; right: 35%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #9a6040 0%, #6a4020 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: sc-snatch 2s ease-in-out infinite alternate-reverse;
}
.scn-sausage-capitulation .figure-a {
  position: absolute; bottom: 15%; left: 20%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-jab 1.5s ease-in-out infinite alternate;
}
.scn-sausage-capitulation .figure-b {
  position: absolute; bottom: 15%; right: 20%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-jab 1.5s ease-in-out infinite alternate-reverse;
}
.scn-sausage-capitulation .plate {
  position: absolute; bottom: 28%; left: 50%; width: 50px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-sausage-capitulation .napkin {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #c8b89a 0%, #a89070 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sc-float 4s ease-in-out infinite;
}
@keyframes sc-snatch {
  0% { transform: rotate(-20deg) translateX(0); }
  100% { transform: rotate(-15deg) translateX(8px); }
}
@keyframes sc-jab {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-5px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes sc-float {
  0% { transform: rotate(10deg) translateY(0); }
  33% { transform: rotate(8deg) translateY(-2px); }
  66% { transform: rotate(12deg) translateY(-1px); }
  100% { transform: rotate(10deg) translateY(0); }
}

/* glory-vs-pleasure – warm dim interior, two figures with symbols */
.scn-glory-vs-pleasure {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 50%, #5a3a1a 0%, transparent 80%);
}
.scn-glory-vs-pleasure .backwall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30%;
}
.scn-glory-vs-pleasure .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-glory-vs-pleasure .lamp {
  position: absolute; top: 10%; left: 50%; width: 12px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px 4px 20% 20%;
  box-shadow: 0 0 20px 10px #ffc080;
}
.scn-glory-vs-pleasure .lightcone {
  position: absolute; top: 15%; left: 40%; right: 40%; bottom: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,200,128,0.3) 0%, transparent 70%);
  animation: gvp-pulse 5s ease-in-out infinite alternate;
}
.scn-glory-vs-pleasure .sword {
  position: absolute; bottom: 25%; left: 30%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 0 8px 2px rgba(255,255,200,0.3);
  animation: gvp-glint 4s ease-in-out infinite;
}
.scn-glory-vs-pleasure .wineglass {
  position: absolute; bottom: 25%; right: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, rgba(200,150,100,0.4) 0%, rgba(150,80,40,0.6) 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 20% 20%;
  border: 1px solid #8a6a4a;
  box-shadow: 0 0 10px 4px rgba(200,150,100,0.3);
  animation: gvp-sway 6s ease-in-out infinite;
}
.scn-glory-vs-pleasure .figure-left {
  position: absolute; bottom: 15%; left: 22%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gvp-argue 7s ease-in-out infinite;
}
.scn-glory-vs-pleasure .figure-right {
  position: absolute; bottom: 15%; right: 22%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gvp-argue 7s ease-in-out infinite reverse;
}
.scn-glory-vs-pleasure .scroll {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #c8b89a 0%, #a89070 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: gvp-unroll 8s ease-in-out infinite;
}
@keyframes gvp-pulse {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes gvp-glint {
  0% { box-shadow: 0 0 8px 2px rgba(255,255,200,0.3); }
  50% { box-shadow: 0 0 20px 6px rgba(255,255,200,0.6); }
  100% { box-shadow: 0 0 8px 2px rgba(255,255,200,0.3); }
}
@keyframes gvp-sway {
  0% { transform: rotate(0); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(0); }
}
@keyframes gvp-argue {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(10px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-10px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes gvp-unroll {
  0% { transform: rotate(5deg) scaleY(1); }
  50% { transform: rotate(0) scaleY(1.2); }
  100% { transform: rotate(5deg) scaleY(1); }
}

/* time-flies – dark dim interior, moonlit window, marching silhouettes */
.scn-time-flies {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 50%, #1a1a3a 0%, transparent 70%);
}
.scn-time-flies .backwall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-time-flies .window {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%);
  border: 2px solid #2a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,20,40,0.9);
}
.scn-time-flies .moonlight {
  position: absolute; top: 10%; left: 45%; right: 45%; bottom: 20%;
  background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: tf-fade 8s ease-in-out infinite alternate;
}
.scn-time-flies .clock {
  position: absolute; top: 5%; right: 10%; width: 24px; height: 24px;
  background: radial-gradient(circle, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50%;
  border: 2px solid #4a4a5a;
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.5);
  animation: tf-tick 1s steps(60) infinite;
}
.scn-time-flies .marching-figure-a {
  position: absolute; bottom: 25%; left: 20%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tf-march 3s ease-in-out infinite;
}
.scn-time-flies .marching-figure-b {
  position: absolute; bottom: 25%; left: 35%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tf-march 3s ease-in-out infinite 0.5s;
}
.scn-time-flies .flag {
  position: absolute; bottom: 30%; left: 28%; width: 4px; height: 18px;
  background: #2a2a3a;
  transform: rotate(10deg);
}
.scn-time-flies .flag::after {
  content: '';
  position: absolute; top: 0; left: 4px; width: 12px; height: 8px;
  background: #4a3a2a;
  border-radius: 0 50% 0 50%;
  animation: tf-wave 2s ease-in-out infinite alternate;
}
.scn-time-flies .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%);
  animation: tf-creep 12s ease-in-out infinite alternate;
}
@keyframes tf-fade {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.2; }
}
@keyframes tf-tick {
  0% { transform: rotate(0); }
  100% { transform: rotate(360deg); }
}
@keyframes tf-march {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(8px) translateY(-3px); }
  50% { transform: translateX(16px) translateY(0); }
  75% { transform: translateX(8px) translateY(-3px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes tf-wave {
  0% { transform: rotate(-10deg); }
  100% { transform: rotate(10deg); }
}
@keyframes tf-creep {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

.scn-domestic-government {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3a2a1e 40%, #1e1510 100%),
    radial-gradient(ellipse at 50% 60%, #4a3520 0%, transparent 70%);
}
.scn-domestic-government .interior-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1f1a 0%, #1e1510 100%);
}
.scn-domestic-government .panel-wall {
  position:absolute; inset:0 0 30% 0; background: repeating-linear-gradient(90deg, #3a2a1e 0px, #4a3a2e 2px, #3a2a1e 4px); 
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5); animation: Dg-panel 10s ease-in-out infinite alternate;
}
.scn-domestic-government .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a120e 0%, #2a1e14 100%); 
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-domestic-government .desk {
  position:absolute; bottom:28%; left:20%; width:40%; height:20%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); 
  border-radius: 2% 2% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.7); animation: Dg-desk 8s ease-in-out infinite;
}
.scn-domestic-government .figure-father {
  position:absolute; bottom:30%; left:30%; width:12%; height:40%; background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%); 
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: Dg-father-sway 6s ease-in-out infinite;
}
.scn-domestic-government .figure-mother {
  position:absolute; bottom:30%; right:30%; width:10%; height:35%; background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%); 
  border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; transform-origin: bottom center; animation: Dg-mother-sway 5s ease-in-out infinite reverse;
}
.scn-domestic-government .candle {
  position:absolute; bottom:44%; left:38%; width:4%; height:15%; background: linear-gradient(180deg, #ffd599 0%, #b08040 100%); 
  border-radius: 10% 10% 20% 20%; box-shadow: 0 0 10px 2px #ffd599;
}
.scn-domestic-government .candle-glow {
  position:absolute; bottom:50%; left:38%; width:8%; height:8%; background: radial-gradient(circle, #ffd599 10%, transparent 70%); 
  border-radius: 50%; transform: translate(-25%, -50%); animation: Dg-candle-flicker 2s ease-in-out infinite alternate;
}
@keyframes Dg-panel { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes Dg-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes Dg-father-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes Dg-mother-sway { 0% { transform: rotate(3deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(2deg); } }
@keyframes Dg-candle-flicker { 0% { opacity:0.7; transform: translate(-25%, -50%) scale(0.8); } 50% { opacity:1; transform: translate(-25%, -50%) scale(1.1); } 100% { opacity:0.8; transform: translate(-25%, -50%) scale(0.9); } }

.scn-man-midwife-dispute {
  background: 
    linear-gradient(180deg, #1e1510 0%, #2a1a0e 50%, #1a0e08 100%),
    radial-gradient(ellipse at 40% 70%, #3a2515 0%, transparent 60%);
}
.scn-man-midwife-dispute .interior-bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #1e1510, #2a1a0e);
}
.scn-man-midwife-dispute .wall-left {
  position:absolute; inset:0 0 30% 0; width:50%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%); 
  border-right: 2px solid #3a2515; box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
}
.scn-man-midwife-dispute .wall-right {
  position:absolute; inset:0 0 30% 0; left:50%; width:50%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%); 
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
}
.scn-man-midwife-dispute .door {
  position:absolute; bottom:30%; left:25%; width:15%; height:50%; background: linear-gradient(180deg, #3a2515 0%, #1a0e08 100%); 
  border-radius: 2% 2% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: Mw-door 20s ease-in-out infinite;
}
.scn-man-midwife-dispute .figure-midwife {
  position:absolute; bottom:28%; left:35%; width:10%; height:40%; background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%); 
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: Mw-midwife 7s ease-in-out infinite;
}
.scn-man-midwife-dispute .figure-father {
  position:absolute; bottom:28%; right:30%; width:12%; height:42%; background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%); 
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%; transform-origin: bottom center; animation: Mw-father 5s ease-in-out infinite reverse;
}
.scn-man-midwife-dispute .candle-sconce {
  position:absolute; top:30%; left:15%; width:3%; height:10%; background: linear-gradient(180deg, #8a6a40, #4a2a10); 
  border-radius: 20% 20% 0 0; box-shadow: 0 0 20px 5px #ffb060;
}
.scn-man-midwife-dispute .shadow {
  position:absolute; bottom:30%; left:30%; width:25%; height:5%; background: radial-gradient(ellipse, rgba(0,0,0,0.6), transparent); 
  filter: blur(4px); animation: Mw-shadow 10s ease-in-out infinite;
}
@keyframes Mw-door { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes Mw-midwife { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(2deg) translateX(5px); } 100% { transform: rotate(-1deg) translateX(-2px); } }
@keyframes Mw-father { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(-5px); } 100% { transform: rotate(1deg) translateX(2px); } }
@keyframes Mw-shadow { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.2) translateX(10px); } 100% { transform: scaleX(0.9) translateX(-5px); } }

.scn-dear-jenny-caveat {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #1a0e08 40%, #0e0704 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-dear-jenny-caveat .interior-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0e, #0e0704);
}
.scn-dear-jenny-caveat .writing-desk {
  position:absolute; bottom:20%; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #4a3520, #2a1a0e); 
  border-radius: 2% 2% 0 0; box-shadow: 0 10px 30px rgba(0,0,0,0.7); animation: Dj-desk 15s ease-in-out infinite;
}
.scn-dear-jenny-caveat .chair {
  position:absolute; bottom:20%; left:35%; width:15%; height:30%; background: linear-gradient(180deg, #3a2a1e, #1a0e08); 
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; transform-origin: bottom center; animation: Dj-chair 8s ease-in-out infinite;
}
.scn-dear-jenny-caveat .figure-writer {
  position:absolute; bottom:35%; left:37%; width:10%; height:35%; background: linear-gradient(180deg, #1a1510, #0a0805); 
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: Dj-writer 6s ease-in-out infinite;
}
.scn-dear-jenny-caveat .candle-desk {
  position:absolute; bottom:38%; left:45%; width:3%; height:12%; background: linear-gradient(180deg, #ffd599, #b08040); 
  border-radius: 10% 10% 20% 20%; box-shadow: 0 0 15px 3px #ffd599;
}
.scn-dear-jenny-caveat .letter-pile {
  position:absolute; bottom:30%; right:25%; width:12%; height:8%; background: linear-gradient(180deg, #d4b896, #b08a6a); 
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.4); animation: Dj-letters 12s ease-in-out infinite;
}
.scn-dear-jenny-caveat .inkwell {
  position:absolute; bottom:36%; left:55%; width:4%; height:4%; background: radial-gradient(circle, #2a1a0e, #0a0805); 
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-dear-jenny-caveat .candle-glow-sm {
  position:absolute; bottom:42%; left:44%; width:6%; height:6%; background: radial-gradient(circle, #ffd599 10%, transparent 70%); 
  border-radius: 50%; transform: translate(-33%, -50%); animation: Dj-glow 2s ease-in-out infinite alternate;
}
@keyframes Dj-desk { 0% { box-shadow: 0 10px 30px rgba(0,0,0,0.7); } 50% { box-shadow: 0 15px 40px rgba(0,0,0,0.8); } 100% { box-shadow: 0 10px 30px rgba(0,0,0,0.7); } }
@keyframes Dj-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes Dj-writer { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes Dj-letters { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes Dj-glow { 0% { opacity:0.5; transform: translate(-33%, -50%) scale(0.8); } 50% { opacity:1; transform: translate(-33%, -50%) scale(1.1); } 100% { opacity:0.7; transform: translate(-33%, -50%) scale(0.9); } }

.scn-christian-name-theory {
  background: 
    linear-gradient(180deg, #4a2a1a 0%, #3a1a0e 30%, #2a0e04 100%),
    radial-gradient(ellipse at 50% 70%, #5a3a2a 0%, transparent 70%);
}
.scn-christian-name-theory .interior-bg-warm {
  position:absolute; inset:0; background: linear-gradient(180deg, #4a2a1a, #2a0e04);
}
.scn-christian-name-theory .bookcase {
  position:absolute; top:10%; right:5%; width:20%; height:60%; background: linear-gradient(180deg, #5a3a2a, #2a1a0e); 
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: Cnt-bookcase 30s ease-in-out infinite;
}
.scn-christian-name-theory .armchair {
  position:absolute; bottom:20%; left:20%; width:30%; height:40%; background: linear-gradient(180deg, #6a4a3a, #3a2a1a); 
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 10px 30px rgba(0,0,0,0.7); animation: Cnt-chair 12s ease-in-out infinite;
}
.scn-christian-name-theory .figure-reader {
  position:absolute; bottom:28%; left:25%; width:12%; height:35%; background: linear-gradient(180deg, #1a1510, #0a0805); 
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: Cnt-reader 8s ease-in-out infinite;
}
.scn-christian-name-theory .fireplace {
  position:absolute; bottom:10%; left:55%; width:25%; height:50%; background: linear-gradient(180deg, #3a2a1a, #1a0e08); 
  border-radius: 10% 10% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,0.8); overflow: hidden;
}
.scn-christian-name-theory .fire-glow {
  position:absolute; bottom:20%; left:58%; width:15%; height:20%; background: radial-gradient(ellipse, #ff8840 10%, #ff5520 30%, transparent 70%); 
  border-radius: 50%; filter: blur(10px); animation: Cnt-fire 3s ease-in-out infinite alternate;
}
.scn-christian-name-theory .mantel {
  position:absolute; bottom:50%; left:55%; width:30%; height:8%; background: linear-gradient(180deg, #6a4a3a, #3a2a1a); 
  border-radius: 2px; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-christian-name-theory .ticking-clock {
  position:absolute; top:15%; left:20%; width:8%; height:12%; background: linear-gradient(180deg, #8a6a4a, #4a2a1a); 
  border-radius: 50% 50% 0 0; box-shadow: 0 0 15px rgba(0,0,0,0.4); animation: Cnt-clock 2s ease-in-out infinite;
}
@keyframes Cnt-bookcase { 0%,100% { opacity:0.8; } 50% { opacity:0.95; } }
@keyframes Cnt-chair { 0% { transform: scale(0.98); } 50% { transform: scale(1); } 100% { transform: scale(0.97); } }
@keyframes Cnt-reader { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes Cnt-fire { 0% { opacity:0.6; transform: scale(0.8) translateY(0); } 50% { opacity:1; transform: scale(1.1) translateY(-5px); } 100% { opacity:0.7; transform: scale(0.9) translateY(2px); } }
@keyframes Cnt-clock { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }

.scn-absurd-professions { background: linear-gradient(180deg, #2c1f1a 0%, #442b22 40%, #3a231c 100%), radial-gradient(ellipse at 30% 20%, #7a4a30 0%, transparent 60%); }
.scn-absurd-professions .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #3e2b1e 0%, #5a3a2a 50%, #3e2b1e 100%); opacity:.6; animation: ap-wall 12s ease-in-out infinite alternate; }
.scn-absurd-professions .desk { position:absolute; bottom:20%; left:10%; width:45%; height:18%; background: linear-gradient(180deg, #7a4f32 0%, #5a3620 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: ap-desk 6s ease-in-out infinite; }
.scn-absurd-professions .book { position:absolute; bottom:34%; left:20%; width:28%; height:12%; background: linear-gradient(135deg, #b8a088 0%, #9a7a62 50%, #7a5a42 100%); border-radius: 6% 20% 6% 20%; transform: rotate(-8deg); box-shadow: 2px 4px 6px rgba(0,0,0,.3); animation: ap-book 5s ease-in-out infinite; }
.scn-absurd-professions .doctor { position:absolute; bottom:22%; left:30%; width:14%; height:30%; background: radial-gradient(ellipse at 50% 20%, #7a5a40 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-doctor 4s ease-in-out infinite; }
.scn-absurd-professions .patient { position:absolute; bottom:10%; right:15%; width:25%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #2c1f1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom left; animation: ap-patient 3s ease-in-out infinite alternate; }
.scn-absurd-professions .curtain { position:absolute; top:5%; right:0; width:20%; height:95%; background: linear-gradient(180deg, #8a4a2a 0%, #6a3a1a 50%, #5a2a1a 100%); border-radius: 40% 0 0 40% / 60% 0 0 60%; box-shadow: -4px 0 12px rgba(0,0,0,.5); animation: ap-curtain 10s ease-in-out infinite alternate; }
.scn-absurd-professions .fee-pouch { position:absolute; bottom:28%; right:20%; width:6%; height:8%; background: radial-gradient(circle, #b08040 0%, #8a6030 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(160,120,60,.5); animation: ap-fee 7s ease-in-out infinite; }
@keyframes ap-wall { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes ap-desk { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes ap-book { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-4deg) } 100% { transform: rotate(-8deg) } }
@keyframes ap-doctor { 0% { transform: rotate(0) } 33% { transform: rotate(3deg) translateY(-2px) } 66% { transform: rotate(-2deg) translateY(1px) } 100% { transform: rotate(0) } }
@keyframes ap-patient { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes ap-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(5%) } 100% { transform: translateX(0) } }
@keyframes ap-fee { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }

.scn-clergy-exempted { background: linear-gradient(180deg, #1e1a16 0%, #2c241c 50%, #1a140d 100%), radial-gradient(ellipse at 60% 30%, #4a3a2a 0%, transparent 70%); }
.scn-clergy-exempted .bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2c20 0%, #1e1a16 100%); opacity:.5; animation: ce-bg 15s ease-in-out infinite alternate; }
.scn-clergy-exempted .curtain-curve { position:absolute; top:0; left:20%; width:55%; height:100%; background: linear-gradient(180deg, #6a4a30 0%, #4a2a1a 50%, #3a1a0a 100%); border-radius: 0 20% 60% 0 / 0 30% 50% 0; box-shadow: 2px 0 10px rgba(0,0,0,.6); animation: ce-curtain 12s ease-in-out infinite alternate; }
.scn-clergy-exempted .cleric-silhouette { position:absolute; bottom:25%; right:35%; width:18%; height:50%; background: radial-gradient(ellipse at 50% 15%, #2c1f1a 0%, #0a0604 100%); border-radius: 50% 50% 48% 48% / 30% 30% 50% 50%; transform-origin: bottom center; animation: ce-cleric 8s ease-in-out infinite; }
.scn-clergy-exempted .arm { position:absolute; bottom:55%; left:45%; width:12%; height:25%; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: top left; animation: ce-arm 4s ease-in-out infinite alternate; }
.scn-clergy-ex Hombrexempted .pulpit { position:absolute; bottom:15%; left:30%; width:20%; height:25%; background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 -2px 6px rgba(0,0,0,.4); animation: ce-pulpit 9s ease-in-out infinite; }
.scn-clergy-exempted .cross { position:absolute; top:10%; left:70%; width:6%; height:20%; background: linear-gradient(180deg, #8a6040 0%, #5a3a20 100%); border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,.3); animation: ce-cross 14s ease-in-out infinite alternate; }
@keyframes ce-bg { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes ce-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-8%) } 100% { transform: translateX(0) } }
@keyframes ce-cleric { 0% { transform: rotate(0) } 33% { transform: rotate(-2deg) translateY(1px) } 66% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(0) } }
@keyframes ce-arm { 0% { transform: rotate(0) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(0) } }
@keyframes ce-pulpit { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes ce-cross { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }

.scn-chair-knob-illustration { background: linear-gradient(180deg, #1f1612 0%, #2c1f18 50%, #1a100a 100%), radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, transparent 60%); }
.scn-chair-knob-illustration .bg-gradient { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #3a281e 0%, transparent 100%); opacity:.7; animation: ck-bg 20s ease-in-out infinite alternate; }
.scn-chair-knob-illustration .chair-back { position:absolute; bottom:30%; left:50%; width:40%; height:50%; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%); border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%; box-shadow: inset 0 8px 12px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.3); animation: ck-chair 10s ease-in-out infinite; }
.scn-chair-knob-illustration .knob-wit { position:absolute; bottom:68%; left:50%; width:12%; height:12%; transform: translateX(-50%) translateY(0); background: radial-gradient(circle, #d0a060 0%, #a07040 60%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(160,112,64,.6); animation: ck-wit 3s ease-in-out infinite alternate; }
.scn-chair-knob-illustration .knob-judgment { position:absolute; bottom:68%; left:50%; width:12%; height:12%; transform: translateX(-50%) translateY(0); background: radial-gradient(circle, #8a6a4a 0%, #6a4a2a 60%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(106,74,42,.4); animation: ck-judgment 6s ease-in-out infinite alternate; }
.scn-chair-knob-illustration .spotlight { position:absolute; bottom:50%; left:50%; width:80%; height:30%; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(200,160,100,.15) 0%, transparent 70%); animation: ck-spotlight 8s ease-in-out infinite alternate; }
.scn-chair-knob-illustration .shadow-line { position:absolute; bottom:28%; left:10%; width:80%; height:2%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 50%, transparent 100%); animation: ck-shadow 15s ease-in-out infinite; }
@keyframes ck-bg { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes ck-chair { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) } }
@keyframes ck-wit { 0% { transform: translateX(-50%) scale(1) rotate(0) } 50% { transform: translateX(-50%) scale(1.1) rotate(10deg) } 100% { transform: translateX(-50%) scale(1) rotate(0) } }
@keyframes ck-judgment { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes ck-spotlight { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes ck-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-wit-judgment-knobs { background: linear-gradient(180deg, #201712 0%, #2e1f18 40%, #1a0e08 100%), radial-gradient(ellipse at 50% 20%, #4a3222 0%, transparent 70%); }
.scn-wit-judgment-knobs .bg-dark { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #2c1d14 0%, transparent 100%); opacity:.5; animation: wk-bg 18s ease-in-out infinite alternate; }
.scn-wit-judgment-knobs .chair-frame { position:absolute; bottom:20%; left:50%; width:60%; height:55%; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a30 0%, #3a2210 100%); border-radius: 20% 20% 5% 5% / 40% 40% 5% 5%; box-shadow: inset 0 6px 10px rgba(0,0,0,.5), 0 6px 12px rgba(0,0,0,.4); animation: wk-frame 12s ease-in-out infinite; }
.scn-wit-judgment-knobs .knob-left { position:absolute; bottom:63%; left:38%; width:10%; height:10%; background: radial-gradient(circle, #d0a060 0%, #a07040 60%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(160,112,64,.5); animation: wk-left 4s ease-in-out infinite alternate; }
.scn-wit-judgment-knobs .knob-right { position:absolute; bottom:63%; right:38%; width:10%; height:10%; background: radial-gradient(circle, #8a6a4a 0%, #6a4a2a 60%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(106,74,42,.3); animation: wk-right 5s ease-in-out infinite alternate; }
.scn-wit-judgment-knobs .ornament-top { position:absolute; bottom:70%; left:50%; width:4%; height:6%; transform: translateX(-50%); background: linear-gradient(180deg, #c0a070 0%, #806040 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; animation: wk-top 8s ease-in-out infinite; }
.scn-wit-judgment-knobs .ornament-bottom { position:absolute; bottom:15%; left:50%; width:6%; height:4%; transform: translateX(-50%); background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 20% 20% 50% 50% / 20% 20% 60% 60%; animation: wk-bottom 9s ease-in-out infinite; }
@keyframes wk-bg { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes wk-frame { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(2px) } 100% { transform: translateX(-50%) } }
@keyframes wk-left { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.12) rotate(5deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes wk-right { 0% { transform: scale(1) } 50% { transform: scale(1.08) } 100% { transform: scale(1) } }
@keyframes wk-top { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes wk-bottom { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) } }

/* Strasburg Falls – dark overcast city siege */
.scn-strasburg-falls {
  background: linear-gradient(180deg, #1e2a3a 0%, #2c3e50 40%, #3a4a5a 100%),
              radial-gradient(ellipse at 70% 30%, #3a4a5a 30%, transparent 80%);
}
.scn-strasburg-falls .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1e2a3a 0%, #2c3e50 100%);
  animation: sf-sky 14s ease-in-out infinite alternate;
}
.scn-strasburg-falls .clouds {
  position: absolute; top: 8%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,0.15) 0%, transparent 70%),
              radial-gradient(ellipse at 70% 50%, rgba(255,255,255,0.08) 0%, transparent 60%);
  filter: blur(8px);
  animation: sf-clouds 30s linear infinite;
}
.scn-strasburg-falls .mountain {
  position: absolute; bottom: 30%; left: -5%; right: -5%; height: 35%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2c3e50 60%, #1e2a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: sf-mountain 20s ease-in-out infinite alternate;
}
.scn-strasburg-falls .fortress {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 80px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 4px 4px 6px 6px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: sf-fortress 6s ease-in-out infinite;
}
.scn-strasburg-falls .fallen-banner {
  position: absolute; bottom: 35%; left: 48%; width: 8px; height: 30px;
  background: #5e3a2a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: sf-banner 5s ease-in-out infinite;
}
.scn-strasburg-falls .figure {
  position: absolute; bottom: 26%; left: 35%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-figure 4s ease-in-out infinite;
}
.scn-strasburg-falls .rain {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 20px, rgba(180,200,220,0.1) 20px, rgba(180,200,220,0.1) 21px);
  animation: sf-rain 0.8s linear infinite;
}
@keyframes sf-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sf-clouds { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(0) } }
@keyframes sf-mountain { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes sf-fortress { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.01) } 100% { transform: translateX(-50%) } }
@keyframes sf-banner { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes sf-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-2deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes sf-rain { 0% { background-position: 0 0 } 100% { background-position: 0 30px } }

/* Curiosity Conquered – gate with nose figure and crowd */
.scn-curiosity-conquered {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a40 50%, #3a3a4e 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a40 0%, transparent 70%);
}
.scn-curiosity-conquered .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a40 0%, transparent 60%);
  animation: cc-bg 12s ease-in-out infinite alternate;
}
.scn-curiosity-conquered .gate {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 120px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 20px 20px 6px 6px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.7);
  animation: cc-gate 9s ease-in-out infinite;
}
.scn-curiosity-conquered .nose-figure {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 10% 50% 50% / 60% 40% 60% 60%;
  transform: rotate(15deg);
  animation: cc-nose 4s ease-in-out infinite;
}
.scn-curiosity-conquered .crowd {
  position: absolute; bottom: 18%; left: 5%; right: 5%; height: 40%;
  background: repeating-linear-gradient(90deg, #1a1a1a 0px, #1a1a1a 12px, transparent 12px, transparent 18px);
  mask-image: linear-gradient(180deg, transparent 20%, #000 60%, #000 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 20%, #000 60%, #000 100%);
  animation: cc-crowd 6s ease-in-out infinite;
}
.scn-curiosity-conquered .ground {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-curiosity-conquered .shadow {
  position: absolute; bottom: 15%; left: 35%; width: 60px; height: 10px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: cc-shadow 4s ease-in-out infinite;
}
@keyframes cc-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cc-gate { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) } }
@keyframes cc-nose { 0% { transform: rotate(15deg) translateY(0) } 25% { transform: rotate(10deg) translateY(-3px) } 50% { transform: rotate(20deg) translateY(0) } 75% { transform: rotate(12deg) translateY(2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes cc-crowd { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes cc-shadow { 0% { width: 60px; opacity:0.5 } 50% { width: 70px; opacity:0.3 } 100% { width: 60px; opacity:0.5 } }

/* Tale Concludes – dim interior study */
.scn-tale-concludes {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 80%);
}
.scn-tale-concludes .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  animation: tc-wall 16s ease-in-out infinite alternate;
}
.scn-tale-concludes .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: tc-desk 10s ease-in-out infinite;
}
.scn-tale-concludes .candle {
  position: absolute; bottom: 30%; left: 38%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c09060 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px rgba(240,208,160,0.5);
  animation: tc-candle 4s ease-in-out infinite alternate;
}
.scn-tale-concludes .glow {
  position: absolute; bottom: 32%; left: 35%; right: 35%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, rgba(240,208,160,0.15) 0%, transparent 70%);
  animation: tc-glow 5s ease-in-out infinite;
}
.scn-tale-concludes .book {
  position: absolute; bottom: 22%; left: 30%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a2a0a 100%);
  border-radius: 2px 2px 6px 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: tc-book 8s ease-in-out infinite;
}
.scn-tale-concludes .figure {
  position: absolute; bottom: 18%; left: 52%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-figure 6s ease-in-out infinite;
}
.scn-tale-concludes .shelf {
  position: absolute; bottom: 55%; left: 10%; right: 10%; height: 6px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: tc-shelf 20s ease-in-out infinite;
}
@keyframes tc-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes tc-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) scale(1.005) } 100% { transform: translateY(0) } }
@keyframes tc-candle { 0% { height: 40px; opacity:0.9 } 50% { height: 42px; opacity:1 } 100% { height: 40px; opacity:0.9 } }
@keyframes tc-glow { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes tc-book { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes tc-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tc-shelf { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }

/* Latin Specimen – overhead manuscript page */
.scn-latin-specimen {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-latin-specimen .page-bg {
  position: absolute; top: 15%; left: 15%; right: 15%; bottom: 15%;
  background: linear-gradient(135deg, #d4c0a0 0%, #c0a880 50%, #a08868 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3), 0 8px 16px rgba(0,0,0,0.6);
  animation: ls-page 20s ease-in-out infinite alternate;
}
.scn-latin-specimen .text-lines {
  position: absolute; top: 20%; left: 20%; right: 20%; bottom: 20%;
  background: repeating-linear-gradient(180deg, #4a3a2a 0px, #4a3a2a 2px, transparent 2px, transparent 8px);
  opacity: 0.4;
  mask-image: linear-gradient(180deg, transparent 10%, #000 30%, #000 70%, transparent 90%);
  -webkit-mask-image: linear-gradient(180deg, transparent 10%, #000 30%, #000 70%, transparent 90%);
  animation: ls-text 30s linear infinite;
}
.scn-latin-specimen .inkwell {
  position: absolute; bottom: 25%; right: 22%; width: 20px; height: 24px;
  background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ls-inkwell 5s ease-in-out infinite;
}
.scn-latin-specimen .quill {
  position: absolute; bottom: 30%; right: 15%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #c0a080 0%, #8a7050 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: ls-quill 4s ease-in-out infinite;
}
.scn-latin-specimen .candle-light {
  position: absolute; top: 12%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(240,200,160,0.3) 0%, transparent 70%);
  animation: ls-candle 6s ease-in-out infinite alternate;
}
.scn-latin-specimen .shadow-cast {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  transform: translateX(-50%);
  animation: ls-shadow 7s ease-in-out infinite;
}
@keyframes ls-page { 0% { transform: rotate(0deg) } 50% { transform: rotate(0.5deg) } 100% { transform: rotate(0deg) } }
@keyframes ls-text { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes ls-inkwell { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ls-quill { 0% { transform: rotate(-20deg) } 25% { transform: rotate(-15deg) } 50% { transform: rotate(-25deg) } 75% { transform: rotate(-18deg) } 100% { transform: rotate(-20deg) } }
@keyframes ls-candle { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes ls-shadow { 0% { width: 80px; opacity:0.4 } 50% { width: 90px; opacity:0.3 } 100% { width: 80px; opacity:0.4 } }

.scn-two-orators { background: linear-gradient(180deg, #3c2a1a 0%, #5a3a1a 40%, #4a2a0a 100%), radial-gradient(ellipse at 50% 30%, #7a5a3a 0%, transparent 60%); }
.scn-two-orators .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-two-orators .bookshelf { position:absolute; top:10%; left:5%; width:25%; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.3); }
.scn-two-orators .table { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-two-orators .candle { position:absolute; bottom:35%; left:45%; width:6px; height:7%; background: linear-gradient(180deg, #e0b080 0%, #a07040 100%); border-radius: 40% 40% 20% 20%; }
.scn-two-orators .candle-glow { position:absolute; bottom:35%; left:45%; width:40px; height:40px; transform: translate(-50%, 50%); background: radial-gradient(circle, #f0c080 0%, #c08030 40%, transparent 70%); border-radius:50%; animation: to-glow 3s ease-in-out infinite alternate; }
.scn-two-orators .orator-left { position:absolute; bottom:20%; left:25%; width:14%; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: to-bow-left 5s ease-in-out infinite; }
.scn-two-orators .orator-right { position:absolute; bottom:20%; right:25%; width:14%; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: to-gesture-right 4s ease-in-out infinite; }
@keyframes to-glow { 0% { opacity:.6; box-shadow: 0 0 20px 10px #c08030; } 50% { opacity:1; box-shadow: 0 0 40px 20px #e0a040; } 100% { opacity:.7; box-shadow: 0 0 25px 12px #c08030; } }
@keyframes to-bow-left { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) translateY(-5%) rotate(5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2%) translateY(-3%) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes to-gesture-right { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3%) translateY(-2%) rotate(10deg); } 60% { transform: translateX(-2%) translateY(0) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-susannah-mourning { background: linear-gradient(180deg, #2a3a2a 0%, #1a3a1a 50%, #0a2a0a 100%), radial-gradient(ellipse at 50% 40%, #3a5a3a 0%, transparent 70%); }
.scn-susannah-mourning .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 0 0 30% 30%; }
.scn-susannah-mourning .wardrobe { position:absolute; right:10%; top:5%; width:25%; height:65%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.4); transform: rotateY(5deg); animation: sm-swing 8s ease-in-out infinite; }
.scn-susannah-mourning .mirror { position:absolute; right:15%; top:10%; width:15%; height:40%; background: linear-gradient(180deg, rgba(200,220,200,.3) 0%, rgba(150,180,150,.1) 100%); border: 2px solid #5a4a3a; border-radius: 10% 10% 5% 5%; box-shadow: 0 0 15px 5px rgba(180,200,180,.2); }
.scn-susannah-mourning .susannah { position:absolute; bottom:20%; left:25%; width:18%; height:55%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 35% 35% / 70% 70% 30% 30%; transform-origin: bottom center; animation: sm-turn 6s ease-in-out infinite; }
.scn-susannah-mourning .dress { position:absolute; bottom:20%; left:25%; width:20%; height:40%; background: linear-gradient(180deg, #3a6a3a 0%, #2a5a2a 100%); border-radius: 30% 30% 10% 10%; transform: translateX(-5%) rotate(-3deg); animation: sm-sway 4s ease-in-out infinite alternate; }
.scn-susannah-mourning .hat { position:absolute; top:18%; left:28%; width:12%; height:8%; background: #5a4a3a; border-radius: 50% 50% 20% 20%; transform: rotate(10deg); animation: sm-hat 7s ease-in-out infinite; }
.scn-susannah-mourning .shadow { position:absolute; bottom:18%; left:20%; right:20%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); animation: sm-shadow 6s ease-in-out infinite; }
@keyframes sm-swing { 0% { transform: rotateY(5deg); } 50% { transform: rotateY(-5deg); } 100% { transform: rotateY(5deg); } }
@keyframes sm-turn { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(5%) rotate(3deg); } 60% { transform: translateX(-3%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sm-sway { 0% { transform: translateX(-5%) rotate(-3deg); } 100% { transform: translateX(5%) rotate(3deg); } }
@keyframes sm-hat { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-5%); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes sm-shadow { 0%,100% { opacity:.5; } 50% { opacity:.8; transform: scaleY(1.2); } }

.scn-kitchen-news { background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 60%); }
.scn-kitchen-news .kitchen-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 25% 25%; }
.scn-kitchen-news .stove { position:absolute; bottom:25%; right:10%; width:30%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4); animation: kn-heat 5s ease-in-out infinite; }
.scn-kitchen-news .table-kitchen { position:absolute; bottom:20%; left:10%; right:40%; height:15%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-kitchen-news .trim-figure { position:absolute; bottom:20%; left:15%; width:15%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom; animation: kn-trim 3s ease-in-out infinite; }
.scn-kitchen-news .susannah-kitchen { position:absolute; bottom:20%; left:35%; width:16%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kn-susannah 4s ease-in-out infinite alternate; }
.scn-kitchen-news .letter { position:absolute; top:15%; left:20%; width:12%; height:15%; background: #c8b88a; border-radius: 2% 2% 4% 4%; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: rotate(-15deg); animation: kn-letter 6s ease-in-out infinite; }
.scn-kitchen-news .cat { position:absolute; bottom:18%; right:45%; width:10%; height:8%; background: #5a4a3a; border-radius: 40% 40% 20% 20%; animation: kn-cat 5s ease-in-out infinite; }
@keyframes kn-heat { 0% { opacity:.8; } 30% { opacity:1; box-shadow: inset 0 -8px 12px rgba(200,100,50,.4), 0 4px 8px rgba(0,0,0,.4); } 70% { opacity:.9; } 100% { opacity:.8; } }
@keyframes kn-trim { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(2%) rotate(5deg); } 50% { transform: translateX(0) rotate(0deg); } 80% { transform: translateX(-2%) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kn-susannah { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(3%) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes kn-letter { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-5%); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes kn-cat { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(5%) scale(0.9); } 50% { transform: translateX(0) scale(1); } 75% { transform: translateX(-5%) scale(1.1); } 100% { transform: translateX(0) scale(1); } }

.scn-trims-hat-dropped { background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #2a1a0a 0%, transparent 70%); }
.scn-trims-hat-dropped .floor-bg { position:absolute; inset:65% 0 0 0; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-trims-hat-dropped .wall-dark { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 100%); border-radius: 0 0 40% 40%; }
.scn-trims-hat-dropped .trim-figure-dark { position:absolute; bottom:35%; left:35%; width:18%; height:55%; background: linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom; animation: thd-figure 8s ease-in-out infinite; }
.scn-trims-hat-dropped .hat-falling { position:absolute; top:10%; left:40%; width:12%; height:6%; background: #3a2a1a; border-radius: 50% 50% 20% 20%; transform: rotate(45deg); animation: thd-hat 6s linear infinite; }
.scn-trims-hat-dropped .hat-shadow { position:absolute; bottom:32%; left:38%; width:15%; height:4%; background: rgba(0,0,0,.5); border-radius: 50%; transform: skewX(-20deg); animation: thd-shadow 6s linear infinite; }
.scn-trims-hat-dropped .stick { position:absolute; bottom:35%; left:30%; width:2%; height:30%; background: #4a2a1a; border-radius: 20%; transform: rotate(15deg); transform-origin: bottom; animation: thd-stick 4s ease-in-out infinite; }
.scn-trims-hat-dropped .tear { position:absolute; bottom:30%; left:42%; width:4px; height:6px; background: rgba(200,200,220,.3); border-radius: 50%; filter: blur(1px); animation: thd-tear 3s ease-in-out infinite; }
@keyframes thd-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2%) rotate(2deg); } 60% { transform: translateY(2%) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes thd-hat { 0% { top:10%; left:40%; transform: rotate(45deg); opacity:1; } 80% { top:65%; left:35%; transform: rotate(0deg); opacity:1; } 100% { top:65%; left:35%; opacity:0; } }
@keyframes thd-shadow { 0% { opacity:.5; transform: scaleX(1) skewX(-20deg); } 80% { opacity:.5; transform: scaleX(1.5) skewX(-20deg); } 100% { opacity:0; } }
@keyframes thd-stick { 0% { transform: rotate(15deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(15deg); } }
@keyframes thd-tear { 0% { transform: translateY(0); opacity:.8; } 50% { transform: translateY(-5px); opacity:.4; } 100% { transform: translateY(0); opacity:.8; } }

.scn-confucius-comfort {
  background: linear-gradient(180deg, #1e1818 0%, #2a2220 50%, #3a2e2a 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a30 0%, transparent 70%);
}
.scn-confucius-comfort .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2422 0%, transparent 100%);
  animation: cc-wall 12s ease-in-out infinite alternate;
}
.scn-confucius-comfort .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%);
}
.scn-confucius-comfort .desk {
  position: absolute; bottom: 18%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #4a3a30 0%, #2e221c 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: cc-desk 6s ease-in-out infinite;
}
.scn-confucius-comfort .chair {
  position: absolute; bottom: 12%; left: 32%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2e28 0%, #1e1816 100%);
  border-radius: 30% 30% 20% 20%; transform-origin: bottom center;
  animation: cc-chair 4s ease-in-out infinite alternate;
}
.scn-confucius-comfort .figure {
  position: absolute; bottom: 14%; left: 32%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1e1a18 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cc-figure 3s ease-in-out infinite;
}
.scn-confucius-comfort .book-a {
  position: absolute; bottom: 22%; left: 35%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #7a5a40 0%, #4a3220 100%);
  border-radius: 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cc-book 5s ease-in-out infinite alternate;
}
.scn-confucius-comfort .book-b {
  position: absolute; bottom: 21%; left: 38%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #8a6a50 0%, #5a3a28 100%);
  border-radius: 10%; transform: rotate(-10deg);
  animation: cc-book 5s ease-in-out infinite alternate-reverse;
}
.scn-confucius-comfort .lantern {
  position: absolute; bottom: 30%; left: 20%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #cc8840 70%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px rgba(204,136,64,0.6);
  animation: cc-lantern 2s ease-in-out infinite alternate;
}
@keyframes cc-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cc-desk { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes cc-chair { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes cc-figure { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform:translateX(8px) translateY(0) rotate(0) } 75% { transform:translateX(12px) translateY(-1px) rotate(-1deg) } 100% { transform:translateX(16px) translateY(0) rotate(1deg) } }
@keyframes cc-book { 0% { transform:rotate(-8deg) translateY(0) } 50% { transform:rotate(4deg) translateY(-2px) } 100% { transform:rotate(-6deg) translateY(0) } }
@keyframes cc-lantern { 0% { box-shadow:0 0 15px 4px #cc8840; opacity:0.8 } 50% { box-shadow:0 0 25px 8px #ffd080; opacity:1 } 100% { box-shadow:0 0 18px 5px #cc8840; opacity:0.85 } }

.scn-fathers-response {
  background: linear-gradient(180deg, #1a1412 0%, #2a221e 50%, #3a2e26 100%),
              radial-gradient(ellipse at 70% 40%, #4a3a30 0%, transparent 70%);
}
.scn-fathers-response .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2e2824 0%, transparent 100%);
  animation: fr-wall 10s ease-in-out infinite alternate;
}
.scn-fathers-response .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%);
}
.scn-fathers-response .door {
  position: absolute; bottom: 10%; left: 75%; width: 70px; height: 110px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fr-door 4s ease-in-out infinite alternate;
}
.scn-fathers-response .table {
  position: absolute; bottom: 12%; left: 15%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #3a2e28 0%, #1e1814 100%);
  border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-fathers-response .bell {
  position: absolute; bottom: 30%; left: 22%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #c8a040 0%, #8a6a20 70%);
  border-radius: 40% 40% 20% 20%; transform-origin: top center;
  animation: fr-bell 1.5s ease-in-out infinite;
}
.scn-fathers-response .father {
  position: absolute; bottom: 12%; left: 20%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1e1816 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: fr-father 2s ease-in-out infinite;
}
.scn-fathers-response .obadiah {
  position: absolute; bottom: 12%; left: 60%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: fr-obadiah 3s ease-in-out infinite alternate;
}
.scn-fathers-response .candle {
  position: absolute; bottom: 28%; left: 18%; width: 6px; height: 10px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #cc8840 70%);
  border-radius: 30%; box-shadow: 0 0 12px 4px rgba(204,136,64,0.5);
  animation: fr-candle 2s ease-in-out infinite alternate;
}
@keyframes fr-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fr-door { 0% { transform:rotate(0deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(0deg) } }
@keyframes fr-bell { 0% { transform:rotate(-8deg) } 25% { transform:rotate(4deg) } 50% { transform:rotate(-10deg) } 75% { transform:rotate(6deg) } 100% { transform:rotate(-8deg) } }
@keyframes fr-father { 0% { transform:translateX(0) rotate(-1deg) } 50% { transform:translateX(3px) rotate(1deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes fr-obadiah { 0% { transform:translateX(0) } 50% { transform:translateX(-5px) } 100% { transform:translateX(0) } }
@keyframes fr-candle { 0% { box-shadow:0 0 10px 3px #cc8840; opacity:0.8 } 50% { box-shadow:0 0 20px 6px #ffd080; opacity:1 } 100% { box-shadow:0 0 12px 4px #cc8840; opacity:0.85 } }

.scn-circumcision-section {
  background: linear-gradient(180deg, #1a1614 0%, #2a2420 50%, #3e322a 100%),
              radial-gradient(ellipse at 50% 20%, #4a3a30 0%, transparent 70%);
}
.scn-circumcision-section .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e2824 0%, transparent 100%);
  animation: cs-wall 14s ease-in-out infinite alternate;
}
.scn-circumcision-section .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%);
}
.scn-circumcision-section .stairs {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 80px;
  background: repeating-linear-gradient(0deg, #2a221e 0px 10px, #1a1412 10px 12px);
  transform: skewX(-10deg); animation: cs-stairs 20s linear infinite;
}
.scn-circumcision-section .desk {
  position: absolute; bottom: 20%; left: 35%; width: 130px; height: 35px;
  background: linear-gradient(180deg, #4a3a30 0%, #2e221c 100%);
  border-radius: 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: cs-desk 5s ease-in-out infinite;
}
.scn-circumcision-section .folio-a {
  position: absolute; bottom: 26%; left: 38%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%);
  border-radius: 5%; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cs-folio 7s ease-in-out infinite alternate;
}
.scn-circumcision-section .folio-b {
  position: absolute; bottom: 27%; left: 42%; width: 38px; height: 28px;
  background: linear-gradient(180deg, #7a5a40 0%, #4a3220 100%);
  border-radius: 5%; transform: rotate(3deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cs-folio 7s ease-in-out infinite alternate-reverse;
}
.scn-circumcision-section .spectacles {
  position: absolute; bottom: 32%; left: 36%; width: 24px; height: 10px;
  background: radial-gradient(circle at 30% 50%, #c8a040 0%, transparent 60%),
              radial-gradient(circle at 70% 50%, #c8a040 0%, transparent 60%);
  border-radius: 50%; box-shadow: 0 0 4px 1px #8a6a20;
  animation: cs-specs 3s ease-in-out infinite alternate;
}
.scn-circumcision-section .figure {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #1e1816 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cs-figure 2.5s ease-in-out infinite;
}
.scn-circumcision-section .lantern {
  position: absolute; bottom: 35%; left: 55%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #cc8840 70%);
  border-radius: 30%; box-shadow: 0 0 16px 5px rgba(204,136,64,0.5);
  animation: cs-lantern 2s ease-in-out infinite alternate;
}
@keyframes cs-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cs-stairs { 0% { transform:skewX(-10deg) translateY(0) } 50% { transform:skewX(0deg) translateY(-2px) } 100% { transform:skewX(-10deg) translateY(0) } }
@keyframes cs-desk { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes cs-folio { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(5deg) translateY(-2px) } 100% { transform:rotate(-3deg) translateY(0) } }
@keyframes cs-specs { 0% { transform:rotate(0deg) translateY(0) } 50% { transform:rotate(10deg) translateY(-1px) } 100% { transform:rotate(0deg) translateY(0) } }
@keyframes cs-figure { 0% { transform:translateX(0) rotate(-1deg) } 33% { transform:translateX(4px) rotate(1deg) } 66% { transform:translateX(8px) rotate(-1deg) } 100% { transform:translateX(12px) rotate(1deg) } }
@keyframes cs-lantern { 0% { box-shadow:0 0 12px 3px #cc8840; opacity:0.8 } 50% { box-shadow:0 0 22px 7px #ffd080; opacity:1 } 100% { box-shadow:0 0 14px 4px #cc8840; opacity:0.85 } }

.scn-egyptians-did-it {
  background: linear-gradient(180deg, #1a1412 0%, #2a221e 50%, #3e322a 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a30 0%, transparent 70%);
}
.scn-egyptians-did-it .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2e2824 0%, transparent 100%);
  animation: ed-wall 12s ease-in-out infinite alternate;
}
.scn-egyptians-did-it .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%);
}
.scn-egyptians-did-it .stair-1 {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 20px;
  background: linear-gradient(180deg, #3a2e28 0%, #2a1e18 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ed-stair 8s ease-in-out infinite;
}
.scn-egyptians-did-it .stair-2 {
  position: absolute; bottom: 12%; left: 15%; right: 15%; height: 22px;
  background: linear-gradient(180deg, #4a3a30 0%, #3a2a22 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ed-stair 8s ease-in-out infinite 0.5s;
}
.scn-egyptians-did-it .stair-3 {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 24px;
  background: linear-gradient(180deg, #5a4a3e 0%, #4a3a30 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ed-stair 8s ease-in-out infinite 1s;
}
.scn-egyptians-did-it .figure {
  position: absolute; bottom: 14%; left: 38%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1e1816 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ed-figure 4s ease-in-out infinite;
}
.scn-egyptians-did-it .book {
  position: absolute; bottom: 18%; left: 45%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #7a5a40 0%, #4a3220 100%);
  border-radius: 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ed-book 6s ease-in-out infinite alternate;
}
.scn-egyptians-did-it .shadow {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ed-shadow 4s ease-in-out infinite alternate;
}
@keyframes ed-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ed-stair { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes ed-figure { 0% { transform:translateY(0) rotate(-1deg) } 33% { transform:translateY(-2px) rotate(1deg) } 66% { transform:translateY(-1px) rotate(0) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes ed-book { 0% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(5deg) translateY(-3px) } 100% { transform:rotate(-8deg) translateY(0) } }
@keyframes ed-shadow { 0% { opacity:0.3; transform:scaleY(1) } 50% { opacity:0.5; transform:scaleY(0.8) } 100% { opacity:0.3; transform:scaleY(1) } }

.scn-dr-slop-arrival {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 70%, #cd853f 100%),
    radial-gradient(ellipse at 50% 100%, #cd853f 0%, transparent 60%);
}
.scn-dr-slop-arrival .sky    { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 80%); animation: dsa-sky 10s ease-in-out infinite alternate; }
.scn-dr-slop-arrival .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #8b7355 0%, #6b4226 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-dr-slop-arrival .stable { position:absolute; bottom:30%; left:10%; width:30%; height:40%; background: linear-gradient(90deg, #8b4513 0%, #a0522d 50%, #8b4513 100%); border-radius: 5% 5% 0 0; box-shadow: 0 5px 10px rgba(0,0,0,.3); animation: dsa-stable 6s ease-in-out infinite; }
.scn-dr-slop-arrival .pony   { position:absolute; bottom:22%; left:50%; width:20%; height:20%; background: radial-gradient(ellipse 60% 50% at 50% 100%, #8b4513 0%, #5c3a1e 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dsa-pony 4s ease-in-out infinite; }
.scn-dr-slop-arrival .slop-figure { position:absolute; bottom:26%; left:52%; width:12%; height:18%; background: radial-gradient(ellipse 40% 60% at 30% 50%, #f5deb3 0%, #d2b48c 40%, #c0a080 70%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: dsa-slop 3s ease-in-out infinite; }
.scn-dr-slop-arrival .mud-puddle   { position:absolute; bottom:18%; left:55%; width:25%; height:8%; background: radial-gradient(ellipse at 50% 50%, #6b4226 0%, #4a2c14 60%, transparent 80%); border-radius: 50%; animation: dsa-mud 5s ease-in-out infinite alternate; }
.scn-dr-slop-arrival .cloud       { position:absolute; top:15%; left:70%; width:15%; height:10%; background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.2) 100%); border-radius: 50%; filter: blur(5px); animation: dsa-cloud 30s linear infinite; }

@keyframes dsa-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dsa-stable { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dsa-pony   { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(10px) rotate(2deg) } 50% { transform: translateX(20px) rotate(0) } 75% { transform: translateX(10px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dsa-slop   { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(3deg) translateY(-2px) } 50% { transform: rotate(0) translateY(0) } 75% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes dsa-mud    { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes dsa-cloud  { 0% { transform: translateX(0) } 100% { transform: translateX(50vw) } }

/* --- scene 2 --- */
.scn-slop-and-obadiah-collision {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f5deb3 70%, #d2b48c 100%),
    radial-gradient(ellipse at 50% 0%, #f5deb3 0%, transparent 50%);
}
.scn-slop-and-obadiah-collision .sky   { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 80%); animation: soc-sky 12s ease-in-out infinite alternate; }
.scn-slop-and-obadiah-collision .lane  { position:absolute; bottom:15%; left:20%; right:20%; height:70%; background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%); border-radius: 5% 5% 10% 10% / 20% 20% 30% 30%; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-slop-and-obadiah-collision .obadiah { position:absolute; bottom:30%; left:10%; width:20%; height:25%; background: radial-gradient(ellipse 60% 50% at 50% 100%, #2e8b57 0%, #006400 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: soc-obadiah 2s ease-in-out infinite; }
.scn-slop-and-obadiah-collision .slop  { position:absolute; bottom:28%; right:15%; width:18%; height:22%; background: radial-gradient(ellipse 40% 60% at 30% 50%, #f5deb3 0%, #d2b48c 50%, #c0a080 80%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: soc-slop 2s ease-in-out infinite reverse; }
.scn-slop-and-obadiah-collision .splash-1 { position:absolute; bottom:18%; left:35%; width:15%; height:12%; background: radial-gradient(ellipse at 50% 100%, #6b4226 0%, transparent 60%); border-radius: 50%; animation: soc-splash 1.5s ease-in-out infinite; }
.scn-slop-and-obadiah-collision .splash-2 { position:absolute; bottom:20%; left:48%; width:12%; height:10%; background: radial-gradient(ellipse at 50% 100%, #8b7355 0%, transparent 60%); border-radius: 50%; animation: soc-splash 1.5s ease-in-out 0.5s infinite; }
.scn-slop-and-obadiah-collision .splash-3 { position:absolute; bottom:17%; left:60%; width:18%; height:14%; background: radial-gradient(ellipse at 50% 100%, #6b4226 0%, transparent 60%); border-radius: 50%; animation: soc-splash 1.5s ease-in-out 1s infinite; }

@keyframes soc-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes soc-obadiah { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(20px) rotate(3deg) } 50% { transform: translateX(40px) rotate(0) } 75% { transform: translateX(60px) rotate(-3deg) } 100% { transform: translateX(80px) rotate(0) } }
@keyframes soc-slop   { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-20px) rotate(-3deg) } 50% { transform: translateX(-40px) rotate(0) } 75% { transform: translateX(-60px) rotate(3deg) } 100% { transform: translateX(-80px) rotate(0) } }
@keyframes soc-splash { 0% { transform: scale(0.5) translateY(0); opacity:.9 } 50% { transform: scale(1) translateY(-10px); opacity:1 } 100% { transform: scale(0.5) translateY(0); opacity:.9 } }

/* --- scene 3 --- */
.scn-slop-unhorsed {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #f5deb3 80%, #d2b48c 100%),
    radial-gradient(ellipse at 50% 100%, #d2b48c 0%, transparent 60%);
}
.scn-slop-unhorsed .sky         { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 80%); animation: suh-sky 8s ease-in-out infinite alternate; }
.scn-slop-unhorsed .ground      { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #a0522d 0%, #6b4226 100%); border-radius: 30% 30% 0 0; }
.scn-slop-unhorsed .pony-gallop { position:absolute; bottom:30%; left:10%; width:22%; height:20%; background: radial-gradient(ellipse 60% 50% at 50% 100%, #8b4513 0%, #5c3a1e 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: suh-pony 3s linear infinite; }
.scn-slop-unhorsed .slop-falling { position:absolute; bottom:45%; left:45%; width:14%; height:20%; background: radial-gradient(ellipse 40% 60% at 30% 50%, #f5deb3 0%, #d2b48c 50%, #c0a080 80%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: suh-fall 1.5s ease-in-out infinite; }
.scn-slop-unhorsed .cap-spin    { position:absolute; bottom:55%; left:38%; width:8%; height:8%; background: radial-gradient(circle, #d2b48c 0%, #a0522d 80%); border-radius: 50%; animation: suh-cap 2s linear infinite; }
.scn-slop-unhorsed .dust        { position:absolute; bottom:20%; left:35%; width:30%; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(160,82,45,.4) 0%, transparent 70%); border-radius: 50%; animation: suh-dust 2s ease-out infinite; }

@keyframes suh-sky   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes suh-pony  { 0% { transform: translateX(0) scaleX(1) } 25% { transform: translateX(30px) scaleX(0.9) } 50% { transform: translateX(60px) scaleX(1) } 75% { transform: translateX(90px) scaleX(0.9) } 100% { transform: translateX(120px) scaleX(1) } }
@keyframes suh-fall  { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-20deg) translateY(15px) } 50% { transform: rotate(10deg) translateY(30px) } 75% { transform: rotate(-5deg) translateY(20px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes suh-cap   { 0% { transform: rotate(0) translateX(0) } 25% { transform: rotate(90deg) translateX(10px) } 50% { transform: rotate(180deg) translateX(0) } 75% { transform: rotate(270deg) translateX(-10px) } 100% { transform: rotate(360deg) translateX(0) } }
@keyframes suh-dust  { 0% { transform: scale(0.5); opacity:.8 } 50% { transform: scale(1.2); opacity:.5 } 100% { transform: scale(1.5); opacity:0 } }

/* --- scene 4 --- */
.scn-slop-enters {
  background:
    linear-gradient(180deg, #2c1e0e 0%, #4a3728 40%, #5c4033 70%, #3a2515 100%),
    radial-gradient(ellipse at 30% 50%, #8b7355 0%, transparent 60%);
}
.scn-slop-enters .wall-bg   { position:absolute; inset:0; background: linear-gradient(180deg, #4a3728 0%, #3a2515 100%); box-shadow: inset 0 0 100px rgba(0,0,0,.5); }
.scn-slop-enters .floor     { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5c4033 0%, #3a2515 100%); border-radius: 10% 10% 0 0; }
.scn-slop-enters .table     { position:absolute; bottom:25%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 5px 10px rgba(0,0,0,.5); }
.scn-slop-enters .chair-left{ position:absolute; bottom:30%; left:25%; width:15%; height:25%; background: linear-gradient(180deg, #6b5b45 0%, #4a3a2a 100%); border-radius: 5% 5% 0 0; transform-origin: bottom; animation: se-chair 5s ease-in-out infinite; }
.scn-slop-enters .chair-right{ position:absolute; bottom:30%; right:20%; width:15%; height:25%; background: linear-gradient(180deg, #6b5b45 0%, #4a3a2a 100%); border-radius: 5% 5% 0 0; transform-origin: bottom; animation: se-chair 5s ease-in-out 2.5s infinite; }
.scn-slop-enters .slop-door { position:absolute; bottom:10%; left:45%; width:20%; height:90%; background: linear-gradient(90deg, #5c4033 0%, #4a3728 100%); border-radius: 5% 5% 0 0; box-shadow: inset -5px 0 10px rgba(0,0,0,.4); }
.scn-slop-enters .candle-glow { position:absolute; bottom:50%; left:35%; width:8%; height:12%; background: radial-gradient(circle, #ffd700 0%, #ff8c00 50%, transparent 100%); border-radius: 50%; animation: se-candle 3s ease-in-out infinite alternate; }
.scn-slop-enters .slop-figure { position:absolute; bottom:12%; left:48%; width:14%; height:30%; background: radial-gradient(ellipse 40% 60% at 50% 60%, #d2b48c 0%, #8b7355 40%, #5c4033 80%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: se-slop 4s ease-in-out infinite; }

@keyframes se-chair { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes se-candle { 0% { transform: scale(0.9); opacity:.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.9); opacity:.8 } }
@keyframes se-slop   { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(3deg) translateY(-2px) } 50% { transform: rotate(0) translateY(0) } 75% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }

/* scn-trims-honor */
.scn-trims-honor {
  background: linear-gradient(180deg, #2a1f0e 0%, #1a1108 60%, #0f0a05 100%), radial-gradient(ellipse at 50% 80%, #3a2815 0%, transparent 60%);
}
.scn-trims-honor .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2815 0%, #2a1f0e 40%, #1a1108 100%);
  animation: th-wall 20s ease-in-out infinite alternate;
}
.scn-trims-honor .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1f0e 0%, #1a1108 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
}
.scn-trims-honor .figure-father {
  position: absolute; bottom: 30%; left: 30%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1f0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: th-father 6s ease-in-out infinite;
}
.scn-trims-honor .figure-trim {
  position: absolute; bottom: 30%; left: 50%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #5a4530 0%, #3a2815 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: th-trim 8s ease-in-out infinite;
}
.scn-trims-honor .candle {
  position: absolute; bottom: 38%; left: 15%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #d4a040 0%, #b08030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: th-candle 3s ease-in-out infinite;
}
.scn-trims-honor .glow {
  position: absolute; bottom: 32%; left: 12%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, rgba(240,180,80,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: th-glow 4s ease-in-out infinite alternate;
}
.scn-trims-honor .shelf {
  position: absolute; bottom: 50%; left: 10%; right: 10%; height: 4px;
  background: linear-gradient(90deg, #4a3520 0%, #2a1f0e 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
@keyframes th-wall {
  0% { opacity: .9; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: .85; filter: brightness(.95); }
}
@keyframes th-father {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(2px) rotate(2deg); }
}
@keyframes th-trim {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(3px) translateY(-1px) rotate(3deg); }
  40% { transform: translateX(-1px) translateY(1px) rotate(-2deg); }
  60% { transform: translateX(2px) translateY(-2px) rotate(1deg); }
  80% { transform: translateX(-3px) translateY(0) rotate(-3deg); }
}
@keyframes th-candle {
  0%,100% { transform: scaleY(1); opacity: .8; }
  50% { transform: scaleY(1.1); opacity: 1; }
}
@keyframes th-glow {
  0% { transform: scale(1); opacity: .5; }
  50% { transform: scale(1.2); opacity: .7; }
  100% { transform: scale(.9); opacity: .4; }
}

/* scn-radical-heat-moisture */
.scn-radical-heat-moisture {
  background: linear-gradient(180deg, #2a1f0e 0%, #1a1108 40%, #0f0a05 100%), radial-gradient(ellipse at 50% 20%, #3a2815 0%, transparent 60%);
}
.scn-radical-heat-moisture .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2815 0%, #2a1f0e 50%, #1a1108 100%);
  animation: rh-wall 20s ease-in-out infinite alternate;
}
.scn-radical-heat-moisture .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1f0e 0%, #1a1108 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
}
.scn-radical-heat-moisture .desk {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 16px;
  background: linear-gradient(180deg, #4a3520 0%, #3a2815 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-radical-heat-moisture .book {
  position: absolute; bottom: 36%; left: 35%; width: 30px; height: 22px;
  background: linear-gradient(180deg, #6a5540 0%, #4a3520 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: rh-book 8s ease-in-out infinite;
}
.scn-radical-heat-moisture .figure-father {
  position: absolute; bottom: 30%; left: 45%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1f0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rh-father 6s ease-in-out infinite;
}
.scn-radical-heat-moisture .candle {
  position: absolute; bottom: 38%; left: 25%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #d4a040 0%, #b08030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: rh-candle 3s ease-in-out infinite;
}
.scn-radical-heat-moisture .glow {
  position: absolute; bottom: 32%; left: 22%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, rgba(240,180,80,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: rh-glow 4s ease-in-out infinite alternate;
}
.scn-radical-heat-moisture .steam {
  position: absolute; bottom: 50%; left: 30%; width: 20px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,180,160,.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: rh-steam 6s ease-in-out infinite;
}
.scn-radical-heat-moisture .moisture-drops {
  position: absolute; bottom: 45%; left: 40%; width: 4px; height: 12px;
  background: radial-gradient(ellipse, rgba(180,200,220,.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: rh-drops 4s ease-in-out infinite;
}
@keyframes rh-wall {
  0% { opacity: .85; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: .9; filter: brightness(.95); }
}
@keyframes rh-book {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(2deg); }
  75% { transform: translateX(-1px) rotate(-2deg); }
}
@keyframes rh-father {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(2px) rotate(2deg); }
}
@keyframes rh-candle {
  0%,100% { transform: scaleY(1); opacity: .8; }
  50% { transform: scaleY(1.1); opacity: 1; }
}
@keyframes rh-glow {
  0% { transform: scale(1); opacity: .5; }
  50% { transform: scale(1.2); opacity: .7; }
  100% { transform: scale(.9); opacity: .4; }
}
@keyframes rh-steam {
  0% { transform: translateY(0) scale(1); opacity: .6; }
  50% { transform: translateY(-10px) scale(1.5); opacity: .3; }
  100% { transform: translateY(-20px) scale(2); opacity: 0; }
}
@keyframes rh-drops {
  0% { transform: translateY(0) scale(1); opacity: .8; }
  50% { transform: translateY(-5px) scale(0.5); opacity: .4; }
  100% { transform: translateY(-10px) scale(0.2); opacity: 0; }
}

/* scn-hippocrates-verulam */
.scn-hippocrates-verulam {
  background: linear-gradient(180deg, #2a1f0e 0%, #1a1108 40%, #0f0a05 100%), radial-gradient(ellipse at 50% 40%, #3a2815 0%, transparent 60%);
}
.scn-hippocrates-verulam .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2815 0%, #2a1f0e 50%, #1a1108 100%);
  animation: hv-wall 20s ease-in-out infinite alternate;
}
.scn-hippocrates-verulam .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1f0e 0%, #1a1108 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
}
.scn-hippocrates-verulam .pedestal-left {
  position: absolute; bottom: 30%; left: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1f0e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-hippocrates-verulam .pedestal-right {
  position: absolute; bottom: 30%; right: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1f0e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-hippocrates-verulam .bust-hippocrates {
  position: absolute; bottom: 55%; left: 15%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a5540 0%, #4a3520 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hv-bust-left 6s ease-in-out infinite;
}
.scn-hippocrates-verulam .bust-verulam {
  position: absolute; bottom: 55%; right: 15%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a5540 0%, #4a3520 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hv-bust-right 6s ease-in-out infinite;
}
.scn-hippocrates-verulam .figure-father {
  position: absolute; bottom: 30%; left: 45%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1f0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hv-father 6s ease-in-out infinite;
}
.scn-hippocrates-verulam .arm-strike {
  position: absolute; bottom: 45%; left: 35%; width: 20px; height: 6px;
  background: linear-gradient(90deg, #4a3520 0%, #2a1f0e 100%);
  border-radius: 3px;
  transform-origin: right center;
  animation: hv-arm 2s ease-in-out infinite;
}
@keyframes hv-wall {
  0% { opacity: .85; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: .9; filter: brightness(.95); }
}
@keyframes hv-bust-left {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(-5deg); }
  75% { transform: rotate(5deg); }
}
@keyframes hv-bust-right {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  75% { transform: rotate(-5deg); }
}
@keyframes hv-father {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(2px) rotate(2deg); }
}
@keyframes hv-arm {
  0% { transform: rotate(0deg) scaleX(1); }
  25% { transform: rotate(-30deg) scaleX(0.8); }
  50% { transform: rotate(0deg) scaleX(1); }
  75% { transform: rotate(30deg) scaleX(0.8); }
  100% { transform: rotate(0deg) scaleX(1); }
}

/* scn-verulam-refuted */
.scn-verulam-refuted {
  background: linear-gradient(180deg, #2a1f0e 0%, #1a1108 40%, #0f0a05 100%), radial-gradient(ellipse at 50% 60%, #3a2815 0%, transparent 60%);
}
.scn-verulam-refuted .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2815 0%, #2a1f0e 50%, #1a1108 100%);
  animation: vr-wall 20s ease-in-out infinite alternate;
}
.scn-verulam-refuted .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1f0e 0%, #1a1108 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
}
.scn-verulam-refuted .table {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 14px;
  background: linear-gradient(180deg, #4a3520 0%, #3a2815 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-verulam-refuted .bottle-1 {
  position: absolute; bottom: 38%; left: 25%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #5a4530 0%, #3a2815 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: vr-bottle1 5s ease-in-out infinite;
}
.scn-verulam-refuted .bottle-2 {
  position: absolute; bottom: 38%; right: 25%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #6a5540 0%, #4a3520 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: vr-bottle2 7s ease-in-out infinite;
}
.scn-verulam-refuted .clyster {
  position: absolute; bottom: 32%; left: 40%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #7a6540 0%, #5a4530 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: vr-clyster 4s ease-in-out infinite;
}
.scn-verulam-refuted .steam {
  position: absolute; bottom: 45%; left: 35%; width: 30px; height: 50px;
  background: radial-gradient(ellipse, rgba(200,180,160,.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: vr-steam 8s ease-in-out infinite;
}
.scn-verulam-refuted .figure-father {
  position: absolute; bottom: 30%; left: 50%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1f0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vr-father 6s ease-in-out infinite;
}
.scn-verulam-refuted .glow {
  position: absolute; bottom: 32%; left: 22%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, rgba(240,180,80,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: vr-glow 4s ease-in-out infinite alternate;
}
@keyframes vr-wall {
  0% { opacity: .85; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: .9; filter: brightness(.95); }
}
@keyframes vr-bottle1 {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(3deg); }
  75% { transform: translateX(-1px) rotate(-3deg); }
}
@keyframes vr-bottle2 {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-1px) rotate(-4deg); }
  75% { transform: translateX(1px) rotate(4deg); }
}
@keyframes vr-clyster {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(5deg); }
  75% { transform: translateY(2px) rotate(-5deg); }
}
@keyframes vr-steam {
  0% { transform: translateY(0) scale(1); opacity: .6; }
  50% { transform: translateY(-15px) scale(1.8); opacity: .3; }
  100% { transform: translateY(-30px) scale(2.5); opacity: 0; }
}
@keyframes vr-father {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(2px) rotate(2deg); }
}
@keyframes vr-glow {
  0% { transform: scale(1); opacity: .5; }
  50% { transform: scale(1.2); opacity: .7; }
  100% { transform: scale(.9); opacity: .4; }
}

.scn-tobys-speech {
  background: linear-gradient(180deg, #2a1e12 0%, #3a2a1a 40%, #4a3a2a 70%, #1a1610 100%),
              radial-gradient(ellipse at 50% 90%, #5a3a1a 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.7);
}
.scn-tobys-speech .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%); animation: ts1-wall 12s ease-in-out infinite alternate; }
.scn-tobys-speech .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1610 0%, #2a1e12 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: ts1-floor 8s ease-in-out infinite alternate; }
.scn-tobys-speech .toby-silhouette { position:absolute; bottom:28%; left:45%; width:26px; height:60px; background: linear-gradient(180deg, #0e0a06 0%, #1a1208 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts1-speak 4s ease-in-out infinite; }
.scn-tobys-speech .candle-glow { position:absolute; bottom:20%; left:50%; width:12px; height:18px; background: radial-gradient(circle, #e8a040 0%, #b06a20 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #c08030, 0 0 60px 20px rgba(192,128,48,.5); animation: ts1-flicker 2s ease-in-out infinite alternate; }
.scn-tobys-speech .book { position:absolute; bottom:22%; left:55%; width:40px; height:30px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a12 100%); border-radius: 4px; transform: rotate(-10deg); box-shadow: 2px 4px 6px rgba(0,0,0,.6); animation: ts1-book 10s ease-in-out infinite; }
.scn-tobys-speech .shadow-table { position:absolute; bottom:0; left:30%; width:50%; height:20%; background: linear-gradient(180deg, #1a1610 0%, #0e0a06 100%); border-radius: 8% 8% 0 0 / 20% 20% 0 0; opacity:.8; animation: ts1-shadow 15s ease-in-out infinite alternate; }
.scn-tobys-speech .dust-motes { position:absolute; inset:10% 10% 20% 10%; background: radial-gradient(circle at 20% 30%, rgba(200,180,140,.3) 0%, transparent 50%), radial-gradient(circle at 80% 60%, rgba(200,180,140,.2) 0%, transparent 40%); filter: blur(4px); animation: ts1-dust 20s linear infinite; }
@keyframes ts1-wall   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ts1-floor  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ts1-speak  { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg) } }
@keyframes ts1-flicker { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(1) } }
@keyframes ts1-book   { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-4px) } }
@keyframes ts1-shadow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ts1-dust   { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.6; transform: translateY(-10px) } 100% { opacity:.3; transform: translateY(0) } }

.scn-tobys-defense {
  background: linear-gradient(180deg, #1e1610 0%, #2e1e14 35%, #3e2a1a 70%, #16120a 100%),
              radial-gradient(ellipse at 30% 80%, #4a2a12 0%, transparent 70%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
}
.scn-tobys-defense .desk-top { position:absolute; bottom:20%; left:15%; width:70%; height:15%; background: linear-gradient(180deg, #4a3018 0%, #3a2210 100%); border-radius: 4px; transform: perspective(400px) rotateX(15deg); animation: td2-desk 10s ease-in-out infinite alternate; }
.scn-tobys-defense .desk-front { position:absolute; bottom:5%; left:15%; width:70%; height:15%; background: linear-gradient(180deg, #3a2210 0%, #1a0e06 100%); clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%); animation: td2-deskf 10s ease-in-out infinite alternate; }
.scn-tobys-defense .paper-stack { position:absolute; bottom:24%; left:35%; width:40px; height:20px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 2px 3px 5px rgba(0,0,0,.5); animation: td2-papers 6s ease-in-out infinite; }
.scn-tobys-defense .inkwell { position:absolute; bottom:25%; left:55%; width:12px; height:16px; background: linear-gradient(180deg, #1a1208 0%, #0e0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 1px 2px 3px rgba(0,0,0,.7); animation: td2-ink 15s ease-in-out infinite alternate; }
.scn-tobys-defense .candle-flame { position:absolute; bottom:28%; left:50%; width:8px; height:14px; background: radial-gradient(circle, #f0b040 0%, #c08030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #d09040, 0 0 40px 12px rgba(208,144,64,.4); animation: td2-candle 2s ease-in-out infinite alternate; }
.scn-tobys-defense .hand-resting { position:absolute; bottom:20%; left:40%; width:16px; height:12px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: td2-hand 5s ease-in-out infinite; }
.scn-tobys-defense .shadow-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); animation: td2-shadow 12s ease-in-out infinite alternate; }
@keyframes td2-desk   { 0% { transform: perspective(400px) rotateX(15deg) translateY(0) } 50% { transform: perspective(400px) rotateX(15deg) translateY(-2px) } 100% { transform: perspective(400px) rotateX(15deg) translateY(0) } }
@keyframes td2-deskf  { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes td2-papers { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } }
@keyframes td2-ink    { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes td2-candle { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }
@keyframes td2-hand   { 0%,100% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } }
@keyframes td2-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.5 } }

.scn-laurels-and-cypress {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 30%, #3a2a1a 65%, #120e0a 100%),
              radial-gradient(ellipse at 40% 70%, #4a2a14 0%, transparent 80%);
  box-shadow: inset 0 0 70px rgba(0,0,0,.7);
}
.scn-laurels-and-cypress .shelf { position:absolute; bottom:35%; left:20%; width:60%; height:6%; background: linear-gradient(180deg, #4a3018 0%, #2a1a0e 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: lc3-shelf 15s ease-in-out infinite alternate; }
.scn-laurels-and-cypress .laurel-wreath { position:absolute; bottom:42%; left:30%; width:30px; height:30px; border-radius: 50%; background: radial-gradient(circle, #5a6a2a 0%, #3a4a1a 60%, transparent 100%); box-shadow: 0 0 0 3px #6a7a3a, 0 0 0 6px #4a5a2a, 0 0 15px rgba(90,106,42,.3); transform: rotate(15deg); animation: lc3-wreath 8s ease-in-out infinite; }
.scn-laurels-and-cypress .cypress-branch { position:absolute; bottom:20%; left:55%; width:8px; height:50px; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0e 100%); border-radius: 4px 4px 0 0; transform: rotate(-20deg); transform-origin: bottom center; box-shadow: 0 0 0 2px #3a4a2a; animation: lc3-cypress 10s ease-in-out infinite alternate; }
.scn-laurels-and-cypress .candle-base { position:absolute; bottom:40%; left:45%; width:10px; height:18px; background: linear-gradient(180deg, #6a4a24 0%, #4a3020 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.6); animation: lc3-candle-base 12s ease-in-out infinite; }
.scn-laurels-and-cypress .puddle-light { position:absolute; bottom:30%; left:40%; width:60px; height:40px; background: radial-gradient(ellipse, rgba(200,160,80,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: lc3-light 4s ease-in-out infinite alternate; }
.scn-laurels-and-cypress .wall-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, transparent 0%, rgba(0,0,0,.6) 100%); animation: lc3-wallshadow 20s ease-in-out infinite alternate; }
@keyframes lc3-shelf       { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lc3-wreath      { 0%,100% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(15deg) scale(1.05) } }
@keyframes lc3-cypress     { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-22deg) } 100% { transform: rotate(-20deg) } }
@keyframes lc3-candle-base { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lc3-light       { 0% { opacity:.3; transform: scale(.9) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.4; transform: scale(1) } }
@keyframes lc3-wallshadow  { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }

.scn-love-approaches {
  background: linear-gradient(180deg, #120e0a 0%, #1e1610 30%, #2e1e14 60%, #0e0806 100%),
              radial-gradient(ellipse at 70% 60%, #3a2210 0%, transparent 80%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.8);
}
.scn-love-approaches .door-frame { position:absolute; bottom:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); clip-path: polygon(10% 0, 90% 0, 90% 100%, 10% 100%); border-left: 6px solid #3a2a1a; border-right: 6px solid #3a2a1a; animation: la4-frame 10s ease-in-out infinite alternate; }
.scn-love-approaches .door-open { position:absolute; bottom:0; left:40%; width:30%; height:90%; background: linear-gradient(180deg, #3a2210 0%, #1a0e06 100%); clip-path: polygon(5% 0, 95% 0, 100% 100%, 0% 100%); transform: perspective(500px) rotateY(20deg); transform-origin: left center; animation: la4-door 6s ease-in-out infinite; }
.scn-love-approaches .light-from-room { position:absolute; bottom:10%; left:38%; width:35%; height:40%; background: linear-gradient(180deg, #d0a060 0%, transparent 100%); clip-path: polygon(10% 0, 90% 0, 80% 100%, 20% 100%); opacity:.4; filter: blur(15px); animation: la4-light 5s ease-in-out infinite alternate; }
.scn-love-approaches .figure-approaching { position:absolute; bottom:25%; left:60%; width:20px; height:45px; background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la4-figure 8s ease-in-out infinite; }
.scn-love-approaches .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #2a1e14 0px, #2a1e14 10px, #1a120a 10px, #1a120a 20px); opacity:.6; animation: la4-floor 12s linear infinite; }
.scn-love-approaches .shadow-figure { position:absolute; bottom:0; left:60%; width:30px; height:25px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(6px); animation: la4-shadow 8s ease-in-out infinite; }
.scn-love-approaches .glow-threshold { position:absolute; bottom:15%; left:45%; width:20px; height:10px; background: radial-gradient(circle, #f0c060 0%, transparent 100%); box-shadow: 0 0 30px 10px rgba(240,192,96,.5); animation: la4-glow 3s ease-in-out infinite alternate; }
@keyframes la4-frame   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes la4-door    { 0%,100% { transform: perspective(500px) rotateY(20deg) } 50% { transform: perspective(500px) rotateY(22deg) } }
@keyframes la4-light   { 0% { opacity:.3; transform: scale(.9) } 50% { opacity:.5; transform: scale(1.05) } 100% { opacity:.35; transform: scale(1) } }
@keyframes la4-figure  { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(-5px) translateY(-2px) } 50% { transform: translateX(-10px) translateY(0) } 75% { transform: translateX(-5px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes la4-floor   { 0% { transform: translateX(0) } 100% { transform: translateX(-20px) } }
@keyframes la4-shadow  { 0% { transform: scale(1); opacity:.4 } 50% { transform: scale(1.2); opacity:.6 } 100% { transform: scale(1); opacity:.4 } }
@keyframes la4-glow    { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:.7; transform: scale(1) } }

/* paris-approach */
.scn-paris-approach { background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 40%, #d2b48c 70%, #8b7355 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%); }
.scn-paris-approach .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0e0ff 0%, #87CEEB 30%, #f0e68c 70%); animation: pa-sky 20s ease-in-out infinite alternate; }
.scn-paris-approach .road { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(90deg, #8b7355 0%, #a0885a 20%, #c9a96e 50%, #a0885a 80%, #8b7355 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); }
.scn-paris-approach .city { position:absolute; bottom:30%; left:60%; width:35%; height:40%; background: linear-gradient(180deg, #b8860b 0%, #daa520 40%, #8b6914 100%); border-radius: 10% 10% 0 0; clip-path: polygon(0% 100%, 0% 60%, 10% 60%, 10% 30%, 25% 30%, 25% 50%, 40% 50%, 40% 20%, 55% 20%, 55% 40%, 70% 40%, 70% 10%, 85% 10%, 85% 35%, 100% 35%, 100% 100%); box-shadow: 0 -4px 12px rgba(0,0,0,.2); animation: pa-city 15s ease-in-out infinite alternate; }
.scn-paris-approach .traveller { position:absolute; bottom:28%; left:25%; width:20px; height:45px; background: linear-gradient(180deg, #d2691e 0%, #8b4513 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-walk 2s ease-in-out infinite; }
.scn-paris-approach .tail { position:absolute; bottom:26%; left:23%; width:8px; height:12px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 50% 50% 0 0; transform-origin: top left; animation: pa-tail 1s ease-in-out infinite alternate; }
.scn-paris-approach .dust-1 { position:absolute; bottom:25%; left:22%; width:20px; height:20px; background: radial-gradient(circle, #d2b48c 0%, transparent 70%); border-radius: 50%; animation: pa-dust 3s ease-out infinite; }
.scn-paris-approach .dust-2 { position:absolute; bottom:24%; left:30%; width:16px; height:16px; background: radial-gradient(circle, #d2b48c 0%, transparent 70%); border-radius: 50%; animation: pa-dust 4s ease-out infinite 1s; }
.scn-paris-approach .dust-3 { position:absolute; bottom:23%; left:18%; width:14px; height:14px; background: radial-gradient(circle, #d2b48c 0%, transparent 70%); border-radius: 50%; animation: pa-dust 3.5s ease-out infinite 2s; }
@keyframes pa-sky { 0% { opacity: 0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pa-city { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pa-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(3deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes pa-tail { 0% { transform: rotate(-15deg) } 100% { transform: rotate(15deg) } }
@keyframes pa-dust { 0% { opacity:0.6; transform: translateY(0) scale(1) } 100% { opacity:0; transform: translateY(-40px) scale(0.3) } }

/* chanter-fee */
.scn-chanter-fee { background: linear-gradient(180deg, #dfc8a0 0%, #c4a97d 40%, #a8885c 100%), radial-gradient(ellipse at 20% 80%, #e6d4b0 0%, transparent 60%); }
.scn-chanter-fee .carriage-interior { position:absolute; inset:10% 15% 15% 15%; background: linear-gradient(135deg, #8b5a2b 0%, #6b3a1b 50%, #4a2a0a 100%); border-radius: 8% 8% 5% 5%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-chanter-fee .window { position:absolute; top:20%; left:25%; width:40%; height:35%; background: linear-gradient(180deg, #b0e0ff 0%, #87CEEB 50%, #4682b4 100%); border: 6px solid #5c3a1a; border-radius: 20% 20% 5% 5%; box-shadow: inset 0 0 20px rgba(255,255,255,.3), 0 4px 8px rgba(0,0,0,.4); animation: cf-window 6s ease-in-out infinite; }
.scn-chanter-fee .horse-head { position:absolute; top:18%; left:60%; width:30px; height:40px; background: linear-gradient(180deg, #a0522d 0%, #6b3a1b 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: cf-horse 8s ease-in-out infinite alternate; }
.scn-chanter-fee .figure-coachman { position:absolute; bottom:22%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #d2b48c 0%, #8b7355 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: cf-coachman 3s ease-in-out infinite; }
.scn-chanter-fee .coin-1 { position:absolute; bottom:35%; left:50%; width:12px; height:12px; background: radial-gradient(circle, #ffd700 0%, #daa520 70%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: cf-coin 2s ease-in-out infinite; }
.scn-chanter-fee .coin-2 { position:absolute; bottom:34%; left:55%; width:12px; height:12px; background: radial-gradient(circle, #ffd700 0%, #daa520 70%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: cf-coin 2s ease-in-out infinite 0.5s; }
.scn-chanter-fee .coin-3 { position:absolute; bottom:33%; left:45%; width:12px; height:12px; background: radial-gradient(circle, #ffd700 0%, #daa520 70%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: cf-coin 2s ease-in-out infinite 1s; }
.scn-chanter-fee .shadow { position:absolute; bottom:12%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%); border-radius: 50%; filter: blur(4px); animation: cf-shadow 5s ease-in-out infinite alternate; }
@keyframes cf-window { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cf-horse { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes cf-coachman { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(0) } 50% { transform: translateY(0) rotate(3deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes cf-coin { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-5px) scale(1.1); opacity:0.8 } 100% { transform: translateY(0) scale(1); opacity:1 } }
@keyframes cf-shadow { 0% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.7; transform: scaleX(1.1) } 100% { opacity:0.5; transform: scaleX(1) } }

/* paris-arrival */
.scn-paris-arrival { background: linear-gradient(180deg, #f8e5c0 0%, #dbb88c 40%, #b88a5a 70%, #a07050 100%), radial-gradient(ellipse at 20% 30%, #fff3d0 0%, transparent 50%); }
.scn-paris-arrival .gate-arch { position:absolute; bottom:0; left:25%; width:50%; height:70%; background: linear-gradient(180deg, #b8860b 0%, #cd853f 50%, #8b6914 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: 0 -10px 20px rgba(139,105,20,.5); }
.scn-paris-arrival .lantern { position:absolute; top:35%; left:45%; width:12px; height:20px; background: linear-gradient(180deg, #ffd700 0%, #daa520 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #ffd700, 0 0 40px 12px rgba(255,215,0,.4); animation: parr-glow 3s ease-in-out infinite alternate; }
.scn-paris-arrival .lantern-glow { position:absolute; top:34%; left:44%; width:20px; height:25px; background: radial-gradient(circle, rgba(255,215,0,.6) 0%, transparent 80%); border-radius: 50%; animation: parr-glow2 4s ease-in-out infinite; }
.scn-paris-arrival .whip-1 { position:absolute; bottom:40%; left:15%; width:80px; height:4px; background: linear-gradient(90deg, #8b4513 0%, #a0522d 100%); border-radius: 2px; transform-origin: left center; animation: parr-whip 1.5s ease-in-out infinite; }
.scn-paris-arrival .whip-2 { position:absolute; bottom:38%; left:12%; width:60px; height:3px; background: linear-gradient(90deg, #8b4513 0%, #a0522d 100%); border-radius: 2px; transform-origin: left center; animation: parr-whip 1.5s ease-in-out infinite 0.75s; }
.scn-paris-arrival .traveller-shadow { position:absolute; bottom:8%; left:40%; width:70px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); border-radius: 50%; animation: parr-shadow 3s ease-in-out infinite; }
.scn-paris-arrival .dust-puff { position:absolute; bottom:10%; left:30%; width:30px; height:30px; background: radial-gradient(circle, #d2b48c 0%, transparent 70%); border-radius: 50%; animation: parr-dust 2s ease-out infinite; }
.scn-paris-arrival .crack-1 { position:absolute; top:30%; left:20%; width:6px; height:20px; background: linear-gradient(180deg, transparent 0%, #fff 50%, transparent 100%); transform: rotate(20deg); border-radius: 50%; animation: parr-crack 1s ease-in-out infinite; }
.scn-paris-arrival .crack-2 { position:absolute; top:28%; left:30%; width:6px; height:15px; background: linear-gradient(180deg, transparent 0%, #fff 50%, transparent 100%); transform: rotate(-15deg); border-radius: 50%; animation: parr-crack 1s ease-in-out infinite 0.3s; }
@keyframes parr-glow { 0% { box-shadow:0 0 15px 4px #ffd700, 0 0 30px 8px rgba(255,215,0,.3); opacity:0.9 } 50% { box-shadow:0 0 25px 8px #ffd700, 0 0 50px 16px rgba(255,215,0,.5); opacity:1 } 100% { box-shadow:0 0 18px 5px #ffd700, 0 0 35px 10px rgba(255,215,0,.35); opacity:0.85 } }
@keyframes parr-glow2 { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.7; transform: scale(1) } }
@keyframes parr-whip { 0% { transform: rotate(-10deg) scaleX(1) } 25% { transform: rotate(30deg) scaleX(1.5) } 50% { transform: rotate(-20deg) scaleX(1) } 75% { transform: rotate(40deg) scaleX(1.3) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes parr-shadow { 0% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.2) } 100% { opacity:0.5; transform: scaleX(1) } }
@keyframes parr-dust { 0% { opacity:0.8; transform: translateY(0) scale(1) } 100% { opacity:0; transform: translateY(-50px) scale(0.3) } }
@keyframes parr-crack { 0% { opacity:0 } 50% { opacity:1 } 100% { opacity:0 } }

/* paris-streets */
.scn-paris-streets { background: linear-gradient(180deg, #eed9c4 0%, #ccb092 40%, #a8896e 70%, #8c6e56 100%), radial-gradient(ellipse at 50% 100%, #f5e6d0 0%, transparent 60%); }
.scn-paris-streets .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(180deg, #b89676 0%, #9a7b5e 50%, #7a5d42 100%); border-right: 4px solid #5c3f2e; box-shadow: inset -8px 0 12px rgba(0,0,0,.3); animation: ps-wall 8s ease-in-out infinite alternate; }
.scn-paris-streets .wall-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #b89676 0%, #9a7b5e 50%, #7a5d42 100%); border-left: 4px solid #5c3f2e; box-shadow: inset 8px 0 12px rgba(0,0,0,.3); animation: ps-wall 8s ease-in-out infinite alternate-reverse; }
.scn-paris-streets .street { position:absolute; bottom:0; left:30%; right:30%; height:70%; background: linear-gradient(180deg, #a08060 0%, #8a6e50 50%, #705840 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); }
.scn-paris-streets .lamppost { position:absolute; top:10%; left:50%; width:8px; height:50%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); transform: translateX(-4px); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
.scn-paris-streets .figure-passant { position:absolute; bottom:22%; left:45%; width:18px; height:40px; background: linear-gradient(180deg, #d2b48c 0%, #8b7355 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ps-walk 4s ease-in-out infinite; }
.scn-paris-streets .sallad-bowl { position:absolute; bottom:18%; left:40%; width:20px; height:12px; background: radial-gradient(ellipse, #6b8e23 0%, #556b2f 70%); border-radius: 50%; border: 2px solid #8b4513; box-shadow: 0 -2px 4px rgba(0,0,0,.2); animation: ps-bowl 3s ease-in-out infinite; }
.scn-paris-streets .soup-pot { position:absolute; bottom:15%; right:40%; width:18px; height:16px; background: radial-gradient(ellipse, #cd853f 0%, #a0522d 70%); border-radius: 30% 30% 40% 40%; border: 2px solid #5c3a1a; box-shadow: 0 -2px 4px rgba(0,0,0,.2); animation: ps-pot 4s ease-in-out infinite; }
.scn-paris-streets .puddle { position:absolute; bottom:8%; left:35%; width:40px; height:10px; background: radial-gradient(ellipse, #7a9eb3 0%, #5a7e93 80%); border-radius: 50%; opacity:0.7; animation: ps-puddle 6s ease-in-out infinite; }
@keyframes ps-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ps-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(0) } 50% { transform: translateX(10px) rotate(2deg) } 75% { transform: translateX(15px) rotate(0) } 100% { transform: translateX(20px) rotate(-2deg) } }
@keyframes ps-bowl { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes ps-pot { 0% { transform: translateY(0) rotate(3deg) } 50% { transform: translateY(-3px) rotate(-3deg) } 100% { transform: translateY(0) rotate(3deg) } }
@keyframes ps-puddle { 0% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.1) } 100% { opacity:0.5; transform: scaleX(1) } }

/* Scene: peace-of-utrecht */
.scn-peace-of-utrecht {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 30%, #1e1208 100%);
  box-shadow: inset 0 0 60px 20px rgba(150,80,20,0.3);
}
.scn-peace-of-utrecht .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 0 0 20% 20% / 0 0 60% 60%;
}
.scn-peace-of-utrecht .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  transform: perspective(400px) rotateX(5deg);
}
.scn-peace-of-utrecht .table {
  position:absolute; bottom:20%; left:50%; width:160px; height:30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 4px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6);
}
.scn-peace-of-utrecht .candle {
  position:absolute; bottom:28%; left:40%; width:10px; height:30px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 80%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 8px rgba(200,160,96,0.4);
  animation: pu-candle 4s ease-in-out infinite alternate;
}
.scn-peace-of-utrecht .figure-left {
  position:absolute; bottom:18%; left:30%; width:50px; height:100px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pu-figL 6s ease-in-out infinite;
}
.scn-peace-of-utrecht .figure-right {
  position:absolute; bottom:18%; left:50%; width:50px; height:100px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pu-figR 6s ease-in-out infinite reverse;
}
.scn-peace-of-utrecht .pipe {
  position:absolute; bottom:32%; left:36%; width:60px; height:4px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a3a 50%, #6a4a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  transform-origin: left center;
  animation: pu-pipe 8s ease-in-out infinite alternate;
}
.scn-peace-of-utrecht .smoke {
  position:absolute; bottom:42%; left:38%; width:12px; height:20px;
  background: radial-gradient(circle, rgba(200,160,96,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: pu-smoke 6s ease-in-out infinite;
}
@keyframes pu-candle {
  0% { transform: scaleY(1); opacity:0.9; }
  50% { transform: scaleY(1.05) translateY(-2px); opacity:1; }
  100% { transform: scaleY(0.95); opacity:0.85; }
}
@keyframes pu-figL {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(8px) rotate(0deg); }
  100% { transform: translateX(16px) rotate(2deg); }
}
@keyframes pu-figR {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-8px) rotate(0deg); }
  100% { transform: translateX(-16px) rotate(-2deg); }
}
@keyframes pu-pipe {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes pu-smoke {
  0% { transform: translateY(0) scale(1); opacity:0.6; }
  50% { transform: translateY(-20px) scale(1.5); opacity:0.3; }
  100% { transform: translateY(-40px) scale(2); opacity:0; }
}

/* Scene: unlucky-sentiment */
.scn-unlucky-sentiment {
  background: radial-gradient(ellipse at 60% 80%, #3a2a1a 0%, #1a0e06 100%);
  box-shadow: inset 0 0 80px 15px rgba(0,0,0,0.7);
}
.scn-unlucky-sentiment .bg-dark {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 50%, #0a0502 100%);
}
.scn-unlucky-sentiment .table-top {
  position:absolute; bottom:10%; left:10%; right:10%; height:40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 8px 8px 0 0;
  transform: perspective(300px) rotateX(10deg);
}
.scn-unlucky-sentiment .map {
  position:absolute; bottom:20%; left:50%; width:140px; height:80px;
  transform: translateX(-50%) rotate(-2deg);
  background: linear-gradient(135deg, #b89870 0%, #a08060 30%, #806040 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: us-map 12s ease-in-out infinite alternate;
}
.scn-unlucky-sentiment .paper-stack {
  position:absolute; bottom:22%; left:20%; width:60px; height:50px;
  background: linear-gradient(180deg, #c8a880 0%, #a88660 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: us-paper 10s ease-in-out infinite;
}
.scn-unlucky-sentiment .figure-tr {
  position:absolute; bottom:12%; right:15%; width:55px; height:110px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: us-figTR 8s ease-in-out infinite alternate;
}
.scn-unlucky-sentiment .figure-bl {
  position:absolute; bottom:8%; left:10%; width:45px; height:90px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: us-figBL 9s ease-in-out infinite alternate-reverse;
}
.scn-unlucky-sentiment .candle-sm {
  position:absolute; bottom:25%; left:60%; width:8px; height:22px;
  background: linear-gradient(180deg, #d8b080 0%, #a08050 100%);
  border-radius: 2px;
  box-shadow: 0 0 15px 6px rgba(216,176,128,0.4);
  animation: us-candleSm 3s ease-in-out infinite alternate;
}
.scn-unlucky-sentiment .light-spot {
  position:absolute; bottom:35%; left:55%; width:80px; height:60px;
  background: radial-gradient(circle, rgba(216,176,128,0.2) 0%, transparent 100%);
  filter: blur(10px);
  animation: us-light 5s ease-in-out infinite alternate;
}
@keyframes us-map {
  0% { transform: translateX(-50%) rotate(-2deg) scale(1); }
  50% { transform: translateX(-50%) rotate(0deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(-4deg) scale(0.98); }
}
@keyframes us-paper {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes us-figTR {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes us-figBL {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes us-candleSm {
  0% { transform: scaleY(1); opacity:0.9; }
  50% { transform: scaleY(1.08) translateY(-1px); opacity:1; }
  100% { transform: scaleY(0.95); opacity:0.85; }
}
@keyframes us-light {
  0% { transform: scale(1); opacity:0.5; }
  50% { transform: scale(1.2); opacity:0.8; }
  100% { transform: scale(0.9); opacity:0.4; }
}

/* Scene: love-and-heroes */
.scn-love-and-heroes {
  background: linear-gradient(180deg, #1a1208 0%, #2a1a0e 40%, #1a0e06 100%),
              radial-gradient(ellipse at 30% 50%, #3a2a1a, transparent 70%);
  box-shadow: inset 0 0 100px 25px rgba(0,0,0,0.6);
}
.scn-love-and-heroes .bg-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
}
.scn-love-and-heroes .frame-left {
  position:absolute; top:10%; left:5%; width:30%; height:60%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.5);
  animation: lh-frame 20s ease-in-out infinite alternate;
}
.scn-love-and-heroes .frame-right {
  position:absolute; top:10%; right:5%; width:30%; height:60%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 4px;
  box-shadow: -2px 2px 10px rgba(0,0,0,0.5);
  animation: lh-frame 20s ease-in-out infinite alternate-reverse;
}
.scn-love-and-heroes .portrait {
  position:absolute; top:15%; left:50%; width:28%; height:50%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: lh-portrait 15s ease-in-out infinite;
}
.scn-love-and-heroes .candle-big {
  position:absolute; bottom:25%; left:20%; width:14px; height:40px;
  background: linear-gradient(180deg, #e0b880 0%, #b09060 100%);
  border-radius: 3px;
  box-shadow: 0 0 30px 12px rgba(224,184,128,0.5);
  animation: lh-candleB 4s ease-in-out infinite alternate;
}
.scn-love-and-heroes .shadow-figure {
  position:absolute; bottom:18%; left:50%; width:60px; height:120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lh-shadow 8s ease-in-out infinite alternate;
}
.scn-love-and-heroes .glow {
  position:absolute; bottom:30%; left:15%; width:100px; height:100px;
  background: radial-gradient(circle, rgba(224,184,128,0.15) 0%, transparent 100%);
  filter: blur(15px);
  animation: lh-glow 6s ease-in-out infinite alternate;
}
@keyframes lh-frame {
  0% { filter: brightness(0.8); transform: translateY(0); }
  50% { filter: brightness(1); transform: translateY(-4px); }
  100% { filter: brightness(0.85); transform: translateY(0); }
}
@keyframes lh-portrait {
  0% { filter: sepia(0.3); transform: translateX(-50%) scale(1); }
  50% { filter: sepia(0.6); transform: translateX(-50%) scale(1.02); }
  100% { filter: sepia(0.4); transform: translateX(-50%) scale(0.98); }
}
@keyframes lh-candleB {
  0% { transform: scaleY(1); opacity:0.9; box-shadow: 0 0 20px 8px rgba(224,184,128,0.4); }
  50% { transform: scaleY(1.06) translateY(-3px); opacity:1; box-shadow: 0 0 40px 16px rgba(224,184,128,0.6); }
  100% { transform: scaleY(0.94); opacity:0.85; box-shadow: 0 0 25px 10px rgba(224,184,128,0.35); }
}
@keyframes lh-shadow {
  0% { transform: translateX(-50%) rotate(-2deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(0deg) scaleY(1.04); }
  100% { transform: translateX(-50%) rotate(2deg) scaleY(0.96); }
}
@keyframes lh-glow {
  0% { transform: scale(0.9); opacity:0.3; }
  50% { transform: scale(1.3); opacity:0.6; }
  100% { transform: scale(1); opacity:0.4; }
}

/* Scene: tobys-justification */
.scn-tobys-justification {
  background: linear-gradient(180deg, #1a1a0e 0%, #2a1a0e 50%, #1a0e06 100%);
  box-shadow: inset 0 0 50px 10px rgba(100,60,20,0.3);
}
.scn-tobys-justification .bg-room {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, #1a0e06 100%);
}
.scn-tobys-justification .chair {
  position:absolute; bottom:10%; left:40%; width:80px; height:100px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: -2px 2px 8px rgba(0,0,0,0.5);
  animation: tj-chair 12s ease-in-out infinite alternate;
}
.scn-tobys-justification .figure-sitting {
  position:absolute; bottom:28%; left:45%; width:50px; height:70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tj-fig 10s ease-in-out infinite alternate;
}
.scn-tobys-justification .pipe-dropped {
  position:absolute; bottom:12%; left:60%; width:50px; height:4px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a3a 50%, #6a4a2a 100%);
  border-radius: 2px;
  transform: rotate(45deg);
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  animation: tj-pipe 7s ease-in-out infinite;
}
.scn-tobys-justification .table-close {
  position:absolute; bottom:8%; left:25%; width:100px; height:20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: tj-table 14s ease-in-out infinite alternate;
}
.scn-tobys-justification .candle-low {
  position:absolute; bottom:15%; left:30%; width:8px; height:25px;
  background: linear-gradient(180deg, #d8a880 0%, #a08050 100%);
  border-radius: 2px;
  box-shadow: 0 0 15px 6px rgba(216,168,128,0.4);
  animation: tj-candleL 3s ease-in-out infinite alternate;
}
.scn-tobys-justification .smoke-curls {
  position:absolute; bottom:25%; left:55%; width:20px; height:30px;
  background: radial-gradient(circle, rgba(200,160,96,0.2) 0%, transparent 100%);
  filter: blur(6px);
  animation: tj-smoke 8s ease-in-out infinite;
}
@keyframes tj-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes tj-fig {
  0% { transform: translateX(-50%) rotate(-2deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(2deg) translateY(0); }
}
@keyframes tj-pipe {
  0% { transform: rotate(45deg) translate(0,0); opacity:0.8; }
  50% { transform: rotate(40deg) translate(2px,-1px); opacity:1; }
  100% { transform: rotate(50deg) translate(0,0); opacity:0.9; }
}
@keyframes tj-table {
  0% { transform: translateY(0); filter: brightness(0.9); }
  50% { transform: translateY(-2px); filter: brightness(1); }
  100% { transform: translateY(0); filter: brightness(0.95); }
}
@keyframes tj-candleL {
  0% { transform: scaleY(1); opacity:0.9; box-shadow: 0 0 12px 4px rgba(216,168,128,0.4); }
  50% { transform: scaleY(1.05) translateY(-2px); opacity:1; box-shadow: 0 0 20px 8px rgba(216,168,128,0.5); }
  100% { transform: scaleY(0.95); opacity:0.85; box-shadow: 0 0 14px 5px rgba(216,168,128,0.3); }
}
@keyframes tj-smoke {
  0% { transform: translateY(0) scale(1) rotate(0deg); opacity:0.6; }
  50% { transform: translateY(-15px) scale(1.5) rotate(20deg); opacity:0.3; }
  100% { transform: translateY(-30px) scale(2) rotate(40deg); opacity:0; }
}

.scn-baptism-validity {
  background: linear-gradient(180deg, #2b1a0e 0%, #4a2a14 40%, #6b3a1a 100%),
              radial-gradient(ellipse at 50% 100%, #8b5a2e 0%, transparent 60%);
}
.scn-baptism-validity .window-stained {
  position: absolute; top: 6%; left: 50%; transform: translateX(-50%);
  width: 64px; height: 90px; background: linear-gradient(135deg, #c8553d 0%, #e8a040 30%, #d08050 60%, #c06030 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 16px 4px rgba(200,85,61,.6), 0 0 20px 6px rgba(200,85,61,.3);
  animation: bap-shimmer 8s ease-in-out infinite alternate;
}
.scn-baptism-validity .font {
  position: absolute; bottom: 26%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 36px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a14 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: bap-ripple 6s ease-in-out infinite;
}
.scn-baptism-validity .figure-priest {
  position: absolute; bottom: 26%; left: 38%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bap-bow 10s ease-in-out infinite alternate;
}
.scn-baptism-validity .figure-child {
  position: absolute; bottom: 26%; left: 56%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bap-bow 10s ease-in-out infinite alternate-reverse;
}
.scn-baptism-validity .candle {
  position: absolute; bottom: 40%; left: 48%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #f0d080 0%, #c08040 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 2px 1px rgba(192,128,64,.8);
  animation: bap-flicker 2s ease-in-out infinite;
}
.scn-baptism-validity .candle-glow {
  position: absolute; bottom: 42%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd060 0%, rgba(255,208,96,.3) 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-4px, -4px);
  animation: bap-glow 3s ease-in-out infinite alternate;
}
@keyframes bap-shimmer { 0% { opacity:.7; transform: translateX(-50%) scaleX(1); } 50% { opacity:1; transform: translateX(-50%) scaleX(1.02); } 100% { opacity:.8; transform: translateX(-50%) scaleX(.98); } }
@keyframes bap-ripple { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes bap-bow { 0% { transform: rotate(0deg); } 50% { transform: rotate(-4deg) translateY(-1px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes bap-flicker { 0% { opacity:.6; height:13px; } 50% { opacity:1; height:15px; } 100% { opacity:.7; height:14px; } }
@keyframes bap-glow { 0% { opacity:.5; transform: translate(-4px,-4px) scale(.8); } 50% { opacity:1; transform: translate(-4px,-4px) scale(1.1); } 100% { opacity:.6; transform: translate(-4px,-4px) scale(.9); } }

.scn-mother-not-of-kin {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3018 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 40% 60%, #5a3a20 0%, transparent 70%);
}
.scn-mother-not-of-kin .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #6a4a28 0%, #3a2a14 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,.4);
}
.scn-mother-not-of-kin .figure-toby {
  position: absolute; bottom: 24%; left: 26%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a0e04 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: moth-nod 4s ease-in-out infinite;
}
.scn-mother-not-of-kin .figure-ky {
  position: absolute; bottom: 24%; left: 62%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: moth-nod 5s ease-in-out infinite 1s;
}
.scn-mother-not-of-kin .pipe {
  position: absolute; bottom: 28%; left: 38%; width: 18px; height: 3px;
  background: #5a3a1a;
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: moth-pipe-wobble 3s ease-in-out infinite;
}
.scn-mother-not-of-kin .papers {
  position: absolute; bottom: 22%; left: 48%; width: 16px; height: 12px;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: moth-paper 8s ease-in-out infinite alternate;
}
.scn-mother-not-of-kin .candle {
  position: absolute; bottom: 38%; left: 50%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #f0d080 0%, #c08040 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 4px 2px rgba(192,128,64,.6);
  animation: moth-flicker 2.5s ease-in-out infinite;
}
@keyframes moth-nod { 0% { transform: rotate(0deg); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes moth-pipe-wobble { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg) translateY(-1px); } 100% { transform: rotate(-20deg); } }
@keyframes moth-paper { 0% { transform: translateY(0); opacity:.6; } 50% { transform: translateY(-2px); opacity:1; } 100% { transform: translateY(1px); opacity:.7; } }
@keyframes moth-flicker { 0% { opacity:.7; height:15px; } 50% { opacity:1; height:17px; } 100% { opacity:.8; height:16px; } }

.scn-suffolk-case {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 40%, #3a3a5a 0%, transparent 70%);
}
.scn-suffolk-case .bench {
  position: absolute; top: 10%; left: 35%; right: 35%; height: 60%;
  background: linear-gradient(180deg, #4a3a24 0%, #2a1a0e 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: suff-sway 12s ease-in-out infinite alternate;
}
.scn-suffolk-case .gavel {
  position: absolute; top: 18%; left: 42%; width: 14px; height: 10px;
  background: #5a3a1a;
  border-radius: 2px;
  transform: rotate(10deg);
  transform-origin: 7px 5px;
  animation: suff-strike 4s ease-in-out infinite;
}
.scn-suffolk-case .figure-mother {
  position: absolute; bottom: 18%; left: 20%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a0e2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: suff-bow 9s ease-in-out infinite alternate;
}
.scn-suffolk-case .figure-sister {
  position: absolute; bottom: 18%; left: 68%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #4a2a3a 0%, #2a0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: suff-bow 9s ease-in-out infinite alternate-reverse;
}
.scn-suffolk-case .scroll {
  position: absolute; bottom: 22%; left: 46%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a08868 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: suff-unroll 15s ease-in-out infinite;
}
.scn-suffolk-case .lamp {
  position: absolute; top: 8%; left: 48%; width: 10px; height: 14px;
  background: radial-gradient(circle, #f0c068 0%, #b08040 60%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(192,128,64,.5);
  animation: suff-glow 4s ease-in-out infinite alternate;
}
@keyframes suff-sway { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes suff-strike { 0% { transform: rotate(10deg); } 30% { transform: rotate(-15deg) translateY(-2px); } 60% { transform: rotate(5deg); } 100% { transform: rotate(10deg); } }
@keyframes suff-bow { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes suff-unroll { 0% { height:18px; } 50% { height:22px; } 100% { height:18px; } }
@keyframes suff-glow { 0% { opacity:.7; box-shadow: 0 0 8px 2px rgba(192,128,64,.4); } 50% { opacity:1; box-shadow: 0 0 18px 6px rgba(192,128,64,.6); } 100% { opacity:.8; box-shadow: 0 0 10px 3px rgba(192,128,64,.5); } }

.scn-legal-descending {
  background: linear-gradient(180deg, #1e1e2e 0%, #2e2e44 40%, #1e1e2e 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a5a 0%, transparent 70%);
}
.scn-legal-descending .stairs {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 70%;
  background: repeating-linear-gradient(0deg, #3a2a4a 0px, #3a2a4a 12px, #2a1a3a 12px, #2a1a3a 24px);
  border-radius: 4% 4% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: legd-stretch 15s ease-in-out infinite alternate;
}
.scn-legal-descending .figure-desc1 {
  position: absolute; bottom: 55%; left: 36%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #2a1a3a 0%, #0a0620 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: legd-bounce 4s ease-in-out infinite;
}
.scn-legal-descending .figure-desc2 {
  position: absolute; bottom: 35%; left: 56%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a0e30 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: legd-bounce 5s ease-in-out infinite 2s;
}
.scn-legal-descending .scroll-falling {
  position: absolute; top: 20%; left: 42%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a08868 100%);
  border-radius: 2px;
  transform: rotate(25deg);
  animation: legd-fall 6s ease-in infinite;
}
.scn-legal-descending .shadow {
  position: absolute; bottom: 8%; left: 25%; right: 25%; height: 12%;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: legd-shadow-pulse 8s ease-in-out infinite alternate;
}
@keyframes legd-stretch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes legd-bounce { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-8px) rotate(-3deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes legd-fall { 0% { transform: translateY(0) rotate(25deg); opacity:1; } 80% { opacity:1; } 100% { transform: translateY(400%) rotate(60deg); opacity:0; } }
@keyframes legd-shadow-pulse { 0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.5; } }

/* historiographer-deviations – funny dim interior study */
.scn-historiographer-deviations {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0e04 100%),
    radial-gradient(ellipse at 60% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-historiographer-deviations .study-wall {
  position: absolute; inset: 0; background: repeating-linear-gradient(180deg, transparent 0, transparent 50px, rgba(0,0,0,.1) 50px, rgba(0,0,0,.1) 52px);
}
.scn-historiographer-deviations .bookshelf {
  position: absolute; top: 10%; left: 5%; width: 30%; height: 40%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); animation: hist-shelf 20s ease-in-out infinite;
}
.scn-historiographer-deviations .desk {
  position: absolute; bottom: 10%; left: 10%; width: 70%; height: 25%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-historiographer-deviations .figure {
  position: absolute; bottom: 35%; left: 30%; width: 24px; height: 45px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hist-figure 3s ease-in-out infinite;
}
.scn-historiographer-deviations .globe {
  position: absolute; bottom: 38%; left: 55%; width: 30px; height: 30px; background: radial-gradient(circle at 40% 40%, #8a7a4a 0%, #5a4a2a 100%); border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,.4); animation: hist-globe 8s linear infinite;
}
.scn-historiographer-deviations .paper-a {
  position: absolute; bottom: 20%; left: 20%; width: 20px; height: 14px; background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%); border-radius: 2px; transform: rotate(-15deg); animation: hist-paper 6s ease-in-out infinite;
}
.scn-historiographer-deviations .paper-b {
  position: absolute; bottom: 22%; left: 25%; width: 18px; height: 12px; background: linear-gradient(135deg, #c8b890 0%, #a89870 100%); border-radius: 2px; transform: rotate(10deg); animation: hist-paper 6s ease-in-out infinite reverse;
}
.scn-historiographer-deviations .lantern-glow {
  position: absolute; bottom: 42%; left: 70%; width: 10px; height: 10px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,.4); animation: hist-lantern 3s ease-in-out infinite alternate;
}
@keyframes hist-shelf {
  0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); }
}
@keyframes hist-figure {
  0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes hist-globe {
  0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); }
}
@keyframes hist-paper {
  0% { transform: translate(0, 0) rotate(-15deg) scale(1); } 50% { transform: translate(10px, -6px) rotate(20deg) scale(1.05); } 100% { transform: translate(0, 0) rotate(-15deg) scale(1); }
}
@keyframes hist-lantern {
  0% { box-shadow: 0 0 15px 4px #b08040, 0 0 30px 8px rgba(176,128,64,.3); opacity: .7; } 50% { box-shadow: 0 0 30px 10px #ffc060, 0 0 60px 18px rgba(255,192,96,.6); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #b08040, 0 0 35px 10px rgba(176,128,64,.35); opacity: .8; }
}

/* writing-pace – funny dim interior writer's desk */
.scn-writing-pace {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0e04 50%, #0e0602 100%),
    radial-gradient(ellipse at 40% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-writing-pace .study-floor {
  position: absolute; bottom: 0; height: 15%; left: 0; right: 0; background: linear-gradient(180deg, #1a0e04 0%, #0a0602 100%);
}
.scn-writing-pace .desk {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 20%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,.5);
}
.scn-writing-pace .chair {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 25px; background: linear-gradient(180deg, #4a2a0a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; animation: writ-chair 4s ease-in-out infinite;
}
.scn-writing-pace .figure {
  position: absolute; bottom: 35%; left: 38%; width: 22px; height: 40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: writ-figure 3s ease-in-out infinite;
}
.scn-writing-pace .quill {
  position: absolute; bottom: 30%; left: 50%; width: 4px; height: 20px; background: linear-gradient(180deg, #d4c8a0 0%, #a89870 100%); border-radius: 2px 2px 50% 50%; transform: rotate(-30deg); transform-origin: bottom left; animation: writ-quill 2s ease-in-out infinite;
}
.scn-writing-pace .inkpot {
  position: absolute; bottom: 18%; left: 55%; width: 12px; height: 10px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-writing-pace .paper-stack {
  position: absolute; bottom: 17%; left: 20%; width: 40px; height: 22px; background: repeating-linear-gradient(180deg, #d4c8a0 0px, #d4c8a0 4px, #c8b890 4px, #c8b890 8px); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: writ-stack 6s ease-in-out infinite;
}
.scn-writing-pace .clock-pendulum {
  position: absolute; top: 5%; left: 70%; width: 4px; height: 40px; background: #d4c8a0; border-radius: 2px; transform-origin: top center; animation: writ-pendulum 2s ease-in-out infinite alternate;
}
@keyframes writ-chair {
  0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes writ-figure {
  0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(2px) rotate(0deg); } 60% { transform: translateX(0) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes writ-quill {
  0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-3px); } 100% { transform: rotate(-30deg) translateY(0); }
}
@keyframes writ-stack {
  0% { transform: translateY(0) scale(1); } 50% { transform: translateY(1px) scale(1.02); } 100% { transform: translateY(0) scale(1); }
}
@keyframes writ-pendulum {
  0% { transform: rotate(-15deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(15deg); }
}

/* settlement-indenture – calm dim interior legal scene */
.scn-settlement-indenture {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0e04 50%, #0e0602 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-settlement-indenture .desk-mahogany {
  position: absolute; bottom: 10%; left: 5%; width: 90%; height: 30%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,.6);
}
.scn-settlement-indenture .indenture-scroll {
  position: absolute; bottom: 25%; left: 15%; width: 50%; height: 20%; background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: sett-scroll 12s ease-in-out infinite;
}
.scn-settlement-indenture .hand-with-quill {
  position: absolute; bottom: 28%; left: 45%; width: 8px; height: 25px; background: linear-gradient(180deg, #d4b8a0 0%, #a08060 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: sett-hand 5s ease-in-out infinite;
}
.scn-settlement-indenture .seal-wax {
  position: absolute; bottom: 20%; left: 60%; width: 14px; height: 10px; background: radial-gradient(circle at 50% 50%, #702243 0%, #5e1a1d 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: sett-seal 4s ease-in-out infinite;
}
.scn-settlement-indenture .candle-flame {
  position: absolute; bottom: 38%; left: 70%; width: 6px; height: 10px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #ffa040 60%, transparent 100%); border-radius: 50%; animation: sett-candle 2s ease-in-out infinite alternate;
}
.scn-settlement-indenture .candle-base {
  position: absolute; bottom: 35%; left: 68%; width: 10px; height: 12px; background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%); border-radius: 2px 2px 0 0;
}
.scn-settlement-indenture .inkwell {
  position: absolute; bottom: 20%; left: 25%; width: 14px; height: 12px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%); border-radius: 40% 40% 10% 10%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.5);
}
@keyframes sett-scroll {
  0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.01); } 100% { transform: translateY(0) scale(1); }
}
@keyframes sett-hand {
  0% { transform: translate(0, 0) rotate(-5deg); } 50% { transform: translate(4px, -1px) rotate(5deg); } 100% { transform: translate(0, 0) rotate(-5deg); }
}
@keyframes sett-seal {
  0% { transform: scale(1); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(1); }
}
@keyframes sett-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: .8; } 50% { transform: scaleY(1.2) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(1) scaleX(1); opacity: .85; }
}

/* london-lying-in – calm dim interior birthing room */
.scn-london-lying-in {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0e04 40%, #0e0602 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-london-lying-in .room-drapes {
  position: absolute; top: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 -6px 10px rgba(0,0,0,.5); animation: lon-drape 15s ease-in-out infinite;
}
.scn-london-lying-in .bed-frame {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 35%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,.6);
}
.scn-london-lying-in .figure-reclining {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 25px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: lon-figure 8s ease-in-out infinite;
}
.scn-london-lying-in .blanket-fold {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: lon-blanket 6s ease-in-out infinite;
}
.scn-london-lying-in .window-sill {
  position: absolute; top: 20%; right: 10%; width: 20%; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border: 2px solid #1a0e04; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5);
}
.scn-london-lying-in .coach-outside {
  position: absolute; top: 25%; right: 15%; width: 30px; height: 20px; background: linear-gradient(135deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 20% 20% 10% 10%; animation: lon-coach 40s linear infinite;
}
.scn-london-lying-in .lantern-night {
  position: absolute; bottom: 40%; left: 5%; width: 8px; height: 8px; background: radial-gradient(circle, #ffd080 0%, #b08040 60%); border-radius: 50%; box-shadow: 0 0 18px 4px #b08040, 0 0 35px 10px rgba(176,128,64,.4); animation: lon-lantern 3s ease-in-out infinite alternate;
}
@keyframes lon-drape {
  0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); }
}
@keyframes lon-figure {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lon-blanket {
  0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); }
}
@keyframes lon-coach {
  0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); }
}
@keyframes lon-lantern {
  0% { box-shadow: 0 0 12px 3px #b08040, 0 0 25px 6px rgba(176,128,64,.3); opacity: .7; } 50% { box-shadow: 0 0 25px 8px #ffc060, 0 0 50px 15px rgba(255,192,96,.5); opacity: 1; } 100% { box-shadow: 0 0 15px 4px #b08040, 0 0 30px 8px rgba(176,128,64,.35); opacity: .8; }
}

/* bruscambille-treasure */
.scn-bruscambille-treasure {
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2b1f 40%, #1f1510 100%),
              radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 60%);
  position: relative; overflow: hidden; min-height: 100vh;
}
.scn-bruscambille-treasure .bg-wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #3a2b1f, #1f1510);
  opacity:0.6; animation: br-wall 20s ease-in-out infinite alternate;
}
.scn-bruscambille-treasure .bookshelf {
  position:absolute; top:5%; left:5%; width:90%; height:40%;
  background: linear-gradient(180deg, #4a3525, #2a1f1a);
  border-radius: 2%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
  animation: br-shelf 15s ease-in-out infinite alternate;
}
.scn-bruscambille-treasure .desk {
  position:absolute; bottom:15%; left:20%; right:20%; height:30%;
  background: linear-gradient(180deg, #5a3f2a, #3a2515);
  border-radius: 12% 12% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: br-desk 8s ease-in-out infinite;
}
.scn-bruscambille-treasure .father {
  position:absolute; bottom:30%; left:35%; width:22%; height:40%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-father 4s ease-in-out infinite;
}
.scn-bruscambille-treasure .treasure-glow {
  position:absolute; bottom:25%; left:55%; width:12%; height:14%;
  background: radial-gradient(circle, #d4a060 0%, #b08030 60%, transparent 100%);
  border-radius: 20%;
  box-shadow: 0 0 30px 15px #c08030, 0 0 60px 30px rgba(192,128,48,0.5);
  animation: br-glow 3s ease-in-out infinite alternate;
}
.scn-bruscambille-treasure .candle {
  position:absolute; bottom:38%; left:48%; width:3%; height:10%;
  background: linear-gradient(180deg, #e8d0a0, #b08040);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px #f0c060;
  animation: br-candle 2s ease-in-out infinite alternate;
}
.scn-bruscambille-treasure .dust {
  position:absolute; width:2%; height:2%; background:rgba(255,220,180,0.3);
  border-radius:50%; filter: blur(2px);
}
.scn-bruscambille-treasure .mot-1 {
  top:20%; left:10%; animation: br-dust1 12s linear infinite;
}
.scn-bruscambille-treasure .mot-2 {
  top:40%; left:70%; animation: br-dust2 18s linear infinite reverse;
}
@keyframes br-wall { 0%{opacity:0.6} 50%{opacity:0.8} 100%{opacity:0.5} }
@keyframes br-shelf { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes br-desk { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-1px)} }
@keyframes br-father {
  0%{transform:translate(0,0) rotate(-1deg)}
  50%{transform:translate(2px,-1px) rotate(2deg)}
  100%{transform:translate(0,0) rotate(0)}
}
@keyframes br-glow { 0%{box-shadow:0 0 20px 8px #b08030; opacity:0.8} 50%{box-shadow:0 0 40px 18px #e0b060; opacity:1} 100%{box-shadow:0 0 25px 10px #b08030; opacity:0.9} }
@keyframes br-candle { 0%{transform:scaleY(1) rotate(-1deg)} 50%{transform:scaleY(1.05) rotate(0)} 100%{transform:scaleY(0.95) rotate(1deg)} }
@keyframes br-dust1 { 0%{transform:translate(0,0) scale(1); opacity:0.3} 50%{transform:translate(30px,-20px) scale(1.5); opacity:0.6} 100%{transform:translate(-10px,10px) scale(0.8); opacity:0.2} }
@keyframes br-dust2 { 0%{transform:translate(0,0) scale(0.8); opacity:0.2} 50%{transform:translate(-20px,-15px) scale(1.8); opacity:0.5} 100%{transform:translate(15px,5px) scale(1); opacity:0.3} }

/* fathers-nose-library */
.scn-fathers-nose-library {
  background: linear-gradient(180deg, #2a2218 0%, #3a2a1a 40%, #1a120a 100%),
              radial-gradient(ellipse at 40% 30%, #4a3020 0%, transparent 60%);
  position: relative; overflow: hidden; min-height: 100vh;
}
.scn-fathers-nose-library .bg-shelves {
  position:absolute; inset:0; background: repeating-linear-gradient(90deg, #3a2515 0px, #2a1a0a 8px, transparent 8px, transparent 16px);
  opacity:0.5; animation: fn-shelves 30s linear infinite;
}
.scn-fathers-nose-library .lamp-glow {
  position:absolute; top:10%; left:60%; width:20%; height:20%;
  background: radial-gradient(circle, #f0d080 0%, #c09040 30%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 60px 30px rgba(192,144,64,0.6);
  animation: fn-lamp 4s ease-in-out infinite alternate;
}
.scn-fathers-nose-library .father-nose {
  position:absolute; bottom:20%; left:30%; width:20%; height:45%;
  background: linear-gradient(180deg, #1a1210, #0a0808);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fn-father 5s ease-in-out infinite;
}
.scn-fathers-nose-library .father-nose::before {
  content:''; position:absolute; top:15%; left:50%; width:8%; height:20%;
  background: #2a1a0a; border-radius: 40% 40% 20% 20%;
  transform: translateX(-50%);
  animation: fn-nose 2s ease-in-out infinite alternate;
}
.scn-fathers-nose-library .book {
  position:absolute; bottom:25%; background: linear-gradient(180deg, #5a3a20, #3a2010);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: fn-book 7s ease-in-out infinite;
}
.scn-fathers-nose-library .pile-1 { left:15%; width:8%; height:18%; animation-delay:0s; }
.scn-fathers-nose-library .pile-2 { left:25%; width:6%; height:14%; animation-delay:2s; }
.scn-fathers-nose-library .cat-silhouette {
  position:absolute; bottom:12%; right:20%; width:12%; height:15%;
  background: #0a0808; border-radius: 30% 30% 50% 50% / 50% 50% 40% 40%;
  clip-path: polygon(0% 100%, 0% 50%, 30% 30%, 70% 30%, 100% 50%, 100% 100%, 80% 80%, 60% 100%, 40% 100%, 20% 80%);
  animation: fn-cat 10s ease-in-out infinite;
}
.scn-fathers-nose-library .shadow-layer {
  position:absolute; inset:0; background: radial-gradient(ellipse at 40% 20%, transparent 40%, rgba(0,0,0,0.6) 100%);
  animation: fn-shadow 12s ease-in-out infinite alternate;
}
@keyframes fn-shelves { 0%{background-position:0 0} 100%{background-position:-100vw 0} }
@keyframes fn-lamp { 0%{opacity:0.7; transform:scale(0.95)} 50%{opacity:1; transform:scale(1)} 100%{opacity:0.8; transform:scale(0.9)} }
@keyframes fn-father { 0%,100%{transform:translateX(0) rotate(0)} 50%{transform:translateX(3px) rotate(2deg)} }
@keyframes fn-nose { 0%{transform:translateX(-50%) scaleY(1)} 50%{transform:translateX(-50%) scaleY(1.2)} 100%{transform:translateX(-50%) scaleY(0.9)} }
@keyframes fn-book { 0%,100%{transform:rotate(0) translateY(0)} 50%{transform:rotate(2deg) translateY(-2px)} }
@keyframes fn-cat { 0%,100%{transform:scaleY(1) rotate(0)} 50%{transform:scaleY(0.9) rotate(-3deg)} }
@keyframes fn-shadow { 0%{opacity:0.5} 50%{opacity:0.8} 100%{opacity:0.4} }

/* erasmus-dialogue */
.scn-erasmus-dialogue {
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a1f 40%, #1a1210 100%),
              radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 50%);
  position: relative; overflow: hidden; min-height: 100vh;
}
.scn-erasmus-dialogue .bg-room {
  position:absolute; inset:0; background: linear-gradient(45deg, #3a2a1a, #1f1510);
  opacity:0.4; animation: er-room 25s ease-in-out infinite alternate;
}
.scn-erasmus-dialogue .figure-left {
  position:absolute; bottom:20%; left:20%; width:22%; height:45%;
  background: linear-gradient(180deg, #1a1008, #0a0604);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: er-figL 6s ease-in-out infinite;
}
.scn-erasmus-dialogue .figure-right {
  position:absolute; bottom:20%; right:20%; width:22%; height:45%;
  background: linear-gradient(180deg, #1a1008, #0a0604);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform-origin: bottom center;
  animation: er-figR 5s ease-in-out infinite reverse;
}
.scn-erasmus-dialogue .filly-horse {
  position:absolute; bottom:15%; left:40%; width:20%; height:30%;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: er-horse 3s ease-in-out infinite;
}
.scn-erasmus-dialogue .thought-pulse {
  position:absolute; top:10%; left:45%; width:8%; height:8%;
  background: radial-gradient(circle, rgba(255,200,150,0.6) 0%, transparent 70%);
  border-radius:50%;
  animation: er-thought 4s ease-in-out infinite;
}
.scn-erasmus-dialogue .ground-line {
  position:absolute; bottom:10%; left:0; right:0; height:8%;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 30% 70% 0 0 / 100% 100% 0 0;
  animation: er-ground 20s ease-in-out infinite alternate;
}
@keyframes er-room { 0%{opacity:0.4} 50%{opacity:0.7} 100%{opacity:0.3} }
@keyframes er-figL { 0%,100%{transform:translate(0,0) rotate(0)} 50%{transform:translate(-2px,-1px) rotate(-3deg)} }
@keyframes er-figR { 0%,100%{transform:translate(0,0) rotate(0)} 50%{transform:translate(2px,-1px) rotate(3deg)} }
@keyframes er-horse { 0%,100%{transform:translate(0,0) scaleY(1)} 50%{transform:translate(3px,-2px) scaleY(0.9)} }
@keyframes er-thought { 0%{transform:scale(0.8); opacity:0.4} 50%{transform:scale(1.2); opacity:0.8} 100%{transform:scale(0.9); opacity:0.5} }
@keyframes er-ground { 0%{height:8%} 50%{height:10%} 100%{height:6%} }

/* read-or-perish */
.scn-read-or-perish {
  background: linear-gradient(180deg, #1a1818 0%, #2a1a1a 40%, #0f0a0a 100%),
              radial-gradient(ellipse at 50% 20%, #3a2020 0%, transparent 60%);
  position: relative; overflow: hidden; min-height: 100vh;
}
.scn-read-or-perish .bg-dark {
  position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, #2a1a1a, #0a0606);
  animation: rp-bg 30s ease-in-out infinite alternate;
}
.scn-read-or-perish .reader-figure {
  position:absolute; bottom:20%; left:30%; width:20%; height:45%;
  background: linear-gradient(180deg, #1a1008, #0a0604);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rp-reader 6s ease-in-out infinite;
}
.scn-read-or-perish .menace-shape {
  position:absolute; top:5%; right:15%; width:25%; height:40%;
  background: linear-gradient(180deg, #2a1010, #0a0000);
  border-radius: 40% 60% 20% 40% / 50% 50% 30% 30%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 50%, 100% 100%, 0% 100%, 20% 50%);
  animation: rp-menace 8s ease-in-out infinite;
  opacity:0.8;
}
.scn-read-or-perish .book-stack-1 {
  position:absolute; bottom:25%; left:15%; width:10%; height:20%;
  background: linear-gradient(180deg, #5a3a20, #3a2010);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: rp-book1 5s ease-in-out infinite;
}
.scn-read-or-perish .book-stack-2 {
  position:absolute; bottom:25%; left:55%; width:8%; height:15%;
  background: linear-gradient(180deg, #4a3020, #2a1a0a);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: rp-book2 7s ease-in-out infinite reverse;
}
.scn-read-or-perish .candle-flame {
  position:absolute; bottom:40%; left:45%; width:4%; height:8%;
  background: radial-gradient(circle, #f0c060 0%, #c08030 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(192,128,48,0.6);
  animation: rp-flame 1.5s ease-in-out infinite alternate;
}
.scn-read-or-perish .shadow-scroll {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.8), transparent);
  animation: rp-shadow 15s ease-in-out infinite alternate;
}
@keyframes rp-bg { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.6} }
@keyframes rp-reader { 0%,100%{transform:translateX(0) rotate(0)} 50%{transform:translateX(2px) rotate(2deg)} }
@keyframes rp-menace { 0%,100%{transform:scaleY(1) rotate(0); opacity:0.8} 50%{transform:scaleY(1.1) rotate(-5deg); opacity:1} }
@keyframes rp-book1 { 0%,100%{transform:rotate(0)} 50%{transform:rotate(3deg)} }
@keyframes rp-book2 { 0%,100%{transform:rotate(0) translateY(0)} 50%{transform:rotate(-2deg) translateY(-2px)} }
@keyframes rp-flame { 0%{transform:scaleY(1) rotate(-2deg); opacity:0.9} 50%{transform:scaleY(1.3) rotate(0); opacity:1} 100%{transform:scaleY(0.9) rotate(2deg); opacity:0.8} }
@keyframes rp-shadow { 0%{opacity:0.6} 50%{opacity:0.9} 100%{opacity:0.5} }

.scn-groin-superior { background: linear-gradient(135deg, #2a1e1a 0%, #3a2a1e 50%, #1e1412 100%), radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 60%); }
.scn-groin-superior .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2e1f18 0%, #1f1410 100%); }
.scn-groin-superior .arbour { position:absolute; top:10%; left:10%; width:80%; height:60%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 18px, #4a3220 18px, #4a3220 20px); border:3px solid #5a3a28; border-radius:50% 50% 30% 30%; box-shadow: inset 0 0 40px rgba(0,0,0,.5); transform: rotate(-2deg); }
.scn-groin-superior .arbour-vine { position:absolute; top:15%; left:15%; width:70%; height:50%; background: radial-gradient(ellipse at 30% 40%, #5a4a30 0%, transparent 70%); filter: blur(4px); animation: gs-vine 14s ease-in-out infinite; }
.scn-groin-superior .figure-torso { position:absolute; bottom:25%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1f1410 100%); border-radius:30% 30% 40% 40%; transform: rotate(5deg); animation: gs-figure 6s ease-in-out infinite; }
.scn-groin-superior .figure-head { position:absolute; bottom:58%; left:44%; width:24px; height:28px; background: linear-gradient(180deg, #4a3424 0%, #2a1e14 100%); border-radius:50% 50% 40% 40%; transform: rotate(-8deg); animation: gs-head 6s ease-in-out infinite; }
.scn-groin-superior .mob-cap { position:absolute; bottom:62%; left:46%; width:30px; height:12px; background: #5a3a28; border-radius:60% 60% 20% 20%; transform: rotate(-15deg); box-shadow: 0 -2px 4px rgba(0,0,0,.3); animation: gs-cap 6s ease-in-out infinite alternate; }
.scn-groin-superior .candle-light { position:absolute; bottom:20%; left:30%; width:60px; height:60px; background: radial-gradient(circle, #ffcc80 0%, #e09540 30%, transparent 70%); opacity:.6; animation: gs-candle 3s ease-in-out infinite alternate; }
.scn-groin-superior .candle-flame { position:absolute; bottom:55%; left:55%; width:8px; height:14px; background: radial-gradient(circle, #ffe0b0 0%, #ff9933 50%, transparent 80%); border-radius:50%; filter: blur(2px); animation: gs-flame 2s ease-in-out infinite alternate; }
@keyframes gs-vine { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.02) } 100% { opacity:.5; transform: scale(1) } }
@keyframes gs-figure { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes gs-head { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-8deg) } }
@keyframes gs-cap { 0% { transform: rotate(-15deg) translateX(0) } 100% { transform: rotate(-12deg) translateX(3px) } }
@keyframes gs-candle { 0% { opacity:.4; transform: scale(.95) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.5; transform: scale(1) } }
@keyframes gs-flame { 0% { opacity:.7; transform: translateY(0) scale(1) } 50% { opacity:1; transform: translateY(-2px) scale(1.15) } 100% { opacity:.8; transform: translateY(0) scale(1) } }

.scn-beguine-nurse { background: linear-gradient(180deg, #1e1410 0%, #2a1a12 50%, #140e0a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%); }
.scn-beguine-nurse .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0c 100%); }
.scn-beguine-nurse .bed { position:absolute; bottom:10%; left:20%; width:60%; height:45%; background: linear-gradient(180deg, #4a3424 0%, #2a1e14 100%); border-radius:30% 30% 10% 10%; box-shadow: inset 0 20px 30px rgba(0,0,0,.6); }
.scn-beguine-nurse .figure-soldier { position:absolute; bottom:20%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #2a1e14 0%, #140e0a 100%); border-radius:40% 40% 30% 30%; transform: rotate(-10deg); animation: bn-soldier 7s ease-in-out infinite; }
.scn-beguine-nurse .figure-nurse { position:absolute; bottom:15%; left:55%; width:35px; height:70px; background: linear-gradient(180deg, #4a3830 0%, #2a1e18 100%); border-radius:30% 30% 40% 40%; transform: rotate(5deg); animation: bn-nurse 7s ease-in-out infinite; }
.scn-beguine-nurse .nurse-arm { position:absolute; bottom:30%; left:62%; width:10px; height:25px; background: linear-gradient(180deg, #4a3830 0%, #2a1e18 100%); border-radius:40% 40% 20% 20%; transform: rotate(20deg); transform-origin: top; animation: bn-arm 7s ease-in-out infinite alternate; }
.scn-beguine-nurse .cordial-cup { position:absolute; bottom:38%; left:60%; width:12px; height:18px; background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: bn-cup 7s ease-in-out infinite; }
.scn-beguine-nurse .candle { position:absolute; bottom:5%; left:45%; width:6px; height:20px; background: linear-gradient(180deg, #8a6a30 0%, #5a4020 100%); border-radius:30% 30% 10% 10%; }
.scn-beguine-nurse .candle-glow { position:absolute; bottom:10%; left:44%; width:30px; height:30px; background: radial-gradient(circle, #ffcc80 0%, #e09540 40%, transparent 70%); opacity:.7; animation: bn-glow 3s ease-in-out infinite alternate; }
@keyframes bn-soldier { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-1px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes bn-nurse { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes bn-arm { 0% { transform: rotate(20deg) } 100% { transform: rotate(15deg) } }
@keyframes bn-cup { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes bn-glow { 0% { opacity:.5; transform: scale(.9) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1) } }

.scn-beguine-charity { background: linear-gradient(180deg, #1e1612 0%, #2a1e18 40%, #120e0a 100%), radial-gradient(ellipse at 50% 30%, #3a2a20 0%, transparent 70%); }
.scn-beguine-charity .wall { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); }
.scn-beguine-charity .table { position:absolute; bottom:25%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #5a4028 0%, #3a2a1a 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); }
.scn-beguine-charity .woman-black { position:absolute; bottom:10%; left:50%; width:35px; height:80px; background: linear-gradient(180deg, #1a0e0c 0%, #0e0806 100%); border-radius:30% 30% 40% 40%; transform: translateX(-50%); animation: bc-woman 8s ease-in-out infinite; }
.scn-beguine-charity .woman-arm { position:absolute; bottom:40%; left:55%; width:8px; height:25px; background: linear-gradient(180deg, #1a0e0c 0%, #0e0806 100%); border-radius:40% 40% 20% 20%; transform: rotate(30deg); transform-origin: top; animation: bc-arm 8s ease-in-out infinite alternate; }
.scn-beguine-charity .purse { position:absolute; bottom:42%; left:58%; width:14px; height:10px; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: bc-purse 8s ease-in-out infinite; }
.scn-beguine-charity .old-man { position:absolute; bottom:10%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%); border-radius:40% 40% 30% 30%; transform: rotate(10deg); animation: bc-oldman 8s ease-in-out infinite; }
.scn-beguine-charity .old-woman { position:absolute; bottom:10%; left:70%; width:28px; height:45px; background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%); border-radius:40% 40% 30% 30%; transform: rotate(-10deg); animation: bc-oldwoman 8s ease-in-out infinite; }
.scn-beguine-charity .hearth-glow { position:absolute; bottom:5%; left:40%; width:80px; height:80px; background: radial-gradient(circle, #ff9940 0%, #cc6020 30%, transparent 70%); opacity:.5; animation: bc-hearth 4s ease-in-out infinite alternate; }
.scn-beguine-charity .ember { position:absolute; bottom:15%; left:45%; width:4px; height:4px; background:#ffa040; border-radius:50%; box-shadow: 0 0 8px 2px #ffa040; animation: bc-ember 2s ease-in-out infinite alternate; }
@keyframes bc-woman { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes bc-arm { 0% { transform: rotate(30deg) translateX(0) } 100% { transform: rotate(25deg) translateX(2px) } }
@keyframes bc-purse { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes bc-oldman { 0% { transform: rotate(10deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(10deg) } }
@keyframes bc-oldwoman { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-10deg) } }
@keyframes bc-hearth { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.5; transform: scale(1) } }
@keyframes bc-ember { 0% { opacity:.6; transform: translateY(0) } 100% { opacity:1; transform: translateY(-3px) } }

.scn-love-kindled { background: linear-gradient(180deg, #1a1210 0%, #261a14 50%, #100a08 100%), radial-gradient(ellipse at 50% 60%, #3a2a1e 0%, transparent 60%); }
.scn-love-kindled .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1a1210 0%, transparent 80%); }
.scn-love-kindled .knee-bend { position:absolute; bottom:20%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #4a3424 0%, #2a1e14 100%); border-radius:40% 40% 30% 30%; transform: rotate(15deg); animation: lk-knee 6s ease-in-out infinite; }
.scn-love-kindled .hand-nurse { position:absolute; bottom:38%; left:48%; width:12px; height:16px; background: linear-gradient(180deg, #4a3830 0%, #2a1e18 100%); border-radius:40% 40% 30% 30%; transform: rotate(20deg); transform-origin: top; animation: lk-hand 6s ease-in-out infinite alternate; }
.scn-love-kindled .gruel-bowl { position:absolute; bottom:25%; left:55%; width:18px; height:10px; background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: lk-bowl 6s ease-in-out infinite; }
.scn-love-kindled .figure-nurse-bending { position:absolute; bottom:10%; left:50%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%); border-radius:30% 30% 40% 40%; transform: translateX(-50%) rotate(-5deg); animation: lk-nurse 7s ease-in-out infinite; }
.scn-love-kindled .figure-soldier-torso { position:absolute; bottom:15%; left:35%; width:35px; height:55px; background: linear-gradient(180deg, #2a1e14 0%, #140e0a 100%); border-radius:40% 40% 30% 30%; transform: rotate(5deg); animation: lk-soldier 7s ease-in-out infinite; }
.scn-love-kindled .candle-double { position:absolute; bottom:5%; left:60%; width:8px; height:20px; background: linear-gradient(180deg, #8a6a30 0%, #5a4020 100%); border-radius:30% 30% 10% 10%; box-shadow: 4px 0 0 #6a4a20; }
.scn-love-kindled .warm-haze { position:absolute; bottom:20%; left:30%; width:60%; height:50%; background: radial-gradient(ellipse at 50% 50%, #ffcc8040 0%, transparent 80%); filter: blur(10px); animation: lk-haze 5s ease-in-out infinite alternate; }
.scn-love-kindled .spark { position:absolute; bottom:30%; left:50%; width:3px; height:3px; background:#ffe0a0; border-radius:50%; box-shadow: 0 0 6px 2px #ffe0a0; animation: lk-spark 2s ease-in-out infinite alternate; }
@keyframes lk-knee { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes lk-hand { 0% { transform: rotate(20deg) translateX(0) } 100% { transform: rotate(15deg) translateX(2px) } }
@keyframes lk-bowl { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes lk-nurse { 0% { transform: translateX(-50%) rotate(-5deg) translateY(0) } 50% { transform: translateX(-50%) rotate(-3deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(-5deg) translateY(0) } }
@keyframes lk-soldier { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes lk-haze { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.4; transform: scale(1) } }
@keyframes lk-spark { 0% { opacity:.5; transform: translateY(0) } 100% { opacity:1; transform: translateY(-4px) } }

.scn-whiskers-fragment {
  background:
    linear-gradient(180deg, #2a1a10 0%, #1a0f08 40%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0f08 70%);
}
.scn-whiskers-fragment .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%);
  animation: wf-wall 15s ease-in-out infinite alternate;
}
.scn-whiskers-fragment .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  border-top: 2px solid #3a2a1a;
}
.scn-whiskers-fragment .window {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 30px rgba(255,200,100,0.1);
  animation: wf-window 12s ease-in-out infinite alternate;
}
.scn-whiskers-fragment .candle {
  position: absolute; bottom: 38%; left: 15%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #d4a060 0%, #8a5a30 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 8px rgba(255,180,80,0.5);
  animation: wf-candle 3s ease-in-out infinite;
}
.scn-whiskers-fragment .figure-oldman {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wf-sway 4s ease-in-out infinite;
}
.scn-whiskers-fragment .figure-oldlady {
  position: absolute; bottom: 20%; left: 40%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wf-sway 4s ease-in-out infinite reverse;
}
.scn-whiskers-fragment .whiskers-accent {
  position: absolute; bottom: 55%; left: 35%; width: 40px; height: 12px;
  background: transparent;
  border-top: 3px solid #c8a060;
  border-radius: 50%;
  box-shadow: 0 -4px 0 #c8a060, 0 -8px 0 #b08040;
  animation: wf-whiskers 2s ease-in-out infinite alternate;
}
@keyframes wf-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes wf-window { 0% { box-shadow: inset 0 0 30px rgba(255,200,100,0.1); } 50% { box-shadow: inset 0 0 50px rgba(255,200,100,0.3); } 100% { box-shadow: inset 0 0 20px rgba(255,200,100,0.15); } }
@keyframes wf-candle { 0%,100% { transform: scaleY(1) rotate(-1deg); opacity:0.9 } 50% { transform: scaleY(1.1) rotate(1deg); opacity:1 } }
@keyframes wf-sway { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes wf-whiskers { 0% { transform: scaleX(1) rotate(0deg) } 50% { transform: scaleX(1.2) rotate(3deg) } 100% { transform: scaleX(1) rotate(-2deg) } }

.scn-la-fosseuse-whiskers {
  background:
    linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #1a0f08 100%),
    radial-gradient(ellipse at 70% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-la-fosseuse-whiskers .bg-court {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a10 100%);
  animation: lf-bg 20s ease-in-out infinite alternate;
}
.scn-la-fosseuse-whiskers .throne {
  position: absolute; bottom: 20%; left: 60%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #c8a060 0%, #8a5a30 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 8% 8%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-la-fosseuse-whiskers .queen {
  position: absolute; bottom: 18%; left: 62%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lf-queen 5s ease-in-out infinite;
}
.scn-la-fosseuse-whiskers .fosseuse {
  position: absolute; bottom: 18%; left: 20%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lf-curtsey 4s ease-in-out infinite;
}
.scn-la-fosseuse-whiskers .knotting-ball {
  position: absolute; bottom: 12%; left: 25%; width: 14px; height: 14px;
  background: radial-gradient(circle, #d4a060 0%, #8a5a30 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: lf-ball 3s ease-in-out infinite alternate;
}
.scn-la-fosseuse-whiskers .whiskers-symbol {
  position: absolute; top: 30%; left: 45%; width: 30px; height: 20px;
  background: transparent;
  border-bottom: 4px solid #c8a060;
  border-radius: 50%;
  box-shadow: 0 4px 0 #c8a060, 0 8px 0 #b08040;
  animation: lf-whiskers 2.5s ease-in-out infinite alternate;
}
.scn-la-fosseuse-whiskers .curtain {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 30% 30% 0;
  box-shadow: 4px 0 20px rgba(0,0,0,0.5);
  animation: lf-curtain 10s ease-in-out infinite alternate;
}
@keyframes lf-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes lf-queen { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lf-curtsey { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-3px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lf-ball { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(3px,-2px) scale(1.1) } 100% { transform: translate(-2px,1px) scale(0.95) } }
@keyframes lf-whiskers { 0% { transform: scaleX(1) rotate(0deg) } 50% { transform: scaleX(1.3) rotate(5deg) } 100% { transform: scaleX(1) rotate(-3deg) } }
@keyframes lf-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }

.scn-de-croix-whiskers {
  background:
    linear-gradient(180deg, #2a1a10 0%, #3a2a1a 30%, #1a0f08 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-de-croix-whiskers .gate {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.5);
  animation: dc-gate 12s ease-in-out infinite alternate;
}
.scn-de-croix-whiskers .figure-decroix {
  position: absolute; bottom: 22%; left: 48%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-strut 4s ease-in-out infinite;
}
.scn-de-croix-whiskers .maids {
  position: absolute; bottom: 20%; left: 10%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dc-maid 4.5s ease-in-out infinite;
}
.scn-de-croix-whiskers .maid-second {
  position: absolute; bottom: 20%; left: 18%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dc-maid 5s ease-in-out infinite 0.5s;
}
.scn-de-croix-whiskers .maid-third {
  position: absolute; bottom: 20%; left: 26%; width: 23px; height: 49px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dc-maid 4.2s ease-in-out infinite 1s;
}
.scn-de-croix-whiskers .whiskers-banner {
  position: absolute; top: 30%; left: 55%; width: 50px; height: 30px;
  background: transparent;
  border: 3px solid #c8a060;
  border-radius: 50%;
  box-shadow: 0 0 0 3px #b08040, 0 0 20px rgba(200,160,96,0.3);
  animation: dc-banner 6s ease-in-out infinite alternate;
}
.scn-de-croix-whiskers .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
}
@keyframes dc-gate { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1) } }
@keyframes dc-strut { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes dc-maid { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dc-banner { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.2) rotate(10deg) } 100% { transform: scale(1) rotate(-5deg) } }

.scn-whiskers-spread {
  background:
    linear-gradient(180deg, #1a0f08 0%, #2a1a10 50%, #1a0f08 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-whiskers-spread .corridor {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a1a10 0%, #3a2a1a 50%, #2a1a10 100%);
  animation: ws-corridor 20s ease-in-out infinite alternate;
}
.scn-whiskers-spread .door-left {
  position: absolute; bottom: 20%; left: 15%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: ws-door 6s ease-in-out infinite;
}
.scn-whiskers-spread .door-right {
  position: absolute; bottom: 20%; right: 15%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: ws-door 6s ease-in-out infinite 2s;
}
.scn-whiskers-spread .door-center {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 80px; height: 120px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: ws-door 6s ease-in-out infinite 4s;
}
.scn-whiskers-spread .figure-guyol {
  position: absolute; bottom: 15%; left: 16%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-figure 5s ease-in-out infinite 0.2s;
}
.scn-whiskers-spread .figure-battarelle {
  position: absolute; bottom: 15%; left: 33%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-figure 5s ease-in-out infinite 0.7s;
}
.scn-whiskers-spread .figure-maronette {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%); width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-figure 5s ease-in-out infinite 1.2s;
}
.scn-whiskers-spread .figure-sabatiere {
  position: absolute; bottom: 15%; right: 33%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-figure 5s ease-in-out infinite 1.7s;
}
.scn-whiskers-spread .whiskers-echo {
  position: absolute; top: 40%; left: 20%; width: 60px; height: 40px;
  background: transparent;
  border: 4px solid #c8a060;
  border-radius: 50%;
  box-shadow: 0 0 0 4px #b08040, 0 0 30px rgba(200,160,96,0.4);
  animation: ws-echo 3s ease-in-out infinite alternate;
}
@keyframes ws-corridor { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ws-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes ws-figure { 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 ws-echo { 0% { transform: scale(1) rotate(0deg); opacity: 0.8 } 50% { transform: scale(1.2) rotate(5deg); opacity: 1 } 100% { transform: scale(0.9) rotate(-3deg); opacity: 0.6 } }

.scn-may-pole-day {
  background: linear-gradient(180deg, #7ec8e3 0%, #b0e0b0 40%, #d4c878 70%), radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 60%);
}
.scn-may-pole-day .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0b0 100%); animation: mpd-sky 12s ease-in-out infinite alternate; }
.scn-may-pole-day .sun { position:absolute; top:10%; left:75%; width:50px; height:50px; background: radial-gradient(circle, #fff5c0 0%, #ffd700 40%, #ffa500 80%); border-radius:50%; box-shadow: 0 0 40px 20px #ffd700, 0 0 80px 40px rgba(255,165,0,0.3); animation: mpd-sun 8s ease-in-out infinite alternate; }
.scn-may-pole-day .maypole { position:absolute; bottom:45%; left:50%; width:8px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: mpd-pole 6s ease-in-out infinite; }
.scn-may-pole-day .ribbon { position:absolute; bottom:60%; left:50%; width:6px; height:80px; transform-origin: bottom center; border-radius:3px; }
.scn-may-pole-day .ribbon-a { background: #c8553d; transform: translateX(-50%) rotate(-25deg); animation: mpd-ribbon-a 5s ease-in-out infinite; }
.scn-may-pole-day .ribbon-b { background: #4a90e2; transform: translateX(-50%) rotate(15deg); animation: mpd-ribbon-b 5s ease-in-out infinite reverse; }
.scn-may-pole-day .ribbon-c { background: #f0c040; transform: translateX(-50%) rotate(45deg); animation: mpd-ribbon-c 5s ease-in-out infinite alternate; }
.scn-may-pole-day .dancer { position:absolute; bottom:45%; width:20px; height:40px; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-may-pole-day .dancer-a { left:35%; background: linear-gradient(180deg, #8B7355 0%, #5c4033 100%); animation: mpd-dance-a 2s ease-in-out infinite; }
.scn-may-pole-day .dancer-b { left:60%; background: linear-gradient(180deg, #b87333 0%, #8b5a2b 100%); animation: mpd-dance-b 2s ease-in-out infinite 0.5s; }
.scn-may-pole-day .ground { position:absolute; bottom:0; width:100%; height:45%; background: linear-gradient(180deg, #4caf50 0%, #2e7d32 100%); border-radius:40% 60% 0 0 / 20% 30% 0 0; animation: mpd-ground 2s ease-in-out infinite alternate; }
@keyframes mpd-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes mpd-sun { 0% { transform: scale(0.98); box-shadow: 0 0 30px 15px #ffd700 } 50% { transform: scale(1.02); box-shadow: 0 0 50px 25px #ffd700 } 100% { transform: scale(1); box-shadow: 0 0 40px 20px #ffd700 } }
@keyframes mpd-pole { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes mpd-ribbon-a { 0% { transform: translateX(-50%) rotate(-25deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(-15deg) scaleY(1.1) } 100% { transform: translateX(-50%) rotate(-25deg) scaleY(1) } }
@keyframes mpd-ribbon-b { 0% { transform: translateX(-50%) rotate(15deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(25deg) scaleY(1.1) } 100% { transform: translateX(-50%) rotate(15deg) scaleY(1) } }
@keyframes mpd-ribbon-c { 0% { transform: translateX(-50%) rotate(45deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(55deg) scaleY(1.1) } 100% { transform: translateX(-50%) rotate(45deg) scaleY(1) } }
@keyframes mpd-dance-a { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-8px) rotate(5deg) } 50% { transform: translateY(0) rotate(-5deg) } 75% { transform: translateY(-8px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes mpd-dance-b { 0% { transform: translateY(0) rotate(5deg) } 25% { transform: translateY(-8px) rotate(-5deg) } 50% { transform: translateY(0) rotate(5deg) } 75% { transform: translateY(-8px) rotate(-5deg) } 100% { transform: translateY(0) rotate(5deg) } }
@keyframes mpd-ground { 0% { transform: translateY(0) } 100% { transform: translateY(2px) } }

.scn-remarks-recovered {
  background: linear-gradient(180deg, #2a1a10 0%, #4a3020 40%, #3a2010 100%), radial-gradient(ellipse at 50% 80%, #8b5a2b 0%, transparent 70%);
}
.scn-remarks-recovered .wall { position:absolute; inset:0; background: linear-gradient(180deg, #5c4033 0%, #3a2a1a 100%); animation: rr-wall 10s ease-in-out infinite alternate; }
.scn-remarks-recovered .window { position:absolute; top:15%; left:10%; width:60px; height:80px; background: radial-gradient(ellipse at center, #c08040 0%, #7a4a1a 100%); border-radius:40% 40% 0 0; box-shadow: inset 0 0 20px #5a2a0a; animation: rr-window 8s ease-in-out infinite alternate; }
.scn-remarks-recovered .candle { position:absolute; top:55%; left:65%; width:8px; height:40px; background: linear-gradient(180deg, #f0d090 0%, #a07040 100%); border-radius:4px; box-shadow: 0 0 20px 8px #ffd090; animation: rr-candle 3s ease-in-out infinite alternate; }
.scn-remarks-recovered .head { position:absolute; bottom:30%; left:50%; width:70px; height:90px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #8b7355 0%, #5c4033 70%); border-radius:50% 50% 45% 45% / 60% 60% 40% 40%; animation: rr-head 6s ease-in-out infinite; }
.scn-remarks-recovered .hair-main { position:absolute; bottom:45%; left:50%; width:90px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; animation: rr-hair 12s ease-in-out infinite alternate; }
.scn-remarks-recovered .curl { position:absolute; bottom:50%; width:12px; height:20px; border-radius:50%; background: #3a2010; animation: rr-curl 4s ease-in-out infinite; }
.scn-remarks-recovered .curl-left { left:40%; transform: rotate(-20deg); }
.scn-remarks-recovered .curl-right { left:55%; transform: rotate(20deg); animation-delay: 0.5s; }
.scn-remarks-recovered .papillote { position:absolute; bottom:55%; left:45%; width:16px; height:4px; background: #8b5a2b; border-radius:2px; transform: rotate(-45deg); animation: rr-papillote 7s ease-in-out infinite; box-shadow: 0 0 4px rgba(0,0,0,0.4); }
@keyframes rr-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes rr-window { 0% { opacity:0.7; box-shadow: inset 0 0 20px #5a2a0a } 50% { opacity:1; box-shadow: inset 0 0 30px #7a3a1a } 100% { opacity:0.75; box-shadow: inset 0 0 20px #5a2a0a } }
@keyframes rr-candle { 0% { transform: scaleY(1); box-shadow: 0 0 15px 5px #ffd090 } 50% { transform: scaleY(1.05); box-shadow: 0 0 25px 10px #ffd090 } 100% { transform: scaleY(1); box-shadow: 0 0 15px 5px #ffd090 } }
@keyframes rr-head { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes rr-hair { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes rr-curl { 0% { transform: rotate(-20deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.1) } 100% { transform: rotate(-20deg) scale(1) } }
@keyframes rr-papillote { 0% { transform: rotate(-45deg) translateY(0) } 25% { transform: rotate(-40deg) translateY(-2px) } 75% { transform: rotate(-50deg) translateY(2px) } 100% { transform: rotate(-45deg) translateY(0) } }

.scn-clock-out-of-order {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 50%, #f5e6cc 100%), radial-gradient(ellipse at 50% 0%, #f5e6cc 0%, transparent 80%);
}
.scn-clock-out-of-order .cathedral-bg { position:absolute; bottom:0; width:100%; height:80%; background: linear-gradient(180deg, #b0a090 0%, #806050 100%); border-radius:30% 30% 0 0 / 10% 10% 0 0; animation: coo-bg 15s ease-in-out infinite alternate; }
.scn-clock-out-of-order .tower { position:absolute; bottom:0; left:50%; width:100px; height:200px; transform:translateX(-50%); background: linear-gradient(180deg, #b09070 0%, #7a5a40 100%); border-radius:10% 10% 0 0; box-shadow: -5px 0 10px rgba(0,0,0,0.3); animation: coo-tower 4s ease-in-out infinite; }
.scn-clock-out-of-order .clockface { position:absolute; bottom:120px; left:50%; width:70px; height:70px; transform:translateX(-50%); background: radial-gradient(circle, #f0e0c0 0%, #d0b090 100%); border-radius:50%; border:4px solid #8b7355; box-shadow: 0 0 20px rgba(0,0,0,0.4); animation: coo-face 2s ease-in-out infinite alternate; }
.scn-clock-out-of-order .hour-hand { position:absolute; bottom:155px; left:50%; width:4px; height:20px; transform-origin: bottom center; background:#5a3a2a; border-radius:2px; transform: translateX(-50%) rotate(30deg); animation: coo-hand 1s ease-in-out infinite alternate; }
.scn-clock-out-of-order .minute-hand { position:absolute; bottom:155px; left:50%; width:3px; height:30px; transform-origin: bottom center; background:#3a2a1a; border-radius:1.5px; transform: translateX(-50%) rotate(120deg); animation: coo-min-hand 0.5s ease-in-out infinite alternate; }
.scn-clock-out-of-order .gear { position:absolute; border-radius:50%; background: radial-gradient(circle, #c0a080 0%, #8b7355 100%); animation: coo-gear 2s linear infinite; }
.scn-clock-out-of-order .gear-small { bottom:80px; left:40%; width:20px; height:20px; box-shadow: 0 0 6px rgba(0,0,0,0.5); }
.scn-clock-out-of-order .gear-large { bottom:60px; left:55%; width:30px; height:30px; animation-duration: 3s; }
.scn-clock-out-of-order .hammer { position:absolute; bottom:90px; left:48%; width:8px; height:50px; background:#7a5a40; border-radius:4px; transform-origin: top center; transform: rotate(-15deg); animation: coo-hammer 0.5s ease-in-out infinite alternate; }
@keyframes coo-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes coo-tower { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.005) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes coo-face { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes coo-hand { 0% { transform: translateX(-50%) rotate(30deg) } 100% { transform: translateX(-50%) rotate(50deg) } }
@keyframes coo-min-hand { 0% { transform: translateX(-50%) rotate(120deg) } 100% { transform: translateX(-50%) rotate(180deg) } }
@keyframes coo-gear { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes coo-hammer { 0% { transform: rotate(-15deg) } 100% { transform: rotate(15deg) } }

.scn-tomb-not-found {
  background: linear-gradient(180deg, #4a90e2 0%, #87ceeb 30%, #f5f5dc 60%), radial-gradient(ellipse at 50% 100%, #f5f5dc 0%, transparent 70%);
}
.scn-tomb-not-found .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6bb3e0 0%, #b0d4e8 100%); animation: tnf-sky 16s ease-in-out infinite alternate; }
.scn-tomb-not-found .sun { position:absolute; top:8%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #fff5c0 0%, #ffd700 40%, #ffb300 80%); border-radius:50%; box-shadow: 0 0 60px 30px #ffd700, 0 0 120px 60px rgba(255,179,0,0.3); animation: tnf-sun 12s ease-in-out infinite alternate; }
.scn-tomb-not-found .gate { position:absolute; bottom:25%; width:4px; height:120px; background: #1a1a1a; border-radius:2px; }
.scn-tomb-not-found .gate-left { left:35%; transform: rotateY(20deg); }
.scn-tomb-not-found .gate-right { left:62%; transform: rotateY(-20deg); }
.scn-tomb-not-found .tomb { position:absolute; bottom:20%; left:50%; width:80px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #c0b0a0 0%, #8b7a6a 100%); border-radius:20% 20% 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: tnf-tomb 8s ease-in-out infinite; }
.scn-tomb-not-found .cross { position:absolute; bottom:55%; left:50%; width:4px; height:40px; transform:translateX(-50%); background: #2a1a0a; border-radius:2px; animation: tnf-cross 10s ease-in-out infinite alternate; }
.scn-tomb-not-found .cross::before { content:''; position:absolute; top:12px; left:-12px; width:28px; height:4px; background:#2a1a0a; border-radius:2px; }
.scn-tomb-not-found .shadow { position:absolute; bottom:0; left:0; width:100%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); animation: tnf-shadow 6s ease-in-out infinite alternate; }
@keyframes tnf-sky { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tnf-sun { 0% { box-shadow: 0 0 40px 20px #ffd700 } 50% { box-shadow: 0 0 80px 40px #ffd700 } 100% { box-shadow: 0 0 60px 30px #ffd700 } }
@keyframes tnf-tomb { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes tnf-cross { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(0.98) } 100% { transform: translateX(-50%) scale(1.02) } }
@keyframes tnf-shadow { 0% { opacity:0.3 } 100% { opacity:0.6 } }

.scn-night-shift { background: linear-gradient(180deg, #1e1a1a 0%, #2a2420 40%, #3d2b1c 100%), radial-gradient(ellipse at 50% 20%, #4a2e1a 0%, transparent 60%); }
.scn-night-shift .ns-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(60,40,20,.2) 0%, transparent 100%); animation: ns-ambient 8s ease-in-out infinite alternate; }
.scn-night-shift .ns-window { position:absolute; top:10%; left:5%; width:30%; height:40%; border-radius: 4% 4% 8% 8%; background: linear-gradient(180deg, #0d1720 0%, #1b2f40 100%); border: 4px solid #3d2b1c; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: ns-window 12s ease-in-out infinite; }
.scn-night-shift .ns-desk { position:absolute; bottom:15%; left:15%; right:10%; height:30%; background: linear-gradient(180deg, #4a3520 0%, #2e1f10 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-night-shift .ns-lamp { position:absolute; bottom:40%; left:25%; width:30px; height:60px; background: radial-gradient(ellipse at 50% 20%, #b8723a 0%, #7a4a1e 100%); border-radius: 60% 60% 20% 20%; transform-origin: bottom center; animation: ns-lamp 3s ease-in-out infinite alternate; }
.scn-night-shift .ns-lamp::after { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:12px; height:12px; background: radial-gradient(circle, #ffd060 0%, #c08030 60%); border-radius:50%; box-shadow: 0 0 20px 6px #c08030; }
.scn-night-shift .ns-figure { position:absolute; bottom:18%; left:28%; width:22px; height:48px; background: linear-gradient(180deg, #2a1e12 0%, #0d0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ns-figure 5s ease-in-out infinite; }
.scn-night-shift .ns-cat { position:absolute; bottom:15%; left:15%; width:14px; height:10px; background: #1a120a; border-radius: 50% 50% 30% 30%; animation: ns-cat 7s ease-in-out infinite; }
.scn-night-shift .ns-cat::after { content:''; position:absolute; top:-6px; left:2px; width:4px; height:6px; background: #1a120a; border-radius: 50%; transform: rotate(-20deg); }
.scn-night-shift .ns-papers { position:absolute; bottom:20%; left:35%; width:30px; height:20px; background: #d4c8a0; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ns-papers 10s ease-in-out infinite; }
.scn-night-shift .ns-clock { position:absolute; top:8%; right:12%; width:20px; height:20px; border-radius:50%; background: radial-gradient(circle, #d4c090 0%, #8a7040 60%); border: 2px solid #5a4020; animation: ns-clock 60s linear infinite; }
.scn-night-shift .ns-clock::after { content:''; position:absolute; top:50%; left:50%; width:2px; height:8px; background: #2a1e10; transform-origin: bottom center; transform: translate(-50%,-100%) rotate(0); }

@keyframes ns-ambient { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes ns-window { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.6 } }
@keyframes ns-lamp { 0% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.02) rotate(2deg) } 100% { transform: scaleY(1) rotate(0) } }
@keyframes ns-figure { 0% { transform: translate(0,0) rotate(-1deg) } 30% { transform: translate(2px,-1px) rotate(1deg) } 60% { transform: translate(4px,0) rotate(-1deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes ns-cat { 0% { transform: translate(0,0) scaleX(1) } 25% { transform: translate(-2px,1px) scaleX(-1) } 50% { transform: translate(0,0) scaleX(1) } 75% { transform: translate(2px,-1px) scaleX(-1) } 100% { transform: translate(0,0) scaleX(1) } }
@keyframes ns-papers { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(1px,-2px) rotate(3deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes ns-clock { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }

.scn-pin-kicked-out { background: linear-gradient(180deg, #1a1a1a 0%, #2a221e 50%, #1e1814 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%); }
.scn-pin-kicked-out .pk-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(40,30,20,.3) 0%, transparent 80%); }
.scn-pin-kicked-out .pk-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2e241a 0%, #1a1410 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-pin-kicked-out .pk-foot { position:absolute; bottom:30%; left:50%; width:30px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3620 0%, #2e1e10 100%); border-radius: 60% 40% 30% 70%; animation: pk-kick 2s ease-in-out infinite; }
.scn-pin-kicked-out .pk-foot::after { content:''; position:absolute; top:-2px; left:50%; width:8px; height:6px; background: #3a2a18; border-radius:50%; transform:translateX(-50%); }
.scn-pin-kicked-out .pk-pin { position:absolute; bottom:35%; right:25%; width:4px; height:14px; background: linear-gradient(180deg, #c08040 0%, #8a5a20 100%); border-radius: 2px; transform-origin: bottom center; animation: pk-pin 2s ease-in-out infinite; }
.scn-pin-kicked-out .pk-pin-shadow { position:absolute; bottom:34%; right:24%; width:6px; height:3px; background: rgba(0,0,0,.3); border-radius:50%; animation: pk-pin 2s ease-in-out infinite; filter: blur(2px); }
.scn-pin-kicked-out .pk-shift { position:absolute; bottom:30%; left:10%; width:40px; height:24px; background: linear-gradient(135deg, #d0b896 0%, #a89070 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: pk-shift 2s ease-in-out infinite; }
.scn-pin-kicked-out .pk-spark { position:absolute; bottom:38%; right:28%; width:6px; height:6px; background: radial-gradient(circle, #ffd060 0%, #c08030 60%); border-radius:50%; box-shadow: 0 0 8px 2px #ffd060; animation: pk-spark 2s ease-in-out infinite; }

@keyframes pk-kick { 0% { transform: translateX(-50%) rotate(-10deg) translateY(0) } 25% { transform: translateX(-20%) rotate(-20deg) translateY(-5px) } 50% { transform: translateX(0%) rotate(10deg) translateY(0) } 75% { transform: translateX(-30%) rotate(0) translateY(-2px) } 100% { transform: translateX(-50%) rotate(-10deg) translateY(0) } }
@keyframes pk-pin { 0% { transform: translate(0,0) rotate(0) } 20% { transform: translate(20px,30px) rotate(180deg) } 40% { transform: translate(40px,10px) rotate(360deg) } 60% { transform: translate(60px,20px) rotate(540deg) } 80% { transform: translate(80px,5px) rotate(720deg) } 100% { transform: translate(100px,0) rotate(900deg) opacity:.3 } }
@keyframes pk-shift { 0% { transform: scale(1) rotate(-2deg) } 50% { transform: scale(1.05) rotate(3deg) } 100% { transform: scale(1) rotate(-2deg) } }
@keyframes pk-spark { 0% { opacity:1 } 20% { opacity:0 } 100% { opacity:0 } }

.scn-love-confirmed { background: linear-gradient(180deg, #2a1a12 0%, #3d2a1c 50%, #4a3020 100%), radial-gradient(ellipse at 50% 80%, #6a3a1a 0%, transparent 60%); }
.scn-love-confirmed .lc-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(80,40,20,.15) 0%, transparent 90%); }
.scn-love-confirmed .lc-candle { position:absolute; bottom:35%; left:20%; width:12px; height:30px; background: linear-gradient(180deg, #f0d0a0 0%, #c8a070 100%); border-radius: 4px 4px 2px 2px; transform-origin: bottom center; animation: lc-candle 3s ease-in-out infinite alternate; }
.scn-love-confirmed .lc-candle::after { content:''; position:absolute; top:-6px; left:50%; transform:translateX(-50%); width:8px; height:10px; background: radial-gradient(circle, #ffd060 0%, #e0a030 60%); border-radius:50%; box-shadow: 0 0 15px 5px #e0a030; }
.scn-love-confirmed .lc-glow { position:absolute; bottom:30%; left:15%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%); border-radius:50%; animation: lc-glow 4s ease-in-out infinite; }
.scn-love-confirmed .lc-figure1 { position:absolute; bottom:20%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a12 0%, #0d0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lc-figure1 5s ease-in-out infinite; }
.scn-love-confirmed .lc-figure2 { position:absolute; bottom:20%; left:45%; width:22px; height:48px; background: linear-gradient(180deg, #2a1a12 0%, #0d0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lc-figure2 6s ease-in-out infinite; }
.scn-love-confirmed .lc-document { position:absolute; bottom:28%; left:30%; width:30px; height:20px; background: #d4c0a0; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: lc-document 8s ease-in-out infinite; }
.scn-love-confirmed .lc-hearth { position:absolute; bottom:10%; left:50%; width:40px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #c8553d 0%, #8a2a1a 100%); border-radius: 50% 50% 20% 20%; animation: lc-hearth 2s ease-in-out infinite alternate; }

@keyframes lc-candle { 0% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes lc-glow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes lc-figure1 { 0% { transform: translate(0,0) rotate(-2deg) } 30% { transform: translate(2px,-1px) rotate(1deg) } 60% { transform: translate(4px,0) rotate(0) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes lc-figure2 { 0% { transform: translate(0,0) rotate(1deg) } 50% { transform: translate(-2px,-1px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(1deg) } }
@keyframes lc-document { 0% { transform: rotate(-3deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes lc-hearth { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.02) scaleY(1.01) } 100% { transform: translateX(-50%) scaleX(1) } }

.scn-distinction-without-difference { background: linear-gradient(180deg, #1a1a1a 0%, #2a2420 50%, #3a2e24 100%), radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%); }
.scn-distinction-without-difference .dd-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,20,10,.2) 0%, transparent 80%); }
.scn-distinction-without-difference .dd-hat1 { position:absolute; bottom:35%; left:20%; width:50px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 50% 50% 10% 10%; transform: rotate(-10deg); animation: dd-hat1 6s ease-in-out infinite; }
.scn-distinction-without-difference .dd-brim1 { position:absolute; bottom:32%; left:16%; width:60px; height:8px; background: #2a1e12; border-radius: 50%; transform: rotate(-10deg); animation: dd-brim1 6s ease-in-out infinite; }
.scn-distinction-without-difference .dd-ribbon1 { position:absolute; bottom:35%; left:20%; width:50px; height:6px; background: #5e1a1d; border-radius: 2px; transform: rotate(-10deg); animation: dd-ribbon1 6s ease-in-out infinite; }
.scn-distinction-without-difference .dd-hat2 { position:absolute; bottom:35%; right:20%; width:50px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 10% 10% 50% 50%; transform: rotate(10deg); animation: dd-hat2 8s ease-in-out infinite; }
.scn-distinction-without-difference .dd-brim2 { position:absolute; bottom:32%; right:16%; width:60px; height:8px; background: #2a1e12; border-radius: 50%; transform: rotate(10deg); animation: dd-brim2 8s ease-in-out infinite; }
.scn-distinction-without-difference .dd-ribbon2 { position:absolute; bottom:35%; right:20%; width:50px; height:6px; background: #702243; border-radius: 2px; transform: rotate(10deg); animation: dd-ribbon2 8s ease-in-out infinite; }
.scn-distinction-without-difference .dd-shadow { position:absolute; bottom:28%; left:10%; right:10%; height:20px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(4px); animation: dd-shadow 10s ease-in-out infinite; }

@keyframes dd-hat1 { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes dd-brim1 { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-10deg) } }
@keyframes dd-ribbon1 { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-10deg) } }
@keyframes dd-hat2 { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes dd-brim2 { 0% { transform: rotate(10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(10deg) } }
@keyframes dd-ribbon2 { 0% { transform: rotate(10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(10deg) } }
@keyframes dd-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-trims-opinion {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-trims-opinion .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(0deg, #1a1008 0%, transparent 100%);
  opacity: 0.7; animation: to-bg 12s ease-in-out infinite alternate;
}
.scn-trims-opinion .wall {
  position: absolute; inset: 0 0 35% 0; 
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-bottom: 4px solid #2a1a0a;
}
.scn-trims-opinion .desk {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(0deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px #1a0a00;
}
.scn-trims-opinion .figure-father {
  position: absolute; bottom: 22%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(0deg, #1a1a0a 0%, #2a1a0a 60%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: to-father 4s ease-in-out infinite;
}
.scn-trims-opinion .figure-yorick {
  position: absolute; bottom: 22%; right: 25%; width: 16px; height: 44px;
  background: linear-gradient(0deg, #2a1a0a 0%, #1a0a00 60%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: to-yorick 5s ease-in-out infinite 1s;
}
.scn-trims-opinion .candle {
  position: absolute; bottom: 38%; left: 50%; width: 6px; height: 16px;
  margin-left: -3px;
  background: linear-gradient(0deg, #8a6a2a 0%, #5a3a0a 100%);
  border-radius: 2px;
}
.scn-trims-opinion .candle::before {
  content: ''; position: absolute; top: -8px; left: -3px; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd060 0%, #ff8c00 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffa030, 0 0 40px 12px rgba(255,160,48,0.3);
  animation: to-flame 1s ease-in-out infinite alternate;
}
.scn-trims-opinion .books {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 20px;
  background: repeating-linear-gradient(
    0deg, #6a4a2a 0px, #6a4a2a 4px, #4a2a0a 4px, #4a2a0a 8px
  );
  border-radius: 2px; transform: rotate(-5deg);
}
@keyframes to-bg { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes to-father {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes to-yorick {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  30% { transform: translateX(-4px) rotate(-3deg) scaleY(0.98); }
  60% { transform: translateX(2px) rotate(2deg) scaleY(1); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes to-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.95) translateY(1px); opacity: 0.8; }
}

.scn-ditch-water-brandy {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 80%);
}
.scn-ditch-water-brandy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0a00 0%, #2a1a0a 100%);
}
.scn-ditch-water-brandy .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
}
.scn-ditch-water-brandy .corp {
  position: absolute; bottom: 30%; left: 20%; width: 18px; height: 40px;
  background: linear-gradient(0deg, #1a1a0a 0%, #2a1a0a 60%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dw-corp 0.8s ease-in-out infinite alternate;
}
.scn-ditch-water-brandy .slop {
  position: absolute; bottom: 32%; left: 55%; width: 22px; height: 32px;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dw-slop 1.2s ease-in-out infinite alternate;
}
.scn-ditch-water-brandy .hat {
  position: absolute; bottom: 55%; left: 18%; width: 20px; height: 10px;
  background: #1a1a0a; border-radius: 50% 50% 0 0;
  transform: rotate(-10deg);
  animation: dw-hat 0.8s ease-in-out infinite alternate;
}
.scn-ditch-water-brandy .bottle {
  position: absolute; bottom: 38%; left: 65%; width: 8px; height: 18px;
  background: linear-gradient(0deg, #8a6a2a 0%, #5a3a0a 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  animation: dw-bottle 3s ease-in-out infinite;
}
@keyframes dw-corp {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dw-slop {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-3px) rotate(-4deg) scaleY(0.95); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes dw-hat {
  0% { transform: rotate(-10deg) translateY(0); }
  100% { transform: rotate(0deg) translateY(-2px); }
}
@keyframes dw-bottle {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(40deg) translateY(-1px); }
  100% { transform: rotate(30deg) translateY(0); }
}

.scn-slops-query {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a1008 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 80%);
}
.scn-slops-query .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #1a0a00 0%, transparent 100%);
}
.scn-slops-query .chair-father {
  position: absolute; bottom: 15%; left: 15%; width: 30px; height: 40px;
  background: linear-gradient(0deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 6px;
}
.scn-slops-query .chair-slop {
  position: absolute; bottom: 15%; right: 15%; width: 30px; height: 40px;
  background: linear-gradient(0deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 6px;
}
.scn-slops-query .figure-father {
  position: absolute; bottom: 22%; left: 18%; width: 18px; height: 34px;
  background: linear-gradient(0deg, #1a1a0a 0%, #2a1a0a 60%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sq-father 4s ease-in-out infinite;
}
.scn-slops-query .figure-slop {
  position: absolute; bottom: 20%; right: 16%; width: 22px; height: 30px;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sq-slop 3s ease-in-out infinite 0.5s;
}
.scn-slops-query .puppy-tail {
  position: absolute; bottom: 15%; left: 50%; width: 6px; height: 16px;
  margin-left: -3px;
  background: linear-gradient(0deg, #4a2a0a 0%, #3a1a00 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: sq-tail 0.3s ease-in-out infinite alternate;
}
.scn-slops-query .candle {
  position: absolute; bottom: 45%; left: 50%; width: 6px; height: 14px;
  margin-left: -3px;
  background: linear-gradient(0deg, #8a6a2a 0%, #5a3a0a 100%);
  border-radius: 2px;
}
.scn-slops-query .candle::before {
  content: ''; position: absolute; top: -7px; left: -2px; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd060 0%, #ff8c00 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #ffa030, 0 0 32px 8px rgba(255,160,48,0.3);
  animation: sq-flame 1s ease-in-out infinite alternate;
}
@keyframes sq-father {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sq-slop {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  30% { transform: translateX(3px) rotate(3deg) scaleY(0.96); }
  60% { transform: translateX(-2px) rotate(-2deg) scaleY(1); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes sq-tail {
  0% { transform: rotate(-30deg); }
  100% { transform: rotate(30deg); }
}
@keyframes sq-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.15) translateY(-3px); opacity: 1; }
  100% { transform: scale(0.9) translateY(1px); opacity: 0.8; }
}

.scn-limerick-description {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-limerick-description .bg-tent {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #1a0a00 0%, transparent 100%);
  opacity: 0.5; animation: ld-bg 15s ease-in-out infinite alternate;
}
.scn-limerick-description .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(0deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px #1a0a00;
}
.scn-limerick-description .map {
  position: absolute; bottom: 18%; left: 15%; width: 70%; height: 25%;
  background: linear-gradient(135deg, #6a5a3a 0%, #5a4a2a 50%, #4a3a1a 100%);
  border-radius: 4px; opacity: 0.8;
  transform: rotate(-2deg);
  animation: ld-map 20s ease-in-out infinite;
}
.scn-limerick-description .candle {
  position: absolute; bottom: 28%; left: 50%; width: 6px; height: 14px;
  margin-left: -3px;
  background: linear-gradient(0deg, #8a6a2a 0%, #5a3a0a 100%);
  border-radius: 2px;
}
.scn-limerick-description .candle::before {
  content: ''; position: absolute; top: -6px; left: -2px; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd060 0%, #ff8c00 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #ffa030, 0 0 36px 10px rgba(255,160,48,0.25);
  animation: ld-flame 1.2s ease-in-out infinite alternate;
}
.scn-limerick-description .figure {
  position: absolute; bottom: 18%; left: 40%; width: 18px; height: 36px;
  background: linear-gradient(0deg, #1a1a0a 0%, #2a1a0a 60%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ld-figure 6s ease-in-out infinite;
}
.scn-limerick-description .goblet {
  position: absolute; bottom: 16%; left: 68%; width: 8px; height: 14px;
  background: linear-gradient(0deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: ld-goblet 4s ease-in-out infinite alternate;
}
@keyframes ld-bg { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.5; } }
@keyframes ld-map {
  0% { transform: rotate(-2deg) scale(1); }
  25% { transform: rotate(1deg) scale(1.02); }
  50% { transform: rotate(-3deg) scale(1); }
  75% { transform: rotate(0deg) scale(0.98); }
  100% { transform: rotate(-2deg) scale(1); }
}
@keyframes ld-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.95) translateY(1px); opacity: 0.85; }
}
@keyframes ld-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ld-goblet {
  0% { transform: rotate(5deg) translateY(0); }
  100% { transform: rotate(-5deg) translateY(-1px); }
}

.scn-uncle-tobys-gentleness {
  background: 
    linear-gradient(180deg, #1a0e06 0%, #2c1a0c 40%, #3a2210 70%, #1f1107 100%),
    radial-gradient(ellipse at 30% 20%, #4a2c12 0%, transparent 60%);
}
.scn-uncle-tobys-gentleness .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #1f1107 0%, #3a2210 40%, #2c1a0c 100%); }
.scn-uncle-tobys-gentleness .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a180a 0%, #170e04 100%); border-top:2px solid #4a3018; }
.scn-uncle-tobys-gentleness .window { position:absolute; top:15%; left:10%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 60%, #e8c080 0%, #b08040 40%, transparent 70%); border:4px solid #3a2210; border-radius:4px; box-shadow: inset 0 0 30px rgba(200,150,80,.3); animation: utw-glow 6s ease-in-out infinite alternate; }
.scn-uncle-tobys-gentleness .chair { position:absolute; bottom:20%; left:35%; width:30%; height:30%; background: linear-gradient(135deg, #4a3018 0%, #2a180a 100%); border-radius:5% 5% 20% 20%; box-shadow: 0 8px 12px rgba(0,0,0,.6); transform: rotate(-2deg); animation: utw-chair 4s ease-in-out infinite; }
.scn-uncle-tobys-gentleness .figure-toby { position:absolute; bottom:15%; left:40%; width:12%; height:45%; background: linear-gradient(180deg, #1a0e06 0%, #0f0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: utw-walk 8s ease-in-out infinite; }
.scn-uncle-tobys-gentleness .fly { position:absolute; bottom:45%; left:50%; width:1.5%; height:1.5%; background: radial-gradient(circle, #ffd080 0%, #c08040 80%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(200,150,80,.5); animation: utw-fly 3s ease-in-out infinite; }
.scn-uncle-tobys-gentleness .shadow { position:absolute; bottom:0; left:35%; width:30%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); animation: utw-shad 4s ease-in-out infinite; }
@keyframes utw-glow { 0% { opacity:.6; box-shadow: inset 0 0 20px rgba(200,150,80,.2); } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(200,150,80,.5), 0 0 20px rgba(200,150,80,.3); } 100% { opacity:.8; box-shadow: inset 0 0 30px rgba(200,150,80,.3); } }
@keyframes utw-chair { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } }
@keyframes utw-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8%) rotate(2deg); } 50% { transform: translateX(16%) rotate(-1deg); } 75% { transform: translateX(24%) rotate(2deg); } 100% { transform: translateX(32%) rotate(0deg); } }
@keyframes utw-fly { 0% { transform: translate(0,0) rotate(0deg); opacity:.8; } 30% { transform: translate(10%,-10%) rotate(30deg); opacity:1; } 60% { transform: translate(-5%,5%) rotate(-20deg); opacity:.9; } 100% { transform: translate(3%,-3%) rotate(10deg); opacity:.8; } }
@keyframes utw-shad { 0%,100% { transform: translateX(0) scaleX(1); opacity:.5; } 50% { transform: translateX(20%) scaleX(1.2); opacity:.7; } }

.scn-brothers-reconciliation {
  background: 
    linear-gradient(180deg, #1a0e06 0%, #2c1a0c 40%, #3a2210 70%, #1f1107 100%),
    radial-gradient(ellipse at 50% 30%, #4a2c12 0%, transparent 60%);
}
.scn-brothers-reconciliation .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #2c1a0c 0%, #1f1107 50%, #3a2210 100%); }
.scn-brothers-reconciliation .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a180a 0%, #170e04 100%); border-top:2px solid #4a3018; }
.scn-brothers-reconciliation .figure-left { position:absolute; bottom:10%; left:15%; width:20%; height:50%; background: linear-gradient(180deg, #1a0e06 0%, #0f0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: br-left 6s ease-in-out infinite; }
.scn-brothers-reconciliation .figure-right { position:absolute; bottom:10%; right:15%; width:20%; height:50%; background: linear-gradient(180deg, #1a0e06 0%, #0f0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: br-right 6s ease-in-out infinite reverse; }
.scn-brothers-reconciliation .glow { position:absolute; bottom:35%; left:50%; width:20%; height:20%; transform:translate(-50%,0); background: radial-gradient(circle, #e8c080 0%, #b08040 40%, transparent 70%); border-radius:50%; animation: br-glow 4s ease-in-out infinite alternate; }
.scn-brothers-reconciliation .shadow-left { position:absolute; bottom:0; left:10%; width:22%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%); animation: br-shad-l 6s ease-in-out infinite; }
.scn-brothers-reconciliation .shadow-right { position:absolute; bottom:0; right:10%; width:22%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%); animation: br-shad-r 6s ease-in-out infinite reverse; }
@keyframes br-left { 0%,100% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-8%) rotate(-3deg); } }
@keyframes br-right { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8%) rotate(3deg); } }
@keyframes br-glow { 0% { opacity:.5; transform: translate(-50%,0) scale(.8); } 50% { opacity:1; transform: translate(-50%,0) scale(1.2); } 100% { opacity:.7; transform: translate(-50%,0) scale(.9); } }
@keyframes br-shad-l { 0%,100% { transform: translateX(0) scaleX(1); opacity:.5; } 50% { transform: translateX(-10%) scaleX(1.3); opacity:.8; } }
@keyframes br-shad-r { 0%,100% { transform: translateX(0) scaleX(1); opacity:.5; } 50% { transform: translateX(10%) scaleX(1.3); opacity:.8; } }

.scn-apology-accepted {
  background: 
    linear-gradient(180deg, #1a0e06 0%, #2c1a0c 40%, #3a2210 70%, #1f1107 100%),
    radial-gradient(ellipse at 50% 40%, #4a2c12 0%, transparent 60%);
}
.scn-apology-accepted .background { position:absolute; inset:0; background: linear-gradient(180deg, #2c1a0c 0%, #1f1107 100%); }
.scn-apology-accepted .figure-1 { position:absolute; bottom:10%; left:10%; width:25%; height:55%; background: linear-gradient(180deg, #1a0e06 0%, #0f0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aa-f1 5s ease-in-out infinite; }
.scn-apology-accepted .figure-2 { position:absolute; bottom:10%; right:10%; width:25%; height:55%; background: linear-gradient(180deg, #1a0e06 0%, #0f0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aa-f2 5s ease-in-out infinite; }
.scn-apology-accepted .hands { position:absolute; bottom:20%; left:50%; width:15%; height:10%; transform:translateX(-50%); background: linear-gradient(180deg, #3a2210 0%, #2a180a 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: aa-hands 3s ease-in-out infinite; }
.scn-apology-accepted .tear { position:absolute; bottom:25%; left:35%; width:2%; height:2%; background: radial-gradient(circle, #c0a080 0%, #806050 80%); border-radius:50%; animation: aa-tear 4s ease-in-out infinite; opacity:.6; }
.scn-apology-accepted .glow { position:absolute; bottom:30%; left:50%; width:25%; height:25%; transform:translate(-50%,0); background: radial-gradient(circle, #e8c080 0%, #b08040 30%, transparent 70%); border-radius:50%; animation: aa-glow 4s ease-in-out infinite alternate; }
.scn-apology-accepted .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a180a 0%, #170e04 100%); }
@keyframes aa-f1 { 0%,100% { transform: translateX(0) rotate(3deg); } 50% { transform: translateX(-10%) rotate(-2deg); } }
@keyframes aa-f2 { 0%,100% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(10%) rotate(2deg); } }
@keyframes aa-hands { 0%,100% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-5px) scale(1.1); } }
@keyframes aa-tear { 0% { transform: translate(0,0); opacity:.6; } 25% { transform: translate(5%,-5%); opacity:.8; } 50% { transform: translate(2%,-10%); opacity:.5; } 75% { transform: translate(-3%,-15%); opacity:.7; } 100% { transform: translate(0,-20%); opacity:0; } }
@keyframes aa-glow { 0% { opacity:.4; transform: translate(-50%,0) scale(.7); } 50% { opacity:1; transform: translate(-50%,0) scale(1.1); } 100% { opacity:.6; transform: translate(-50%,0) scale(.8); } }

.scn-stevinus-sailing-chariot {
  background: 
    linear-gradient(180deg, #1a0e06 0%, #2c1a0c 40%, #3a2210 70%, #1f1107 100%),
    radial-gradient(ellipse at 70% 30%, #4a2c12 0%, transparent 60%);
}
.scn-stevinus-sailing-chariot .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #1f1107 0%, #3a2210 40%, #2c1a0c 100%); }
.scn-stevinus-sailing-chariot .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a180a 0%, #170e04 100%); border-top:2px solid #4a3018; }
.scn-stevinus-sailing-chariot .table { position:absolute; bottom:15%; left:20%; width:60%; height:20%; background: linear-gradient(135deg, #3a2210 0%, #2a180a 100%); border-radius:4px; box-shadow: 0 6px 10px rgba(0,0,0,.6); }
.scn-stevinus-sailing-chariot .chariot { position:absolute; bottom:22%; left:50%; width:20%; height:12%; transform:translateX(-50%); background: linear-gradient(135deg, #4a3018 0%, #2a180a 100%); border-radius:8% 8% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: sc-chariot 5s ease-in-out infinite; }
.scn-stevinus-sailing-chariot .sail { position:absolute; bottom:30%; left:50%; width:12%; height:18%; transform:translateX(-50%); background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius:10% 10% 5% 5%; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%); animation: sc-sail 4s ease-in-out infinite; }
.scn-stevinus-sailing-chariot .figure-toby { position:absolute; bottom:10%; left:15%; width:16%; height:40%; background: linear-gradient(180deg, #1a0e06 0%, #0f0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-fig-l 7s ease-in-out infinite; }
.scn-stevinus-sailing-chariot .figure-father { position:absolute; bottom:10%; right:15%; width:16%; height:40%; background: linear-gradient(180deg, #1a0e06 0%, #0f0802 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-fig-r 7s ease-in-out infinite reverse; }
.scn-stevinus-sailing-chariot .lantern { position:absolute; top:15%; left:50%; width:6%; height:8%; transform:translateX(-50%); background: radial-gradient(circle, #e8c080 0%, #b08040 60%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(200,150,80,.5); animation: sc-lantern 3s ease-in-out infinite alternate; }
@keyframes sc-chariot { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } }
@keyframes sc-sail { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes sc-fig-l { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg) translateX(-3%); } }
@keyframes sc-fig-r { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-5deg) translateX(3%); } }
@keyframes sc-lantern { 0% { opacity:.6; box-shadow: 0 0 15px 3px rgba(200,150,80,.4); } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(200,150,80,.6), 0 0 60px 15px rgba(200,150,80,.2); } 100% { opacity:.8; box-shadow: 0 0 20px 5px rgba(200,150,80,.5); } }

/* excommunication-read */
.scn-excommunication-read {
  background: radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a0e0a 70%, #0d0704 100%),
              linear-gradient(180deg, #2a1a0e, #1a0e0a);
}
.scn-excommunication-read .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); }
.scn-excommunication-read .lectern { position:absolute; bottom:25%; left:50%; width:120px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: exr-lectern 6s ease-in-out infinite alternate; }
.scn-excommunication-read .book { position:absolute; bottom:38%; left:50%; width:80px; height:50px; transform:translateX(-50%); background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a2a 100%); border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: exr-book 4s ease-in-out infinite; }
.scn-excommunication-read .figure { position:absolute; bottom:18%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: exr-figure 5s ease-in-out infinite; }
.scn-excommunication-read .candle { position:absolute; bottom:34%; left:55%; width:10px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 20%; animation: exr-candle 3s ease-in-out infinite; }
.scn-excommunication-read .flame { position:absolute; bottom:64%; left:55.5%; width:8px; height:12px; background: radial-gradient(circle, #ffd060 0%, #e09030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #e09030; animation: exr-flame 1.5s ease-in-out infinite alternate; }
.scn-excommunication-read .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%); animation: exr-shadow 8s ease-in-out infinite; }

@keyframes exr-lectern { 0% { transform: translateX(-50%) rotate(-0.5deg); } 50% { transform: translateX(-48%) rotate(0.5deg); } 100% { transform: translateX(-50%) rotate(-0.3deg); } }
@keyframes exr-book { 0% { transform: translateX(-50%) translateY(0); } 25% { transform: translateX(-48%) translateY(-2px); } 50% { transform: translateX(-50%) translateY(0); } 75% { transform: translateX(-52%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes exr-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(10px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes exr-candle { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes exr-flame { 0% { transform: scaleY(1) scaleX(1); opacity:0.9; } 50% { transform: scaleY(1.2) scaleX(0.8); opacity:1; } 100% { transform: scaleY(0.8) scaleX(1.1); opacity:0.8; } }
@keyframes exr-shadow { 0%,100% { opacity:0.7; } 50% { opacity:0.9; } }

/* slop-reluctant-reader */
.scn-slop-reluctant-reader {
  background: radial-gradient(ellipse at 30% 50%, #2a3a4a 0%, #1a2a3a 60%, #0a1a2a 100%),
              linear-gradient(180deg, #1a2a3a, #0a1a2a);
}
.scn-slop-reluctant-reader .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); }
.scn-slop-reluctant-reader .desk { position:absolute; bottom:20%; left:30%; width:200px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -2px 10px rgba(0,0,0,0.5); animation: slp-desk 7s ease-in-out infinite; }
.scn-slop-reluctant-reader .figure { position:absolute; bottom:18%; left:38%; width:40px; height:90px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: slp-figure 4s ease-in-out infinite; }
.scn-slop-reluctant-reader .book { position:absolute; bottom:30%; left:38%; width:50px; height:30px; background: linear-gradient(135deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 2%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: slp-book 3s ease-in-out infinite alternate; }
.scn-slop-reluctant-reader .candle { position:absolute; bottom:35%; left:60%; width:8px; height:35px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 20%; animation: slp-candle 5s ease-in-out infinite; }
.scn-slop-reluctant-reader .window { position:absolute; top:10%; right:10%; width:80px; height:100px; background: radial-gradient(circle at 50% 50%, #3a5a7a 0%, #1a2a4a 80%); border: 2px solid #2a3a4a; border-radius: 2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: slp-window 12s ease-in-out infinite; }
.scn-slop-reluctant-reader .curtain { position:absolute; top:8%; right:8%; width:100px; height:120px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 10% 10% 0 0; filter: blur(3px); animation: slp-curtain 8s ease-in-out infinite; }
.scn-slop-reluctant-reader .clock { position:absolute; top:15%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 70%); border-radius: 50%; box-shadow: 0 0 6px rgba(0,0,0,0.4); animation: slp-clock 2s steps(2) infinite; }

@keyframes slp-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes slp-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(-5px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes slp-book { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes slp-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.2); opacity:1; } 100% { transform: scaleY(1); opacity:0.9; } }
@keyframes slp-window { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes slp-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes slp-clock { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }

/* curse-sequences */
.scn-curse-sequences {
  background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #2a1a0e 60%, #0a0804 100%),
              linear-gradient(180deg, #3a2a1a, #1a1008);
}
.scn-curse-sequences .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); }
.scn-curse-sequences .table { position:absolute; bottom:15%; left:10%; right:10%; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6); animation: cse-table 10s ease-in-out infinite; }
.scn-curse-sequences .book { position:absolute; bottom:30%; left:45%; width:90px; height:60px; background: linear-gradient(135deg, #6a5a3a 0%, #4a3a2a 50%, #2a1a0e 100%); border-radius: 2%; box-shadow: 0 0 8px rgba(0,0,0,0.3); animation: cse-book 5s ease-in-out infinite; }
.scn-curse-sequences .figure-slop { position:absolute; bottom:25%; left:30%; width:45px; height:110px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cse-slop 6s ease-in-out infinite; }
.scn-curse-sequences .figure-obadiah { position:absolute; bottom:25%; right:30%; width:35px; height:80px; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cse-obadiah 4s ease-in-out infinite; }
.scn-curse-sequences .rope { position:absolute; bottom:40%; left:50%; width:20px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 20% 20%; animation: cse-rope 3s ease-in-out infinite; }
.scn-curse-sequences .knots { position:absolute; bottom:43%; left:50%; width:24px; height:24px; transform:translateX(-50%); background: radial-gradient(circle, #7a5a3a 0%, #4a2a1a 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 6px rgba(0,0,0,0.5); animation: cse-knots 2s ease-in-out infinite alternate; }

@keyframes cse-table { 0%,100% { transform: skewX(0); } 50% { transform: skewX(-3deg); } }
@keyframes cse-book { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cse-slop { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(8px) rotate(2deg); } 66% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes cse-obadiah { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-10px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cse-rope { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-48%) scaleY(1.1) rotate(5deg); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes cse-knots { 0% { transform: translateX(-50%) scale(1); opacity:0.8; } 50% { transform: translateX(-48%) scale(1.3); opacity:1; } 100% { transform: translateX(-50%) scale(1); opacity:0.8; } }

/* curse-continued */
.scn-curse-continued {
  background: radial-gradient(ellipse at 50% 70%, #5a3a2a 0%, #2a1a0e 50%, #0d0704 100%),
              linear-gradient(180deg, #4a2a1a, #1a0e08);
}
.scn-curse-continued .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); }
.scn-curse-continued .scroll { position:absolute; top:10%; left:20%; right:20%; bottom:10%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 50%, #2a1a0e 100%); border-radius: 2% 2% 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: cco-scroll 15s ease-in-out infinite; }
.scn-curse-continued .saint-michael { position:absolute; top:30%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cco-saints 6s ease-in-out infinite alternate; }
.scn-curse-continued .saint-john { position:absolute; top:30%; right:25%; width:20px; height:50px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cco-saints 6s ease-in-out infinite alternate-reverse; }
.scn-curse-continued .candle-bank { position:absolute; bottom:20%; left:50%; width:60px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,0.6); animation: cco-candles 8s ease-in-out infinite; }
.scn-curse-continued .flames { position:absolute; bottom:30%; left:50%; width:40px; height:25px; transform:translateX(-50%); background: radial-gradient(circle at 30% 100%, #ffd060 0%, #e09030 50%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: cco-flames 2.5s ease-in-out infinite alternate; }

@keyframes cco-scroll { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes cco-saints { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cco-candles { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-48%) scaleY(1.2); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes cco-flames { 0% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity:0.8; } 50% { transform: translateX(-48%) scaleX(1.2) scaleY(1.3); opacity:1; } 100% { transform: translateX(-50%) scaleX(0.8) scaleY(0.9); opacity:0.7; } }

.scn-chapter-upon-chapters { background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 100%, #4a3020 0%, transparent 70%); }
.scn-chapter-upon-chapters .wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-chapter-upon-chapters .curtain-l { position:absolute; top:0; left:0; width:40%; height:100%; background: linear-gradient(90deg, #6a2a1a 0%, #8a3a2a 50%, #6a2a1a 100%); border-radius: 0 30% 60% 0 / 0 20% 40% 0; box-shadow: inset -8px 0 20px rgba(0,0,0,.5); animation: cuc-drape-l 8s ease-in-out infinite alternate; }
.scn-chapter-upon-chapters .curtain-r { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(270deg, #6a2a1a 0%, #8a3a2a 50%, #6a2a1a 100%); border-radius: 30% 0 0 60% / 20% 0 0 40%; box-shadow: inset 8px 0 20px rgba(0,0,0,.5); animation: cuc-drape-r 8s ease-in-out infinite alternate; }
.scn-chapter-upon-chapters .desk { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-chapter-upon-chapters .chair { position:absolute; bottom:12%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: cuc-chair 12s ease-in-out infinite; }
.scn-chapter-upon-chapters .lamp { position:absolute; bottom:28%; right:18%; width:12px; height:20px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px rgba(200,160,80,.6), 0 0 60px 20px rgba(200,160,80,.2); animation: cuc-lamp 4s ease-in-out infinite alternate; }
.scn-chapter-upon-chapters .paper-stack { position:absolute; bottom:14%; left:30%; width:40px; height:6px; background: #d4c4a0; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3), 0 4px 0 #c4b490, 0 6px 0 #b4a480; }
.scn-chapter-upon-chapters .inkwell { position:absolute; bottom:16%; left:22%; width:10px; height:10px; background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
@keyframes cuc-drape-l { 0% { transform: translateX(0) } 50% { transform: translateX(-8px) } 100% { transform: translateX(0) } }
@keyframes cuc-drape-r { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes cuc-chair { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-48%) translateY(-1px) rotate(1deg) } 75% { transform: translateX(-52%) translateY(-1px) rotate(-1deg) } }
@keyframes cuc-lamp { 0% { box-shadow: 0 0 20px 6px rgba(200,160,80,.4), 0 0 40px 12px rgba(200,160,80,.15); opacity:.8 } 50% { box-shadow: 0 0 40px 14px rgba(200,160,80,.7), 0 0 70px 24px rgba(200,160,80,.3); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(200,160,80,.45), 0 0 50px 16px rgba(200,160,80,.18); opacity:.85 } }

.scn-longinus-avicenna { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%); }
.scn-longinus-avicenna .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-longinus-avicenna .bookshelf { position:absolute; top:8%; left:5%; width:35%; height:70%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-longinus-avicenna .bookshelf::before { content:''; position:absolute; top:20%; left:10%; width:80%; height:4px; background:#6a5a3a; border-radius:2px; box-shadow:0 30px 0 #6a5a3a, 0 60px 0 #6a5a3a, 0 90px 0 #6a5a3a; }
.scn-longinus-avicenna .desk { position:absolute; bottom:12%; left:25%; right:10%; height:18%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-longinus-avicenna .scholar { position:absolute; bottom:14%; left:40%; width:22px; 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: la-read 6s ease-in-out infinite; }
.scn-longinus-avicenna .book-big { position:absolute; bottom:18%; right:20%; width:50px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: rotate(-5deg); animation: la-book 8s ease-in-out infinite; }
.scn-longinus-avicenna .lamp { position:absolute; bottom:28%; left:30%; width:12px; height:18px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 28px 8px rgba(200,160,80,.5), 0 0 56px 16px rgba(200,160,80,.2); animation: la-lamp 3s ease-in-out infinite alternate; }
.scn-longinus-avicenna .book-stack { position:absolute; bottom:14%; left:32%; width:30px; height:14px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 0 #5a3a2a, 0 8px 0 #4a2a1a; }
@keyframes la-read { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes la-book { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes la-lamp { 0% { box-shadow: 0 0 18px 4px rgba(200,160,80,.4), 0 0 36px 10px rgba(200,160,80,.15); opacity:.8 } 50% { box-shadow: 0 0 36px 12px rgba(200,160,80,.65), 0 0 64px 22px rgba(200,160,80,.25); opacity:1 } 100% { box-shadow: 0 0 22px 6px rgba(200,160,80,.45), 0 0 44px 14px rgba(200,160,80,.18); opacity:.85 } }

.scn-susannah-interrupted { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%); }
.scn-susannah-interrupted .wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-susannah-interrupted .staircase { position:absolute; bottom:0; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%); }
.scn-susannah-interrupted .balustrade { position:absolute; bottom:30%; left:22%; right:22%; height:6px; background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 50%, #6a5a3a 100%); border-radius: 3px; box-shadow: 0 -20px 0 #4a3a2a, 0 20px 0 #4a3a2a; }
.scn-susannah-interrupted .maid { position:absolute; bottom:28%; left:30%; width:14px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: si-maid 3s ease-in-out infinite; }
.scn-susannah-interrupted .father-fig { position:absolute; bottom:22%; right:25%; width:22px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-father 4s ease-in-out infinite; }
.scn-susannah-interrupted .door { position:absolute; bottom:20%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 0 10px rgba(0,0,0,.4); }
.scn-susannah-interrupted .lamp { position:absolute; bottom:50%; left:15%; width:10px; height:16px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 24px 6px rgba(200,160,80,.5), 0 0 48px 14px rgba(200,160,80,.2); animation: si-lamp 3.5s ease-in-out infinite alternate; }
@keyframes si-maid { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(8px) translateY(-2px) } 50% { transform: translateX(16px) translateY(0) } 75% { transform: translateX(8px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes si-father { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-3deg) } }
@keyframes si-lamp { 0% { box-shadow: 0 0 16px 4px rgba(200,160,80,.4), 0 0 32px 8px rgba(200,160,80,.15); opacity:.8 } 50% { box-shadow: 0 0 32px 10px rgba(200,160,80,.6), 0 0 56px 18px rgba(200,160,80,.25); opacity:1 } 100% { box-shadow: 0 0 20px 5px rgba(200,160,80,.45), 0 0 40px 12px rgba(200,160,80,.18); opacity:.85 } }

.scn-pregnant-women { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 60%, #1a0a00 100%), radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 80%); }
.scn-pregnant-women .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-pregnant-women .toby { position:absolute; bottom:18%; left:20%; width:22px; 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: pw-toby 5s ease-in-out infinite; }
.scn-pregnant-women .father { position:absolute; bottom:18%; right:25%; width:22px; height:44px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pw-father 5s ease-in-out infinite 0.5s; }
.scn-pregnant-women .pregnant { position:absolute; bottom:18%; left:50%; width:20px; height:38px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 45% 45% / 55% 55% 50% 50%; box-shadow: inset 0 -8px 0 #3a3a4a; animation: pw-walk 6s ease-in-out infinite; }
.scn-pregnant-women .lamp { position:absolute; bottom:45%; left:45%; width:12px; height:18px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 8px rgba(200,160,80,.5), 0 0 60px 18px rgba(200,160,80,.2); animation: pw-lamp 4s ease-in-out infinite alternate; }
.scn-pregnant-women .shadow { position:absolute; bottom:10%; left:35%; width:120px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); animation: pw-shadow 6s ease-in-out infinite; }
@keyframes pw-toby { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-4deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(4deg) } }
@keyframes pw-father { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(4deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-4deg) } }
@keyframes pw-walk { 0% { transform: translateX(-50%) translateY(0) } 25% { transform: translateX(-45%) translateY(-1px) } 50% { transform: translateX(-50%) translateY(0) } 75% { transform: translateX(-55%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes pw-shadow { 0%,100% { transform: scaleX(1); opacity:.6 } 25% { transform: scaleX(1.1); opacity:.4 } 50% { transform: scaleX(1); opacity:.6 } 75% { transform: scaleX(0.9); opacity:.5 } }
@keyframes pw-lamp { 0% { box-shadow: 0 0 20px 6px rgba(200,160,80,.4), 0 0 40px 12px rgba(200,160,80,.15); opacity:.8 } 50% { box-shadow: 0 0 40px 14px rgba(200,160,80,.65), 0 0 70px 24px rgba(200,160,80,.25); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(200,160,80,.45), 0 0 50px 16px rgba(200,160,80,.18); opacity:.85 } }

/* bou-ger - sunny convent scene */
.scn-bou-ger {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 50%, #b89a7a 100%),
              radial-gradient(ellipse at 50% 100%, #fff0d0 0%, transparent 60%);
}
.scn-bou-ger .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a1c4fd 0%, #c2e9fb 70%, transparent 100%); animation: bg1-sky 6s ease-in-out infinite alternate; }
.scn-bou-ger .convent { position:absolute; bottom:30%; left:20%; right:20%; height:45%; background: linear-gradient(180deg, #e8d5b5 0%, #c4a882 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 12px 24px rgba(0,0,0,0.2); animation: bg1-convent 12s ease-in-out infinite; }
.scn-bou-ger .door { position:absolute; bottom:30%; left:45%; width:10%; height:20%; background: linear-gradient(180deg, #9c7a5a 0%, #6b4f3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3); animation: bg1-door 4s ease-in-out infinite; }
.scn-bou-ger .window { position:absolute; bottom:50%; left:40%; width:12%; height:15%; background: radial-gradient(circle, #fff4d0 0%, #e0b060 70%); border-radius: 20%; box-shadow: 0 0 20px 8px rgba(224,176,96,0.6); animation: bg1-window 3s ease-in-out infinite alternate; }
.scn-bou-ger .figure { position:absolute; bottom:45%; left:38%; width:8%; height:18%; background: linear-gradient(180deg, #2a1f1a 0%, #1a120e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: bg1-figure 2s ease-in-out infinite; }
.scn-bou-ger .finger-glow { position:absolute; bottom:42%; left:42%; width:2%; height:6%; background: #ffd080; border-radius: 50%; box-shadow: 0 0 16px 6px #ffc060, 0 0 32px 12px rgba(255,192,96,0.4); animation: bg1-finger 1.5s ease-in-out infinite alternate; }
.scn-bou-ger .cloud-a { position:absolute; top:10%; left:-15%; width:30%; height:8%; background: rgba(255,255,255,0.6); border-radius: 50%; filter: blur(8px); animation: bg1-drift-a 30s linear infinite; }
.scn-bou-ger .cloud-b { position:absolute; top:18%; left:60%; width:20%; height:6%; background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(6px); animation: bg1-drift-b 40s linear infinite reverse; }
@keyframes bg1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bg1-convent { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes bg1-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes bg1-window { 0% { box-shadow: 0 0 15px 5px rgba(224,176,96,0.5); opacity: 0.8; } 50% { box-shadow: 0 0 30px 12px rgba(255,200,80,0.9); opacity: 1; } 100% { box-shadow: 0 0 20px 8px rgba(224,176,96,0.6); opacity: 0.9; } }
@keyframes bg1-figure { 0% { transform: rotate(-2deg) translateX(0); } 33% { transform: rotate(2deg) translateX(3px); } 66% { transform: rotate(-1deg) translateX(-1px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes bg1-finger { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.2); } 100% { transform: translateY(0) scale(1); } }
@keyframes bg1-drift-a { 0% { transform: translateX(0); } 100% { transform: translateX(130vw); } }
@keyframes bg1-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

/* words-pronounced - sunny landscape with mule and whisper */
.scn-words-pronounced {
  background: linear-gradient(180deg, #fceabb 0%, #f8b500 60%, #e0a800 100%),
              radial-gradient(ellipse at 80% 20%, #fff8d0 0%, transparent 50%);
}
.scn-words-pronounced .land { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8bc34a 0%, #4caf50 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; animation: wp2-land 8s ease-in-out infinite alternate; }
.scn-words-pronounced .mule { position:absolute; bottom:20%; left:30%; width:20%; height:20%; background: linear-gradient(135deg, #795548 0%, #5d4037 100%); border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%; animation: wp2-mule 3s ease-in-out infinite; }
.scn-words-pronounced .rider { position:absolute; bottom:35%; left:32%; width:12%; height:20%; background: linear-gradient(180deg, #3e2723 0%, #1b0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wp2-rider 2s ease-in-out infinite; }
.scn-words-pronounced .whisper { position:absolute; top:10%; left:50%; width:8%; height:2%; background: radial-gradient(circle, #fff 0%, rgba(255,255,255,0) 100%); border-radius: 50%; filter: blur(4px); animation: wp2-whisper 4s ease-in-out infinite alternate; }
.scn-words-pronounced .whisper-glow { position:absolute; top:8%; left:48%; width:14%; height:6%; background: radial-gradient(circle, rgba(255,255,200,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: wp2-whisper-glow 5s ease-in-out infinite; }
.scn-words-pronounced .sun-ray { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(135deg, rgba(255,235,59,0.3) 0%, rgba(255,235,59,0) 50%); animation: wp2-sunray 6s ease-in-out infinite alternate; }
@keyframes wp2-land { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes wp2-mule { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(0); } 75% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes wp2-rider { 0% { transform: rotate(-3deg) translateY(0); } 30% { transform: rotate(3deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes wp2-whisper { 0% { transform: scale(1) translateX(0); opacity: 0.5; } 50% { transform: scale(1.5) translateX(20px); opacity: 1; } 100% { transform: scale(1) translateX(40px); opacity: 0; } }
@keyframes wp2-whisper-glow { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-5px) scale(1.2); opacity: 0.7; } 100% { transform: translateY(0) scale(1); opacity: 0.3; } }
@keyframes wp2-sunray { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }

/* auxerre-mummies - dim interior with cross and candle */
.scn-auxerre-mummies {
  background: linear-gradient(180deg, #2c1e16 0%, #1a110c 40%, #0d0806 100%),
              radial-gradient(ellipse at 50% 20%, #4a2a1a 0%, transparent 80%);
}
.scn-auxerre-mummies .wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1e 0%, #4a3424 50%, #3a2a1e 100%); animation: am3-wall 10s ease-in-out infinite alternate; }
.scn-auxerre-mummies .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,0.8); }
.scn-auxerre-mummies .cross { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:4%; height:30%; background: linear-gradient(180deg, #6b4a3a 0%, #3a2a1a 100%); border-radius: 2px; animation: am3-cross 5s ease-in-out infinite; }
.scn-auxerre-mummies .candle { position:absolute; bottom:30%; left:35%; width:1%; height:6%; background: linear-gradient(180deg, #e0c080 0%, #c8a060 100%); border-radius: 40%; animation: am3-candle 3s ease-in-out infinite; }
.scn-auxerre-mummies .candle-glow { position:absolute; bottom:28%; left:33%; width:10%; height:16%; background: radial-gradient(circle, rgba(255,200,100,0.8) 0%, rgba(255,200,100,0) 70%); border-radius: 50%; filter: blur(10px); animation: am3-glow 3s ease-in-out infinite alternate; }
.scn-auxerre-mummies .figure { position:absolute; bottom:18%; left:38%; width:10%; height:22%; background: linear-gradient(180deg, #1a100c 0%, #0a0502 100%); border-radius: 50% 40% 40% 50% / 60% 60% 40% 40%; transform-origin: bottom; animation: am3-figure 4s ease-in-out infinite; }
.scn-auxerre-mummies .book { position:absolute; bottom:18%; left:36%; width:4%; height:3%; background: #8b7355; border-radius: 10%; box-shadow: 2px 2px 4px rgba(0,0,0,0.5); animation: am3-book 4s ease-in-out infinite alternate; }
@keyframes am3-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes am3-cross { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes am3-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.9) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes am3-glow { 0% { box-shadow: 0 0 20px 6px rgba(255,200,100,0.6); opacity: 0.8; } 50% { box-shadow: 0 0 40px 15px rgba(255,220,120,0.9); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(255,200,100,0.7); opacity: 0.9; } }
@keyframes am3-figure { 0% { transform: rotate(-2deg) translateX(0); } 25% { transform: rotate(2deg) translateX(3px); } 50% { transform: rotate(-3deg) translateX(-2px); } 75% { transform: rotate(1deg) translateX(1px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes am3-book { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.05) translateX(2px); } 100% { transform: scale(1) translateX(0); } }

/* saint-germain-visit - dim tavern interior with three figures */
.scn-saint-germain-visit {
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 40%, #0d0603 100%),
              radial-gradient(ellipse at 50% 30%, #3a2012 0%, transparent 70%);
}
.scn-saint-germain-visit .tavern-wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1e 0%, #4a3020 50%, #3a2a1e 100%); animation: sg4-wall 12s ease-in-out infinite alternate; }
.scn-saint-germain-visit .table { position:absolute; bottom:20%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, #5a4030 0%, #3a281a 100%); border-radius: 10% / 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-saint-germain-visit .lamp { position:absolute; bottom:50%; left:50%; transform:translateX(-50%); width:3%; height:6%; background: radial-gradient(circle, #e0c080 0%, #b08040 100%); border-radius: 50%; animation: sg4-lamp 2s ease-in-out infinite; }
.scn-saint-germain-visit .lamp-glow { position:absolute; bottom:45%; left:48%; width:12%; height:20%; background: radial-gradient(circle, rgba(255,200,100,0.7) 0%, rgba(255,200,100,0) 70%); border-radius: 50%; filter: blur(12px); animation: sg4-glow 3s ease-in-out infinite alternate; }
.scn-saint-germain-visit .figure-toby { position:absolute; bottom:24%; left:20%; width:10%; height:18%; background: linear-gradient(180deg, #2a1a12 0%, #0d0603 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sg4-toby 4s ease-in-out infinite; }
.scn-saint-germain-visit .figure-trim { position:absolute; bottom:24%; left:45%; width:9%; height:17%; background: linear-gradient(180deg, #1a100c 0%, #080402 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sg4-trim 4.5s ease-in-out infinite; }
.scn-saint-germain-visit .figure-obadiah { position:absolute; bottom:24%; left:70%; width:10%; height:19%; background: linear-gradient(180deg, #3a2012 0%, #1a0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sg4-obadiah 3.8s ease-in-out infinite; }
.scn-saint-germain-visit .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.9) 100%); animation: sg4-shadow 8s ease-in-out infinite alternate; }
@keyframes sg4-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sg4-lamp { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes sg4-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes sg4-toby { 0% { transform: rotate(-3deg) translateX(0); } 25% { transform: rotate(2deg) translateX(4px); } 50% { transform: rotate(-1deg) translateX(-2px); } 75% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes sg4-trim { 0% { transform: rotate(2deg) translateX(0); } 33% { transform: rotate(-3deg) translateX(5px); } 66% { transform: rotate(1deg) translateX(-3px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes sg4-obadiah { 0% { transform: rotate(-1deg) translateX(0); } 40% { transform: rotate(3deg) translateX(-4px); } 70% { transform: rotate(-2deg) translateX(3px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes sg4-shadow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }

/* Scene: montreuil-inn (mi-) */
.scn-montreuil-inn {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f5deb3 70%, #d2b48c 100%),
              radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 60%);
}
.scn-montreuil-inn .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 80%); animation: mi-sky 10s ease-in-out infinite alternate; }
.scn-montreuil-inn .sun { position:absolute; top:12%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.4); animation: mi-sun 6s ease-in-out infinite; }
.scn-montreuil-inn .inn { position:absolute; bottom:28%; left:30%; width:120px; height:80px; background: linear-gradient(180deg, #deb887 0%, #8b4513 100%); border-radius:4% 4% 2% 2%; box-shadow: 2px 4px 6px rgba(0,0,0,0.3); }
.scn-montreuil-inn .door { position:absolute; bottom:30%; left:36%; width:24px; height:36px; background: linear-gradient(180deg, #a0522d 0%, #5b3a1a 100%); border-radius:4px; box-shadow: inset -2px 0 4px rgba(0,0,0,0.4); }
.scn-montreuil-inn .window { position:absolute; bottom:40%; left:33%; width:18px; height:20px; background: radial-gradient(circle, #fffacd 0%, #ffd700 60%); border-radius:2px; box-shadow: 0 0 10px 2px rgba(255,215,0,0.3); animation: mi-window 3s ease-in-out infinite alternate; }
.scn-montreuil-inn .chaise { position:absolute; bottom:22%; left:55%; width:60px; height:30px; background: linear-gradient(180deg, #8b4513 0%, #5b3a1a 100%); border-radius:10% 10% 0 0; transform: rotate(-3deg); animation: mi-chaise 8s ease-in-out infinite; }
.scn-montreuil-inn .horse { position:absolute; bottom:20%; left:58%; width:50px; height:40px; background: linear-gradient(135deg, #deb887 0%, #a0522d 50%, #5b3a1a 100%); border-radius:50% 40% 30% 50% / 60% 50% 50% 40%; animation: mi-horse 4s ease-in-out infinite; }
.scn-montreuil-inn .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #d2b48c 0%, #8b7355 100%); border-radius: 20% 30% 0 0 / 40% 20% 0 0; }
.scn-montreuil-inn .sign { position:absolute; bottom:42%; left:28%; width:30px; height:15px; background: linear-gradient(135deg, #cd853f 0%, #8b4513 100%); border-radius:4px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: mi-sign 5s ease-in-out infinite alternate; }
@keyframes mi-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes mi-sun { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.05); } }
@keyframes mi-window { 0% { opacity:0.6; box-shadow: 0 0 8px 1px rgba(255,215,0,0.2); } 50% { opacity:1; box-shadow: 0 0 18px 6px rgba(255,215,0,0.5); } 100% { opacity:0.7; box-shadow: 0 0 10px 2px rgba(255,215,0,0.3); } }
@keyframes mi-chaise { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } }
@keyframes mi-horse { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(2deg); } }
@keyframes mi-sign { 0%,100% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.05); } }

/* Scene: janatone (jt-) */
.scn-janatone {
  background: linear-gradient(180deg, #e0f0ff 0%, #b0d4f0 40%, #ffe0b0 70%, #ffe8c0 100%),
              radial-gradient(circle at 30% 30%, #ffe0b0 0%, transparent 50%);
}
.scn-janatone .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e0f0ff 0%, #cce4ff 100%); }
.scn-janatone .sun-flare { position:absolute; top:5%; left:20%; width:60px; height:60px; background: radial-gradient(circle, #fffacd 0%, transparent 70%); border-radius:50%; animation: jt-flare 4s ease-in-out infinite alternate; }
.scn-janatone .town { position:absolute; bottom:25%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 50%, #8b4513 100%); border-radius: 30% 40% 0 0 / 50% 60% 0 0; }
.scn-janatone .figure { position:absolute; bottom:20%; left:45%; width:30px; height:80px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 40%, #a0522d 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jt-figure 6s ease-in-out infinite; }
.scn-janatone .dress { position:absolute; bottom:18%; left:43%; width:36px; height:50px; background: linear-gradient(180deg, #b0c4de 0%, #7a9cc9 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform: rotate(-5deg); animation: jt-dress 8s ease-in-out infinite; }
.scn-janatone .measuring-rod { position:absolute; bottom:30%; left:52%; width:4px; height:60px; background: #8b4513; border-radius:2px; transform: rotate(10deg); transform-origin: bottom center; animation: jt-rod 3s ease-in-out infinite alternate; }
.scn-janatone .shadow { position:absolute; bottom:10%; left:40%; width:80px; height:15px; background: rgba(0,0,0,0.15); border-radius:50%; filter: blur(8px); animation: jt-shadow 6s ease-in-out infinite alternate; }
@keyframes jt-flare { 0% { transform: scale(0.9); opacity:0.7; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.9); opacity:0.8; } }
@keyframes jt-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(4px) rotate(0deg); } 75% { transform: translateX(2px) rotate(-1deg); } }
@keyframes jt-dress { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes jt-rod { 0% { transform: rotate(8deg) scaleY(1); } 50% { transform: rotate(12deg) scaleY(1.02); } 100% { transform: rotate(8deg) scaleY(1); } }
@keyframes jt-shadow { 0% { transform: scaleX(1) translateX(0); opacity:0.5; } 50% { transform: scaleX(1.1) translateX(3px); opacity:0.3; } 100% { transform: scaleX(1) translateX(0); opacity:0.5; } }

/* Scene: janatones-fate (jf-) */
.scn-janatones-fate {
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 40%, #cd853f 80%, #8b4513 100%),
              radial-gradient(ellipse at 50% 20%, #ffe0b0 0%, transparent 60%);
}
.scn-janatones-fate .wall { position:absolute; inset:0; background: linear-gradient(135deg, #d2b48c 0%, #a0522d 100%); }
.scn-janatones-fate .window { position:absolute; top:15%; left:20%; width:80px; height:100px; background: linear-gradient(180deg, #b0d4f0 0%, #87ceeb 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(135,206,235,0.3); animation: jf-window 5s ease-in-out infinite alternate; }
.scn-janatones-fate .model { position:absolute; bottom:20%; left:35%; width:28px; height:80px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 40%, #a0522d 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jf-model 6s ease-in-out infinite; }
.scn-janatones-fate .artist-hand { position:absolute; bottom:30%; left:55%; width:20px; height:20px; background: radial-gradient(circle, #f5deb3 0%, #d2b48c 100%); border-radius:50%; box-shadow: 0 0 6px rgba(0,0,0,0.2); animation: jf-hand 2s ease-in-out infinite; }
.scn-janatones-fate .sketchbook { position:absolute; bottom:20%; left:50%; width:40px; height:30px; background: linear-gradient(180deg, #fff8dc 0%, #f5deb3 100%); border-radius:2px; transform: rotate(-15deg); box-shadow: 2px 2px 4px rgba(0,0,0,0.3); animation: jf-sketch 4s ease-in-out infinite alternate; }
.scn-janatones-fate .light-beam { position:absolute; top:15%; left:18%; width:90px; height:200px; background: linear-gradient(180deg, rgba(255,255,224,0.3) 0%, transparent 100%); transform: rotate(-10deg); transform-origin: top left; filter: blur(6px); animation: jf-beam 8s ease-in-out infinite; }
.scn-janatones-fate .shadow { position:absolute; bottom:10%; left:30%; width:100px; height:12px; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(10px); }
.scn-janatones-fate .pencil { position:absolute; bottom:28%; left:58%; width:30px; height:4px; background: #8b4513; border-radius:2px; transform: rotate(-30deg); transform-origin: left center; animation: jf-pencil 3s ease-in-out infinite alternate; }
@keyframes jf-window { 0% { opacity:0.7; box-shadow: inset 0 0 15px rgba(135,206,235,0.2); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(135,206,235,0.5); } 100% { opacity:0.8; box-shadow: inset 0 0 20px rgba(135,206,235,0.3); } }
@keyframes jf-model { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(4px) rotate(0deg); } 75% { transform: translateX(2px) rotate(-1deg); } }
@keyframes jf-hand { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(3px, -2px) scale(1.1); } }
@keyframes jf-sketch { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-2px); } }
@keyframes jf-beam { 0%,100% { opacity:0.3; transform: rotate(-10deg) scaleY(1); } 50% { opacity:0.6; transform: rotate(-8deg) scaleY(1.05); } }
@keyframes jf-pencil { 0% { transform: rotate(-28deg) scaleX(1); } 50% { transform: rotate(-32deg) scaleX(1.03); } 100% { transform: rotate(-28deg) scaleX(1); } }

/* Scene: abbeville-night (an-) */
.scn-abbeville-night {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 40%, #2a2a5e 70%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 70%);
}
.scn-abbeville-night .night-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 100%); }
.scn-abbeville-night .moon { position:absolute; top:10%; right:20%; width:35px; height:35px; background: radial-gradient(circle, #f5f5dc 0%, #ddd 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(255,255,224,0.2); animation: an-moon 8s ease-in-out infinite alternate; }
.scn-abbeville-night .inn { position:absolute; bottom:20%; left:25%; width:140px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-abbeville-night .lantern { position:absolute; bottom:32%; left:30%; width:8px; height:12px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,140,0,0.6), 0 0 40px 12px rgba(255,140,0,0.3); animation: an-lantern 3s ease-in-out infinite alternate; }
.scn-abbeville-night .chaise { position:absolute; bottom:15%; left:55%; width:70px; height:25px; background: linear-gradient(180deg, #5b3a1a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; transform: rotate(2deg); }
.scn-abbeville-night .horse { position:absolute; bottom:12%; left:58%; width:55px; height:45px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 40% 30% 50% / 60% 50% 50% 40%; animation: an-horse 5s ease-in-out infinite; }
.scn-abbeville-night .figure { position:absolute; bottom:18%; left:50%; width:20px; height:50px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: an-figure 4s ease-in-out infinite; }
.scn-abbeville-night .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 30% 20% 0 0 / 50% 30% 0 0; }
.scn-abbeville-night .cloud { position:absolute; top:18%; left:5%; width:70px; height:16px; background: rgba(255,255,255,0.1); border-radius:50%; filter: blur(8px); animation: an-cloud 30s linear infinite; }
@keyframes an-moon { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-5px) scale(1.03); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.9; } }
@keyframes an-lantern { 0% { opacity:0.7; box-shadow: 0 0 15px 4px rgba(255,140,0,0.4), 0 0 30px 8px rgba(255,140,0,0.2); } 50% { opacity:1; box-shadow: 0 0 25px 8px rgba(255,140,0,0.7), 0 0 50px 16px rgba(255,140,0,0.4); } 100% { opacity:0.8; box-shadow: 0 0 18px 5px rgba(255,140,0,0.5), 0 0 35px 10px rgba(255,140,0,0.3); } }
@keyframes an-horse { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(6px) rotate(0deg); } 75% { transform: translateX(3px) rotate(2deg); } }
@keyframes an-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(4px) translateY(0) rotate(0deg); } 75% { transform: translateX(2px) translateY(-2px) rotate(-3deg); } }
@keyframes an-cloud { 0% { transform: translateX(-70px); } 100% { transform: translateX(120vw); } }

.scn-trim-measurement {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 60%), radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 70%);
}
.scn-trim-measurement .tm-bg-wall {
  position: absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1e14 0%, #1a120e 100%); transform: scaleY(0.95); transform-origin: bottom; animation: tm-wall 15s ease-in-out infinite alternate;
}
.scn-trim-measurement .tm-table {
  position: absolute; bottom:12%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.6); animation: tm-table 8s ease-in-out infinite;
}
.scn-trim-measurement .tm-rule {
  position: absolute; bottom:18%; left:20%; width:45%; height:3%; background: linear-gradient(90deg, #c8a870 0%, #a08050 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(-2deg); animation: tm-rule 6s ease-in-out infinite;
}
.scn-trim-measurement .tm-hand {
  position: absolute; bottom:17%; left:65%; width:10px; height:24px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: 50% 100%; animation: tm-hand 4s ease-in-out infinite;
}
.scn-trim-measurement .tm-candle {
  position: absolute; bottom:25%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #d4b080 0%, #806040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px 2px #d4a060; transform: translateX(-50%);
}
.scn-trim-measurement .tm-glow {
  position: absolute; bottom:25%; left:50%; width:60px; height:60px; transform: translate(-50%, -30%); background: radial-gradient(circle, rgba(212,160,96,0.5) 0%, rgba(212,160,96,0.1) 50%, transparent 100%); border-radius: 50%; animation: tm-glow 2s ease-in-out infinite alternate;
}
@keyframes tm-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes tm-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes tm-rule { 0%,100% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(6px); } }
@keyframes tm-hand { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } }
@keyframes tm-glow { 0% { opacity:0.6; transform: translate(-50%, -30%) scale(0.95); } 100% { opacity:1; transform: translate(-50%, -30%) scale(1.05); } }

.scn-corporal-trim {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a0e0e 60%), radial-gradient(ellipse at 50% 0%, #3a2a22 0%, transparent 80%);
}
.scn-corporal-trim .ct-bg {
  position: absolute; inset:0; background: linear-gradient(180deg, #1a0e0e 0%, #0e0a0a 100%); transform: scale(1.02); animation: ct-bg 20s ease-in-out infinite alternate;
}
.scn-corporal-trim .ct-window {
  position: absolute; top:10%; right:15%; width:30%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); border: 2px solid #3a2a1a; animation: ct-window 12s ease-in-out infinite alternate;
}
.scn-corporal-trim .ct-figure {
  position: absolute; bottom:10%; left:30%; width:28px; height:80px; background: linear-gradient(180deg, #1a0e0a 0%, #0e0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.4); transform-origin: bottom; animation: ct-figure 5s ease-in-out infinite;
}
.scn-corporal-trim .ct-cane {
  position: absolute; bottom:8%; left:35%; width:2px; height:55px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 1px; transform: rotate(12deg); transform-origin: 50% 100%; animation: ct-cane 3s ease-in-out infinite;
}
.scn-corporal-trim .ct-lamp {
  position: absolute; bottom:55%; left:60%; width:12px; height:16px; background: radial-gradient(circle, #d4a060 0%, #604020 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 6px #d4a060, 0 0 40px 12px rgba(212,160,96,0.3); animation: ct-lamp 2s ease-in-out infinite alternate;
}
.scn-corporal-trim .ct-shadow {
  position: absolute; bottom:0; left:20%; width:70px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%); transform: skewX(-20deg); animation: ct-shadow 5s ease-in-out infinite;
}
@keyframes ct-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ct-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes ct-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes ct-cane { 0%,100% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(10deg) translateY(2px); } }
@keyframes ct-lamp { 0% { box-shadow: 0 0 16px 4px #d4a060; opacity:0.8; } 100% { box-shadow: 0 0 30px 10px #d4a060; opacity:1; } }
@keyframes ct-shadow { 0%,100% { transform: skewX(-20deg) scaleX(1); } 50% { transform: skewX(-20deg) scaleX(0.9); } }

.scn-trim-fortification-plan {
  background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 60%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 80%);
}
.scn-trim-fortification-plan .tfp-desk {
  position: absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a3020 0%, #1a0e0a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.5);
}
.scn-trim-fortification-plan .tfp-paper {
  position: absolute; top:15%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%); border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,.4); transform: rotate(-1deg); animation: tfp-paper 10s ease-in-out infinite;
}
.scn-trim-fortification-plan .tfp-line-horiz {
  position: absolute; top:30%; left:20%; width:60%; height:1%; background: #8a6a4a; transform: rotate(-1deg); opacity:0.6; animation: tfp-line-horiz 4s ease-in-out infinite;
}
.scn-trim-fortification-plan .tfp-line-vert {
  position: absolute; top:25%; left:50%; width:1%; height:30%; background: #8a6a4a; transform: rotate(-1deg); opacity:0.6; animation: tfp-line-vert 4s ease-in-out infinite 1s;
}
.scn-trim-fortification-plan .tfp-hand {
  position: absolute; top:40%; left:35%; width:12px; height:20px; background: linear-gradient(180deg, #2a1a0e 0%, #0e0604 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: 50% 100%; animation: tfp-hand 3s ease-in-out infinite;
}
.scn-trim-fortification-plan .tfp-inkwell {
  position: absolute; top:55%; right:20%; width:16px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-trim-fortification-plan .tfp-candle {
  position: absolute; top:12%; left:55%; width:6px; height:16px; background: linear-gradient(180deg, #d4b080 0%, #806040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px 3px #d4a060; animation: tfp-candle 2s ease-in-out infinite alternate;
}
@keyframes tfp-paper { 0%,100% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } }
@keyframes tfp-line-horiz { 0%,100% { opacity:0.4; } 50% { opacity:0.8; } }
@keyframes tfp-line-vert { 0%,100% { opacity:0.4; } 50% { opacity:0.8; } }
@keyframes tfp-hand { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-4px); } }
@keyframes tfp-candle { 0% { opacity:0.7; box-shadow: 0 0 8px 2px #d4a060; } 100% { opacity:1; box-shadow: 0 0 14px 5px #d4a060; } }

.scn-sods-advantage {
  background: linear-gradient(180deg, #87ceeb 0%, #e0f0ff 40%, #f0e8c0 100%), radial-gradient(ellipse at 50% 100%, #f0e8c0 0%, transparent 70%);
}
.scn-sods-advantage .sa-sky {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6ba3c7 0%, #b8d8f0 100%); animation: sa-sky 20s ease-in-out infinite alternate;
}
.scn-sods-advantage .sa-hills {
  position: absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a8a4a 0%, #3a6a2a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); animation: sa-hills 15s ease-in-out infinite alternate;
}
.scn-sods-advantage .sa-fort {
  position: absolute; bottom:28%; left:30%; width:25%; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform: perspective(400px) rotateX(5deg); animation: sa-fort 12s ease-in-out infinite;
}
.scn-sods-advantage .sa-cannon {
  position: absolute; bottom:20%; left:35%; width:30px; height:8px; background: linear-gradient(90deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: sa-cannon 6s ease-in-out infinite;
}
.scn-sods-advantage .sa-figure {
  position: absolute; bottom:22%; left:20%; width:10px; height:30px; background: linear-gradient(180deg, #1a0e0a 0%, #0e0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sa-figure 5s ease-in-out infinite;
}
.scn-sods-advantage .sa-cloud1 {
  position: absolute; top:10%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.2) 100%); border-radius: 50%; filter: blur(6px); animation: sa-cloud1 30s linear infinite;
}
.scn-sods-advantage .sa-cloud2 {
  position: absolute; top:18%; right:20%; width:60px; height:14px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50%; filter: blur(4px); animation: sa-cloud2 40s linear infinite reverse;
}
.scn-sods-advantage .sa-grass {
  position: absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; animation: sa-grass 8s ease-in-out infinite;
}
@keyframes sa-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sa-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes sa-fort { 0%,100% { transform: perspective(400px) rotateX(5deg); } 50% { transform: perspective(400px) rotateX(7deg) translateY(-2px); } }
@keyframes sa-cannon { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(4px); } }
@keyframes sa-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes sa-cloud1 { 0% { transform: translateX(-80px); } 100% { transform: translateX(120vw); } }
@keyframes sa-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes sa-grass { 0%,100% { transform: skewX(0deg); } 50% { transform: skewX(2deg); } }

/* character-drawing-methods */
.scn-character-drawing-methods {
  background:
    radial-gradient(ellipse at 50% 90%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1410 0%, #2c2218 50%, #3a2e22 100%);
}
.scn-character-drawing-methods .wall   { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #2a2018 0%, #1a1410 100%); animation:cdm-wall 12s ease-in-out infinite alternate; }
.scn-character-drawing-methods .figure { position:absolute; bottom:25%; left:35%; width:30px; height:60px; background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:cdm-figure 3s ease-in-out infinite; }
.scn-character-drawing-methods .horn   { position:absolute; bottom:32%; left:42%; width:80px; height:18px; background:linear-gradient(135deg, #5a3a1a 0%, #3a2a12 50%, #1a120a 100%); border-radius:0 40% 40% 0; transform:rotate(15deg); animation:cdm-horn 4s ease-in-out infinite; }
.scn-character-drawing-methods .swirl-a{ position:absolute; bottom:45%; left:55%; width:40px; height:60px; background:radial-gradient(circle, #7a5a3a 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation:cdm-swirl-a 8s ease-in-out infinite; }
.scn-character-drawing-methods .swirl-b{ position:absolute; bottom:50%; left:65%; width:30px; height:50px; background:radial-gradient(circle, #5a3a2a 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation:cdm-swirl-b 10s ease-in-out infinite reverse; }
.scn-character-drawing-methods .candle { position:absolute; bottom:20%; left:20%; width:8px; height:20px; background:linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 100%); border-radius:2px; animation:cdm-candle 6s ease-in-out infinite; }
.scn-character-drawing-methods .glow   { position:absolute; bottom:22%; left:20%; width:30px; height:30px; background:radial-gradient(circle, #b88a4a 0%, transparent 60%); border-radius:50%; filter:blur(6px); animation:cdm-glow 6s ease-in-out infinite alternate; }
@keyframes cdm-wall   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cdm-figure { 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 cdm-horn   { 0% { transform:rotate(12deg) } 50% { transform:rotate(18deg) } 100% { transform:rotate(12deg) } }
@keyframes cdm-swirl-a{ 0% { transform:translate(0,0) scale(1); opacity:.5 } 50% { transform:translate(10px,-5px) scale(1.2); opacity:.8 } 100% { transform:translate(0,0) scale(1); opacity:.5 } }
@keyframes cdm-swirl-b{ 0% { transform:translate(0,0) scale(1); opacity:.4 } 50% { transform:translate(-8px,5px) scale(1.3); opacity:.7 } 100% { transform:translate(0,0) scale(1); opacity:.4 } }
@keyframes cdm-candle { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes cdm-glow   { 0% { opacity:.6; transform:scale(1) } 50% { opacity:.9; transform:scale(1.1) } 100% { opacity:.7; transform:scale(1) } }

/* hobby-horse-character */
.scn-hobby-horse-character {
  background:
    radial-gradient(ellipse at 70% 60%, #4a3a2a 0%, transparent 50%),
    linear-gradient(180deg, #1e1814 0%, #2c221c 50%, #3a2e26 100%);
}
.scn-hobby-horse-character .bg-wall    { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #241e18 0%, #1a1410 100%); animation:hhc-wall 15s ease-in-out infinite alternate; }
.scn-hobby-horse-character .table      { position:absolute; bottom:15%; left:10%; right:10%; height:16%; background:linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%); border-radius:10% 10% 0 0; box-shadow:0 -4px 8px rgba(0,0,0,.3); }
.scn-hobby-horse-character .horse-body { position:absolute; bottom:25%; left:30%; width:50px; height:50px; background:linear-gradient(135deg, #6a4a2a 0%, #4a2e1a 100%); border-radius:50% 40% 30% 50% / 40% 30% 60% 50%; transform:rotate(-15deg); animation:hhc-horse 4s ease-in-out infinite; }
.scn-hobby-horse-character .rider      { position:absolute; bottom:35%; left:28%; width:24px; height:40px; background:linear-gradient(180deg, #2a1e1a 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:hhc-rider 4s ease-in-out infinite; }
.scn-hobby-horse-character .pen        { position:absolute; bottom:28%; left:45%; width:30px; height:4px; background:#4a3a2a; border-radius:2px; transform-origin:right; animation:hhc-pen 3s ease-in-out infinite; }
.scn-hobby-horse-character .paper      { position:absolute; bottom:18%; left:55%; width:40px; height:30px; background:#5a4a3a; border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,.4); animation:hhc-paper 6s ease-in-out infinite; }
.scn-hobby-horse-character .sketch     { position:absolute; bottom:22%; left:57%; width:20px; height:15px; background:radial-gradient(circle, #8a6a4a 0%, transparent 80%); border-radius:50%; filter:blur(2px); animation:hhc-sketch 3s ease-in-out infinite alternate; }
.scn-hobby-horse-character .lamp       { position:absolute; bottom:20%; left:80%; width:12px; height:20px; background:linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 100%); border-radius:2px; animation:hhc-lamp 5s ease-in-out infinite; }
@keyframes hhc-wall   { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hhc-horse  { 0% { transform:rotate(-15deg) } 33% { transform:rotate(-12deg) } 66% { transform:rotate(-18deg) } 100% { transform:rotate(-15deg) } }
@keyframes hhc-rider  { 0% { transform:translateY(0) rotate(-2deg) } 33% { transform:translateY(-3px) rotate(1deg) } 66% { transform:translateY(1px) rotate(2deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes hhc-pen    { 0% { transform:rotate(0) } 50% { transform:rotate(15deg) } 100% { transform:rotate(0) } }
@keyframes hhc-paper  { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes hhc-sketch { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.6; transform:scale(1.1) } 100% { opacity:.3; transform:scale(1) } }
@keyframes hhc-lamp   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }

/* pentagraph-instrument */
.scn-pentagraph-instrument {
  background:
    radial-gradient(ellipse at 50% 80%, #2a2218 0%, transparent 60%),
    linear-gradient(180deg, #141210 0%, #1a1814 50%, #22201a 100%);
}
.scn-pentagraph-instrument .backdrop    { position:absolute; inset:0 0 25% 0; background:linear-gradient(180deg, #1a1814 0%, #12100e 100%); animation:pin-bg 20s ease-in-out infinite alternate; }
.scn-pentagraph-instrument .desk        { position:absolute; bottom:10%; left:15%; right:15%; height:20%; background:linear-gradient(180deg, #3a2e22 0%, #2a1e16 100%); border-radius:8% 8% 0 0; box-shadow:0 -6px 12px rgba(0,0,0,.4); }
.scn-pentagraph-instrument .frame-a     { position:absolute; bottom:30%; left:25%; width:60px; height:40px; background:linear-gradient(135deg, #4a3a2a 0%, #2a2218 100%); border-radius:4px; transform:skewX(10deg); animation:pin-frame 8s ease-in-out infinite; }
.scn-pentagraph-instrument .frame-b     { position:absolute; bottom:35%; left:40%; width:50px; height:35px; background:linear-gradient(135deg, #4a3a2a 0%, #2a2218 100%); border-radius:4px; transform:skewX(-10deg); animation:pin-frame 10s ease-in-out infinite reverse; }
.scn-pentagraph-instrument .linkage     { position:absolute; bottom:38%; left:35%; width:80px; height:6px; background:#4a3a2a; border-radius:3px; transform-origin:left; animation:pin-link 6s ease-in-out infinite; }
.scn-pentagraph-instrument .original    { position:absolute; bottom:22%; left:20%; width:30px; height:20px; background:#5a4a3a; border-radius:2px; animation:pin-original 5s ease-in-out infinite alternate; }
.scn-pentagraph-instrument .copy        { position:absolute; bottom:22%; left:55%; width:30px; height:20px; background:#5a4a3a; border-radius:2px; animation:pin-copy 5s ease-in-out infinite; }
.scn-pentagraph-instrument .candle-light{ position:absolute; bottom:18%; left:10%; width:40px; height:40px; background:radial-gradient(circle, #b88a4a 0%, transparent 70%); border-radius:50%; filter:blur(8px); animation:pin-candle 7s ease-in-out infinite alternate; }
@keyframes pin-bg      { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pin-frame   { 0% { transform:skewX(8deg) } 50% { transform:skewX(12deg) } 100% { transform:skewX(8deg) } }
@keyframes pin-link    { 0% { transform:rotate(0) } 33% { transform:rotate(5deg) } 66% { transform:rotate(-5deg) } 100% { transform:rotate(0) } }
@keyframes pin-original{ 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pin-copy    { 0% { opacity:.7; transform:scale(1) } 50% { opacity:.9; transform:scale(1.02) } 100% { opacity:.7; transform:scale(1) } }
@keyframes pin-candle  { 0% { opacity:.6; transform:scale(1) } 50% { opacity:.9; transform:scale(1.15) } 100% { opacity:.7; transform:scale(1) } }

/* uncle-tobys-hobby-horse */
.scn-uncle-tobys-hobby-horse {
  background:
    radial-gradient(ellipse at 60% 50%, #4a3a2a 0%, transparent 50%),
    linear-gradient(180deg, #1c1612 0%, #2a201a 50%, #3a2e26 100%);
}
.scn-uncle-tobys-hobby-horse .room        { position:absolute; inset:0 0 15% 0; background:linear-gradient(180deg, #221c18 0%, #1a1410 100%); animation:uth-room 14s ease-in-out infinite alternate; }
.scn-uncle-tobys-hobby-horse .floor       { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #3a2e22 0%, #2a1e16 100%); border-radius:20% 20% 0 0; }
.scn-uncle-tobys-hobby-horse .hobby-horse { position:absolute; bottom:18%; left:35%; width:70px; height:40px; background:linear-gradient(135deg, #6a4a2a 0%, #4a2e1a 100%); border-radius:40% 30% 20% 50% / 30% 20% 50% 40%; transform:rotate(-10deg); animation:uth-horse 3s ease-in-out infinite; }
.scn-uncle-tobys-hobby-horse .uncle       { position:absolute; bottom:32%; left:36%; width:26px; height:50px; background:linear-gradient(180deg, #2a1e1a 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:uth-uncle 3s ease-in-out infinite; }
.scn-uncle-tobys-hobby-horse .arm         { position:absolute; bottom:40%; left:32%; width:30px; height:6px; background:#2a1e1a; border-radius:3px; transform-origin:right; animation:uth-arm 2s ease-in-out infinite; }
.scn-uncle-tobys-hobby-horse .lantern     { position:absolute; bottom:20%; left:70%; width:10px; height:16px; background:linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 100%); border-radius:2px; animation:uth-lantern 5s ease-in-out infinite; }
.scn-uncle-tobys-hobby-horse .glow-fall   { position:absolute; bottom:25%; left:62%; right:10%; height:60%; background:radial-gradient(ellipse at 50% 0%, #b88a4a 0%, transparent 60%); opacity:.3; filter:blur(10px); animation:uth-glow 6s ease-in-out infinite alternate; }
@keyframes uth-room   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes uth-horse  { 0% { transform:rotate(-10deg) } 33% { transform:rotate(-6deg) } 66% { transform:rotate(-14deg) } 100% { transform:rotate(-10deg) } }
@keyframes uth-uncle  { 0% { transform:translateY(0) rotate(-2deg) } 33% { transform:translateY(-4px) rotate(2deg) } 66% { transform:translateY(2px) rotate(1deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes uth-arm    { 0% { transform:rotate(0) } 50% { transform:rotate(30deg) } 100% { transform:rotate(0) } }
@keyframes uth-lantern{ 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes uth-glow   { 0% { opacity:.2; transform:scale(1) } 50% { opacity:.4; transform:scale(1.05) } 100% { opacity:.25; transform:scale(1) } }

.scn-breeches-complaint {
  background:
    linear-gradient(180deg, #fff9e6 0%, #f0e4c8 30%, #d4c5a9 60%, #b8a88a 100%),
    radial-gradient(ellipse at 50% 0%, #ffe599 0%, transparent 70%);
}
.scn-breeches-complaint .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #b0d4f0 40%, transparent 100%);
  animation: bcc-sky 8s ease-in-out infinite alternate;
}
.scn-breeches-complaint .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c5a86a 0%, #8b6f3a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: bcc-floor 12s ease-in-out infinite;
}
.scn-breeches-complaint .traveler {
  position: absolute; bottom: 30%; left: 25%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bcc-traveler 3s ease-in-out infinite;
}
.scn-breeches-complaint .commissary {
  position: absolute; bottom: 30%; right: 25%; width: 55px; height: 95px;
  background: linear-gradient(180deg, #5e4030 0%, #3a2a1a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: bcc-commissary 3s ease-in-out infinite 0.5s;
}
.scn-breeches-complaint .breeches {
  position: absolute; bottom: 45%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform-origin: top center;
  animation: bcc-breeches 1.5s ease-in-out infinite alternate;
}
.scn-breeches-complaint .sunbeam {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  opacity: 0.7;
  animation: bcc-sunbeam 10s linear infinite alternate;
}
.scn-breeches-complaint .motes {
  position: absolute; top: 20%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fff9e6 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  box-shadow: 20px 40px 0 #fff9e6, 60px 10px 0 #fff9e6, 100px 60px 0 #fff9e6;
  animation: bcc-motes 15s linear infinite;
}

.scn-ordinance-spirit {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #5a4030 60%, #7a6050 100%),
    radial-gradient(ellipse at 30% 50%, #b08040 0%, transparent 60%);
}
.scn-ordinance-spirit .coach-back {
  position: absolute; inset: 10% 5% 15% 5%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% / 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-ordinance-spirit .coach-window {
  position: absolute; top: 25%; left: 30%; width: 100px; height: 80px;
  background: linear-gradient(135deg, #1a2a3a 0%, #2a4a5a 100%);
  border: 4px solid #6a5a4a;
  border-radius: 8px;
  box-shadow: inset 0 0 20px #3a5a6a;
  animation: ors-window 6s ease-in-out infinite alternate;
}
.scn-ordinance-spirit .traveler-seated {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ors-traveler 4s ease-in-out infinite;
}
.scn-ordinance-spirit .candle {
  position: absolute; bottom: 35%; left: 15%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e0c080 0%, #8a6a40 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: ors-candle-flicker 1s ease-in-out infinite alternate;
}
.scn-ordinance-spirit .candle-glow {
  position: absolute; bottom: 45%; left: 12%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.4) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ors-glow-pulse 2s ease-in-out infinite alternate;
}
.scn-ordinance-spirit .curtain {
  position: absolute; top: 20%; right: 10%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #7a5040 0%, #5a3a2a 100%);
  border-radius: 10px 10px 0 0;
  transform-origin: top right;
  animation: ors-curtain 8s ease-in-out infinite alternate;
}

.scn-remarks-stolen {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #4a3a2a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 40% 60%, #6a5040 0%, transparent 50%);
}
.scn-remarks-stolen .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a2a 100%);
  border-radius: 0 0 30% 30%;
  animation: res-wall 10s ease-in-out infinite alternate;
}
.scn-remarks-stolen .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: res-desk 12s ease-in-out infinite;
}
.scn-remarks-stolen .traveler-hand {
  position: absolute; bottom: 40%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10px 10px 0 0;
  transform-origin: bottom center;
  animation: res-hand-traveler 2s ease-in-out infinite;
}
.scn-remarks-stolen .thief-hand {
  position: absolute; bottom: 40%; right: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10px 10px 0 0;
  transform: rotate(-20deg);
  transform-origin: bottom left;
  animation: res-hand-thief 2s ease-in-out infinite alternate 0.3s;
}
.scn-remarks-stolen .pocket {
  position: absolute; bottom: 45%; left: 32%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 20% 20% 40% 40%;
  border: 2px solid #4a3a2a;
  animation: res-pocket 3s ease-in-out infinite;
}
.scn-remarks-stolen .lantern {
  position: absolute; top: 15%; left: 20%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,208,128,0.3);
  animation: res-lantern 4s ease-in-out infinite alternate;
}
.scn-remarks-stolen .shadow-support {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
}

.scn-remarks-in-papillotes {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a3a2a 60%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 30%, #5a5a4a 0%, transparent 60%);
}
.scn-remarks-in-papillotes .chaise-body {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: rip-chaise 8s ease-in-out infinite;
}
.scn-remarks-in-papillotes .chaise-wheel {
  position: absolute; bottom: 5%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: rip-wheel 2s linear infinite;
}
.scn-remarks-in-papillotes .void-space {
  position: absolute; top: 10%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(circle, #2a2a3a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(15px);
  animation: rip-void 6s ease-in-out infinite alternate;
}
.scn-remarks-in-papillotes .seller {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rip-seller 5s ease-in-out infinite;
}
.scn-remarks-in-papillotes .papers {
  position: absolute; top: 45%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(135deg, #e0c8a0 0%, #c0a880 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: rip-papers 4s ease-in-out infinite alternate;
}
.scn-remarks-in-papillotes .sigh {
  position: absolute; top: 25%; left: 35%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: rip-sigh 7s ease-in-out infinite alternate;
}

@keyframes bcc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes bcc-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes bcc-traveler {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(2deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bcc-commissary {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(-2deg); }
  60% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bcc-breeches {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(10deg) scaleY(1.1); }
  100% { transform: rotate(-5deg) scaleY(0.9); }
}
@keyframes bcc-sunbeam {
  0% { transform: translateX(-10px) rotate(-2deg); opacity: 0.6; }
  50% { transform: translateX(10px) rotate(2deg); opacity: 0.8; }
  100% { transform: translateX(-5px) rotate(-1deg); opacity: 0.7; }
}
@keyframes bcc-motes {
  0% { transform: translateY(0); }
  100% { transform: translateY(-100px); }
}

@keyframes ors-window {
  0% { box-shadow: inset 0 0 20px #3a5a6a; }
  50% { box-shadow: inset 0 0 30px #5a8a9a; }
  100% { box-shadow: inset 0 0 10px #2a4a5a; }
}
@keyframes ors-traveler {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-3px) rotate(2deg); }
  70% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ors-candle-flicker {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}
@keyframes ors-glow-pulse {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.8; }
}
@keyframes ors-curtain {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes res-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes res-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(1px); }
}
@keyframes res-hand-traveler {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(5deg); }
  60% { transform: translateY(1px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes res-hand-thief {
  0% { transform: translateY(0) rotate(-20deg); }
  50% { transform: translateY(-2px) rotate(-15deg); }
  100% { transform: translateY(0) rotate(-25deg); }
}
@keyframes res-pocket {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(0.95); }
}
@keyframes res-lantern {
  0% { box-shadow: 0 0 20px 5px rgba(255,208,128,0.3); }
  50% { box-shadow: 0 0 40px 10px rgba(255,208,128,0.5); }
  100% { box-shadow: 0 0 25px 6px rgba(255,208,128,0.4); }
}

@keyframes rip-chaise {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes rip-wheel {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes rip-void {
  0% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.2); opacity: 0.8; }
  100% { transform: scale(0.9); opacity: 0.6; }
}
@keyframes rip-seller {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes rip-papers {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(3px); }
  100% { transform: rotate(10deg) translateX(-2px); }
}
@keyframes rip-sigh {
  0% { transform: scale(0.8) translateY(0); opacity: 0.3; }
  50% { transform: scale(1.2) translateY(-10px); opacity: 0.7; }
  100% { transform: scale(0.9) translateY(5px); opacity: 0.5; }
}

.scn-scarcity-of-nose-books {
  background: 
    linear-gradient(135deg, #2b1e12 0%, #3d2a1a 30%, #1c120a 100%),
    radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-scarcity-of-nose-books .snb-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #221610 0%, #1a0f08 100%);
  animation: snb-glow 8s ease-in-out infinite alternate;
}
.scn-scarcity-of-nose-books .snb-bookshelf {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #4a3520 0%, #2e1f10 100%);
  border-radius: 4px 4px 8px 8px; box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-scarcity-of-nose-books .snb-book-nose {
  position: absolute; bottom: 45%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%) rotate(10deg); background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: snb-nose 4s ease-in-out infinite;
}
.scn-scarcity-of-nose-books .snb-candle {
  position: absolute; bottom: 20%; left: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c8a070 0%, #8a6030 100%);
  border-radius: 2px; box-shadow: 0 0 10px rgba(200,160,112,.3);
}
.scn-scarcity-of-nose-books .snb-flame {
  position: absolute; bottom: 55%; left: 20%; width: 12px; height: 16px;
  margin-left: -2px; background: radial-gradient(circle, #ffd060 0%, #ff8020 60%, transparent 100%);
  border-radius: 50% 50% 40% 40%; animation: snb-flame 1.5s ease-in-out infinite alternate;
  filter: blur(1px);
}
.scn-scarcity-of-nose-books .snb-shadow-figure {
  position: absolute; bottom: 32%; right: 20%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: snb-figure 5s ease-in-out infinite;
  box-shadow: inset 0 0 10px rgba(0,0,0,.6);
}
.scn-scarcity-of-nose-books .snb-table {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #4a3520 0%, #2e1f10 100%);
  border-radius: 6px; box-shadow: 0 10px 20px rgba(0,0,0,.5);
}

@keyframes snb-glow    { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .7; } }
@keyframes snb-nose    { 0% { transform: translateX(-50%) rotate(8deg) scale(1); } 50% { transform: translateX(-45%) rotate(12deg) scale(1.05); } 100% { transform: translateX(-55%) rotate(8deg) scale(1); } }
@keyframes snb-flame   { 0% { transform: scale(1) translateY(0); opacity: .8; } 50% { transform: scale(1.2) translateY(-2px); opacity: 1; } 100% { transform: scale(.9) translateY(1px); opacity: .7; } }
@keyframes snb-figure  { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(2deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }

.scn-apostrophe-to-toby {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #3d2818 40%, #1c1008 100%),
    radial-gradient(ellipse at 50% 70%, #4a3020 0%, transparent 60%);
}
.scn-apostrophe-to-toby .ato-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c120a 0%, #2a1a0e 100%);
  animation: ato-pulse 10s ease-in-out infinite alternate;
}
.scn-apostrophe-to-toby .ato-table {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #4a3520 0%, #2e1f10 100%);
  border-radius: 8px; box-shadow: 0 8px 16px rgba(0,0,0,.5);
}
.scn-apostrophe-to-toby .ato-heart {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 36px;
  transform: translateX(-50%); background: radial-gradient(circle, #e05850 0%, #a02820 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 24px 8px rgba(224,88,80,.5), 0 0 48px 16px rgba(224,88,80,.2);
  animation: ato-heartbeat 3s ease-in-out infinite;
}
.scn-apostrophe-to-toby .ato-figure {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ato-figure 6s ease-in-out infinite;
}
.scn-apostrophe-to-toby .ato-chair {
  position: absolute; bottom: 15%; left: 55%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #3a2a18 0%, #1c1008 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
}
.scn-apostrophe-to-toby .ato-light-glow {
  position: absolute; bottom: 45%; left: 45%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,200,150,.15) 0%, transparent 70%);
  border-radius: 50%; animation: ato-light 4s ease-in-out infinite alternate;
}

@keyframes ato-pulse    { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes ato-heartbeat { 0% { transform: translateX(-50%) scale(1); } 30% { transform: translateX(-50%) scale(1.1); } 50% { transform: translateX(-50%) scale(1); } 80% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ato-figure   { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ato-light    { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .7; transform: scale(.95); } }

.scn-toby-praised {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #3d2818 30%, #1c1008 100%),
    radial-gradient(ellipse at 50% 80%, #4a3020 0%, transparent 70%);
}
.scn-toby-praised .tp-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c120a 0%, #2a1a0e 100%);
  animation: tp-glow 12s ease-in-out infinite alternate;
}
.scn-toby-praised .tp-ground-circle {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%);
  border-radius: 50%; animation: tp-circle 15s linear infinite;
}
.scn-toby-praised .tp-figure {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tp-ride 8s ease-in-out infinite;
}
.scn-toby-praised .tp-trim-dog {
  position: absolute; bottom: 15%; left: 50%; width: 25px; height: 30px;
  background: linear-gradient(180deg, #2a1a0e 0%, #120804 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center; animation: tp-dog 6s ease-in-out infinite;
}
.scn-toby-praised .tp-tree-left {
  position: absolute; bottom: 30%; left: 8%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #1a2a10 0%, #0a1a05 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  animation: tp-sway 14s ease-in-out infinite;
}
.scn-toby-praised .tp-tree-right {
  position: absolute; bottom: 30%; right: 10%; width: 25px; height: 100px;
  background: linear-gradient(180deg, #1a2a10 0%, #0a1a05 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  animation: tp-sway 16s ease-in-out infinite reverse;
}
.scn-toby-praised .tp-lantern {
  position: absolute; bottom: 35%; left: 45%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #c8a070 0%, #8a6030 100%);
  border-radius: 20%; box-shadow: 0 0 16px 4px rgba(200,160,112,.6);
  animation: tp-lantern 4s ease-in-out infinite alternate;
}

@keyframes tp-glow    { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes tp-circle  { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(180deg) translateY(-3px); } 100% { transform: rotate(360deg) translateY(0); } }
@keyframes tp-ride    { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(10px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(20px) translateY(0) rotate(0deg); } 75% { transform: translateX(10px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes tp-dog     { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-3px) rotate(5deg); } 50% { transform: translateX(10px) translateY(0) rotate(0deg); } 75% { transform: translateX(5px) translateY(-2px) rotate(-5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes tp-sway    { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes tp-lantern { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .8; transform: scale(.95); } }

.scn-bruscambille-purchase {
  background: 
    linear-gradient(180deg, #2b1e14 0%, #3d2a18 30%, #1c1008 100%),
    radial-gradient(ellipse at 50% 60%, #4a3520 0%, transparent 70%);
}
.scn-bruscambille-purchase .bp-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c120a 0%, #2a1a0e 100%);
  animation: bp-glow 9s ease-in-out infinite alternate;
}
.scn-bruscambille-purchase .bp-land-plot {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1c1008 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
  animation: bp-plot 20s linear infinite;
}
.scn-bruscambille-purchase .bp-fort {
  position: absolute; bottom: 25%; left: 35%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2e1f10 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: bp-fort 6s ease-in-out infinite;
}
.scn-bruscambille-purchase .bp-figure-toby {
  position: absolute; bottom: 18%; left: 20%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: bp-toby 5s ease-in-out infinite;
}
.scn-bruscambille-purchase .bp-measuring-stick {
  position: absolute; bottom: 22%; left: 15%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%);
  border-radius: 2px; transform-origin: bottom left; animation: bp-stick 4s ease-in-out infinite;
}
.scn-bruscambille-purchase .bp-flag {
  position: absolute; bottom: 45%; left: 38%; width: 20px; height: 14px;
  background: #b8a878; /* desaturated yellow flag */
  border-radius: 0 10% 10% 0; transform-origin: left center;
  animation: bp-flag 3s ease-in-out infinite;
}
.scn-bruscambille-purchase .bp-shadow {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%);
  border-radius: 50%; animation: bp-shadow 5s ease-in-out infinite alternate;
}

@keyframes bp-glow   { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes bp-plot   { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes bp-fort   { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes bp-toby   { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(10px) translateY(0) rotate(0deg); } 75% { transform: translateX(5px) translateY(-1px) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes bp-stick  { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.1); } 100% { transform: rotate(-10deg) scaleY(1); } }
@keyframes bp-flag   { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(15deg) scaleX(1.1); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes bp-shadow { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .3; } }

/* campaign-planned – dim interior, two figures at table */
.scn-campaign-planned {
  background:
    linear-gradient(180deg, #2a2218 0%, #3a2a1a 40%, #5a3a2a 80%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 70%, #6a4a3a 0%, transparent 60%);
}
.scn-campaign-planned .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3628 0%, #3a2a1a 100%);
  animation: cp-wall 12s ease-in-out infinite alternate;
}
.scn-campaign-planned .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-campaign-planned .table {
  position: absolute; bottom: 28%; left: 50%; width: 50%; height: 12%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: cp-table 18s ease-in-out infinite;
}
.scn-campaign-planned .figure-toby {
  position: absolute; bottom: 32%; left: 30%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-toby 4s ease-in-out infinite;
}
.scn-campaign-planned .figure-corporal {
  position: absolute; bottom: 32%; right: 30%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-corporal 4.5s ease-in-out infinite;
}
.scn-campaign-planned .candle {
  position: absolute; bottom: 40%; left: 50%; width: 2%; height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a070 0%, #a07040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,.3);
  animation: cp-candle 6s ease-in-out infinite;
}
.scn-campaign-planned .glow {
  position: absolute; bottom: 36%; left: 50%; width: 20%; height: 20%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #f0c068 0%, #d09050 40%, transparent 70%);
  border-radius: 50%;
  animation: cp-glow 3s ease-in-out infinite alternate;
}
.scn-campaign-planned .scroll {
  position: absolute; bottom: 29%; left: 48%; width: 8%; height: 2%;
  background: #c8a870;
  transform: rotate(-5deg);
  border-radius: 20% 20% 20% 20% / 50% 50% 50% 50%;
  animation: cp-scroll 20s ease-in-out infinite;
}
@keyframes cp-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cp-table { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(0.98) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes cp-toby { 0% { transform: rotate(-2deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes cp-corporal { 0% { transform: rotate(2deg) } 25% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes cp-candle { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) rotate(1deg) } }
@keyframes cp-glow { 0% { opacity: 0.6; transform: translate(-50%,-50%) scale(0.9) } 50% { opacity: 1; transform: translate(-50%,-50%) scale(1.1) } 100% { opacity: 0.7; transform: translate(-50%,-50%) scale(1) } }
@keyframes cp-scroll { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }

/* bridgets-council – dim interior, two women by fireplace */
.scn-bridgets-council {
  background:
    linear-gradient(180deg, #2a1e14 0%, #3a2618 50%, #2a1e14 100%),
    radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 60%);
}
.scn-bridgets-council .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: bc-wall 15s ease-in-out infinite alternate;
}
.scn-bridgets-council .hearth {
  position: absolute; bottom: 0%; left: 50%; width: 60%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.6);
  animation: bc-hearth 20s ease-in-out infinite;
}
.scn-bridgets-council .fire-glow {
  position: absolute; bottom: 15%; left: 50%; width: 30%; height: 30%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e08040 0%, #b06030 30%, transparent 70%);
  border-radius: 50%;
  animation: bc-glow 3s ease-in-out infinite alternate;
}
.scn-bridgets-council .figure-wadman {
  position: absolute; bottom: 35%; left: 25%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-wadman 4s ease-in-out infinite;
}
.scn-bridgets-council .figure-bridget {
  position: absolute; bottom: 35%; right: 25%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-bridget 4.5s ease-in-out infinite;
}
.scn-bridgets-council .chair {
  position: absolute; bottom: 33%; left: 20%; width: 18%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: bc-chair 8s ease-in-out infinite;
}
.scn-bridgets-council .curtain {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-right: 2px solid #2a1a0a;
  animation: bc-curtain 30s ease-in-out infinite alternate;
}
@keyframes bc-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes bc-hearth { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(0.97) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes bc-glow { 0% { opacity: 0.5; transform: translateX(-50%) scale(0.8) } 50% { opacity: 1; transform: translateX(-50%) scale(1.1) } 100% { opacity: 0.6; transform: translateX(-50%) scale(0.9) } }
@keyframes bc-wadman { 0% { transform: rotate(-1deg) translateY(0) } 25% { transform: rotate(3deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes bc-bridget { 0% { transform: rotate(1deg) translateY(0) } 25% { transform: rotate(-2deg) translateY(-1px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes bc-chair { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes bc-curtain { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.05) } }

/* attack-prepared – sunlit room, figures around table with map */
.scn-attack-prepared {
  background:
    linear-gradient(180deg, #f8efd8 0%, #e0d0b0 40%, #c8b898 100%),
    radial-gradient(ellipse at 80% 20%, #fff5e0 0%, transparent 50%);
}
.scn-attack-prepared .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 100%);
  animation: ap-wall 20s ease-in-out infinite alternate;
}
.scn-attack-prepared .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 20% 80% 0 0 / 10% 30% 0 0;
}
.scn-attack-prepared .table {
  position: absolute; bottom: 22%; left: 50%; width: 60%; height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8a080 0%, #9a8060 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
  animation: ap-table 12s ease-in-out infinite;
}
.scn-attack-prepared .map {
  position: absolute; bottom: 24%; left: 50%; width: 30%; height: 4%;
  transform: translateX(-50%) rotate(-2deg);
  background: #d8c8a0;
  border-radius: 10% 10% 10% 10% / 50% 50% 50% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: ap-map 8s ease-in-out infinite;
}
.scn-attack-prepared .figure-toby {
  position: absolute; bottom: 26%; left: 28%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a3a28 0%, #2a2a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap-toby 3.5s ease-in-out infinite;
}
.scn-attack-prepared .figure-corporal {
  position: absolute; bottom: 26%; right: 28%; width: 10%; height: 26%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap-corporal 4s ease-in-out infinite;
}
.scn-attack-prepared .crown {
  position: absolute; bottom: 23%; left: 46%; width: 4%; height: 3%;
  background: radial-gradient(circle, #f0d080 0%, #c8a050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ap-crown 10s ease-in-out infinite;
}
.scn-attack-prepared .sunbeam {
  position: absolute; top: 0; left: 70%; width: 15%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 80%);
  transform: skewX(-10deg);
  animation: ap-beam 40s linear infinite alternate;
}
@keyframes ap-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ap-table { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) } }
@keyframes ap-map { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes ap-toby { 0% { transform: rotate(-2deg) } 25% { transform: rotate(4deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes ap-corporal { 0% { transform: rotate(2deg) } 25% { transform: rotate(-3deg) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(2deg) } }
@keyframes ap-crown { 0% { transform: scale(1) } 50% { transform: scale(1.1) rotate(10deg) } 100% { transform: scale(1) } }
@keyframes ap-beam { 0% { opacity: 0.3; transform: skewX(-10deg) } 100% { opacity: 0.6; transform: skewX(10deg) } }

/* clothes-prepared – sunlit close-up on chest with coat, cap, razors */
.scn-clothes-prepared {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 40%, #c0b090 100%),
    radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 60%);
}
.scn-clothes-prepared .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b898 100%);
  animation: cl-wall 18s ease-in-out infinite alternate;
}
.scn-clothes-prepared .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(180deg, #b8a080 0%, #9a8060 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,.3);
  animation: cl-table 15s ease-in-out infinite;
}
.scn-clothes-prepared .coat {
  position: absolute; bottom: 38%; left: 40%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: cl-coat 6s ease-in-out infinite;
}
.scn-clothes-prepared .cap {
  position: absolute; bottom: 45%; left: 35%; width: 10%; height: 6%;
  background: #4a3a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: cl-cap 8s ease-in-out infinite;
}
.scn-clothes-prepared .razors {
  position: absolute; bottom: 32%; left: 48%; width: 8%; height: 2%;
  background: #d0c0a0;
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: cl-razors 10s ease-in-out infinite;
}
.scn-clothes-prepared .figure-corporal {
  position: absolute; bottom: 22%; right: 20%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-figure 4s ease-in-out infinite;
}
.scn-clothes-prepared .sunbeam {
  position: absolute; top: 0; left: 10%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 80%);
  transform: skewX(-5deg);
  animation: cl-beam 50s linear infinite alternate;
}
@keyframes cl-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cl-table { 0% { transform: scale(1) } 50% { transform: scale(0.98) } 100% { transform: scale(1) } }
@keyframes cl-coat { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes cl-cap { 0% { transform: rotate(10deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(10deg) } }
@keyframes cl-razors { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(13deg) translateY(-1px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes cl-figure { 0% { transform: rotate(1deg) } 25% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes cl-beam { 0% { opacity: 0.3; transform: skewX(-5deg) } 100% { opacity: 0.6; transform: skewX(5deg) } }

/* sermon-discussion */
.scn-sermon-discussion { background: linear-gradient(180deg, #2a1b0e 0%, #3c2a18 40%, #4e3822 100%), radial-gradient(ellipse at 50% 70%, #5e4424 0%, transparent 80%); }
.scn-sermon-discussion .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(60,40,20,.3) 0%, transparent 60%, rgba(0,0,0,.4) 100%); }
.scn-sermon-discussion .table { position:absolute; bottom:18%; left:50%; width:80px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4f2a 0%, #3a2a14 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-sermon-discussion .chair-left { position:absolute; bottom:15%; left:30%; width:30px; height:20px; background: linear-gradient(180deg, #4a3620 0%, #2a1e0e 100%); border-radius:50% 50% 10% 10% / 60% 60% 20% 20%; }
.scn-sermon-discussion .chair-right { position:absolute; bottom:15%; right:28%; width:30px; height:20px; background: linear-gradient(180deg, #4a3620 0%, #2a1e0e 100%); border-radius:50% 50% 10% 10% / 60% 60% 20% 20%; }
.scn-sermon-discussion .figure-left { position:absolute; bottom:17%; left:32%; width:22px; height:34px; background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sd-fig-left 5s ease-in-out infinite; }
.scn-sermon-discussion .figure-right { position:absolute; bottom:17%; right:30%; width:22px; height:34px; background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sd-fig-right 5s ease-in-out infinite 0.3s; }
.scn-sermon-discussion .candle { position:absolute; bottom:28%; left:49%; width:6px; height:14px; background: linear-gradient(180deg, #e8c88a 0%, #a08040 100%); border-radius:40% 40% 10% 10%; }
.scn-sermon-discussion .candle-glow { position:absolute; bottom:30%; left:49%; width:20px; height:20px; transform:translate(-50%,50%); background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%); border-radius:50%; animation: sd-glow 2s ease-in-out infinite alternate; }
.scn-sermon-discussion .pipe-smoke { position:absolute; bottom:38%; right:35%; width:30px; height:30px; background: radial-gradient(circle, rgba(220,200,170,.4) 0%, transparent 80%); border-radius:50%; filter: blur(4px); animation: sd-smoke 8s linear infinite; }
@keyframes sd-fig-left { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-1px) rotate(-1deg) } 60% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sd-fig-right { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(1px) rotate(1deg) } 60% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sd-glow { 0% { box-shadow: 0 0 10px 3px #c08040, 0 0 20px 6px rgba(192,128,64,.3); opacity:.8 } 50% { box-shadow: 0 0 18px 6px #ffd060, 0 0 30px 10px rgba(255,208,96,.5); opacity:1 } 100% { box-shadow: 0 0 12px 4px #c08040, 0 0 22px 8px rgba(192,128,64,.35); opacity:.9 } }
@keyframes sd-smoke { 0% { transform: translateY(0) scale(1); opacity:.6 } 50% { transform: translateY(-20px) scale(1.3); opacity:.3 } 100% { transform: translateY(-40px) scale(1.5); opacity:0 } }

/* solomons-tower */
.scn-solomons-tower { background: linear-gradient(180deg, #1f1810 0%, #2e2218 40%, #3f2e1e 100%), radial-gradient(ellipse at 50% 90%, #4f3a24 0%, transparent 70%); }
.scn-solomons-tower .tower-wall { position:absolute; inset:0; background: linear-gradient(90deg, rgba(40,28,16,.6) 0%, rgba(60,44,28,.4) 50%, rgba(40,28,16,.6) 100%); }
.scn-solomons-tower .window-arch { position:absolute; top:8%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1e12 0%, #1a100a 100%); border-radius:50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 4px 12px rgba(0,0,0,.7); }
.scn-solomons-tower .window-sky { position:absolute; top:12%; left:50%; width:44px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #0c1a2a 0%, #182a3e 100%); border-radius:40% 40% 10% 10% / 50% 50% 20% 20%; }
.scn-solomons-tower .table-outline { position:absolute; bottom:14%; left:35%; width:100px; height:6px; background: linear-gradient(180deg, #5e4228 0%, #3a2a16 100%); border-radius:2px; box-shadow: 0 3px 8px rgba(0,0,0,.4); }
.scn-solomons-tower .map { position:absolute; bottom:16%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #b09060 0%, #8a7040 100%); border-radius:2px; transform:rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-solomons-tower .candle { position:absolute; bottom:22%; left:48%; width:5px; height:12px; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius:40% 40% 10% 10%; }
.scn-solomons-tower .candle-glow { position:absolute; bottom:24%; left:48%; width:18px; height:18px; transform:translate(-50%,50%); background: radial-gradient(circle, #ffd060 0%, #b08040 35%, transparent 65%); border-radius:50%; animation: st-glow 2.5s ease-in-out infinite alternate; }
.scn-solomons-tower .figure-point { position:absolute; bottom:17%; right:28%; width:20px; height:32px; background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 80% 100%; animation: st-point 4s ease-in-out infinite; }
@keyframes st-glow { 0% { box-shadow: 0 0 8px 2px #b08040, 0 0 16px 4px rgba(176,128,64,.3); opacity:.8 } 50% { box-shadow: 0 0 14px 5px #ffc050, 0 0 24px 8px rgba(255,192,80,.5); opacity:1 } 100% { box-shadow: 0 0 10px 3px #b08040, 0 0 18px 6px rgba(176,128,64,.35); opacity:.9 } }
@keyframes st-point { 0% { transform: rotate(0deg) } 25% { transform: rotate(-5deg) translateX(-2px) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-3deg) translateX(1px) } 100% { transform: rotate(0deg) } }

/* religion-morality-united */
.scn-religion-morality-united { background: linear-gradient(180deg, #231b12 0%, #35281a 40%, #4a3824 100%), radial-gradient(ellipse at 50% 60%, #5e442a 0%, transparent 80%); }
.scn-religion-morality-united .desk { position:absolute; bottom:20%; left:35%; width:90px; height:8px; background: linear-gradient(180deg, #5e4228 0%, #3a2a16 100%); border-radius:2px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-religion-morality-united .book-spine { position:absolute; bottom:24%; left:39%; width:4px; height:20px; background: #2a1e12; border-radius:2px; transform:rotate(-2deg); }
.scn-religion-morality-united .book-left { position:absolute; bottom:24%; left:38%; width:18px; height:20px; background: linear-gradient(180deg, #8a7040 0%, #604a28 100%); border-radius:2px 0 0 2px; transform:rotate(-2deg); }
.scn-religion-morality-united .book-right { position:absolute; bottom:24%; left:42%; width:18px; height:20px; background: linear-gradient(180deg, #8a7040 0%, #604a28 100%); border-radius:0 2px 2px 0; transform:rotate(2deg); }
.scn-religion-morality-united .candle { position:absolute; bottom:28%; right:32%; width:5px; height:12px; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius:40% 40% 10% 10%; }
.scn-religion-morality-united .candle-glow { position:absolute; bottom:30%; right:32%; width:16px; height:16px; transform:translate(-50%,50%); background: radial-gradient(circle, #ffd060 0%, #b08040 35%, transparent 65%); border-radius:50%; animation: rm-glow 2.2s ease-in-out infinite alternate; }
.scn-religion-morality-united .figure-reading { position:absolute; bottom:19%; left:34%; width:18px; height:30px; background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rm-read 4s ease-in-out infinite; }
.scn-religion-morality-united .shelf-bg { position:absolute; bottom:35%; left:20%; width:60%; height:3px; background: linear-gradient(90deg, #3a2a16 0%, #4e3822 50%, #3a2a16 100%); border-radius:1px; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
@keyframes rm-glow { 0% { box-shadow: 0 0 8px 2px #b08040, 0 0 16px 4px rgba(176,128,64,.3); opacity:.8 } 50% { box-shadow: 0 0 16px 5px #ffc050, 0 0 24px 8px rgba(255,192,80,.5); opacity:1 } 100% { box-shadow: 0 0 10px 3px #b08040, 0 0 18px 6px rgba(176,128,64,.35); opacity:.9 } }
@keyframes rm-read { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* interest-foundation */
.scn-interest-foundation { background: linear-gradient(180deg, #1f1810 0%, #2e2218 40%, #3f2e1e 100%), radial-gradient(ellipse at 50% 50%, #4f3a24 0%, transparent 80%); }
.scn-interest-foundation .pulpit-base { position:absolute; bottom:18%; left:50%; width:50px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a361e 0%, #2a1e10 100%); border-radius:10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 6px 14px rgba(0,0,0,.6); }
.scn-interest-foundation .pulpit-top { position:absolute; bottom:30%; left:50%; width:60px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #5e4228 0%, #3a2a16 100%); border-radius:20% 20% 10% 10%; }
.scn-interest-foundation .preacher { position:absolute; bottom:32%; left:50%; width:20px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: if-preach 3.5s ease-in-out infinite; }
.scn-interest-foundation .pew { position:absolute; bottom:15%; left:20%; width:80px; height:18px; background: linear-gradient(180deg, #4a361e 0%, #2a1e10 100%); border-radius:4px 4px 8px 8px; }
.scn-interest-foundation .sleeper { position:absolute; bottom:17%; left:25%; width:18px; height:20px; background: linear-gradient(180deg, #1a120a 0%, #0e0a06 100%); border-radius:50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: if-sleep 6s ease-in-out infinite; }
.scn-interest-foundation .candle { position:absolute; bottom:40%; right:22%; width:6px; height:14px; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius:40% 40% 10% 10%; }
.scn-interest-foundation .candle-glow { position:absolute; bottom:42%; right:22%; width:20px; height:20px; transform:translate(-50%,50%); background: radial-gradient(circle, #ffd060 0%, #b08040 40%, transparent 70%); border-radius:50%; animation: if-glow 2s ease-in-out infinite alternate; }
.scn-interest-foundation .pew-shadow { position:absolute; bottom:13%; left:18%; width:84px; height:4px; background: linear-gradient(90deg, rgba(0,0,0,.4) 0%, transparent 100%); border-radius:2px; }
@keyframes if-preach { 0% { transform: translateX(-50%) rotate(0deg) translateY(0) } 30% { transform: translateX(-50%) rotate(-2deg) translateY(-2px) } 60% { transform: translateX(-50%) rotate(2deg) translateY(0) } 100% { transform: translateX(-50%) rotate(0deg) translateY(-1px) } }
@keyframes if-sleep { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(3deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes if-glow { 0% { box-shadow: 0 0 8px 2px #b08040, 0 0 16px 4px rgba(176,128,64,.3); opacity:.8 } 50% { box-shadow: 0 0 16px 5px #ffc050, 0 0 24px 8px rgba(255,192,80,.5); opacity:1 } 100% { box-shadow: 0 0 10px 3px #b08040, 0 0 18px 6px rgba(176,128,64,.35); opacity:.9 } }

/* gascoigne-roundelay */
.scn-gascoigne-roundelay { background: linear-gradient(180deg, #4a2e1e 0%, #8a5a3a 30%, #c08040 60%, #d4a060 80%, #e0b070 100%), radial-gradient(ellipse at 50% 20%, #f0c080 0%, transparent 50%); }
.scn-gascoigne-roundelay .sky-dusk { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a3a2a 0%, #a06040 40%, transparent 100%); animation: gs-sky 14s ease-in-out infinite alternate; }
.scn-gascoigne-roundelay .sun-globe { position:absolute; top:20%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #f0d080 0%, #d4a050 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #d4a050, 0 0 120px 40px rgba(212,160,80,.3); animation: gs-sun 8s ease-in-out infinite alternate; }
.scn-gascoigne-roundelay .hills-back { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); animation: gs-hills 20s ease-in-out infinite alternate; }
.scn-gascoigne-roundelay .hills-mid { position:absolute; bottom:35%; left:0; right:0; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 50% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 3px 8px rgba(0,0,0,.3); animation: gs-hills 24s ease-in-out infinite alternate-reverse; }
.scn-gascoigne-roundelay .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 30% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-gascoigne-roundelay .figure-dancer { position:absolute; bottom:25%; left:40%; width:20px; height:50px; background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gs-dance 2.5s ease-in-out infinite; }
.scn-gascoigne-roundelay .figure-piper { position:absolute; bottom:25%; left:55%; width:22px; height:48px; background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%); border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: gs-pipe 3s ease-in-out infinite; }
.scn-gascoigne-roundelay .ribbon { position:absolute; bottom:30%; left:35%; width:60px; height:4px; background: linear-gradient(90deg, #c08040 0%, #e0a060 50%, #c08040 100%); border-radius: 50%; filter: blur(1px); animation: gs-ribbon 4s ease-in-out infinite; }
.scn-gascoigne-roundelay .musical-notes { position:absolute; top:25%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #e0b070 0%, transparent 70%); border-radius:50%; box-shadow: 8px -12px 0 2px #e0b070, 16px -8px 0 1px #e0b070, -6px -16px 0 1.5px #e0b070; animation: gs-notes 6s ease-in-out infinite; }
@keyframes gs-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes gs-sun { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(6px,-4px) scale(1.1) } 100% { transform: translate(-2px,2px) scale(.95) } }
@keyframes gs-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes gs-dance { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(4deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes gs-pipe { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(-3px) rotate(2deg) } 66% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes gs-ribbon { 0% { transform: translateX(0) scaleX(1) opacity:.8 } 50% { transform: translateX(15px) scaleX(1.3) opacity:1 } 100% { transform: translateX(0) scaleX(1) opacity:.8 } }
@keyframes gs-notes { 0% { transform: translate(0,0) scale(1) opacity:.6 } 50% { transform: translate(10px,-20px) scale(1.4) opacity:1 } 100% { transform: translate(-5px,-10px) scale(.9) opacity:.5 } }

/* amours-begin */
.scn-amours-begin { background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #3a2e2a 70%, #1a1410 100%), radial-gradient(ellipse at 50% 30%, #4a3e3a 0%, transparent 60%); }
.scn-amours-begin .wall-dim { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a221e 0%, #1a1410 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.6); animation: ab-wall 15s ease-in-out infinite alternate; }
.scn-amours-begin .table-wood { position:absolute; bottom:20%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-amours-begin .inkstand { position:absolute; bottom:30%; left:35%; width:24px; height:20px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: ab-ink 6s ease-in-out infinite; }
.scn-amours-begin .paper-sheet { position:absolute; bottom:32%; left:45%; width:50px; height:35px; background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%); border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: rotate(-2deg); animation: ab-paper 10s ease-in-out infinite alternate; }
.scn-amours-begin .quill { position:absolute; bottom:35%; left:50%; width:4px; height:40px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%; transform: rotate(15deg); transform-origin: bottom center; animation: ab-quill 4s ease-in-out infinite alternate; }
.scn-amours-begin .candle-glow { position:absolute; bottom:42%; left:30%; width:12px; height:20px; background: linear-gradient(180deg, #f0c080 0%, #d4a050 40%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #d4a050, 0 0 60px 20px rgba(212,160,80,.4); animation: ab-candle 3s ease-in-out infinite alternate; }
.scn-amours-begin .chair-silhouette { position:absolute; bottom:10%; left:15%; width:30px; height:50px; background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: ab-chair 12s ease-in-out infinite; }
@keyframes ab-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ab-ink { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ab-paper { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes ab-quill { 0% { transform: rotate(15deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(18deg) } }
@keyframes ab-candle { 0% { box-shadow: 0 0 20px 5px #d4a050, 0 0 40px 10px rgba(212,160,80,.3); opacity:.8 } 50% { box-shadow: 0 0 40px 15px #f0c080, 0 0 80px 25px rgba(240,192,128,.5); opacity:1 } 100% { box-shadow: 0 0 25px 8px #d4a050, 0 0 50px 15px rgba(212,160,80,.35); opacity:.85 } }
@keyframes ab-chair { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }

/* beginning-a-book */
.scn-beginning-a-book { background: linear-gradient(180deg, #1a1612 0%, #2a221c 40%, #3a2e26 70%, #1a1410 100%), radial-gradient(ellipse at 50% 80%, #4a3e36 0%, transparent 60%); }
.scn-beginning-a-book .study-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-beginning-a-book .desk-plank { position:absolute; bottom:30%; left:5%; right:5%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 3% 3% 1% 1%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-beginning-a-book .author-silhouette { position:absolute; bottom:20%; left:40%; width:24px; height:60px; background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%); border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bb-author 8s ease-in-out infinite; }
.scn-beginning-a-book .book-open { position:absolute; bottom:32%; left:35%; width:60px; height:30px; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius: 4% 4% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: perspective(40px) rotateX(10deg); animation: bb-book 10s ease-in-out infinite alternate; }
.scn-beginning-a-book .ink-bottle { position:absolute; bottom:36%; left:48%; width:18px; height:18px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 20% 20%; animation: bb-bottle 6s ease-in-out infinite; }
.scn-beginning-a-book .quill-write { position:absolute; bottom:40%; left:45%; width:3px; height:35px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%; transform: rotate(-10deg); transform-origin: bottom center; animation: bb-quill 3s ease-in-out infinite alternate; }
.scn-beginning-a-book .window-moon { position:absolute; top:15%; right:10%; width:40px; height:50px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 4px; box-shadow: inset 0 0 20px #5a5a7a; animation: bb-moon 20s ease-in-out infinite alternate; }
.scn-beginning-a-book .hat-wig { position:absolute; top:20%; left:25%; width:30px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(-5deg); animation: bb-hat 6s ease-in-out infinite; }
@keyframes bb-author { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(3px) rotate(2deg) } 66% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bb-book { 0% { transform: perspective(40px) rotateX(10deg) } 50% { transform: perspective(40px) rotateX(14deg) } 100% { transform: perspective(40px) rotateX(8deg) } }
@keyframes bb-bottle { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bb-quill { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-12deg) } }
@keyframes bb-moon { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes bb-hat { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }

/* pope-and-portrait */
.scn-pope-and-portrait { background: linear-gradient(180deg, #1a1412 0%, #2a1e1a 40%, #1a1210 70%, #0a0805 100%), radial-gradient(ellipse at 50% 50%, #4a3e36 0%, transparent 60%); }
.scn-pope-and-portrait .room-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-pope-and-portrait .easel-stand { position:absolute; bottom:20%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: pp-easel 10s ease-in-out infinite alternate; }
.scn-pope-and-portrait .portrait-oval { position:absolute; bottom:35%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 0 10px #8a7a6a, 0 2px 6px rgba(0,0,0,.3); animation: pp-portrait 8s ease-in-out infinite; }
.scn-pope-and-portrait .figure-mocking { position:absolute; bottom:18%; left:50%; width:20px; height:50px; background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-figure 4s ease-in-out infinite; }
.scn-pope-and-portrait .candle-flame { position:absolute; bottom:40%; left:55%; width:10px; height:20px; background: linear-gradient(180deg, #f0c080 0%, #d4a050 40%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 25px 8px #d4a050, 0 0 50px 15px rgba(212,160,80,.4); animation: pp-candle 3s ease-in-out infinite alternate; }
.scn-pope-and-portrait .chair-old { position:absolute; bottom:10%; left:15%; width:25px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%; animation: pp-chair 12s ease-in-out infinite; }
.scn-pope-and-portrait .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:20%; background: radial-gradient(ellipse at 40% 0%, rgba(0,0,0,.6) 0%, transparent 100%); animation: pp-shadow 15s ease-in-out infinite alternate; }
@keyframes pp-easel { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pp-portrait { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(.98) } }
@keyframes pp-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(8px) rotate(-2deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pp-candle { 0% { box-shadow: 0 0 15px 4px #d4a050, 0 0 30px 8px rgba(212,160,80,.3); opacity:.8 } 50% { box-shadow: 0 0 35px 12px #f0c080, 0 0 70px 20px rgba(240,192,128,.5); opacity:1 } 100% { box-shadow: 0 0 20px 6px #d4a050, 0 0 40px 10px rgba(212,160,80,.35); opacity:.85 } }
@keyframes pp-chair { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes pp-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-bobbys-death-letter {
  background: linear-gradient(180deg, #1a120e 0%, #2a1e14 40%, #3a281c 100%), radial-gradient(ellipse at 50% 40%, #4a3828 0%, transparent 70%);
}
.scn-bobbys-death-letter .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #2a1e14 0%, #1a120e 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-bobbys-death-letter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-bobbys-death-letter .desk {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  transform: perspective(500px) rotateX(5deg);
}
.scn-bobbys-death-letter .candle {
  position: absolute; bottom: 38%; left: 38%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #e0c080 0%, #b09060 50%, #806040 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(255,180,80,0.6), 0 0 60px 20px rgba(255,180,80,0.3);
  animation: bod-candle 3s ease-in-out infinite alternate;
}
.scn-bobbys-death-letter .letter {
  position: absolute; bottom: 26%; left: 38%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #c8b898 0%, #a89078 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform: rotate(-8deg);
  animation: bod-letter 5s ease-in-out infinite;
}
.scn-bobbys-death-letter .hand {
  position: absolute; bottom: 24%; left: 34%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 70%, #c8a078 0%, #8a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: 50% 80%;
  animation: bod-hand 4s ease-in-out infinite;
}
.scn-bobbys-death-letter .compass {
  position: absolute; bottom: 28%; right: 28%; width: 40px; height: 40px;
  background: conic-gradient(from 0deg, #8a7a6a 0deg 45deg, #6a5a4a 45deg 90deg, #8a7a6a 90deg 135deg, #6a5a4a 135deg 180deg, #8a7a6a 180deg 225deg, #6a5a4a 225deg 270deg, #8a7a6a 270deg 315deg, #6a5a4a 315deg 360deg);
  border-radius: 50%;
  box-shadow: 0 0 15px rgba(0,0,0,0.6);
  animation: bod-compass 12s linear infinite;
}
.scn-bobbys-death-letter .shadow-figure {
  position: absolute; bottom: 12%; left: 50%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at 50% 50%, #0a0604 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 -20px 40px rgba(0,0,0,0.8);
  animation: bod-figure 8s ease-in-out infinite;
}
@keyframes bod-candle {
  0% { transform: translateY(0); opacity: 0.9; box-shadow: 0 0 20px 8px rgba(255,180,80,0.5); }
  50% { transform: translateY(-2px); opacity: 1; box-shadow: 0 0 40px 15px rgba(255,200,100,0.7); }
  100% { transform: translateY(0); opacity: 0.85; box-shadow: 0 0 15px 5px rgba(255,180,80,0.4); }
}
@keyframes bod-letter {
  0%, 100% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-3px); }
}
@keyframes bod-hand {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(5px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes bod-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes bod-figure {
  0%, 100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-2px); }
}

/* scene 2 */
.scn-compasses-through-nevers {
  background: linear-gradient(180deg, #120c08 0%, #2a1a0e 50%, #3a2818 100%), radial-gradient(ellipse at 50% 60%, #4a3420 0%, transparent 70%);
}
.scn-compasses-through-nevers .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(45deg, #1a0e08 0%, #2a1a0e 100%);
  box-shadow: inset 0 -30px 40px rgba(0,0,0,0.7);
}
.scn-compasses-through-nevers .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a0e06 0%, #0c0604 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-compasses-through-nevers .table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 22%;
  background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 10px 30px rgba(0,0,0,0.8);
}
.scn-compasses-through-nevers .map {
  position: absolute; bottom: 24%; left: 20%; right: 20%; height: 28%;
  background: linear-gradient(135deg, #b8a080 0%, #8a7050 100%);
  border-radius: 4px;
  transform: rotate(2deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: cne-map 15s ease-in-out infinite alternate;
}
.scn-compasses-through-nevers .compass-fixed {
  position: absolute; bottom: 28%; left: 48%; width: 40px; height: 40px;
  background: conic-gradient(from 0deg, #a09080 0deg 45deg, #7a6a5a 45deg 90deg, #a09080 90deg 135deg, #7a6a5a 135deg 180deg, #a09080 180deg 225deg, #7a6a5a 225deg 270deg, #a09080 270deg 315deg, #7a6a5a 315deg 360deg);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(0,0,0,0.7);
  transform: rotate(45deg);
}
.scn-compasses-through-nevers .compass-hand {
  position: absolute; bottom: 28%; left: 48%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #4a3020 0%, #1a0e08 100%);
  transform-origin: bottom center;
  transform: translateX(-50%) rotate(-30deg);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: cne-stab 4s ease-in-out infinite;
}
.scn-compasses-through-nevers .inkwell {
  position: absolute; bottom: 28%; right: 20%; width: 20px; height: 24px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
}
.scn-compasses-through-nevers .candle {
  position: absolute; bottom: 38%; left: 20%; width: 12px; height: 55px;
  background: linear-gradient(180deg, #d0b080 0%, #a08060 50%, #705040 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(255,160,60,0.6), 0 0 60px 20px rgba(255,160,60,0.3);
  animation: cne-candle 3.5s ease-in-out infinite alternate;
}
@keyframes cne-map {
  0% { transform: rotate(2deg) scale(1); }
  50% { transform: rotate(4deg) scale(1.01); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes cne-stab {
  0%, 100% { transform: translateX(-50%) rotate(-30deg); }
  50% { transform: translateX(-50%) rotate(-10deg) translateY(-5px); }
}
@keyframes cne-candle {
  0% { transform: translateY(0); opacity: 0.9; box-shadow: 0 0 20px 8px rgba(255,160,60,0.5); }
  50% { transform: translateY(-2px); opacity: 1; box-shadow: 0 0 40px 15px rgba(255,180,80,0.7); }
  100% { transform: translateY(0); opacity: 0.85; box-shadow: 0 0 15px 5px rgba(255,160,60,0.4); }
}

/* scene 3 */
.scn-agrippina-comparison {
  background: linear-gradient(180deg, #0c0806 0%, #1a1008 50%, #2a1a0e 100%), radial-gradient(ellipse at 50% 30%, #3a2418 0%, transparent 70%);
}
.scn-agrippina-comparison .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #1a0e08 0%, #2a1a0e 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.8);
}
.scn-agrippina-comparison .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0c0604 0%, #060302 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-agrippina-comparison .agrippina {
  position: absolute; bottom: 20%; left: 10%; width: 70px; height: 100px;
  background: radial-gradient(ellipse at 50% 60%, #2a1a10 0%, #0c0604 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: agc-left 6s ease-in-out infinite;
}
.scn-agrippina-comparison .loom {
  position: absolute; bottom: 22%; left: 8%; width: 60px; height: 80px;
  background: linear-gradient(90deg, #4a3020 0%, transparent 50%, #4a3020 100%);
  border: 2px solid #2a1a10;
  border-radius: 2px;
  opacity: 0.6;
}
.scn-agrippina-comparison .father {
  position: absolute; bottom: 22%; right: 10%; width: 70px; height: 95px;
  background: radial-gradient(ellipse at 50% 60%, #3a2010 0%, #120a06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: agc-right 6s ease-in-out infinite 3s;
}
.scn-agrippina-comparison .compass-item {
  position: absolute; bottom: 28%; right: 16%; width: 30px; height: 30px;
  background: conic-gradient(from 0deg, #a09080 0deg 45deg, #7a6a5a 45deg 90deg, #a09080 90deg 135deg, #7a6a5a 135deg 180deg, #a09080 180deg 225deg, #7a6a5a 225deg 270deg, #a09080 270deg 315deg, #7a6a5a 315deg 360deg);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(0,0,0,0.7);
  animation: agc-compass 10s linear infinite;
}
.scn-agrippina-comparison .candle-left {
  position: absolute; bottom: 38%; left: 20%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #d0b080 0%, #a08060 50%, #705040 100%);
  border-radius: 3px;
  box-shadow: 0 0 20px 6px rgba(255,160,60,0.5), 0 0 40px 12px rgba(255,160,60,0.2);
  animation: agc-candle-l 4s ease-in-out infinite alternate;
}
.scn-agrippina-comparison .candle-right {
  position: absolute; bottom: 38%; right: 20%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #d0b080 0%, #a08060 50%, #705040 100%);
  border-radius: 3px;
  box-shadow: 0 0 20px 6px rgba(255,160,60,0.5), 0 0 40px 12px rgba(255,160,60,0.2);
  animation: agc-candle-r 4.5s ease-in-out infinite alternate;
}
@keyframes agc-left {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(-3deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(5px) rotate(0deg); }
}
@keyframes agc-right {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-5px) rotate(0deg); }
}
@keyframes agc-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes agc-candle-l {
  0% { transform: translateY(0); opacity: 0.85; box-shadow: 0 0 15px 5px rgba(255,160,60,0.4); }
  50% { transform: translateY(-3px); opacity: 1; box-shadow: 0 0 30px 10px rgba(255,180,80,0.6); }
  100% { transform: translateY(0); opacity: 0.9; box-shadow: 0 0 20px 6px rgba(255,160,60,0.5); }
}
@keyframes agc-candle-r {
  0% { transform: translateY(0); opacity: 0.9; box-shadow: 0 0 20px 6px rgba(255,160,60,0.5); }
  50% { transform: translateY(-3px); opacity: 0.85; box-shadow: 0 0 15px 5px rgba(255,160,60,0.4); }
  100% { transform: translateY(0); opacity: 1; box-shadow: 0 0 30px 10px rgba(255,180,80,0.6); }
}

/* scene 4 */
.scn-fathers-different-grief {
  background: linear-gradient(180deg, #0e0806 0%, #1a1008 50%, #2a1a0e 100%), radial-gradient(ellipse at 50% 50%, #3a2418 0%, transparent 70%);
}
.scn-fathers-different-grief .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #1a0e08 0%, #2a1a0e 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.7);
}
.scn-fathers-different-grief .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #0c0604 0%, #060302 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-fathers-different-grief .chair {
  position: absolute; bottom: 12%; left: 50%; width: 80px; height: 90px;
  background: linear-gradient(135deg, #3a2818 0%, #1a1008 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%) perspective(300px) rotateX(5deg);
  box-shadow: 0 10px 30px rgba(0,0,0,0.8);
}
.scn-fathers-different-grief .figure-seated {
  position: absolute; bottom: 16%; left: 50%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 60%, #2a1a10 0%, #0c0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: fdg-figure 8s ease-in-out infinite;
}
.scn-fathers-different-grief .book {
  position: absolute; bottom: 18%; left: 44%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #6a5040 0%, #4a3020 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: fdg-book 6s ease-in-out infinite;
}
.scn-fathers-different-grief .candle {
  position: absolute; bottom: 36%; left: 42%; width: 10px; height: 45px;
  background: linear-gradient(180deg, #d0b080 0%, #a08060 50%, #705040 100%);
  border-radius: 3px;
  box-shadow: 0 0 30px 10px rgba(255,160,60,0.6), 0 0 60px 20px rgba(255,160,60,0.3);
  animation: fdg-candle 4s ease-in-out infinite alternate;
}
.scn-fathers-different-grief .clock {
  position: absolute; bottom: 28%; right: 18%; width: 24px; height: 24px;
  background: radial-gradient(circle at 50% 50%, #4a3a2a 0%, #1a1008 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: fdg-clock 60s linear infinite;
}
.scn-fathers-different-grief .clock::before {
  content: "";
  position: absolute; top: 50%; left: 50%; width: 2px; height: 10px;
  background: #8a7050;
  transform-origin: bottom center;
  transform: translate(-50%, -100%) rotate(0deg);
  border-radius: 1px;
  animation: fdg-hand 60s linear infinite;
}
.scn-fathers-different-grief .shadow-pool {
  position: absolute; bottom: 8%; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 100%);
  animation: fdg-pool 6s ease-in-out infinite alternate;
}
@keyframes fdg-figure {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
}
@keyframes fdg-book {
  0%, 100% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-5px); }
}
@keyframes fdg-candle {
  0% { transform: translateY(0); opacity: 0.9; box-shadow: 0 0 20px 8px rgba(255,160,60,0.5); }
  50% { transform: translateY(-2px); opacity: 1; box-shadow: 0 0 40px 15px rgba(255,180,80,0.7); }
  100% { transform: translateY(0); opacity: 0.85; box-shadow: 0 0 15px 5px rgba(255,160,60,0.4); }
}
@keyframes fdg-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes fdg-hand {
  0% { transform: translate(-50%, -100%) rotate(0deg); }
  100% { transform: translate(-50%, -100%) rotate(360deg); }
}
@keyframes fdg-pool {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.1); }
  100% { opacity: 0.5; transform: scaleY(0.9); }
}

/* Scene 1: eugenius-warning — interior warning */
.scn-eugenius-warning { 
  background: 
    linear-gradient(180deg, #1a1210 0%, #2d1e1a 40%, #3a2824 70%, #1f1815 100%),
    radial-gradient(ellipse at 60% 40%, #3a2824 0%, transparent 70%);
}
.scn-eugenius-warning .bg-wall { 
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #1f1815 0%, #2d1e1a 100%); 
  animation: ew-wall 12s ease-in-out infinite alternate; 
}
.scn-eugenius-warning .candle { 
  position:absolute; bottom:28%; left:55%; width:12px; height:40px; 
  background: linear-gradient(180deg, #d4a373 0%, #99654a 100%); 
  border-radius: 2px 2px 4px 4px; 
  box-shadow: 0 0 6px #a0673e; 
  animation: ew-candle-flicker 2s ease-in-out infinite; 
}
.scn-eugenius-warning .candle-glow { 
  position:absolute; bottom:20%; left:55%; width:80px; height:80px; 
  background: radial-gradient(circle, #c88555 0%, transparent 70%); 
  transform: translate(-50%, -50%); 
  animation: ew-glow-pulse 4s ease-in-out infinite; 
}
.scn-eugenius-warning .table { 
  position:absolute; bottom:20%; left:30%; right:30%; height:8%; 
  background: linear-gradient(180deg, #4a3528 0%, #2a1a12 100%); 
  border-radius: 6px; box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
  animation: ew-table-breathe 10s ease-in-out infinite; 
}
.scn-eugenius-warning .figure-eugenius { 
  position:absolute; bottom:20%; left:42%; width:28px; height:70px; 
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  transform-origin: bottom center; 
  animation: ew-eugenius-turn 6s ease-in-out infinite; 
}
.scn-eugenius-warning .figure-yorick { 
  position:absolute; bottom:20%; left:58%; width:24px; height:65px; 
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  transform-origin: bottom center; 
  animation: ew-yorick-nod 5s ease-in-out infinite; 
}
.scn-eugenius-warning .shadow { 
  position:absolute; bottom:20%; left:0; right:0; height:15%; 
  background: linear-gradient(180deg, rgba(10,6,5,0.6) 0%, transparent 100%); 
  animation: ew-shadow-shift 15s ease-in-out infinite; 
}
@keyframes ew-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ew-candle-flicker { 0%,100% { transform: scaleY(1) } 30% { transform: scaleY(0.95) } 60% { transform: scaleY(1.02) } }
@keyframes ew-glow-pulse { 0%,100% { opacity:0.6; transform: translate(-50%, -50%) scale(1) } 50% { opacity:1; transform: translate(-50%, -50%) scale(1.1) } }
@keyframes ew-table-breathe { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(0.98) } }
@keyframes ew-eugenius-turn { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(4deg) translateX(2px) } }
@keyframes ew-yorick-nod { 0%,100% { transform: rotate(-1deg) } 30% { transform: rotate(3deg) } 70% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes ew-shadow-shift { 0%,100% { opacity:0.4 } 50% { opacity:0.7 } }

/* Scene 2: yorick-fall — vertical fall */
.scn-yorick-fall { 
  background: 
    linear-gradient(180deg, #12100a 0%, #1a1512 30%, #2d1e18 70%, #0f0c0a 100%),
    radial-gradient(ellipse at 50% 20%, #1a1512 0%, transparent 80%);
}
.scn-yorick-fall .bg-void { 
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #0d0a08 0%, #1a1410 100%); 
  animation: yf-void 25s ease-in-out infinite alternate; 
}
.scn-yorick-fall .light-shaft { 
  position:absolute; top:0; left:40%; width:20%; height:60%; 
  background: linear-gradient(180deg, rgba(180,140,100,0.15) 0%, transparent 100%); 
  clip-path: polygon(30% 0, 70% 0, 90% 100%, 10% 100%); 
  animation: yf-shift-light 14s ease-in-out infinite; 
}
.scn-yorick-fall .figure-falling { 
  position:absolute; top:20%; left:50%; width:24px; height:50px; 
  transform: translateX(-50%); 
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  animation: yf-tumble 3s ease-in-out infinite; 
}
.scn-yorick-fall .debris-1 { 
  position:absolute; top:35%; left:30%; width:14px; height:4px; 
  background: #4a3520; border-radius: 2px; 
  animation: yf-debris-left 5s ease-in-out infinite; 
}
.scn-yorick-fall .debris-2 { 
  position:absolute; top:50%; left:65%; width:10px; height:3px; 
  background: #4a3520; border-radius: 2px; 
  animation: yf-debris-right 6s ease-in-out infinite; 
}
.scn-yorick-fall .ground { 
  position:absolute; bottom:0; left:0; right:0; height:10%; 
  background: linear-gradient(180deg, #1a1410 0%, #0a0705 100%); 
  border-radius: 20% 20% 0 0 / 40% 40% 0 0; 
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.8); 
  animation: yf-ground-breathe 18s ease-in-out infinite; 
}
@keyframes yf-void { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.5 } }
@keyframes yf-shift-light { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(4px) scaleY(0.95) } }
@keyframes yf-tumble { 
  0% { transform: translateX(-50%) rotate(0deg) translateY(0) } 
  25% { transform: translateX(-50%) rotate(10deg) translateY(10px) } 
  50% { transform: translateX(-50%) rotate(-5deg) translateY(20px) } 
  75% { transform: translateX(-50%) rotate(8deg) translateY(10px) } 
  100% { transform: translateX(-50%) rotate(0deg) translateY(0) } 
}
@keyframes yf-debris-left { 
  0%,100% { transform: translateY(0) rotate(0deg); opacity:0.8 } 
  50% { transform: translateY(40px) rotate(30deg); opacity:0.3 } 
}
@keyframes yf-debris-right { 
  0%,100% { transform: translateY(0) rotate(0deg); opacity:0.7 } 
  50% { transform: translateY(60px) rotate(-20deg); opacity:0.2 } 
}
@keyframes yf-ground-breathe { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }

/* Scene 3: yorick-final-moments — deathbed */
.scn-yorick-final-moments { 
  background: 
    linear-gradient(180deg, #1f1210 0%, #2d1c18 40%, #3a2622 70%, #1a0e0c 100%),
    radial-gradient(ellipse at 50% 70%, #3a2622 0%, transparent 80%);
}
.scn-yorick-final-moments .bg-wall { 
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #1f1210 0%, #2d1c18 100%); 
  animation: yfm-wall 20s ease-in-out infinite; 
}
.scn-yorick-final-moments .curtain-left { 
  position:absolute; top:0; left:0; width:20%; height:100%; 
  background: linear-gradient(90deg, #2a1612 0%, #3a201c 100%); 
  border-right: 4px solid #1a0e0c; 
  animation: yfm-curtain-left 8s ease-in-out infinite alternate; 
}
.scn-yorick-final-moments .curtain-right { 
  position:absolute; top:0; right:0; width:20%; height:100%; 
  background: linear-gradient(270deg, #2a1612 0%, #3a201c 100%); 
  border-left: 4px solid #1a0e0c; 
  animation: yfm-curtain-right 8s ease-in-out infinite alternate; 
}
.scn-yorick-final-moments .bed { 
  position:absolute; bottom:15%; left:20%; right:20%; height:45%; 
  background: linear-gradient(180deg, #4a2a22 0%, #2a1612 100%); 
  border-radius: 30px 30px 0 0; 
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.7); 
  animation: yfm-bed 15s ease-in-out infinite; 
}
.scn-yorick-final-moments .figure-yorick { 
  position:absolute; bottom:25%; left:42%; width:30px; height:55px; 
  background: linear-gradient(180deg, #1a1210 0%, #0e0604 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: yfm-yorick-fade 6s ease-in-out infinite; 
}
.scn-yorick-final-moments .figure-eugenius { 
  position:absolute; bottom:30%; left:62%; width:28px; height:50px; 
  background: linear-gradient(180deg, #1a1210 0%, #0e0604 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  transform-origin: bottom center; 
  animation: yfm-eugenius-bow 10s ease-in-out infinite; 
}
.scn-yorick-final-moments .candle { 
  position:absolute; bottom:45%; left:28%; width:10px; height:35px; 
  background: linear-gradient(180deg, #b8855a 0%, #8a5a3a 100%); 
  border-radius: 2px; 
  box-shadow: 0 0 6px #a0673e; 
  animation: yfm-candle-flicker 2.5s ease-in-out infinite; 
}
.scn-yorick-final-moments .candle-glow { 
  position:absolute; bottom:35%; left:28%; width:100px; height:100px; 
  background: radial-gradient(circle, #b8855a 0%, transparent 70%); 
  transform: translate(-50%, -50%); 
  animation: yfm-glow-pulse 5s ease-in-out infinite; 
}
@keyframes yfm-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes yfm-curtain-left { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } }
@keyframes yfm-curtain-right { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } }
@keyframes yfm-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes yfm-yorick-fade { 0%,100% { opacity:0.7 } 50% { opacity:0.9 } }
@keyframes yfm-eugenius-bow { 0%,100% { transform: rotate(-2deg) } 40% { transform: rotate(5deg) } 80% { transform: rotate(-5deg) translateY(-2px) } }
@keyframes yfm-candle-flicker { 0%,100% { transform: scaleY(1) } 30% { transform: scaleY(0.9) } 70% { transform: scaleY(1.05) } }
@keyframes yfm-glow-pulse { 0%,100% { opacity:0.5; transform: translate(-50%, -50%) scale(1) } 50% { opacity:1; transform: translate(-50%, -50%) scale(1.15) } }

/* Scene 4: yorick-cervantick-tone — close-up of head and hand */
.scn-yorick-cervantick-tone { 
  background: 
    linear-gradient(180deg, #1e1410 0%, #2a1c18 40%, #3a2622 70%, #140c0a 100%),
    radial-gradient(ellipse at 40% 30%, #3a2622 0%, transparent 60%);
}
.scn-yorick-cervantick-tone .bg-close { 
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #1e1410 0%, #2a1c18 100%); 
  animation: yct-bg 18s ease-in-out infinite alternate; 
}
.scn-yorick-cervantick-tone .head { 
  position:absolute; top:10%; left:35%; width:30%; height:50%; 
  background: radial-gradient(circle at 50% 40%, #2a1c18 0%, #1a0e0a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6); 
  animation: yct-head-turn 8s ease-in-out infinite; 
}
.scn-yorick-cervantick-tone .hand { 
  position:absolute; top:35%; left:20%; width:20%; height:30%; 
  background: radial-gradient(circle at 40% 30%, #2a1c18 0%, #1a0e0a 100%); 
  border-radius: 40% 50% 30% 30% / 60% 50% 30% 30%; 
  transform-origin: 20% 80%; 
  animation: yct-hand-touch 6s ease-in-out infinite; 
}
.scn-yorick-cervantick-tone .collar { 
  position:absolute; top:52%; left:33%; width:34%; height:6%; 
  background: linear-gradient(180deg, #3a221c 0%, #2a1612 100%); 
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; 
  box-shadow: 0 2px 6px rgba(0,0,0,0.5); 
  animation: yct-collar 12s ease-in-out infinite; 
}
.scn-yorick-cervantick-tone .lamp { 
  position:absolute; top:5%; right:15%; width:15px; height:25px; 
  background: linear-gradient(180deg, #c88555 0%, #8a5a3a 100%); 
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; 
  box-shadow: 0 0 10px #a0673e; 
  animation: yct-lamp-flicker 3s ease-in-out infinite; 
}
.scn-yorick-cervantick-tone .lamp-glow { 
  position:absolute; top:-5%; right:10%; width:80px; height:80px; 
  background: radial-gradient(circle, #c88555 0%, transparent 70%); 
  transform: translate(-50%, -50%); 
  animation: yct-glow-pulse 5s ease-in-out infinite; 
}
@keyframes yct-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes yct-head-turn { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(5deg) translateX(2px) } }
@keyframes yct-hand-touch { 
  0%,100% { transform: rotate(0deg) translate(0,0) } 
  30% { transform: rotate(15deg) translate(4px, -2px) } 
  70% { transform: rotate(-10deg) translate(2px, 2px) } 
}
@keyframes yct-collar { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes yct-lamp-flicker { 0%,100% { transform: scaleY(1) } 30% { transform: scaleY(0.92) } 70% { transform: scaleY(1.05) } }
@keyframes yct-glow-pulse { 0%,100% { opacity:0.5; transform: translate(-50%, -50%) scale(1) } 50% { opacity:1; transform: translate(-50%, -50%) scale(1.2) } }

.scn-avignon-wind {
  background: linear-gradient(180deg, #6b6d6b 0%, #8a8b8a 50%, #6e706e 100%),
              radial-gradient(ellipse at 50% 100%, #5a5b5a 0%, transparent 70%);
}
.scn-avignon-wind .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7d7f7d 0%, transparent 100%);
  animation: aw-sky 10s ease-in-out infinite alternate;
}
.scn-avignon-wind .mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a4c4a 0%, #2e2f2e 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.3);
  animation: aw-mountains 15s ease-in-out infinite alternate;
}
.scn-avignon-wind .bridge {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(90deg, #6b3e2b 0%, #8c5a3e 50%, #6b3e2b 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: aw-bridge 8s ease-in-out infinite;
}
.scn-avignon-wind .mule {
  position: absolute; bottom: 30%; left: 45%; width: 32px; height: 24px;
  background: linear-gradient(180deg, #8c7a63 0%, #6b5c4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: aw-mule 3s ease-in-out infinite;
}
.scn-avignon-wind .rider {
  position: absolute; bottom: 36%; left: 47%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #3a3c3a 0%, #1e1f1e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: aw-rider 3s ease-in-out infinite alternate;
}
.scn-avignon-wind .walker {
  position: absolute; bottom: 24%; left: 15%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a2b2a 0%, #131413 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: aw-walker 4s ease-in-out infinite;
}
.scn-avignon-wind .gust {
  position: absolute; top: 20%; left: 0; width: 120px; height: 6px;
  background: linear-gradient(90deg, transparent, rgba(200,200,200,.3), transparent);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-avignon-wind .gust-a {
  animation: aw-gust-a 8s linear infinite;
  top: 25%;
}
.scn-avignon-wind .gust-b {
  animation: aw-gust-b 15s linear infinite;
  top: 40%;
}
.scn-avignon-wind .leaf {
  position: absolute; top: 30%; left: 0; width: 8px; height: 8px;
  background: #6b7034;
  border-radius: 0 50% 50% 0;
  filter: blur(1px);
  animation: aw-leaf 6s linear infinite;
}
.scn-avignon-wind .leaf-a { animation-delay: 0s; top: 35%; }

@keyframes aw-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes aw-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes aw-bridge { 0% { transform: translateX(0) scaleX(1) } 25% { transform: translateX(-2px) scaleX(1.02) } 75% { transform: translateX(2px) scaleX(.98) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes aw-mule { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(1px) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes aw-rider { 0% { transform: rotate(-3deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-4deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(-3deg) } }
@keyframes aw-walker { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(10px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(20px) translateY(0) rotate(-4deg) } 75% { transform: translateX(30px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(40px) translateY(0) rotate(-5deg) } }
@keyframes aw-gust-a { 0% { transform: translateX(-150px) } 100% { transform: translateX(110vw) } }
@keyframes aw-gust-b { 0% { transform: translateX(-100px) } 100% { transform: translateX(120vw) } }
@keyframes aw-leaf { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(40vw, -20px) rotate(180deg) } 100% { transform: translate(80vw, 10px) rotate(360deg) } }

.scn-languedoc-plain {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 50%, #d2b48c 100%),
              radial-gradient(ellipse at 50% 100%, #f4a460 0%, transparent 70%);
}
.scn-languedoc-plain .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #87CEEB 50%, transparent 100%);
  animation: lp-sky 12s ease-in-out infinite alternate;
}
.scn-languedoc-plain .plain {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d2b48c 0%, #c8a87c 50%, #b89470 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.15);
  animation: lp-plain 20s ease-in-out infinite alternate;
}
.scn-languedoc-plain .hill {
  position: absolute; bottom: 30%; left: 10%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #b89470 0%, #a0724e 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.2);
  animation: lp-hill 25s ease-in-out infinite alternate;
}
.scn-languedoc-plain .mule {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c8a87c 0%, #a0724e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lp-mule 4s ease-in-out infinite;
}
.scn-languedoc-plain .sun {
  position: absolute; top: 15%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff4b0 0%, #ffd700 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,.3);
  animation: lp-sun 20s ease-in-out infinite alternate;
}
.scn-languedoc-plain .path {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 8%;
  background: linear-gradient(90deg, transparent, #c0a060 50%, transparent);
  border-radius: 10%;
  filter: blur(3px);
  animation: lp-path 12s ease-in-out infinite;
}
.scn-languedoc-plain .bird {
  position: absolute; top: 12%; width: 12px; height: 6px;
  background: #2c2c2c;
  border-radius: 50% 50% 20% 20%;
  filter: blur(1px);
}
.scn-languedoc-plain .bird-a { left: 10%; animation: lp-bird-a 35s linear infinite; }
.scn-languedoc-plain .bird-b { left: 60%; animation: lp-bird-b 40s linear infinite; animation-delay: 10s; }

@keyframes lp-sky { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes lp-plain { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes lp-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes lp-mule { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-3px) rotate(1deg) } 60% { transform: translateY(2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lp-sun { 0% { transform: scale(1) } 50% { transform: scale(1.08) } 100% { transform: scale(.95) } }
@keyframes lp-path { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes lp-bird-a { 0% { transform: translateX(-20px) } 100% { transform: translateX(110vw) } }
@keyframes lp-bird-b { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

.scn-figs-and-eggs {
  background: linear-gradient(135deg, #f5deb3 0%, #deb887 50%, #d2b48c 100%),
              radial-gradient(ellipse at 50% 100%, #e8c88a 0%, transparent 70%);
}
.scn-figs-and-eggs .ground {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #e0c090 0%, #c8a87c 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.15);
  animation: fe-ground 10s ease-in-out infinite alternate;
}
.scn-figs-and-eggs .basket {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #c8a050 0%, #a0723a 50%, #7a5428 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
  animation: fe-basket 6s ease-in-out infinite;
}
.scn-figs-and-eggs .fig {
  position: absolute; bottom: 35%; width: 14px; height: 16px;
  background: radial-gradient(circle at 40% 30%, #8a3a5a 0%, #5a203a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.2);
  animation: fe-fig 4s ease-in-out infinite alternate;
}
.scn-figs-and-eggs .fig-1 { left: 42%; bottom: 38%; animation-delay: 0s; }
.scn-figs-and-eggs .fig-2 { left: 48%; bottom: 34%; animation-delay: .5s; }
.scn-figs-and-eggs .fig-3 { left: 38%; bottom: 32%; animation-delay: 1s; }
.scn-figs-and-eggs .egg {
  position: absolute; bottom: 32%; width: 18px; height: 22px;
  background: radial-gradient(circle at 40% 30%, #fdf5e6 0%, #e8d8c0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.1);
  animation: fe-egg 5s ease-in-out infinite alternate;
}
.scn-figs-and-eggs .egg-1 { left: 45%; bottom: 28%; animation-delay: 0s; }
.scn-figs-and-eggs .egg-2 { left: 52%; bottom: 30%; animation-delay: .8s; }
.scn-figs-and-eggs .egg-3 { left: 33%; bottom: 36%; animation-delay: 1.5s; }
.scn-figs-and-eggs .hand {
  position: absolute; bottom: 40%; left: 55%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #d4a373 0%, #b87c4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: right center;
  animation: fe-hand 4s ease-in-out infinite;
}
.scn-figs-and-eggs .hand-l { left: 30%; animation-direction: alternate-reverse; }

@keyframes fe-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(.99) } }
@keyframes fe-basket { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes fe-fig { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(1px) rotate(-2deg) } }
@keyframes fe-egg { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(8deg) } 100% { transform: translateY(2px) rotate(-4deg) } }
@keyframes fe-hand { 0% { transform: translateX(0) rotate(-10deg) } 50% { transform: translateX(5px) rotate(5deg) } 100% { transform: translateX(0) rotate(-10deg) } }

.scn-dance-with-nannette {
  background: linear-gradient(180deg, #2c1a3a 0%, #6a3a4a 30%, #c87050 60%, #e8a060 100%),
              radial-gradient(ellipse at 50% 100%, #f0c080 0%, transparent 70%);
}
.scn-dance-with-nannette .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a2a5a 0%, #c87050 80%, transparent 100%);
  animation: dn-sky 15s ease-in-out infinite alternate;
}
.scn-dance-with-nannette .road {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6040 0%, #6a4428 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
  animation: dn-road 20s ease-in-out infinite alternate;
}
.scn-dance-with-nannette .mule {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 28px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: dn-mule 4s ease-in-out infinite;
}
.scn-dance-with-nannette .figure {
  position: absolute; bottom: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-dance-with-nannette .dancer-1 { left: 45%; animation: dn-dance1 3s ease-in-out infinite; }
.scn-dance-with-nannette .dancer-2 { left: 55%; animation: dn-dance2 3s ease-in-out infinite; }
.scn-dance-with-nannette .dust {
  position: absolute; bottom: 22%; width: 8px; height: 8px;
  background: rgba(200,160,120,.3);
  border-radius: 50%;
  filter: blur(3px);
}
.scn-dance-with-nannette .dust-a { left: 42%; animation: dn-dust 4s ease-in-out infinite; }
.scn-dance-with-nannette .dust-b { left: 60%; animation: dn-dust 4s ease-in-out infinite; animation-delay: 1.5s; }
.scn-dance-with-nannette .glow {
  position: absolute; bottom: 30%; left: 48%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: dn-glow 5s ease-in-out infinite alternate;
}

@keyframes dn-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes dn-road { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes dn-mule { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(2px) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes dn-dance1 { 0% { transform: translateX(0) rotate(-10deg) } 25% { transform: translateX(8px) rotate(5deg) } 50% { transform: translateX(16px) rotate(-5deg) } 75% { transform: translateX(8px) rotate(10deg) } 100% { transform: translateX(0) rotate(-10deg) } }
@keyframes dn-dance2 { 0% { transform: translateX(0) rotate(10deg) } 25% { transform: translateX(-8px) rotate(-5deg) } 50% { transform: translateX(-16px) rotate(5deg) } 75% { transform: translateX(-8px) rotate(-10deg) } 100% { transform: translateX(0) rotate(10deg) } }
@keyframes dn-dust { 0% { transform: translateY(0) scale(1); opacity: .4 } 50% { transform: translateY(-20px) scale(2); opacity: 0 } 100% { transform: translateY(0) scale(1); opacity: .4 } }
@keyframes dn-glow { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .5 } }

/* chestnut-burns */
.scn-chestnut-burns {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 30%, #b08050 0%, transparent 60%);
}
.scn-chestnut-burns .bg-wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  opacity: 0.8;
  animation: cb1-wall 12s ease-in-out infinite alternate;
}
.scn-chestnut-burns .table {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: cb1-table 6s ease-in-out infinite;
}
.scn-chestnut-burns .napkin {
  position: absolute; bottom: 33%; left: 40%; width: 16%; height: 14%;
  background: radial-gradient(ellipse at 50% 60%, #d0b890 0%, #b09070 60%, #806040 100%);
  border-radius: 40% 60% 30% 70% / 60% 40% 60% 40%;
  transform: rotate(-5deg);
  animation: cb1-napkin 4s ease-in-out infinite alternate;
}
.scn-chestnut-burns .chestnut-hot {
  position: absolute; bottom: 35%; left: 46%; width: 6%; height: 8%;
  background: radial-gradient(circle, #c07030 0%, #804010 60%, #502000 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(192,112,48,0.5);
  animation: cb1-hot 3s ease-in-out infinite;
}
.scn-chestnut-burns .hand {
  position: absolute; bottom: 31%; left: 50%; width: 12%; height: 16%;
  background: radial-gradient(ellipse at 50% 60%, #c0a080 0%, #a08060 60%, #604020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cb1-hand 5s ease-in-out infinite;
}
.scn-chestnut-burns .chestnut-falling {
  position: absolute; top: 10%; left: 52%; width: 4%; height: 5%;
  background: radial-gradient(circle, #b06030 0%, #703010 60%, #301000 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(176,96,48,0.6);
  animation: cb1-fall 8s ease-in-out infinite;
}
.scn-chestnut-burns .glow {
  position: absolute; bottom: 30%; left: 45%; width: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,80,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: cb1-glow 4s ease-in-out infinite alternate;
}
@keyframes cb1-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes cb1-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cb1-napkin {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.05); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes cb1-hot {
  0% { transform: scale(1); box-shadow: 0 0 20px 8px rgba(192,112,48,0.5); }
  50% { transform: scale(1.1); box-shadow: 0 0 30px 12px rgba(192,112,48,0.7); }
  100% { transform: scale(1); box-shadow: 0 0 20px 8px rgba(192,112,48,0.5); }
}
@keyframes cb1-hand {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-15px) rotate(-10deg); }
  60% { transform: translateX(-10px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cb1-fall {
  0% { top: 10%; transform: rotate(0deg); opacity: 1; }
  50% { top: 60%; transform: rotate(180deg); opacity: 0.8; }
  100% { top: 10%; transform: rotate(360deg); opacity: 1; }
}
@keyframes cb1-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}

/* chestnut-consequences */
.scn-chestnut-consequences {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 40%, #c09050 0%, transparent 70%);
}
.scn-chestnut-consequences .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  animation: cb2-wall 10s ease-in-out infinite alternate;
}
.scn-chestnut-consequences .figure-back {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(5deg);
  animation: cb2-fig 6s ease-in-out infinite;
}
.scn-chestnut-consequences .chair {
  position: absolute; bottom: 10%; left: 32%; width: 36%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: cb2-chair 8s ease-in-out infinite;
}
.scn-chestnut-consequences .breeches {
  position: absolute; bottom: 30%; left: 44%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #807060 0%, #504030 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  clip-path: polygon(0% 0%, 100% 0%, 100% 70%, 60% 100%, 40% 100%, 0% 70%);
  animation: cb2-breech 7s ease-in-out infinite alternate;
}
.scn-chestnut-consequences .chestnut-entering {
  position: absolute; bottom: 38%; left: 49%; width: 5%; height: 6%;
  background: radial-gradient(circle, #b06030 0%, #703010 60%, #301000 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(176,96,48,0.6);
  animation: cb2-enter 4s ease-in-out infinite;
}
.scn-chestnut-consequences .glow {
  position: absolute; bottom: 35%; left: 45%; width: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,80,0.2) 0%, transparent 70%);
  pointer-events: none;
  animation: cb2-glow 4s ease-in-out infinite alternate;
}
.scn-chestnut-consequences .shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: cb2-shadow 8s ease-in-out infinite;
}
@keyframes cb2-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes cb2-fig {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(7deg) translateY(-3px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes cb2-chair {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cb2-breech {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}
@keyframes cb2-enter {
  0% { bottom: 60%; transform: rotate(0deg); }
  30% { bottom: 38%; transform: rotate(120deg); }
  70% { bottom: 38%; transform: rotate(180deg); }
  100% { bottom: 60%; transform: rotate(360deg); }
}
@keyframes cb2-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes cb2-shadow {
  0%,100% { opacity: 0.5; }
  50% { opacity: 0.8; }
}

/* yorick-blamed */
.scn-yorick-blamed {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #b08050 0%, transparent 70%);
}
.scn-yorick-blamed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  animation: cb3-floor 8s ease-in-out infinite alternate;
}
.scn-yorick-blamed .table {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: cb3-table 6s ease-in-out infinite;
}
.scn-yorick-blamed .yorick {
  position: absolute; bottom: 10%; left: 25%; width: 18%; height: 40%;
  background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: cb3-yorick 5s ease-in-out infinite;
}
.scn-yorick-blamed .hand-throwing {
  position: absolute; bottom: 28%; right: 35%; width: 16%; height: 20%;
  background: radial-gradient(ellipse at 50% 70%, #b09070 0%, #806040 60%, #402010 100%);
  border-radius: 60% 40% 40% 60% / 70% 60% 40% 30%;
  transform: rotate(-20deg);
  animation: cb3-throw 4s ease-in-out infinite alternate;
}
.scn-yorick-blamed .chestnut {
  position: absolute; bottom: 18%; left: 50%; width: 4%; height: 5%;
  background: radial-gradient(circle, #b06030 0%, #703010 60%, #301000 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(176,96,48,0.6);
  animation: cb3-chestnut 7s ease-in-out infinite;
}
.scn-yorick-blamed .accusers {
  position: absolute; bottom: 10%; right: 10%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: cb3-accuse 6s ease-in-out infinite alternate;
}
.scn-yorick-blamed .glow {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,80,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: cb3-glow 5s ease-in-out infinite alternate;
}
@keyframes cb3-floor {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes cb3-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cb3-yorick {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(10px) translateY(-5px) rotate(3deg); }
  50% { transform: translateX(15px) translateY(-8px) rotate(5deg); }
  75% { transform: translateX(5px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes cb3-throw {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(-20px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes cb3-chestnut {
  0% { bottom: 18%; transform: rotate(0deg); }
  30% { bottom: 40%; transform: rotate(180deg); }
  60% { bottom: 18%; transform: rotate(360deg); }
  100% { bottom: 18%; transform: rotate(360deg); }
}
@keyframes cb3-accuse {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.05); opacity: 0.9; }
  100% { transform: scaleX(1); opacity: 0.6; }
}
@keyframes cb3-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

/* general-conviction */
.scn-general-conviction {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a0a00 60%, #0a0500 100%),
    radial-gradient(ellipse at 30% 40%, #805030 0%, transparent 60%);
}
.scn-general-conviction .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: cb4-bg 12s ease-in-out infinite alternate;
}
.scn-general-conviction .yorick-silhouette {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 45%;
  background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: cb4-yorick 5s ease-in-out infinite;
}
.scn-general-conviction .group-left {
  position: absolute; bottom: 10%; left: 0; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: cb4-left 6s ease-in-out infinite alternate;
}
.scn-general-conviction .group-right {
  position: absolute; bottom: 10%; right: 0; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: cb4-right 6s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-general-conviction .spotlight {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,170,100,0.2) 0%, transparent 70%);
  pointer-events: none;
  animation: cb4-spot 4s ease-in-out infinite alternate;
}
.scn-general-conviction .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: cb4-shadow 7s ease-in-out infinite;
}
@keyframes cb4-bg {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes cb4-yorick {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(2deg); }
  50% { transform: translateY(-8px) rotate(-2deg); }
  75% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cb4-left {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(10px) scaleX(1.02); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes cb4-right {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-10px) scaleX(1.02); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes cb4-spot {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes cb4-shadow {
  0%,100% { opacity: 0.5; }
  50% { opacity: 0.8; }
}

/* jointure-secured – dim interior desk with signing hand */
.scn-jointure-secured {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1a1210 40%),
    radial-gradient(ellipse at 50% 30%, #3a2a20 0%, transparent 80%);
}
.scn-jointure-secured .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1f1a 0%, #1a1210 100%); animation: js-wall 8s ease-in-out infinite alternate; }
.scn-jointure-secured .desk { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 4% 4% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-jointure-secured .paper { position:absolute; bottom:25%; left:20%; width:60%; height:20%; background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%); border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: rotate(-3deg); animation: js-paper 6s ease-in-out infinite alternate; }
.scn-jointure-secured .hand { position:absolute; bottom:32%; left:45%; width:16%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); transform-origin: 50% 80%; animation: js-hand 4s ease-in-out infinite; }
.scn-jointure-secured .quill { position:absolute; bottom:40%; left:52%; width:4%; height:25%; background: linear-gradient(135deg, #a08060 0%, #604020 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform: rotate(-15deg); transform-origin: 50% 100%; animation: js-quill 4s ease-in-out infinite; }
.scn-jointure-secured .candle { position:absolute; bottom:20%; left:12%; width:3%; height:25%; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 20px 8px rgba(255,180,60,.4); animation: js-candle 3s ease-in-out infinite alternate; }
.scn-jointure-secured .inkwell { position:absolute; bottom:18%; left:30%; width:8%; height:10%; background: radial-gradient(circle at 50% 20%, #3a2a1a 0%, #1a1210 100%); border-radius: 50%; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); }
.scn-jointure-secured .glow { position:absolute; bottom:20%; left:12%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(255,180,60,.15) 0%, transparent 70%); pointer-events:none; animation: js-glow 3s ease-in-out infinite alternate; }
@keyframes js-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes js-paper { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes js-hand { 0% { transform: rotate(10deg) translateY(0) } 25% { transform: rotate(12deg) translateY(-2px) } 50% { transform: rotate(8deg) translateY(0) } 75% { transform: rotate(11deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes js-quill { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-18deg) } }
@keyframes js-candle { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.03) scaleX(.97) } 100% { transform: scaleY(.97) scaleX(1.02) } }
@keyframes js-glow { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }

/* fathers-payment-pain – money counting scene */
.scn-fathers-payment-pain {
  background: 
    linear-gradient(180deg, #2a2218 0%, #1a1410 50%),
    radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 80%);
}
.scn-fathers-payment-pain .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #2a2218 0%, #1a1410 100%); animation: fp-bg 10s ease-in-out infinite alternate; }
.scn-fathers-payment-pain .table { position:absolute; bottom:8%; left:2%; right:2%; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 6% 6% 0 0 / 12% 12% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.7); }
.scn-fathers-payment-pain .coins { position:absolute; width:6%; height:6%; background: radial-gradient(circle at 50% 40%, #d4b060 0%, #a08030 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.6); }
.scn-fathers-payment-pain .coin-1 { bottom:30%; left:35%; animation: fp-coin1 8s ease-in-out infinite; }
.scn-fathers-payment-pain .coin-2 { bottom:20%; left:45%; animation: fp-coin2 8s ease-in-out infinite 2s; }
.scn-fathers-payment-pain .hand-throw { position:absolute; bottom:28%; left:30%; width:18%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(20deg); transform-origin: 50% 80%; animation: fp-hand 3s ease-in-out infinite; }
.scn-fathers-payment-pain .chair { position:absolute; bottom:5%; right:10%; width:12%; height:40%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; }
.scn-fathers-payment-pain .candle-fp { position:absolute; bottom:18%; left:8%; width:3%; height:20%; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 16px 6px rgba(255,180,60,.5); animation: fp-candle 4s ease-in-out infinite alternate; }
.scn-fathers-payment-pain .shadow-fp { position:absolute; bottom:10%; left:25%; width:50%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%); }
@keyframes fp-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes fp-coin1 { 0% { transform: translateY(0) rotate(0deg); opacity:1 } 25% { transform: translateY(-15px) rotate(180deg); opacity:.8 } 50% { transform: translateY(-2px) rotate(360deg); opacity:1 } 75% { transform: translateY(-8px) rotate(200deg); opacity:.9 } 100% { transform: translateY(0) rotate(0deg); opacity:1 } }
@keyframes fp-coin2 { 0% { transform: translateY(0) rotate(0deg); opacity:1 } 30% { transform: translateY(-12px) rotate(150deg); opacity:.9 } 60% { transform: translateY(-1px) rotate(320deg); opacity:1 } 100% { transform: translateY(0) rotate(0deg); opacity:1 } }
@keyframes fp-hand { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(35deg) translateY(-8px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes fp-candle { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.04) scaleX(.96) } 100% { transform: scaleY(.98) scaleX(1.01) } }

/* family-nose-tradition – profile with prominent nose */
.scn-family-nose-tradition {
  background: 
    linear-gradient(90deg, #1a1410 0%, #2a1f18 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 60%, #2a1f18 0%, transparent 70%);
}
.scn-family-nose-tradition .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410 0%, #0e0a08 100%); animation: fn-bg 12s ease-in-out infinite alternate; }
.scn-family-nose-tradition .profile { position:absolute; bottom:5%; left:20%; width:25%; height:75%; background: linear-gradient(180deg, #2a1f18 0%, #1a1410 100%); border-radius: 60% 40% 50% 50% / 60% 50% 50% 40%; box-shadow: -10px 0 20px rgba(0,0,0,.6); }
.scn-family-nose-tradition .nose { position:absolute; bottom:35%; left:32%; width:15%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1f18 100%); border-radius: 80% 20% 50% 40% / 90% 20% 50% 30%; transform: rotate(5deg); animation: fn-nose 5s ease-in-out infinite; }
.scn-family-nose-tradition .eye { position:absolute; bottom:55%; left:27%; width:4%; height:6%; background: radial-gradient(circle, #c8a060 0%, #a08040 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,160,96,.3); }
.scn-family-nose-tradition .forehead { position:absolute; bottom:65%; left:22%; width:20%; height:18%; background: linear-gradient(180deg, #2a1f18 0%, #1a1410 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; }
.scn-family-nose-tradition .chin { position:absolute; bottom:5%; left:22%; width:16%; height:12%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%; }
.scn-family-nose-tradition .tree-line { position:absolute; top:10%; left:50%; width:2%; height:70%; background: linear-gradient(180deg, #4a3a2a 0%, transparent 100%); border-radius: 50%; box-shadow: -10px 20px 0 2px #4a3a2a, 10px 40px 0 2px #4a3a2a; animation: fn-tree 20s linear infinite; }
.scn-family-nose-tradition .bubble { position:absolute; top:15%; right:15%; width:8%; height:8%; background: radial-gradient(circle, rgba(200,160,96,.1) 0%, transparent 60%); border-radius: 50%; animation: fn-bubble 15s ease-in-out infinite alternate; }
@keyframes fn-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes fn-nose { 0% { transform: rotate(5deg) scaleX(1) } 50% { transform: rotate(8deg) scaleX(1.05) } 100% { transform: rotate(4deg) scaleX(.98) } }
@keyframes fn-tree { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.4 } }
@keyframes fn-bubble { 0% { transform: translateY(0) scale(1); opacity:.3 } 50% { transform: translateY(-10px) scale(1.2); opacity:.6 } 100% { transform: translateY(5px) scale(.9); opacity:.2 } }

/* nose-fortunes – card table with ace of clubs */
.scn-nose-fortunes {
  background: 
    linear-gradient(180deg, #2a1f18 0%, #1a1410 40%),
    radial-gradient(ellipse at 50% 15%, #3a2a1a 0%, transparent 70%);
}
.scn-nose-fortunes .bg-tables { position:absolute; inset:0; background: linear-gradient(135deg, #2a1f18 0%, #1a1410 100%); animation: nf-bg 9s ease-in-out infinite alternate; }
.scn-nose-fortunes .table-nf { position:absolute; bottom:5%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 8% 8% 0 0 / 15% 15% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.7); }
.scn-nose-fortunes .card { position:absolute; bottom:25%; left:30%; width:15%; height:22%; background: linear-gradient(135deg, #e0d4b0 0%, #c8b890 100%); border-radius: 6%; box-shadow: 0 6px 12px rgba(0,0,0,.5); transform: rotate(-5deg); animation: nf-card 7s ease-in-out infinite; }
.scn-nose-fortunes .club { position:absolute; bottom:30%; left:32%; width:8%; height:10%; background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(50% 0%, 70% 30%, 60% 60%, 50% 80%, 40% 60%, 30% 30%); animation: nf-club 9s ease-in-out infinite; }
.scn-nose-fortunes .nose-nf { position:absolute; bottom:22%; left:15%; width:10%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1f18 100%); border-radius: 80% 20% 50% 40% / 90% 20% 50% 30%; transform: rotate(15deg); animation: nf-nose 5s ease-in-out infinite; }
.scn-nose-fortunes .coin-nf { position:absolute; bottom:18%; left:50%; width:5%; height:5%; background: radial-gradient(circle at 50% 40%, #d4b060 0%, #a08030 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.6); animation: nf-coin 6s ease-in-out infinite alternate; }
.scn-nose-fortunes .candle-nf { position:absolute; bottom:15%; left:70%; width:2.5%; height:18%; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 14px 5px rgba(255,180,60,.4); animation: nf-candle 3s ease-in-out infinite alternate; }
.scn-nose-fortunes .glow-nf { position:absolute; bottom:15%; left:65%; width:20%; height:35%; background: radial-gradient(ellipse at 50% 100%, rgba(255,180,60,.1) 0%, transparent 80%); pointer-events:none; animation: nf-glow 3s ease-in-out infinite alternate; }
@keyframes nf-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes nf-card { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-7deg) translateY(0) } }
@keyframes nf-club { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(.9) } }
@keyframes nf-nose { 0% { transform: rotate(15deg) scaleX(1) } 50% { transform: rotate(18deg) scaleX(1.04) } 100% { transform: rotate(12deg) scaleX(.96) } }
@keyframes nf-coin { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-10px) rotate(180deg) } 100% { transform: translateY(0) rotate(360deg) } }
@keyframes nf-candle { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.03) scaleX(.97) } 100% { transform: scaleY(.97) scaleX(1.02) } }
@keyframes nf-glow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

/* == Scene: married-man-mystery == dim interior, funny, warm candlelight == */
.scn-married-man-mystery {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0e05 30%, #0f0702 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-married-man-mystery .wall {
  position: absolute; inset: 10% 5% 15% 5%; 
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 6px; box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: mmm-wall 15s ease-in-out infinite alternate;
}
.scn-married-man-mystery .shelf {
  position: absolute; bottom: 40%; left: 28%; width: 44%; height: 2%;
  background: #4a3a2a; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-married-man-mystery .pot {
  position: absolute; bottom: 42%; left: 38%; width: 10%; height: 18%;
  background: radial-gradient(ellipse at 50% 30%, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: mmm-pot 6s ease-in-out infinite;
}
.scn-married-man-mystery .figure {
  position: absolute; bottom: 5%; left: 22%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0603 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mmm-figure 4s ease-in-out infinite alternate;
}
.scn-married-man-mystery .candle {
  position: absolute; bottom: 45%; left: 50%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #c08040 0%, #a06020 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 0 25px 8px #d09050, 0 0 50px 15px rgba(200,140,70,.3);
  animation: mmm-candle 3s ease-in-out infinite alternate;
}
.scn-married-man-mystery .shadow {
  position: absolute; bottom: 5%; left: 30%; width: 20%; height: 30%;
  background: rgba(0,0,0,.3); filter: blur(8px);
  border-radius: 50% 50% 40% 40%;
  animation: mmm-shadow 8s ease-in-out infinite alternate;
}
@keyframes mmm-wall {
  0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; }
}
@keyframes mmm-pot {
  0% { transform: scaleY(1) rotate(0deg); } 25% { transform: scaleY(0.95) rotate(2deg); } 50% { transform: scaleY(1.05) rotate(-1deg); } 75% { transform: scaleY(0.9) rotate(3deg); } 100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes mmm-figure {
  0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(5deg); } 100% { transform: translateX(2px) rotate(-3deg); }
}
@keyframes mmm-candle {
  0% { opacity: .6; box-shadow: 0 0 15px 5px #d09050, 0 0 30px 10px rgba(200,140,70,.2); }
  50% { opacity: 1; box-shadow: 0 0 35px 12px #e0a060, 0 0 60px 20px rgba(220,160,96,.4); }
  100% { opacity: .7; box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(200,140,70,.3); }
}
@keyframes mmm-shadow {
  0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(0.9); } 100% { transform: translateX(-3px) scale(1.1); }
}

/* == Scene: scruples-remain == dim interior, funny, warm candlelight == */
.scn-scruples-remain {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0e05 40%, #0f0702 100%),
    radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-scruples-remain .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 5%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.4);
  animation: sr-table 20s ease-in-out infinite alternate;
}
.scn-scruples-remain .bottle {
  position: absolute; bottom: 25%; width: 6%; height: 22%;
  background: radial-gradient(ellipse at 50% 30%, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: sr-bottle 8s ease-in-out infinite;
}
.scn-scruples-remain .bottle-1 { left: 30%; animation-delay: 0s; }
.scn-scruples-remain .bottle-2 { left: 50%; animation-delay: 2s; }
.scn-scruples-remain .hat {
  position: absolute; bottom: 25%; left: 65%; width: 14%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-10deg);
  animation: sr-hat 6s ease-in-out infinite alternate;
}
.scn-scruples-remain .arm {
  position: absolute; bottom: 25%; left: 20%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0603 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: sr-arm 4s ease-in-out infinite alternate;
}
.scn-scruples-remain .shadow {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 30%;
  background: rgba(0,0,0,.2); filter: blur(10px);
  border-radius: 30% 30% 0 0;
  animation: sr-shadow 12s ease-in-out infinite alternate;
}
@keyframes sr-table {
  0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; }
}
@keyframes sr-bottle {
  0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(4deg) scaleY(0.95); } 50% { transform: rotate(-3deg) scaleY(1.05); } 75% { transform: rotate(2deg) scaleY(0.9); } 100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes sr-hat {
  0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(3px); } 100% { transform: rotate(-12deg) translateX(-2px); }
}
@keyframes sr-arm {
  0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(10deg) translateX(3px); } 100% { transform: rotate(-5deg) translateX(-1px); }
}
@keyframes sr-shadow {
  0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .2; }
}

/* == Scene: difficulties-felt == dim interior, warm, sickroom == */
.scn-difficulties-felt {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0e05 30%, #0f0702 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-difficulties-felt .curtain {
  position: absolute; inset: 0 0 0 0; 
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0e05 100%);
  border-radius: 8px; box-shadow: inset 0 0 40px rgba(0,0,0,.7);
  animation: df-curtain 20s ease-in-out infinite alternate;
}
.scn-difficulties-felt .pillow {
  position: absolute; top: 28%; left: 20%; width: 40%; height: 12%;
  background: radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: df-pillow 12s ease-in-out infinite;
}
.scn-difficulties-felt .head {
  position: absolute; top: 32%; left: 32%; width: 16%; height: 12%;
  background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  transform-origin: center bottom;
  animation: df-head 6s ease-in-out infinite alternate;
}
.scn-difficulties-felt .blanket {
  position: absolute; top: 44%; left: 15%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
  animation: df-blanket 18s ease-in-out infinite alternate;
}
.scn-difficulties-felt .basin {
  position: absolute; top: 55%; left: 55%; width: 12%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #5e1a1d 0%, #3a0a0c 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: df-basin 8s ease-in-out infinite;
}
.scn-difficulties-felt .candle {
  position: absolute; top: 15%; left: 55%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #c08040 0%, #a06020 100%);
  border-radius: 2px; box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(200,140,70,.3);
  animation: df-candle 3s ease-in-out infinite alternate;
}
@keyframes df-curtain {
  0% { opacity: .8; } 50% { opacity: .9; } 100% { opacity: .7; }
}
@keyframes df-pillow {
  0% { transform: scaleY(1); } 50% { transform: scaleY(0.95) scaleX(1.02); } 100% { transform: scaleY(1); }
}
@keyframes df-head {
  0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); }
}
@keyframes df-blanket {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes df-basin {
  0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; }
}
@keyframes df-candle {
  0% { opacity: .6; box-shadow: 0 0 15px 5px #d09050, 0 0 30px 10px rgba(200,140,70,.2); }
  50% { opacity: 1; box-shadow: 0 0 30px 10px #e0a060, 0 0 50px 16px rgba(220,160,96,.4); }
  100% { opacity: .7; box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(200,140,70,.3); }
}

/* == Scene: journey-not-so-bad == dim interior, warm, travel / valley view == */
.scn-journey-not-so-bad {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0e05 30%, #0f0702 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-journey-not-so-bad .wall {
  position: absolute; inset: 5% 5% 10% 5%; 
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 6px; box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: jnb-wall 15s ease-in-out infinite alternate;
}
.scn-journey-not-so-bad .window {
  position: absolute; top: 15%; left: 20%; width: 60%; height: 50%;
  background: #0a0a1a; border-radius: 4px; border: 4px solid #4a3a2a;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  overflow: hidden;
  animation: jnb-window 30s ease-in-out infinite;
}
.scn-journey-not-so-bad .landscape {
  position: absolute; top: 15%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #2a3a4a 0%, #3a5a6a 40%, #1a2a3a 100%);
  border-radius: 2px;
  animation: jnb-landscape 40s ease-in-out infinite alternate;
}
.scn-journey-not-so-bad .table {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.4);
  animation: jnb-table 20s ease-in-out infinite alternate;
}
.scn-journey-not-so-bad .candle {
  position: absolute; bottom: 16%; left: 40%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #c08040 0%, #a06020 100%);
  border-radius: 2px; box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(200,140,70,.3);
  animation: jnb-candle 3s ease-in-out infinite alternate;
}
.scn-journey-not-so-bad .figure {
  position: absolute; bottom: 10%; left: 30%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0603 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jnb-figure 6s ease-in-out infinite alternate;
}
@keyframes jnb-wall {
  0% { opacity: .8; } 50% { opacity: .9; } 100% { opacity: .7; }
}
@keyframes jnb-window {
  0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; }
}
@keyframes jnb-landscape {
  0% { opacity: .4; transform: scale(1); } 50% { opacity: .6; transform: scale(0.98); } 100% { opacity: .3; transform: scale(1.02); }
}
@keyframes jnb-table {
  0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; }
}
@keyframes jnb-candle {
  0% { opacity: .6; box-shadow: 0 0 15px 5px #d09050, 0 0 30px 10px rgba(200,140,70,.2); }
  50% { opacity: 1; box-shadow: 0 0 30px 10px #e0a060, 0 0 50px 16px rgba(220,160,96,.4); }
  100% { opacity: .7; box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(200,140,70,.3); }
}
@keyframes jnb-figure {
  0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(-2px) rotate(-2deg); }
}

/* ----- english-climate (ec) ----- */
.scn-english-climate { background:
  linear-gradient(180deg, #2b1f14 0%, #1f1410 50%, #140a08 100%),
  radial-gradient(ellipse at 50% 80%, #3a2818 0%, transparent 70%);
}
.scn-english-climate .wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(90deg, #3c2a1e, #2e1f15); animation: ec-wall 20s ease-in-out infinite; }
.scn-english-climate .table { position:absolute; bottom:8%; left:10%; width:80%; height:30%; background:linear-gradient(180deg, #5a3a28, #3a2418); border-radius:4% 4% 0 0; box-shadow:0 -10px 30px rgba(0,0,0,.4); }
.scn-english-climate .map-roll { position:absolute; bottom:28%; left:25%; width:40%; height:14%; background:linear-gradient(180deg, #c8a870, #a08050); border-radius:50%/30%; transform:rotate(-8deg); animation: ec-map 16s ease-in-out infinite alternate; }
.scn-english-climate .candle-base { position:absolute; bottom:38%; left:60%; width:12px; height:40px; background:linear-gradient(180deg, #d4b080, #a08050); border-radius:20% 20% 10% 10%; }
.scn-english-climate .flame { position:absolute; bottom:55%; left:60.5%; width:6px; height:18px; background:radial-gradient(ellipse, #ffc070 0%, #ff8030 50%, transparent 100%); border-radius:50%; box-shadow:0 0 20px 8px #ff8030, 0 0 40px 15px rgba(255,128,48,.3); animation: ec-flame 1.5s ease-in-out infinite alternate; }
.scn-english-climate .hand { position:absolute; bottom:20%; left:38%; width:30px; height:40px; background:radial-gradient(ellipse at 50% 30%, #6a4a3a 0%, #4a3028 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(25deg); animation: ec-hand 6s ease-in-out infinite; }
.scn-english-climate .glow-soft { position:absolute; bottom:30%; left:30%; width:60%; height:50%; background:radial-gradient(ellipse at 60% 60%, rgba(255,160,60,.12) 0%, transparent 70%); pointer-events:none; }
@keyframes ec-wall { 0% { opacity:.8 } 100% { opacity:1 } }
@keyframes ec-map { 0% { transform:rotate(-8deg) scale(1) } 50% { transform:rotate(-6deg) scale(1.02) } 100% { transform:rotate(-10deg) scale(1) } }
@keyframes ec-flame { 0% { transform:scaleY(1) scaleX(.8); opacity:.9 } 50% { transform:scaleY(1.15) scaleX(1); opacity:1 } 100% { transform:scaleY(.95) scaleX(.85); opacity:.85 } }
@keyframes ec-hand { 0% { transform:translateY(0) rotate(22deg) } 50% { transform:translateY(-4px) rotate(28deg) } 100% { transform:translateY(0) rotate(22deg) } }

/* ----- wit-and-judgment-balance (wj) ----- */
.scn-wit-and-judgment-balance { background:
  linear-gradient(180deg, #2a1e14 0%, #1a100a 50%, #0f0806 100%),
  radial-gradient(ellipse at 50% 60%, #3a2818 0%, transparent 70%);
}
.scn-wit-and-judgment-balance .depth-bg { position:absolute; inset:0; background:linear-gradient(135deg, #1e140e, #140c08); animation: wj-bg 24s ease-in-out infinite alternate; }
.scn-wit-and-judgment-balance .scale-base { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:20px; height:50px; background:linear-gradient(180deg, #6a4a3a, #3a2818); border-radius:10% 10% 20% 20%; }
.scn-wit-and-judgment-balance .scale-beam { position:absolute; bottom:55%; left:25%; width:50%; height:8px; background:linear-gradient(90deg, #8a6a5a, #5a3a2a); border-radius:50%; transform:rotate(5deg); animation: wj-beam 10s ease-in-out infinite alternate; }
.scn-wit-and-judgment-balance .pan-left { position:absolute; bottom:40%; left:20%; width:60px; height:20px; background:linear-gradient(180deg, #8a6a5a, #5a3a2a); border-radius:0 0 40% 40%; transform:rotate(-2deg); animation: wj-pan-l 8s ease-in-out infinite; }
.scn-wit-and-judgment-balance .pan-right { position:absolute; bottom:40%; right:20%; width:60px; height:20px; background:linear-gradient(180deg, #8a6a5a, #5a3a2a); border-radius:0 0 40% 40%; transform:rotate(2deg); animation: wj-pan-r 8s ease-in-out infinite 1s; }
.scn-wit-and-judgment-balance .wit-flame { position:absolute; bottom:60%; left:28%; width:10px; height:24px; background:radial-gradient(ellipse, #ffb060 0%, #ff8030 50%, transparent 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(255,128,48,.4); animation: wj-flame 2s ease-in-out infinite alternate; }
.scn-wit-and-judgment-balance .judgment-weight { position:absolute; bottom:48%; right:34%; width:18px; height:22px; background:linear-gradient(180deg, #4a3a2a, #2a1a10); border-radius:20%; box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-wit-and-judgment-balance .glow-warm { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 70%, rgba(255,160,40,.08) 0%, transparent 60%); pointer-events:none; }
@keyframes wj-bg { 0% { opacity:.7 } 100% { opacity:1 } }
@keyframes wj-beam { 0% { transform:rotate(3deg) } 50% { transform:rotate(-5deg) } 100% { transform:rotate(6deg) } }
@keyframes wj-pan-l { 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(-5deg) translateY(-3px) } 100% { transform:rotate(2deg) translateY(0) } }
@keyframes wj-pan-r { 0% { transform:rotate(2deg) translateY(0) } 50% { transform:rotate(6deg) translateY(2px) } 100% { transform:rotate(-2deg) translateY(0) } }
@keyframes wj-flame { 0% { transform:scaleY(1) scaleX(.9); opacity:.8 } 50% { transform:scaleY(1.2) scaleX(1.1); opacity:1 } 100% { transform:scaleY(.8) scaleX(.8); opacity:.7 } }

/* ----- preface-conclusion (pc) ----- */
.scn-preface-conclusion { background:
  linear-gradient(180deg, #1a1412 0%, #140a08 40%, #0c0604 100%),
  radial-gradient(ellipse at 50% 20%, #2a1e14 0%, transparent 60%);
}
.scn-preface-conclusion .night-room { position:absolute; inset:0; background:linear-gradient(135deg, #1e1410, #120c08); }
.scn-preface-conclusion .window-frame { position:absolute; top:5%; left:20%; width:60%; height:70%; border:12px solid #3a2a1e; border-radius:4%; box-shadow:inset 0 0 40px rgba(0,0,0,.6); background:linear-gradient(180deg, #0a0806, #140c0a); animation: pc-window 18s ease-in-out infinite; }
.scn-preface-conclusion .night-sky { position:absolute; top:7%; left:22%; width:56%; height:66%; background:linear-gradient(180deg, #1a1820 0%, #0a080e 100%); border-radius:2%; animation: pc-sky 30s ease-in-out infinite alternate; }
.scn-preface-conclusion .moon-crescent { position:absolute; top:15%; left:40%; width:40px; height:40px; background:radial-gradient(circle at 40% 40%, #e8d0a0 0%, #d0b080 80%, transparent 100%); border-radius:50%; box-shadow:0 0 40px 15px rgba(200,160,80,.3); animation: pc-moon 12s ease-in-out infinite alternate; }
.scn-preface-conclusion .star-a { position:absolute; top:12%; left:30%; width:4px; height:4px; background:#e0d0b0; border-radius:50%; box-shadow:0 0 6px 2px rgba(224,208,176,.4); animation: pc-star-a 4s ease-in-out infinite; }
.scn-preface-conclusion .star-b { position:absolute; top:50%; left:50%; width:3px; height:3px; background:#e0d0b0; border-radius:50%; animation: pc-star-b 5s ease-in-out infinite 1s; }
.scn-preface-conclusion .star-c { position:absolute; top:30%; right:35%; width:5px; height:5px; background:#c8b890; border-radius:50%; animation: pc-star-c 6s ease-in-out infinite 2s; }
.scn-preface-conclusion .astrolabe { position:absolute; bottom:12%; left:45%; width:80px; height:80px; border:4px solid #5a3a2a; border-radius:50%; background:radial-gradient(circle, #2a1a10 0%, #1a0e08 100%); transform:rotate(15deg); animation: pc-astro 20s linear infinite; }
.scn-preface-conclusion .table-lamp { position:absolute; bottom:8%; left:60%; width:20px; height:40px; background:linear-gradient(180deg, #6a4a3a, #3a2818); border-radius:20% 20% 10% 10%; box-shadow:0 -20px 30px rgba(255,160,40,.15); }
@keyframes pc-window { 0% { opacity:.9 } 100% { opacity:1 } }
@keyframes pc-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes pc-moon { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-4px) scale(1.05) } 100% { transform:translateY(2px) scale(.98) } }
@keyframes pc-star-a { 0% { opacity:.6; transform:scale(1) } 50% { opacity:1; transform:scale(1.5) } 100% { opacity:.6; transform:scale(1) } }
@keyframes pc-star-b { 0% { opacity:.5; transform:scale(1) } 50% { opacity:1; transform:scale(1.3) } 100% { opacity:.5; transform:scale(1) } }
@keyframes pc-star-c { 0% { opacity:.4; transform:scale(1) } 50% { opacity:1; transform:scale(1.6) } 100% { opacity:.4; transform:scale(1) } }
@keyframes pc-astro { 0% { transform:rotate(15deg) } 100% { transform:rotate(375deg) } }

/* ----- chaos-without-judgment (cwj) ----- */
.scn-chaos-without-judgment { background:
  linear-gradient(180deg, #2a1e14 0%, #1a120c 40%, #0a0604 100%),
  radial-gradient(ellipse at 50% 50%, #3a2818 0%, transparent 60%);
}
.scn-chaos-without-judgment .chaos-bg { position:absolute; inset:0; background:linear-gradient(135deg, #1e1410, #140c08); }
.scn-chaos-without-judgment .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #3a2a1e, #1a100a); border-radius:50% 50% 0 0 / 80% 80% 0 0; }
.scn-chaos-without-judgment .sink { position:absolute; bottom:25%; left:10%; width:50px; height:30px; background:radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, #2a1a10 100%); border-radius:80% 80% 30% 30% / 100% 100% 30% 30%; animation: cwj-sink 6s ease-in-out infinite; }
.scn-chaos-without-judgment .kennel { position:absolute; bottom:10%; right:15%; width:60px; height:40px; background:linear-gradient(180deg, #5a3a28, #3a2418); border-radius:0 0 20% 20%; clip-path:polygon(0% 100%, 0% 40%, 50% 0%, 100% 40%, 100% 100%); animation: cwj-kennel 10s ease-in-out infinite alternate; }
.scn-chaos-without-judgment .figure { position:absolute; bottom:40%; background:linear-gradient(180deg, #1a1410, #0c0806); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; }
.scn-chaos-without-judgment .fig-a { left:5%; width:28px; height:50px; transform:rotate(-25deg) translateY(0); animation: cwj-fig-a 2.5s ease-in-out infinite; }
.scn-chaos-without-judgment .fig-b { left:25%; width:30px; height:55px; transform:rotate(35deg) translateX(10px); animation: cwj-fig-b 3s ease-in-out infinite 0.5s; }
.scn-chaos-without-judgment .fig-c { left:50%; width:26px; height:45px; transform:rotate(-15deg) translateX(-20px); animation: cwj-fig-c 2.8s ease-in-out infinite 1s; }
.scn-chaos-without-judgment .goose { position:absolute; bottom:55%; background: linear-gradient(180deg, #3a2a1e, #1a100a); border-radius:50% 50% 20% 20%; }
.scn-chaos-without-judgment .goose-a { left:70%; width:20px; height:15px; transform:rotate(10deg); animation: cwj-goose-a 4s ease-in-out infinite; }
.scn-chaos-without-judgment .goose-b { left:80%; width:18px; height:13px; transform:rotate(-20deg); animation: cwj-goose-b 4.2s ease-in-out infinite 0.8s; }
@keyframes cwj-sink { 0%,100% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-5px) rotate(3deg) } }
@keyframes cwj-kennel { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.1) scaleX(.9) } 100% { transform:scaleY(1) } }
@keyframes cwj-fig-a { 0% { transform:rotate(-25deg) translateY(0) } 30% { transform:rotate(-40deg) translateY(-15px) } 60% { transform:rotate(10deg) translateY(-5px) } 100% { transform:rotate(-25deg) translateY(0) } }
@keyframes cwj-fig-b { 0% { transform:rotate(35deg) translateX(10px) } 40% { transform:rotate(50deg) translateX(-5px) translateY(-10px) } 70% { transform:rotate(-10deg) translateX(15px) } 100% { transform:rotate(35deg) translateX(10px) } }
@keyframes cwj-fig-c { 0% { transform:rotate(-15deg) translateX(-20px) } 50% { transform:rotate(15deg) translateX(-5px) translateY(-12px) } 100% { transform:rotate(-15deg) translateX(-20px) } }
@keyframes cwj-goose-a { 0% { transform:translateX(0) rotate(10deg) } 25% { transform:translateX(-20px) rotate(-5deg) } 50% { transform:translateX(10px) rotate(20deg) } 75% { transform:translateX(-5px) rotate(0deg) } 100% { transform:translateX(0) rotate(10deg) } }
@keyframes cwj-goose-b { 0% { transform:translateX(0) rotate(-20deg) } 30% { transform:translateX(-15px) rotate(10deg) } 60% { transform:translateX(5px) rotate(-30deg) } 100% { transform:translateX(0) rotate(-20deg) } }

/* ==============================
   Scene: hat-eloquence (warm interior)
   ============================== */
.scn-hat-eloquence {
  background:
    linear-gradient(180deg, #3a2518 0%, #2a1a10 40%, #1a0e08 100%),
    radial-gradient(ellipse at 70% 30%, #c86a30 0%, transparent 60%);
}
.scn-hat-eloquence .wall-left {
  position: absolute;
  inset: 0 40% 30% 0;
  background: linear-gradient(180deg, #4a3525 0%, #2a1a10 100%);
  animation: he-wall 12s ease-in-out infinite alternate;
}
.scn-hat-eloquence .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: he-floor 8s ease-in-out infinite;
}
.scn-hat-eloquence .hat-brim {
  position: absolute;
  bottom: 18%; left: 50%;
  width: 120px; height: 20px;
  transform: translateX(-50%) rotate(-5deg);
  background: radial-gradient(ellipse at 50% 50%, #6a4a30 0%, #3a2210 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: he-hat-brim 6s ease-in-out infinite;
}
.scn-hat-eloquence .hat-crown {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 80px; height: 50px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(180deg, #7a5a38 0%, #4a2a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: he-hat-crown 6s ease-in-out infinite;
}
.scn-hat-eloquence .hat-shadow {
  position: absolute;
  bottom: 16%; left: 48%;
  width: 130px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  transform: rotate(-5deg);
  border-radius: 50%;
  filter: blur(4px);
  animation: he-shadow 6s ease-in-out infinite;
}
.scn-hat-eloquence .firelight {
  position: absolute;
  top: 10%; right: 5%;
  width: 200px; height: 200px;
  background: radial-gradient(circle at 50% 50%, rgba(200,100,40,0.3) 0%, transparent 70%);
  animation: he-firelight 4s ease-in-out infinite alternate;
}
.scn-hat-eloquence .candle {
  position: absolute;
  bottom: 30%; left: 20%;
  width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.3);
  animation: he-candle 5s ease-in-out infinite;
}
@keyframes he-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes he-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes he-hat-brim {
  0% { transform: translateX(-50%) rotate(-5deg) scaleX(1); }
  50% { transform: translateX(-50%) rotate(-2deg) scaleX(1.02); }
  100% { transform: translateX(-50%) rotate(-5deg) scaleX(1); }
}
@keyframes he-hat-crown {
  0% { transform: translateX(-50%) rotate(-5deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(-3deg) scaleY(1.03); }
  100% { transform: translateX(-50%) rotate(-5deg) scaleY(1); }
}
@keyframes he-shadow {
  0% { opacity: 0.6; transform: rotate(-5deg) scaleX(1); }
  50% { opacity: 0.8; transform: rotate(-4deg) scaleX(1.05); }
  100% { opacity: 0.6; transform: rotate(-5deg) scaleX(1); }
}
@keyframes he-firelight {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes he-candle {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.02) rotate(1deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}

/* ==============================
   Scene: power-of-eloquence (warm interior, speaker)
   ============================== */
.scn-power-of-eloquence {
  background:
    linear-gradient(180deg, #2a1a10 0%, #1a0e08 40%, #0e0705 100%),
    radial-gradient(ellipse at 50% 40%, #c86a30 0%, transparent 60%);
}
.scn-power-of-eloquence .bg {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2518 0%, transparent 100%);
  animation: poe-bg 15s ease-in-out infinite alternate;
}
.scn-power-of-eloquence .podium {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: poe-podium 8s ease-in-out infinite;
}
.scn-power-of-eloquence .figure {
  position: absolute;
  bottom: 35%; left: 50%;
  width: 50px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a10 0%, #0e0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: poe-figure 6s ease-in-out infinite alternate;
}
.scn-power-of-eloquence .arm-left {
  position: absolute;
  bottom: 55%; left: 36%;
  width: 30px; height: 12px;
  background: #1a0e08;
  border-radius: 12px 2px 2px 12px;
  transform: rotate(-20deg);
  transform-origin: right center;
  animation: poe-arm-left 4s ease-in-out infinite;
}
.scn-power-of-eloquence .arm-right {
  position: absolute;
  bottom: 55%; right: 36%;
  width: 30px; height: 12px;
  background: #1a0e08;
  border-radius: 2px 12px 12px 2px;
  transform: rotate(20deg);
  transform-origin: left center;
  animation: poe-arm-right 4s ease-in-out infinite;
}
.scn-power-of-eloquence .speech-arc {
  position: absolute;
  bottom: 60%; left: 40%;
  width: 100px; height: 60px;
  border: 2px solid rgba(200,100,40,0.3);
  border-radius: 50%;
  border-color: transparent transparent transparent rgba(200,100,40,0.3);
  transform: rotate(30deg);
  filter: blur(2px);
  animation: poe-arc 3s ease-in-out infinite;
}
.scn-power-of-eloquence .light-ray {
  position: absolute;
  top: 10%; left: 30%;
  width: 200px; height: 300px;
  background: linear-gradient(180deg, rgba(200,100,40,0.2) 0%, transparent 100%);
  transform: rotate(10deg);
  filter: blur(10px);
  animation: poe-light 7s ease-in-out infinite alternate;
}
@keyframes poe-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes poe-podium {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.98); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes poe-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes poe-arm-left {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-30deg) translateX(-5px); }
  100% { transform: rotate(-20deg); }
}
@keyframes poe-arm-right {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(30deg) translateX(5px); }
  100% { transform: rotate(20deg); }
}
@keyframes poe-arc {
  0% { opacity: 0.2; transform: rotate(30deg) scale(0.9); }
  50% { opacity: 0.6; transform: rotate(35deg) scale(1.1); }
  100% { opacity: 0.2; transform: rotate(30deg) scale(0.9); }
}
@keyframes poe-light {
  0% { opacity: 0.3; transform: rotate(10deg) scaleX(1); }
  50% { opacity: 0.7; transform: rotate(12deg) scaleX(1.2); }
  100% { opacity: 0.3; transform: rotate(10deg) scaleX(1); }
}

/* ==============================
   Scene: chambermaid-chapter (funny, bright warm)
   ============================== */
.scn-chambermaid-chapter {
  background:
    linear-gradient(180deg, #4a3028 0%, #3a2218 40%, #2a1810 100%),
    radial-gradient(ellipse at 80% 20%, #e8b060 0%, transparent 50%);
}
.scn-chambermaid-chapter .bg {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a3a30 0%, transparent 100%);
  animation: cmc-bg 20s ease-in-out infinite alternate;
}
.scn-chambermaid-chapter .maid-body {
  position: absolute;
  bottom: 25%; left: 50%;
  width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2218 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: cmc-body 3s ease-in-out infinite alternate;
}
.scn-chambermaid-chapter .maid-skirt {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 90px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a8a4a 0%, #2a5a2a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: cmc-skirt 3.5s ease-in-out infinite;
}
.scn-chambermaid-chapter .maid-apron {
  position: absolute;
  bottom: 22%; left: 50%;
  width: 50px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  animation: cmc-apron 3s ease-in-out infinite alternate;
}
.scn-chambermaid-chapter .maid-hat {
  position: absolute;
  bottom: 50%; left: 50%;
  width: 60px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #f0d0a0 0%, #c0a080 100%);
  border-radius: 50%;
  animation: cmc-hat 4s ease-in-out infinite;
}
.scn-chambermaid-chapter .button-1,
.scn-chambermaid-chapter .button-2,
.scn-chambermaid-chapter .button-3 {
  position: absolute;
  width: 8px; height: 8px;
  background: #8a6a4a;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: cmc-button 2s ease-in-out infinite;
}
.scn-chambermaid-chapter .button-1 {
  bottom: 38%; left: 47%;
  animation-delay: 0s;
}
.scn-chambermaid-chapter .button-2 {
  bottom: 34%; left: 47%;
  animation-delay: 0.3s;
}
.scn-chambermaid-chapter .button-3 {
  bottom: 30%; left: 47%;
  animation-delay: 0.6s;
}
.scn-chambermaid-chapter .wiggle-line {
  position: absolute;
  bottom: 18%; left: 30%;
  width: 80px; height: 4px;
  background: linear-gradient(90deg, transparent, #f0c080 50%, transparent);
  filter: blur(2px);
  animation: cmc-wiggle 2s ease-in-out infinite;
}
@keyframes cmc-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cmc-body {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes cmc-skirt {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
  50% { transform: translateX(-50%) scaleY(1.05) rotate(2deg); }
  100% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
}
@keyframes cmc-apron {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes cmc-hat {
  0% { transform: translateX(-50%) rotate(-5deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(5deg) scaleY(1.1); }
  100% { transform: translateX(-50%) rotate(-5deg) scaleY(1); }
}
@keyframes cmc-button {
  0% { transform: scale(1); }
  50% { transform: scale(1.3); }
  100% { transform: scale(1); }
}
@keyframes cmc-wiggle {
  0% { transform: translateX(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(10px) scaleX(1.5); opacity: 0.8; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.3; }
}

/* ==============================
   Scene: trims-oration (dark, mourning)
   ============================== */
.scn-trims-oration {
  background:
    linear-gradient(180deg, #1a1010 0%, #0e0808 40%, #050303 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, transparent 70%);
}
.scn-trims-oration .bg {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, transparent 100%);
  animation: tro-bg 20s ease-in-out infinite alternate;
}
.scn-trims-oration .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1010 0%, #0a0606 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: tro-floor 12s ease-in-out infinite;
}
.scn-trims-oration .candle-body {
  position: absolute;
  bottom: 35%; left: 50%;
  width: 10px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e0d0b0 0%, #a09070 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(200,150,80,0.2);
  animation: tro-candle-body 6s ease-in-out infinite;
}
.scn-trims-oration .candle-flame {
  position: absolute;
  bottom: 55%; left: 50%;
  width: 12px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #ffd080 0%, #c06020 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: tro-flame 1.5s ease-in-out infinite;
}
.scn-trims-oration .candle-glow {
  position: absolute;
  bottom: 40%; left: 50%;
  width: 120px; height: 120px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, transparent 70%);
  animation: tro-glow 3s ease-in-out infinite alternate;
}
.scn-trims-oration .figure-kneel {
  position: absolute;
  bottom: 25%; left: 30%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1010 0%, #050303 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: tro-figure 8s ease-in-out infinite;
}
.scn-trims-oration .cross {
  position: absolute;
  bottom: 40%; right: 20%;
  width: 30px; height: 60px;
  background: #1a1010;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  border-radius: 2px;
}
.scn-trims-oration .cross::before {
  content: '';
  position: absolute;
  top: -15px; left: -15px;
  width: 60px; height: 30px;
  background: #1a1010;
  border-radius: 2px;
}
@keyframes tro-bg {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes tro-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes tro-candle-body {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.98); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes tro-flame {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
  25% { transform: translateX(-50%) scaleY(1.1) rotate(-2deg); }
  50% { transform: translateX(-50%) scaleY(0.95) rotate(1deg); }
  75% { transform: translateX(-50%) scaleY(1.05) rotate(3deg); }
  100% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
}
@keyframes tro-glow {
  0% { opacity: 0.3; transform: translate(-50%, -50%) scale(0.9); }
  50% { opacity: 0.7; transform: translate(-50%, -50%) scale(1.1); }
  100% { opacity: 0.4; transform: translate(-50%, -50%) scale(1); }
}
@keyframes tro-figure {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(-1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(0); }
}

.scn-religion-the-spring {
  background: 
    linear-gradient(180deg, #2b1a0e 0%, #3d2214 30%, #1f110a 100%),
    radial-gradient(ellipse at 40% 60%, #7a4a2e 0%, transparent 80%);
}
.scn-religion-the-spring .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #4a2e1a, #2a1a0e);
  animation: rs-wall 12s ease-in-out infinite alternate;
}
.scn-religion-the-spring .wall-left {
  position: absolute; inset: 0 70% 30% 0;
  background: linear-gradient(90deg, #3d2214, #2a1a0e);
  transform: scaleX(0.85);
  border-right: 2px solid #1f110a;
}
.scn-religion-the-spring .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1f110a 0%, #3d2214 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: rs-floor 18s ease-in-out infinite alternate;
}
.scn-religion-the-spring .sentinel-box {
  position: absolute; bottom: 25%; left: 40%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  transform: perspective(300px) rotateY(8deg);
  animation: rs-box 6s ease-in-out infinite;
}
.scn-religion-the-spring .spring {
  position: absolute; bottom: 32%; left: 48%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #a0764a 0%, #705030 50%, #a0764a 100%);
  border-radius: 50% / 20%;
  transform: rotate(-15deg);
  animation: rs-spring 4s ease-in-out infinite;
}
.scn-religion-the-spring .figure-father {
  position: absolute; bottom: 20%; left: 20%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1f110a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rs-figure 8s ease-in-out infinite;
}
.scn-religion-the-spring .figure-toby {
  position: absolute; bottom: 20%; left: 60%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1f110a 100%);
  border-radius: 30% 50% 20% 20% / 50% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rs-figure 8s ease-in-out 4s infinite;
}
.scn-religion-the-spring .lantern-glow {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #e0a050 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  mix-blend-mode: screen;
  animation: rs-glow 3s ease-in-out infinite alternate;
}
@keyframes rs-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rs-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rs-box { 0%,100% { transform: perspective(300px) rotateY(8deg) translateY(0); } 50% { transform: perspective(300px) rotateY(10deg) translateY(-3px); } }
@keyframes rs-spring { 0%,100% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-12deg) scaleY(1.1); } }
@keyframes rs-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 75% { transform: translateX(3px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rs-glow { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.3); } }

.scn-trismegistus-proposed {
  background: 
    linear-gradient(180deg, #1a0f0a 0%, #2a1a0e 50%, #1f110a 100%),
    radial-gradient(circle at 50% 40%, #4a2e1a 0%, transparent 70%);
}
.scn-trismegistus-proposed .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a0f0a 0%, #2a1a0e 100%);
  animation: tp-bg 20s ease-in-out infinite alternate;
}
.scn-trismegistus-proposed .vehicle-body {
  position: absolute; bottom: 20%; left: 30%; width: 90px; height: 50px;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 6px 16px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: tp-body 7s ease-in-out infinite;
}
.scn-trismegistus-proposed .vehicle-wheel {
  position: absolute; bottom: 14%; left: 35%; width: 24px; height: 24px;
  background: radial-gradient(circle, #3a2a1a 0%, #1f110a 100%);
  border-radius: 50%;
  border: 3px solid #5a3a1a;
  animation: tp-wheel 3s linear infinite;
}
.scn-trismegistus-proposed .spring-coil {
  position: absolute; bottom: 30%; left: 42%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c08040 0%, #a06020 50%, #c08040 100%);
  border-radius: 50% / 20%;
  transform: rotate(20deg);
  animation: tp-spring 2s ease-in-out infinite;
}
.scn-trismegistus-proposed .hand-left {
  position: absolute; bottom: 38%; left: 20%; width: 16px; height: 14px;
  background: radial-gradient(ellipse at 40% 50%, #5a3a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-20deg);
  animation: tp-hand 3s ease-in-out infinite;
}
.scn-trismegistus-proposed .hand-right {
  position: absolute; bottom: 38%; left: 50%; width: 16px; height: 14px;
  background: radial-gradient(ellipse at 60% 50%, #5a3a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(20deg) scaleX(-1);
  animation: tp-hand 3s ease-in-out 1.5s infinite;
}
.scn-trismegistus-proposed .impact-ring {
  position: absolute; bottom: 38%; left: 42%; width: 30px; height: 30px;
  border: 3px solid #e0b060;
  border-radius: 50%;
  opacity: 0;
  animation: tp-impact 3s ease-in-out 1.5s infinite;
}
@keyframes tp-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes tp-body { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } }
@keyframes tp-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes tp-spring { 0%,100% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(1.15); } }
@keyframes tp-hand { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-30deg) translateY(-6px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes tp-impact { 0% { opacity: 0.8; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(1.5); } }

.scn-chapter-of-chances {
  background: 
    linear-gradient(180deg, #1a140e 0%, #2a1e12 40%, #0f0a06 100%),
    radial-gradient(ellipse at 30% 60%, #3d2214 0%, transparent 70%);
}
.scn-chapter-of-chances .stair-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1e12 0%, #1a140e 100%);
  animation: cc-bg 15s ease-in-out infinite alternate;
}
.scn-chapter-of-chances .stair-tread {
  position: absolute; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-chapter-of-chances .stair-1 { bottom: 30%; }
.scn-chapter-of-chances .stair-2 { bottom: 18%; animation: cc-stair 5s ease-in-out infinite; }
.scn-chapter-of-chances .baluster {
  position: absolute; bottom: 15%; left: 20%; width: 8px; height: 50px;
  background: linear-gradient(90deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(0,0,0,0.4);
  transform: rotate(3deg);
  animation: cc-baluster 8s ease-in-out infinite;
}
.scn-chapter-of-chances .crutch {
  position: absolute; bottom: 22%; left: 45%; width: 6px; height: 45px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%);
  border-radius: 3px 3px 0 0;
  transform: rotate(-10deg) translateY(0);
  transform-origin: top center;
  animation: cc-crutch 4s ease-in-out infinite;
}
.scn-chapter-of-chances .figure-toby-rising {
  position: absolute; bottom: 8%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cc-rise 6s ease-in-out infinite;
}
.scn-chapter-of-chances .ink-pot {
  position: absolute; bottom: 35%; left: 60%; width: 16px; height: 18px;
  background: linear-gradient(180deg, #3a2210 0%, #1f110a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: cc-ink 10s ease-in-out infinite alternate;
}
.scn-chapter-of-chances .pen {
  position: absolute; bottom: 40%; left: 66%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #a08040 0%, #5a3a1a 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  animation: cc-pen 7s ease-in-out infinite;
}
@keyframes cc-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cc-stair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cc-baluster { 0%,100% { transform: rotate(3deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } }
@keyframes cc-crutch { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(-12deg) translateY(-3px); } 50% { transform: rotate(-8deg) translateY(0); } 75% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes cc-rise { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-6px) rotate(-3deg); } 40% { transform: translateY(-4px) rotate(2deg); } 60% { transform: translateY(-8px) rotate(-1deg); } 80% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cc-ink { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cc-pen { 0%,100% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(35deg) translateY(-4px); } }

.scn-stair-conversation {
  background: 
    linear-gradient(180deg, #1a120e 0%, #2a1e14 40%, #0f0a06 100%),
    radial-gradient(ellipse at 70% 50%, #3d2214 0%, transparent 70%);
}
.scn-stair-conversation .wall-shadow {
  position: absolute; inset: 0 40% 0 0;
  background: linear-gradient(135deg, #2a1e14, #1a120e);
  animation: sc-wall 14s ease-in-out infinite alternate;
}
.scn-stair-conversation .stair-rail {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1f110a 0%, #3d2214 100%);
  border-top: 2px solid #4a3220;
}
.scn-stair-conversation .stair-step {
  position: absolute; left: 15%; right: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-stair-conversation .top { bottom: 25%; }
.scn-stair-conversation .mid { bottom: 12%; animation: sc-step 6s ease-in-out infinite; }
.scn-stair-conversation .forceps {
  position: absolute; bottom: 32%; left: 50%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #a08060 0%, #5a4a2a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  transform: rotate(15deg);
  animation: sc-forceps 3s ease-in-out infinite alternate;
}
.scn-stair-conversation .chain-broken {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 4px;
  background: linear-gradient(90deg, #7a5a3a 0%, #a08060 50%, #7a5a3a 100%);
  border-radius: 2px;
  animation: sc-chain 5s ease-in-out infinite;
}
.scn-stair-conversation .figure-father-fall {
  position: absolute; bottom: 20%; left: 18%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #1a0e06 0%, #0f0604 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc-fall 4s ease-in-out infinite;
}
@keyframes sc-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sc-step { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sc-forceps { 0% { transform: rotate(15deg) scaleX(1); } 100% { transform: rotate(20deg) scaleX(1.1); } }
@keyframes sc-chain { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(10deg); } }
@keyframes sc-fall { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-4px) rotate(-2deg); } 40% { transform: translateY(2px) rotate(3deg); } 60% { transform: translateY(-2px) rotate(-1deg); } 80% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Widow Wadman Beauty */
.scn-widow-wadman-beauty {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2214 40%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 70%, #5a3a22 0%, transparent 60%);
}
.scn-widow-wadman-beauty .bg-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #3a2214 0%, #2a1a0e 100%); animation: wwb-shade 12s ease-in-out infinite alternate;
}
.scn-widow-wadman-beauty .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); animation: wwb-floor 18s ease-in-out infinite alternate;
}
.scn-widow-wadman-beauty .lamp-glow {
  position:absolute; bottom:34%; left:50%; width:100px; height:100px; transform:translateX(-50%); background: radial-gradient(circle, #c08040 0%, #a06830 30%, transparent 70%); border-radius:50%; mix-blend-mode: screen; animation: wwb-glow 4s ease-in-out infinite alternate;
}
.scn-widow-wadman-beauty .lamp-body {
  position:absolute; bottom:40%; left:50%; width:12px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: wwb-lamp 6s ease-in-out infinite;
}
.scn-widow-wadman-beauty .table {
  position:absolute; bottom:28%; left:50%; width:80px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2214 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: wwb-table 20s ease-in-out infinite alternate;
}
.scn-widow-wadman-beauty .figure-left {
  position:absolute; bottom:26%; left:40%; width:22px; height:40px; background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%); border-radius: 40% 50% 30% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: wwb-figure1 5s ease-in-out infinite;
}
.scn-widow-wadman-beauty .figure-right {
  position:absolute; bottom:26%; right:38%; width:20px; height:38px; background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%); border-radius: 50% 40% 40% 30% / 50% 60% 40% 50%; transform-origin: bottom center; animation: wwb-figure2 7s ease-in-out infinite;
}
@keyframes wwb-shade { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes wwb-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wwb-glow { 0% { opacity:.4; transform: translateX(-50%) scale(.9) } 50% { opacity:.8; transform: translateX(-50%) scale(1.1) } 100% { opacity:.5; transform: translateX(-50%) scale(1) } }
@keyframes wwb-lamp { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(3deg) } }
@keyframes wwb-table { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes wwb-figure1 { 0% { transform: translateX(0) rotate(-2deg) } 33% { transform: translateX(-2px) rotate(1deg) } 66% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wwb-figure2 { 0% { transform: translateX(0) rotate(1deg) } 33% { transform: translateX(1px) rotate(-2deg) } 66% { transform: translateX(-1px) rotate(0deg) } 100% { transform: translateX(0) rotate(1deg) } }

/* Widow Described */
.scn-widow-described {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2214 50%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 50%, #5a3a22 0%, transparent 70%);
}
.scn-widow-described .bg-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #3a2214 0%, #2a1a0e 100%); animation: wds-wall 15s ease-in-out infinite alternate;
}
.scn-widow-described .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 40% 60% 0 0 / 30% 50% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); animation: wds-floor 20s ease-in-out infinite alternate;
}
.scn-widow-described .window {
  position:absolute; top:15%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: rgba(90,60,30,.3); border: 2px solid #5a3a1a; border-radius:4px; box-shadow: inset 0 0 20px rgba(200,160,80,.1); animation: wds-window 12s ease-in-out infinite alternate;
}
.scn-widow-described .frame {
  position:absolute; top:14%; left:calc(50% - 35px); width:70px; height:86px; border: 3px solid #4a2a10; border-radius:6px; background: transparent; animation: wds-frame 10s ease-in-out infinite alternate;
}
.scn-widow-described .silhouette {
  position:absolute; top:20%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: drop-shadow(2px 2px 4px rgba(0,0,0,.5)); animation: wds-sil 8s ease-in-out infinite;
}
.scn-widow-described .chair {
  position:absolute; bottom:22%; left:50%; width:40px; height:30px; transform:translateX(-60%); background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 10% 30% 20% 20% / 30% 40% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: wds-chair 14s ease-in-out infinite alternate;
}
.scn-widow-described .small-table {
  position:absolute; bottom:22%; right:40%; width:30px; height:10px; transform:translateX(20%); background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: wds-table 18s ease-in-out infinite alternate;
}
@keyframes wds-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes wds-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes wds-window { 0% { background: rgba(90,60,30,.2) } 50% { background: rgba(90,60,30,.4) } 100% { background: rgba(90,60,30,.25) } }
@keyframes wds-frame { 0% { border-color: #3a1a0a } 50% { border-color: #6a3a1a } 100% { border-color: #3a1a0a } }
@keyframes wds-sil { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes wds-chair { 0% { transform: translateX(-60%) translateY(0) } 50% { transform: translateX(-60%) translateY(-2px) } 100% { transform: translateX(-60%) translateY(0) } }
@keyframes wds-table { 0% { transform: translateX(20%) } 50% { transform: translateX(20%) translateY(-1px) } 100% { transform: translateX(20%) } }

/* News to Mother */
.scn-news-to-mother {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2214 50%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, #5a3a22 0%, transparent 80%);
}
.scn-news-to-mother .bg-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #3a2214 0%, #2a1a0e 100%); animation: ntm-wall 12s ease-in-out infinite alternate;
}
.scn-news-to-mother .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 20% 80% 0 0 / 30% 60% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); animation: ntm-floor 15s ease-in-out infinite alternate;
}
.scn-news-to-mother .table {
  position:absolute; bottom:25%; left:50%; width:60px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2214 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ntm-table 20s ease-in-out infinite alternate;
}
.scn-news-to-mother .figure-father {
  position:absolute; bottom:24%; left:38%; width:22px; height:36px; background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%); border-radius: 40% 50% 30% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: ntm-father 3s ease-in-out infinite;
}
.scn-news-to-mother .figure-mother {
  position:absolute; bottom:24%; right:38%; width:20px; height:34px; background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%); border-radius: 50% 40% 40% 30% / 50% 60% 40% 50%; transform-origin: bottom center; animation: ntm-mother 4s ease-in-out infinite;
}
.scn-news-to-mother .lamp {
  position:absolute; bottom:32%; left:50%; width:10px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 8px rgba(200,160,80,.3); animation: ntm-lamp 6s ease-in-out infinite alternate;
}
@keyframes ntm-wall { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes ntm-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ntm-table { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) } }
@keyframes ntm-father { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(3px) rotate(5deg) } 40% { transform: translateX(6px) rotate(-3deg) } 60% { transform: translateX(3px) rotate(2deg) } 80% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ntm-mother { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ntm-lamp { 0% { box-shadow: 0 0 15px 6px rgba(200,160,80,.2); } 50% { box-shadow: 0 0 30px 12px rgba(200,160,80,.5); } 100% { box-shadow: 0 0 15px 6px rgba(200,160,80,.2); } }

/* Mothers Indifference */
.scn-mothers-indifference {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2214 50%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 90%, #5a3a22 0%, transparent 70%);
}
.scn-mothers-indifference .bg-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #3a2214 0%, #2a1a0e 100%); animation: min-wall 14s ease-in-out infinite alternate;
}
.scn-mothers-indifference .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); animation: min-floor 18s ease-in-out infinite alternate;
}
.scn-mothers-indifference .mantel {
  position:absolute; bottom:45%; left:50%; width:120px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: min-mantel 22s ease-in-out infinite alternate;
}
.scn-mothers-indifference .fireplace {
  position:absolute; bottom:30%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #8a5a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 30px rgba(200,120,40,.2); animation: min-fire 8s ease-in-out infinite alternate;
}
.scn-mothers-indifference .chair-left {
  position:absolute; bottom:22%; left:30%; width:30px; height:25px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 20% 30% 20% 20% / 30% 40% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: min-chairL 16s ease-in-out infinite alternate;
}
.scn-mothers-indifference .chair-right {
  position:absolute; bottom:22%; right:30%; width:30px; height:25px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 20% 30% 20% 20% / 30% 40% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: min-chairR 16s ease-in-out infinite alternate reverse;
}
.scn-mothers-indifference .figure-left {
  position:absolute; bottom:20%; left:32%; width:18px; height:32px; background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%); border-radius: 40% 50% 30% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: min-figL 9s ease-in-out infinite;
}
.scn-mothers-indifference .figure-right {
  position:absolute; bottom:20%; right:32%; width:18px; height:32px; background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%); border-radius: 50% 40% 40% 30% / 50% 60% 40% 50%; transform-origin: bottom center; animation: min-figR 11s ease-in-out infinite;
}
@keyframes min-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes min-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes min-mantel { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) } }
@keyframes min-fire { 0% { opacity:.3; transform: translateX(-50%) scale(.95) } 50% { opacity:.7; transform: translateX(-50%) scale(1.05) } 100% { opacity:.4; transform: translateX(-50%) scale(1) } }
@keyframes min-chairL { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes min-chairR { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes min-figL { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes min-figR { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* battle-reenacted */
.scn-battle-reenacted {
  background: linear-gradient(180deg, #3d2217 0%, #1f110b 50%), radial-gradient(ellipse at 60% 40%, #4a2c1e 0%, transparent 80%);
}
.scn-battle-reenacted .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2b1a12 0%, #1f110b 100%); animation: br-wall 25s ease-in-out infinite alternate; }
.scn-battle-reenacted .table { position:absolute; bottom:18%; left:20%; width:55%; height:12%; background: linear-gradient(180deg, #6b4228 0%, #3d2217 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 15px rgba(0,0,0,.6); }
.scn-battle-reenacted .figure { position:absolute; bottom:30%; left:38%; width:22%; height:35%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: br-figure 4s ease-in-out infinite; }
.scn-battle-reenacted .arm { position:absolute; bottom:42%; left:33%; width:12%; height:4%; background: linear-gradient(90deg, #2a1a12, #3d2217 50%, transparent); border-radius: 50% 0 0 50%; transform: rotate(20deg); transform-origin: right center; animation: br-arm 2.5s ease-in-out infinite alternate; }
.scn-battle-reenacted .candle { position:absolute; bottom:40%; left:28%; width:2%; height:8%; background: linear-gradient(180deg, #e8c47a 0%, #b2824a 70%); border-radius: 20% 20% 10% 10%; }
.scn-battle-reenacted .glow { position:absolute; bottom:38%; left:26%; width:8%; height:8%; background: radial-gradient(circle, #f5d696 0%, #d9a85a 40%, transparent 70%); border-radius: 50%; animation: br-glow 2s ease-in-out infinite alternate; }
.scn-battle-reenacted .shadow { position:absolute; bottom:17%; left:38%; width:25%; height:4%; background: radial-gradient(ellipse, rgba(0,0,0,.4), transparent); animation: br-shadow 4s ease-in-out infinite; }
.scn-battle-reenacted .chair { position:absolute; bottom:18%; left:58%; width:10%; height:20%; background: linear-gradient(180deg, #5a3a1e 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,.3); }
@keyframes br-wall { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.75 } }
@keyframes br-figure { 0%,100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) } }
@keyframes br-arm { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(18deg) } }
@keyframes br-glow { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(1.1); opacity:.8 } }
@keyframes br-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } }

/* trim-right */
.scn-trim-right {
  background: linear-gradient(180deg, #2b1a12 0%, #1a0e07 40%, #0f0804 100%), radial-gradient(ellipse at 40% 50%, #3d2217 0%, transparent 70%);
}
.scn-trim-right .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); box-shadow: inset 0 5px 15px rgba(0,0,0,.5); }
.scn-trim-right .window { position:absolute; top:8%; left:15%; width:20%; height:30%; background: linear-gradient(180deg, #3d2217 0%, #2b1a12 100%); border: 3px solid #1f110b; border-radius: 4%; box-shadow: inset 0 0 20px rgba(69,42,24,.3); animation: tr-window 12s ease-in-out infinite alternate; }
.scn-trim-right .figure-left { position:absolute; bottom:20%; left:25%; width:18%; height:34%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-figure-left 5s ease-in-out infinite; }
.scn-trim-right .figure-right { position:absolute; bottom:18%; left:55%; width:20%; height:38%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-figure-right 4s ease-in-out infinite; }
.scn-trim-right .crutch { position:absolute; bottom:15%; left:42%; width:3%; height:30%; background: linear-gradient(180deg, #5a3a1e 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; transform: rotate(-15deg); transform-origin: bottom center; animation: tr-crutch 3s ease-in-out infinite alternate; }
.scn-trim-right .chair-left { position:absolute; bottom:18%; left:15%; width:12%; height:18%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-trim-right .chair-right { position:absolute; bottom:16%; left:65%; width:14%; height:22%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-trim-right .lamp { position:absolute; top:12%; right:20%; width:6%; height:10%; background: radial-gradient(ellipse at 50% 30%, #e8c47a 0%, #b2824a 70%, transparent); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,150,80,.4); animation: tr-lamp 3s ease-in-out infinite alternate; }
@keyframes tr-window { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.65 } }
@keyframes tr-figure-left { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes tr-figure-right { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-3px) rotate(-1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes tr-crutch { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-18deg) } }
@keyframes tr-lamp { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:.8; transform: scale(1.05) } }

/* march-to-shandy-hall */
.scn-march-to-shandy-hall {
  background: linear-gradient(180deg, #2b1a12 0%, #1a0e07 40%, #0f0804 100%), radial-gradient(ellipse at 50% 30%, #3d2217 0%, transparent 80%);
}
.scn-march-to-shandy-hall .bg-door { position:absolute; top:0; left:40%; width:20%; height:60%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: ms-door 20s ease-in-out infinite alternate; }
.scn-march-to-shandy-hall .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); }
.scn-march-to-shandy-hall .figure-1 { position:absolute; bottom:15%; left:20%; width:12%; height:22%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-figure-1 3s ease-in-out infinite; }
.scn-march-to-shandy-hall .figure-2 { position:absolute; bottom:18%; left:38%; width:11%; height:20%; background: linear-gradient(180deg, #3a2218 0%, #1a0e07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-figure-2 3.5s ease-in-out infinite ; }
.scn-march-to-shandy-hall .figure-3 { position:absolute; bottom:21%; left:55%; width:10%; height:18%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-figure-3 4s ease-in-out infinite; }
.scn-march-to-shandy-hall .flag-1 { position:absolute; bottom:32%; left:22%; width:2%; height:18%; background: #5a3a1e; transform: rotate(10deg); transform-origin: bottom center; animation: ms-flag 5s ease-in-out infinite alternate; }
.scn-march-to-shandy-hall .flag-2 { position:absolute; bottom:34%; left:57%; width:2%; height:15%; background: #5a3a1e; transform: rotate(-10deg); transform-origin: bottom center; animation: ms-flag 6s ease-in-out infinite alternate-reverse; }
.scn-march-to-shandy-hall .shadow-line { position:absolute; bottom:12%; left:10%; width:80%; height:2%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 30%, transparent 70%); animation: ms-shadow 8s ease-in-out infinite; }
@keyframes ms-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(.98) } }
@keyframes ms-figure-1 { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(5px) translateY(-3px) rotate(1deg) } }
@keyframes ms-figure-2 { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-3px) translateY(-2px) rotate(2deg) } 60% { transform: translateX(4px) translateY(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ms-figure-3 { 0% { transform: translateX(0) translateY(0) } 40% { transform: translateX(-2px) translateY(-1px) } 80% { transform: translateX(3px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes ms-flag { 0% { transform: rotate(10deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(5deg) } }
@keyframes ms-shadow { 0% { transform: translateX(0) } 50% { transform: translateX(30px) } 100% { transform: translateX(0) } }

/* fathers-infinity */
.scn-fathers-infinity {
  background: linear-gradient(180deg, #5a3a1e 0%, #3d2217 40%, #1f110b 100%), radial-gradient(ellipse at 50% 50%, #6b4228 0%, transparent 70%);
}
.scn-fathers-infinity .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #3d2217 0%, #2b1a12 50%, #1f110b 100%); animation: fi-wall 30s ease-in-out infinite alternate; }
.scn-fathers-infinity .floor { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); }
.scn-fathers-infinity .figure-a { position:absolute; bottom:18%; left:18%; width:14%; height:28%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fi-figure-a 2.5s ease-in-out infinite; }
.scn-fathers-infinity .figure-b { position:absolute; bottom:20%; left:42%; width:13%; height:26%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fi-figure-b 3s ease-in-out infinite; }
.scn-fathers-infinity .figure-c { position:absolute; bottom:22%; left:64%; width:12%; height:24%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fi-figure-c 3.5s ease-in-out infinite; }
.scn-fathers-infinity .hat-a { position:absolute; bottom:43%; left:16%; width:18%; height:6%; background: linear-gradient(180deg, #5a3a1e 0%, #3d2217 100%); border-radius: 50% 50% 0 0; transform: rotate(-8deg); animation: fi-hat-a 4s ease-in-out infinite alternate; }
.scn-fathers-infinity .hat-b { position:absolute; bottom:45%; left:40%; width:16%; height:7%; background: linear-gradient(180deg, #5a3a1e 0%, #3d2217 100%); border-radius: 50% 50% 0 0; transform: rotate(5deg); animation: fi-hat-b 4.5s ease-in-out infinite alternate; }
.scn-fathers-infinity .cane { position:absolute; bottom:20%; left:58%; width:2%; height:20%; background: #6b4228; border-radius: 10% 10% 5% 5%; transform: rotate(25deg); transform-origin: bottom center; animation: fi-cane 2s ease-in-out infinite alternate; }
.scn-fathers-infinity .bounce-shadow { position:absolute; bottom:16%; left:18%; width:14%; height:3%; background: radial-gradient(ellipse, rgba(0,0,0,.4), transparent); animation: fi-shadow 2.5s ease-in-out infinite; }
@keyframes fi-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes fi-figure-a { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-6px) rotate(2deg) } }
@keyframes fi-figure-b { 0% { transform: translateY(0) rotate(1deg) } 30% { transform: translateY(-5px) rotate(-1deg) } 60% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fi-figure-c { 0% { transform: translateY(0) rotate(-1deg) } 40% { transform: translateY(-8px) rotate(0deg) } 80% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes fi-hat-a { 0% { transform: rotate(-8deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(5px) } 100% { transform: rotate(-10deg) translateX(-3px) } }
@keyframes fi-hat-b { 0% { transform: rotate(5deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(3deg) } }
@keyframes fi-cane { 0% { transform: rotate(20deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(22deg) } }
@keyframes fi-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.4) } }

.scn-sleepless-enthusiasm {
  background: 
    linear-gradient(180deg, #1f1b1a 0%, #2a2422 40%, #3b312e 100%),
    radial-gradient(ellipse at 50% 0%, #4a3e3a 0%, transparent 70%);
}
.scn-sleepless-enthusiasm .room-wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, transparent 0%, #1f1b1a 80%);
  animation: se-wall 12s ease-in-out infinite alternate;
}
.scn-sleepless-enthusiasm .window-night { 
  position: absolute; top: 10%; left: 65%; width: 80px; height: 100px; 
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border: 4px solid #3a2a20; border-radius: 8% / 6%; 
  box-shadow: inset 0 0 10px rgba(255,255,200,0.05);
  animation: se-window 8s ease-in-out infinite;
}
.scn-sleepless-enthusiasm .bed-stead { 
  position: absolute; bottom: 8%; left: 20%; width: 140px; height: 60px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% / 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-sleepless-enthusiasm .figure-sitting { 
  position: absolute; bottom: 18%; left: 28%; width: 40px; height: 60px; 
  background: radial-gradient(ellipse at 50% 20%, #3a2a20 0%, #1a1008 80%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: se-figure 6s ease-in-out infinite;
}
.scn-sleepless-enthusiasm .candle-glow { 
  position: absolute; bottom: 28%; left: 35%; width: 10px; height: 10px; 
  background: radial-gradient(circle, #ffd080 0%, #ffb040 50%, transparent 100%);
  box-shadow: 0 0 40px 20px rgba(255,176,64,0.3), 0 0 80px 40px rgba(255,176,64,0.1);
  animation: se-candle 4s ease-in-out infinite alternate;
}
.scn-sleepless-enthusiasm .map-paper { 
  position: absolute; bottom: 14%; left: 38%; width: 60px; height: 45px; 
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 4% / 6%; transform: rotate(5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: se-map 5s ease-in-out infinite;
}
.scn-sleepless-enthusiasm .shadow-cast { 
  position: absolute; bottom: 8%; left: 20%; width: 100%; height: 20px; 
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 40%, transparent 100%);
  animation: se-shadow 7s ease-in-out infinite alternate;
}
@keyframes se-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes se-window { 0%,100% { box-shadow: inset 0 0 10px rgba(255,255,200,0.05); } 50% { box-shadow: inset 0 0 15px rgba(255,255,200,0.1); } }
@keyframes se-figure { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes se-candle { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes se-map { 0%,100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } }
@keyframes se-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

.scn-shandy-hall-arrival {
  background: 
    linear-gradient(180deg, #8bb8d4 0%, #c9dce8 40%, #e8f0e0 100%),
    radial-gradient(ellipse at 60% 0%, #f0e8d0 0%, transparent 70%);
}
.scn-shandy-hall-arrival .sky-sunlit { 
  position: absolute; inset: 0 0 40% 0; 
  background: linear-gradient(180deg, #b0d0e8 0%, #e8f0e0 100%);
  animation: sha-sky 20s ease-in-out infinite alternate;
}
.scn-shandy-hall-arrival .hedge-row { 
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 30%; 
  background: linear-gradient(180deg, #4a7a4a 0%, #2a5a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: sha-hedge 15s ease-in-out infinite alternate;
}
.scn-shandy-hall-arrival .shandy-house { 
  position: absolute; bottom: 28%; left: 50%; width: 120px; height: 100px; 
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4b888 0%, #b89860 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: sha-house 10s ease-in-out infinite;
}
.scn-shandy-hall-arrival .door-open { 
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 50px; 
  transform: translateX(-50%);
  background: #5a4a3a;
  border-radius: 4% / 6%;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.5);
  animation: sha-door 12s ease-in-out infinite;
}
.scn-shandy-hall-arrival .uncle-toby { 
  position: absolute; bottom: 26%; left: 38%; width: 30px; height: 55px; 
  background: radial-gradient(ellipse at 50% 30%, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sha-toby 8s ease-in-out infinite;
}
.scn-shandy-hall-arrival .corporal-trim { 
  position: absolute; bottom: 26%; left: 48%; width: 28px; height: 50px; 
  background: radial-gradient(ellipse at 50% 30%, #7a6a5a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: sha-trim 7s ease-in-out infinite reverse;
}
.scn-shandy-hall-arrival .fortification { 
  position: absolute; bottom: 22%; left: 60%; width: 60px; height: 20px; 
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 20% / 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: sha-fort 14s ease-in-out infinite alternate;
}
.scn-shandy-hall-arrival .dust-motes { 
  position: absolute; top: 20%; left: 0; width: 100%; height: 60%; 
  background: radial-gradient(circle at 20% 30%, rgba(255,240,200,0.15) 0%, transparent 50%);
  animation: sha-dust 30s linear infinite;
}
@keyframes sha-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sha-hedge { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sha-house { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes sha-door { 0%,100% { transform: translateX(-50%) rotateY(0deg); } 25% { transform: translateX(-50%) rotateY(10deg); } 50% { transform: translateX(-50%) rotateY(0deg); } 75% { transform: translateX(-50%) rotateY(-10deg); } }
@keyframes sha-toby { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sha-trim { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(-6px) rotate(0deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sha-fort { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.1) scaleY(0.95); } 100% { transform: scaleX(0.95) scaleY(1.05); } }
@keyframes sha-dust { 0% { transform: translateX(0); } 100% { transform: translateX(20px); } }

.scn-racket-above {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2020 40%, #1a1010 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a2a 0%, transparent 70%);
}
.scn-racket-above .ceiling-deep { 
  position: absolute; top: 0; left: 0; right: 0; height: 50%; 
  background: linear-gradient(180deg, #0a0a14 0%, #1a1818 100%);
  animation: ra-ceil 4s ease-in-out infinite alternate;
}
.scn-racket-above .stairwell { 
  position: absolute; bottom: 0; left: 40%; width: 20%; height: 70%; 
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 20px 0 30px rgba(0,0,0,0.8);
  animation: ra-stair 6s ease-in-out infinite;
}
.scn-racket-above .figure-listening { 
  position: absolute; bottom: 15%; left: 30%; width: 35px; height: 60px; 
  background: radial-gradient(ellipse at 50% 20%, #3a2a20 0%, #1a1008 80%);
  border-radius: 45% 45% 30% 30% / 65% 65% 30% 30%;
  transform-origin: bottom center;
  animation: ra-listen 5s ease-in-out infinite;
}
.scn-racket-above .figure-obadiah { 
  position: absolute; bottom: 12%; left: 55%; width: 30px; height: 55px; 
  background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #1a0a0a 80%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ra-obadiah 4s ease-in-out infinite reverse;
}
.scn-racket-above .lamp-swing { 
  position: absolute; top: 10%; left: 50%; width: 14px; height: 30px; 
  background: radial-gradient(ellipse at 50% 30%, #ffc060 0%, #b08030 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%;
  transform-origin: top center;
  box-shadow: 0 0 30px 10px rgba(255,192,96,0.4);
  animation: ra-lamp 3s ease-in-out infinite alternate;
}
.scn-racket-above .shadow-climb { 
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%; 
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: ra-shadow 8s ease-in-out infinite alternate;
}
.scn-racket-above .crack-in-plaster { 
  position: absolute; top: 15%; left: 60%; width: 4px; height: 30px; 
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: ra-crack 10s ease-in-out infinite;
}
@keyframes ra-ceil { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ra-stair { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ra-listen { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ra-obadiah { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ra-lamp { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes ra-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes ra-crack { 0%,100% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(12deg) scaleY(1.1); } }

.scn-modesty-objection {
  background: 
    linear-gradient(180deg, #2a241e 0%, #3a3028 40%, #1a1410 100%),
    radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-modesty-objection .parlor-wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, transparent 0%, #1a1410 80%);
  animation: mo-wall 10s ease-in-out infinite alternate;
}
.scn-modesty-objection .fireplace-glow { 
  position: absolute; bottom: 5%; left: 10%; width: 30%; height: 40%; 
  background: radial-gradient(ellipse at 50% 100%, #e86030 0%, #b84020 40%, transparent 80%);
  box-shadow: 0 0 80px 40px rgba(232,96,48,0.3);
  animation: mo-fire 5s ease-in-out infinite alternate;
}
.scn-modesty-objection .father-figure { 
  position: absolute; bottom: 18%; left: 20%; width: 40px; height: 65px; 
  background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #1a0a00 80%);
  border-radius: 45% 45% 30% 30% / 65% 65% 30% 30%;
  transform-origin: bottom center;
  animation: mo-father 8s ease-in-out infinite;
}
.scn-modesty-objection .sister-figure { 
  position: absolute; bottom: 18%; left: 45%; width: 35px; height: 60px; 
  background: radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, #2a1a0a 80%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: mo-sister 6s ease-in-out infinite reverse;
}
.scn-modesty-objection .uncle-toby { 
  position: absolute; bottom: 18%; left: 65%; width: 38px; height: 62px; 
  background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #1a0a00 80%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: mo-toby 7s ease-in-out infinite;
}
.scn-modesty-objection .broken-pipe { 
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 8px; 
  background: linear-gradient(90deg, #8a6a4a 0%, #c0a060 50%, #8a6a4a 100%);
  border-radius: 20% / 50%;
  transform: rotate(-20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: mo-pipe 4s ease-in-out infinite;
}
.scn-modesty-objection .smoke-curl { 
  position: absolute; bottom: 28%; left: 28%; width: 20px; height: 20px; 
  background: radial-gradient(circle, rgba(200,180,150,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: mo-smoke 6s ease-in-out infinite;
}
@keyframes mo-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mo-fire { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.98); } }
@keyframes mo-father { 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 mo-sister { 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 mo-toby { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mo-pipe { 0% { transform: rotate(-20deg) translateX(0); } 25% { transform: rotate(-15deg) translateX(2px); } 50% { transform: rotate(-20deg) translateX(0); } 75% { transform: rotate(-25deg) translateX(-2px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes mo-smoke { 0% { transform: translateY(0) scale(1); opacity: 0; } 50% { transform: translateY(-40px) scale(2); opacity: 0.5; } 100% { transform: translateY(-80px) scale(3); opacity: 0; } }

/* scene 1: curse-climax — preacher gesturing in dim interior */
.scn-curse-climax {
  background:
    radial-gradient(ellipse at 40% 60%, rgba(180,120,60,.25) 0%, transparent 50%),
    linear-gradient(180deg, #2a1f12 0%, #1a1210 40%, #0f0b08 100%);
}
.scn-curse-climax .wall-dark {
  position:absolute; inset:0 0 28% 0;
  background: linear-gradient(135deg, #2a1f12 0%, #1a1410 60%, #120e0a 100%);
  animation: cusx-wall 20s ease-in-out infinite alternate;
}
.scn-curse-climax .floor-dark {
  position:absolute; bottom:0; left:0; right:0; height:28%;
  background: linear-gradient(0deg, #1a1210 0%, #2a1f14 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-curse-climax .candle-glow {
  position:absolute; bottom:40%; left:28%; width:12px; height:18px;
  background: radial-gradient(ellipse 60% 70%, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(200,140,60,.35), 0 0 120px 60px rgba(200,140,60,.1);
  animation: cusx-flicker 2.5s ease-in-out infinite alternate;
}
.scn-curse-climax .figure-preacher {
  position:absolute; bottom:24%; left:38%; width:24px; height:50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cusx-bob 4s ease-in-out infinite;
}
.scn-curse-climax .arm-point {
  position:absolute; bottom:48%; left:48%; width:40px; height:6px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 10% 10% 40%;
  transform-origin: 0% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: cusx-point 3s ease-in-out infinite alternate;
}
.scn-curse-climax .dust-mote {
  position:absolute; width:4px; height:4px;
  background: radial-gradient(circle, rgba(220,180,120,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-curse-climax .mote-1 { top:30%; left:55%; animation: cusx-mote 14s linear infinite; }
.scn-curse-climax .mote-2 { top:45%; left:20%; animation: cusx-mote 18s linear infinite 3s; }
.scn-curse-climax .mote-3 { top:25%; left:70%; animation: cusx-mote 22s linear infinite 7s; }
@keyframes cusx-wall { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes cusx-flicker { 0% { transform:scale(1); opacity:.8 } 30% { transform:scale(1.08); opacity:1 } 60% { transform:scale(.95); opacity:.7 } 100% { transform:scale(1.03); opacity:.9 } }
@keyframes cusx-bob { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes cusx-point { 0% { transform: translate(0,0) rotate(-10deg) } 50% { transform: translate(4px,-2px) rotate(15deg) } 100% { transform: translate(2px,-1px) rotate(-5deg) } }
@keyframes cusx-mote { 0% { transform: translate(0,0) scale(.6); opacity:0 } 20% { opacity:.8 } 80% { opacity:.6 } 100% { transform: translate(60px,-80px) scale(1.2); opacity:0 } }

/* scene 2: curse-anatomy — diagram-like layout with body outlines */
.scn-curse-anatomy {
  background:
    radial-gradient(ellipse at 50% 40%, rgba(160,120,70,.15) 0%, transparent 50%),
    linear-gradient(180deg, #2a1e12 0%, #1a1410 40%, #0e0a08 100%);
}
.scn-curse-anatomy .bg-diagram {
  position:absolute; inset:5% 8% 5% 8%;
  background: radial-gradient(ellipse at 50% 40%, rgba(200,160,100,.08) 0%, transparent 70%);
  border: 1px solid rgba(180,140,80,.12);
  border-radius: 4%;
  animation: cusa-bg 20s ease-in-out infinite alternate;
}
.scn-curse-anatomy .parchment {
  position:absolute; inset:10% 12% 10% 12%;
  background: linear-gradient(135deg, rgba(200,170,120,.06) 0%, rgba(160,130,80,.04) 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.3);
}
.scn-curse-anatomy .body-outline {
  position:absolute; bottom:18%; left:50%; width:50px; height:80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, transparent 0%, transparent 100%);
  border: 2px solid rgba(180,140,80,.25);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: cusa-pulse 6s ease-in-out infinite alternate;
}
.scn-curse-anatomy .organ-heart {
  position:absolute; bottom:65%; left:50%; width:12px; height:14px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 60% 70%, rgba(200,80,60,.5) 0%, rgba(150,50,40,.2) 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  animation: cusa-beat 1.2s ease-in-out infinite;
}
.scn-curse-anatomy .organ-brain {
  position:absolute; bottom:82%; left:50%; width:18px; height:14px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(180,150,130,.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: cusa-breathe 4s ease-in-out infinite alternate;
}
.scn-curse-anatomy .line-stomach {
  position:absolute; bottom:48%; left:50%; width:20px; height:10px;
  transform: translateX(-50%);
  border: 1.5px solid rgba(180,120,60,.2);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  background: rgba(180,120,60,.05);
  animation: cusa-squirm 5s ease-in-out infinite;
}
.scn-curse-anatomy .dot-kidney {
  position:absolute; bottom:51%; left:43%; width:6px; height:8px;
  background: radial-gradient(ellipse, rgba(180,120,80,.2) 0%, transparent 100%);
  border-radius: 40% 40% 30% 30%;
  animation: cusa-pulse 6s ease-in-out infinite alternate 1s;
}
.scn-curse-anatomy .flare-glow {
  position:absolute; bottom:35%; left:30%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(200,160,100,.1) 0%, transparent 70%);
  border-radius: 50%;
  animation: cusa-flare 8s ease-in-out infinite alternate;
}
@keyframes cusa-bg { 0%,100% { opacity:.6 } 50% { opacity:1 } }
@keyframes cusa-pulse { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes cusa-beat { 0%,100% { transform: translateX(-50%) scale(1) } 35% { transform: translateX(-50%) scale(1.12) } 55% { transform: translateX(-50%) scale(.95) } }
@keyframes cusa-breathe { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.06) } 100% { transform: translateX(-50%) scaleY(.97) } }
@keyframes cusa-squirm { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) translateY(1px) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes cusa-flare { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.15) } 100% { opacity:.5; transform: scale(.9) } }

/* scene 3: curse-completes — Uncle Toby recoiling with body parts */
.scn-curse-completes {
  background:
    radial-gradient(ellipse at 55% 65%, rgba(180,120,60,.2) 0%, transparent 60%),
    linear-gradient(180deg, #2a1f14 0%, #1a1410 50%, #0e0a08 100%);
}
.scn-curse-completes .wall-panel {
  position:absolute; inset:3% 4% 25% 4%;
  background: linear-gradient(135deg, rgba(180,140,80,.08) 0%, transparent 60%);
  border: 1px solid rgba(160,120,70,.1);
  border-radius: 2%;
  animation: cusc-panel 25s ease-in-out infinite alternate;
}
.scn-curse-completes .floor-plank {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #1a1210 0%, #2a1f14 100%);
  border-radius: 15% 15% 0 0 / 5% 5% 0 0;
}
.scn-curse-completes .figure-toby {
  position:absolute; bottom:20%; left:50%; width:30px; height:55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: cusc-flinch 3s ease-in-out infinite;
}
.scn-curse-completes .arms-flung {
  position:absolute; bottom:45%; left:50%; width:50px; height:5px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(90deg, transparent 0%, #3a2a1a 15%, #3a2a1a 85%, transparent 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: cusc-fling 2s ease-in-out infinite alternate;
}
.scn-curse-completes .anatomy-part {
  position:absolute; width:8px; height:12px;
  background: radial-gradient(ellipse, rgba(200,160,100,.2) 0%, transparent 100%);
  border-radius: 40% 40% 30% 30%;
  border: 1px solid rgba(160,120,70,.12);
}
.scn-curse-completes .thigh { bottom:38%; left:35%; animation: cusc-part-a 7s ease-in-out infinite; }
.scn-curse-completes .knee  { bottom:34%; left:65%; animation: cusc-part-b 8s ease-in-out infinite 1s; }
.scn-curse-completes .foot  { bottom:28%; left:42%; animation: cusc-part-c 6s ease-in-out infinite 2s; }
.scn-curse-completes .shadow-burst {
  position:absolute; bottom:18%; left:40%; width:80px; height:40px;
  background: radial-gradient(ellipse 60% 50%, rgba(0,0,0,.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: cusc-shadow 4s ease-in-out infinite alternate;
}
.scn-curse-completes .candle-flare {
  position:absolute; bottom:50%; left:20%; width:8px; height:14px;
  background: radial-gradient(ellipse 50% 70%, #ffd080 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,140,60,.2);
  animation: cusc-flare 1.8s ease-in-out infinite alternate;
}
@keyframes cusc-panel { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes cusc-flinch { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-2px) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg) } }
@keyframes cusc-fling { 0% { transform: translateX(-50%) rotate(-8deg) scaleX(1) } 50% { transform: translateX(-50%) rotate(12deg) scaleX(1.15) } 100% { transform: translateX(-50%) rotate(-5deg) scaleX(.95) } }
@keyframes cusc-part-a { 0% { transform: translate(0,0) rotate(0) scale(1) } 50% { transform: translate(10px,-6px) rotate(15deg) scale(1.1) } 100% { transform: translate(0,0) rotate(0) scale(1) } }
@keyframes cusc-part-b { 0% { transform: translate(0,0) rotate(0) scale(1) } 50% { transform: translate(-8px,-4px) rotate(-10deg) scale(1.08) } 100% { transform: translate(0,0) rotate(0) scale(1) } }
@keyframes cusc-part-c { 0% { transform: translate(0,0) rotate(0) scale(1) } 50% { transform: translate(6px,8px) rotate(20deg) scale(.9) } 100% { transform: translate(0,0) rotate(0) scale(1) } }
@keyframes cusc-shadow { 0% { transform: scale(1); opacity:.4 } 50% { transform: scale(1.2); opacity:.7 } 100% { transform: scale(.9); opacity:.3 } }
@keyframes cusc-flare { 0% { transform:scale(1); opacity:.7 } 30% { transform:scale(1.12); opacity:1 } 70% { transform:scale(.92); opacity:.6 } 100% { transform:scale(1.05); opacity:.8 } }

/* scene 4: final-whew — Toby head thrown back, big WHEW */
.scn-final-whew {
  background:
    radial-gradient(ellipse at 50% 40%, rgba(200,150,80,.15) 0%, transparent 60%),
    linear-gradient(180deg, #2a1f14 0%, #1a1410 45%, #0e0a08 100%);
}
.scn-final-whew .bg-arch {
  position:absolute; inset:2% 5% 20% 5%;
  background: linear-gradient(135deg, rgba(180,140,80,.06) 0%, transparent 50%);
  border: 1px solid rgba(160,120,70,.08);
  border-radius: 40% 40% 10% 10% / 30% 30% 5% 5%;
  animation: fiw-arch 25s ease-in-out infinite alternate;
}
.scn-final-whew .wall-shadow {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.2) 100%);
}
.scn-final-whew .figure-whew {
  position:absolute; bottom:15%; left:50%; width:30px; height:58px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: fiw-body 4s ease-in-out infinite;
}
.scn-final-whew .head-thrown {
  position:absolute; bottom:72%; left:50%; width:16px; height:18px;
  transform: translateX(-50%) rotate(30deg);
  background: radial-gradient(ellipse 60% 70%, #3a2a1a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 120%;
  animation: fiw-head 3s ease-in-out infinite alternate;
}
.scn-final-whew .breath-burst {
  position:absolute; bottom:85%; left:50%; width:60px; height:30px;
  transform: translateX(-40%);
  background: radial-gradient(ellipse 50% 40%, rgba(200,160,100,.15) 0%, transparent 100%);
  border-radius: 50%;
  animation: fiw-burst 3s ease-in-out infinite;
}
.scn-final-whew .lamp-flash {
  position:absolute; bottom:40%; left:25%; width:10px; height:16px;
  background: radial-gradient(ellipse 50% 70%, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(200,140,60,.2);
  animation: fiw-lamp 2s ease-in-out infinite alternate;
}
.scn-final-whew .dust-puff {
  position:absolute; width:6px; height:6px;
  background: radial-gradient(circle, rgba(220,180,120,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-final-whew .puff-a { bottom:80%; left:60%; animation: fiw-puff 12s linear infinite; }
.scn-final-whew .puff-b { bottom:75%; left:30%; animation: fiw-puff 15s linear infinite 4s; }
@keyframes fiw-arch { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes fiw-body { 0%,100% { transform: translateX(-50%) translateY(0) } 40% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 70% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes fiw-head { 0% { transform: translateX(-50%) rotate(20deg) scale(1) } 50% { transform: translateX(-50%) rotate(40deg) scale(1.08) } 100% { transform: translateX(-50%) rotate(25deg) scale(.97) } }
@keyframes fiw-burst { 0% { transform: translateX(-40%) scale(.8); opacity:.3 } 50% { transform: translateX(-40%) scale(1.3); opacity:.7 } 100% { transform: translateX(-40%) scale(.9); opacity:.4 } }
@keyframes fiw-lamp { 0% { transform:scale(1) rotate(-2deg); opacity:.7 } 30% { transform:scale(1.1) rotate(2deg); opacity:1 } 70% { transform:scale(.95) rotate(-1deg); opacity:.6 } 100% { transform:scale(1.04) rotate(1deg); opacity:.8 } }
@keyframes fiw-puff { 0% { transform: translate(0,0) scale(.5); opacity:0 } 20% { opacity:.7 } 80% { opacity:.5 } 100% { transform: translate(-40px,-20px) scale(1.3); opacity:0 } }

/* ===== drawbridge-broken ===== */
.scn-drawbridge-broken {
  background: linear-gradient(180deg, #0b1429 0%, #1a2a4a 40%, #2a3a5a 100%), 
              radial-gradient(ellipse at 50% 30%, #4a6a9a 0%, transparent 60%);
}
.scn-drawbridge-broken .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0b1429 0%, #16203a 100%);
}
.scn-drawbridge-broken .moon {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0f8ff 0%, #c0d0e0 100%);
  border-radius: 50%; box-shadow: 0 0 40px 12px rgba(192,208,224,0.5);
  animation: bb1-moon 12s ease-in-out infinite alternate;
}
.scn-drawbridge-broken .stars {
  position: absolute; top: 5%; left: 0; right: 0; height: 40%;
  background-image: radial-gradient(2px 2px at 20% 30%, #fff 100%, transparent 100%),
                    radial-gradient(2px 2px at 60% 15%, #fff 100%, transparent 100%),
                    radial-gradient(1px 1px at 80% 40%, #fff 100%, transparent 100%),
                    radial-gradient(2px 2px at 10% 70%, #fff 100%, transparent 100%);
  animation: bb1-twinkle 4s ease-in-out infinite;
}
.scn-drawbridge-broken .fort-wall {
  position: absolute; bottom: 20%; left: -5%; right: -5%; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.6), 0 0 0 2px #4a4a5a;
}
.scn-drawbridge-broken .bridge-left {
  position: absolute; bottom: 22%; left: 25%; width: 80px; height: 14px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; transform: rotate(-12deg); transform-origin: right center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.7);
  animation: bb1-bridge-break 6s ease-in-out infinite;
}
.scn-drawbridge-broken .bridge-right {
  position: absolute; bottom: 22%; right: 20%; width: 80px; height: 14px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; transform: rotate(10deg); transform-origin: left center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.7);
  animation: bb1-bridge-break 6s ease-in-out infinite reverse;
}
.scn-drawbridge-broken .figure-trim {
  position: absolute; bottom: 24%; left: 18%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: bb1-figure-move 4s ease-in-out infinite;
}
.scn-drawbridge-broken .figure-bridget {
  position: absolute; bottom: 24%; right: 22%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a0a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bb1-figure-move 4s ease-in-out infinite alternate;
}
.scn-drawbridge-broken .tree {
  position: absolute; bottom: 18%; left: 55%; width: 8px; height: 40px;
  background: #1a1a1a; border-radius: 4px;
  box-shadow: 0 -18px 0 14px #1a2a1a;
  animation: bb1-tree-sway 8s ease-in-out infinite;
}
@keyframes bb1-moon {
  0% { transform: translate(0,0) scale(1); opacity: 0.9; }
  50% { transform: translate(2px, -3px) scale(1.02); opacity: 1; }
  100% { transform: translate(-2px, 1px) scale(0.98); opacity: 0.85; }
}
@keyframes bb1-twinkle {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes bb1-bridge-break {
  0% { transform: rotate(-12deg) translateY(0); }
  50% { transform: rotate(-20deg) translateY(2px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes bb1-figure-move {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(4px) rotate(1deg); }
  60% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes bb1-tree-sway {
  0% { transform: rotate(0) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(0) scaleY(1); }
}

/* ===== ancient-engines ===== */
.scn-ancient-engines {
  background: linear-gradient(135deg, #1a1a1a 0%, #2a251a 40%, #3a3020 80%, #1a1510 100%), 
              radial-gradient(circle at 80% 40%, #5a4a30 0%, transparent 50%);
}
.scn-ancient-engines .wall-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a251a 0%, #1a1510 100%);
}
.scn-ancient-engines .desk {
  position: absolute; bottom: 10%; left: 10%; width: 70%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5), 0 -2px 4px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(10deg);
}
.scn-ancient-engines .lamp-glow {
  position: absolute; top: 20%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0d080 0%, #c09050 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(192,144,80,0.4);
  animation: ae1-lamp-flicker 3s ease-in-out infinite;
}
.scn-ancient-engines .catapult-model {
  position: absolute; bottom: 28%; left: 30%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  clip-path: polygon(0% 100%, 15% 0%, 85% 0%, 100% 100%, 70% 80%, 30% 80%);
  animation: ae1-catapult 8s ease-in-out infinite;
}
.scn-ancient-engines .scroll {
  position: absolute; bottom: 34%; left: 55%; width: 50px; height: 8px;
  background: linear-gradient(180deg, #c0a870 0%, #8a6a40 100%);
  border-radius: 4px;
  transform: rotate(-25deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-ancient-engines .figure-unc {
  position: absolute; bottom: 18%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: ae1-gesture 5s ease-in-out infinite;
}
.scn-ancient-engines .figure-trim2 {
  position: absolute; bottom: 18%; right: 20%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ae1-gesture 5s ease-in-out infinite alternate;
}
.scn-ancient-engines .shadow-desk {
  position: absolute; bottom: 8%; left: 10%; width: 70%; height: 6%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%);
}
@keyframes ae1-lamp-flicker {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.85; transform: scale(0.98); }
}
@keyframes ae1-catapult {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ae1-gesture {
  0% { transform: translateX(0) rotate(-3deg); }
  40% { transform: translateX(6px) rotate(1deg); }
  80% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* ===== bromides-repentance ===== */
.scn-bromides-repentance {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #4a3a2a 100%), 
              radial-gradient(ellipse at 50% 80%, #5a3a20 0%, transparent 70%);
}
.scn-bromides-repentance .hearth-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1008 0%, #2a1a10 30%, #3a2a1a 70%, #1a1008 100%);
}
.scn-bromides-repentance .hearth-fire {
  position: absolute; bottom: 10%; left: 10%; width: 30%; height: 30%;
  background: radial-gradient(ellipse 40% 50% at 30% 60%, #f08040 0%, #d06020 30%, #c04010 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(192,64,16,0.3);
  animation: re1-fire 2s ease-in-out infinite alternate;
}
.scn-bromides-repentance .window-moon {
  position: absolute; top: 10%; right: 10%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #0a1420 0%, #1a2a3a 100%);
  border: 4px solid #4a3a2a;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
.scn-bromides-repentance .window-moon::after {
  content: '';
  position: absolute; top: 10%; left: 10%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0e8d0 0%, #c0b090 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(192,176,144,0.4);
  animation: re1-moon 12s ease-in-out infinite;
}
.scn-bromides-repentance .bridge-model {
  position: absolute; bottom: 30%; left: 25%; width: 100px; height: 16px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  transform: translateX(-50%);
  animation: re1-bridge 6s ease-in-out infinite;
}
.scn-bromides-repentance .figure-speaker {
  position: absolute; bottom: 24%; left: 45%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: re1-speaker 4s ease-in-out infinite;
}
.scn-bromides-repentance .chair {
  position: absolute; bottom: 20%; right: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-bromides-repentance .candle {
  position: absolute; bottom: 40%; right: 15%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #e0c080 0%, #c09040 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(192,144,64,0.3);
  animation: re1-candle 3s ease-in-out infinite alternate;
}
@keyframes re1-fire {
  0% { transform: scale(1) rotate(0); opacity: 0.9; }
  50% { transform: scale(1.05) rotate(3deg); opacity: 1; }
  100% { transform: scale(0.98) rotate(-2deg); opacity: 0.85; }
}
@keyframes re1-moon {
  0% { transform: translate(0,0); opacity: 0.8; }
  50% { transform: translate(2px,-2px); opacity: 1; }
  100% { transform: translate(-1px,1px); opacity: 0.9; }
}
@keyframes re1-bridge {
  0% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes re1-speaker {
  0% { transform: translateX(0) rotate(0); }
  40% { transform: translateX(3px) rotate(-2deg); }
  80% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes re1-candle {
  0% { height: 16px; opacity: 0.9; }
  50% { height: 18px; opacity: 1; }
  100% { height: 15px; opacity: 0.85; }
}

/* ===== bridge-design ===== */
.scn-bridge-design {
  background: linear-gradient(180deg, #1a1510 0%, #2a2018 40%, #3a2a1a 100%), 
              radial-gradient(circle at 60% 20%, #4a3a2a 0%, transparent 60%);
}
.scn-bridge-design .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 25%, #3a2a1a 50%, #4a3a2a 75%, #3a2a1a 100%);
  background-size: 20px 100%;
}
.scn-bridge-design .table-blueprint {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(135deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  transform: perspective(600px) rotateX(5deg);
}
.scn-bridge-design .hinge-left {
  position: absolute; bottom: 38%; left: 25%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: right center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: bd1-hinge 5s ease-in-out infinite;
}
.scn-bridge-design .hinge-right {
  position: absolute; bottom: 38%; right: 20%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  transform-origin: left center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: bd1-hinge 5s ease-in-out infinite reverse;
}
.scn-bridge-design .figure-engineer {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: bd1-point 4s ease-in-out infinite;
}
.scn-bridge-design .figure-helper {
  position: absolute; bottom: 20%; right: 28%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bd1-point 4s ease-in-out infinite alternate;
}
.scn-bridge-design .lamp-overhead {
  position: absolute; top: 5%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, #c0a070 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(192,160,112,0.3);
  transform: translateX(-50%);
  animation: bd1-lamp 3s ease-in-out infinite alternate;
}
@keyframes bd1-hinge {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-30deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes bd1-point {
  0% { transform: translateX(0) rotate(-3deg); }
  40% { transform: translateX(4px) rotate(1deg); }
  80% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes bd1-lamp {
  0% { opacity: 0.8; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.04); }
  100% { opacity: 0.85; transform: translateX(-50%) scale(0.98); }
}

.scn-map-tactics {
  background: linear-gradient(180deg, #2a1e12 0%, #1f1610 40%, #1a100a 100%),
              radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-map-tactics .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%);
}
.scn-map-tactics .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a100a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-map-tactics .desk {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(135deg, #5a4030 0%, #3a2818 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  transform: perspective(600px) rotateX(10deg);
  transform-origin: bottom center;
  animation: mt-desk 8s ease-in-out infinite alternate;
}
.scn-map-tactics .map {
  position: absolute; bottom: 32%; left: 15%; width: 50%; height: 14%;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 60%, #5a4a2a 100%);
  border-radius: 2% 2% 0 0;
  transform: skewX(-5deg);
  box-shadow: inset 0 2px 4px rgba(0,0,0,.3);
  animation: mt-map 12s ease-in-out infinite;
}
.scn-map-tactics .candle {
  position: absolute; bottom: 38%; right: 20%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8b080 40%, #a08060 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(232,208,160,.5);
  animation: mt-candle 3s ease-in-out infinite alternate;
}
.scn-map-tactics .sentry-box {
  position: absolute; bottom: 30%; left: 5%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(3deg);
  box-shadow: 2px 4px 8px rgba(0,0,0,.4);
  animation: mt-box 6s ease-in-out infinite alternate;
}
.scn-map-tactics .figure {
  position: absolute; bottom: 26%; right: 8%; width: 24px; height: 48px;
  background: radial-gradient(ellipse at 50% 30%, #2a1e12 0%, #1a100a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mt-figure 5s ease-in-out infinite;
}
@keyframes mt-desk {
  0% { transform: perspective(600px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(600px) rotateX(12deg) translateY(-2px); }
  100% { transform: perspective(600px) rotateX(8deg) translateY(0); }
}
@keyframes mt-map {
  0% { transform: skewX(-5deg) translateX(0); }
  30% { transform: skewX(-3deg) translateX(2px); }
  70% { transform: skewX(-6deg) translateX(-1px); }
  100% { transform: skewX(-5deg) translateX(0); }
}
@keyframes mt-candle {
  0% { transform: scaleY(1); opacity: 0.9; box-shadow: 0 0 18px 8px rgba(232,208,160,.4); }
  50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 28px 14px rgba(232,208,160,.6); }
  100% { transform: scaleY(0.95); opacity: 0.85; box-shadow: 0 0 12px 4px rgba(232,208,160,.3); }
}
@keyframes mt-box {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-1px); }
  100% { transform: rotate(1deg) translateY(0); }
}
@keyframes mt-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* ---------- hand-tactics ---------- */
.scn-hand-tactics {
  background: linear-gradient(180deg, #2a1e14 0%, #1f140c 50%, #140a06 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-hand-tactics .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-hand-tactics .hand-left {
  position: absolute; bottom: 30%; left: 15%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 40%, #d0b090 0%, #a08060 60%, #6a5040 100%);
  border-radius: 40% 50% 50% 40% / 60% 50% 50% 60%;
  transform: rotate(10deg);
  animation: ht-hl 6s ease-in-out infinite alternate;
}
.scn-hand-tactics .hand-right {
  position: absolute; bottom: 28%; right: 10%; width: 55px; height: 75px;
  background: radial-gradient(ellipse at 50% 30%, #d8b898 0%, #a88868 60%, #6a5040 100%);
  border-radius: 50% 40% 40% 50% / 50% 60% 60% 50%;
  transform: rotate(-15deg);
  animation: ht-hr 7s ease-in-out infinite alternate;
}
.scn-hand-tactics .finger-point {
  position: absolute; bottom: 45%; left: 45%; width: 18px; height: 26px;
  background: linear-gradient(180deg, #e0c0a0 0%, #c0a080 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: ht-finger 4s ease-in-out infinite;
}
.scn-hand-tactics .pipe {
  position: absolute; bottom: 35%; right: 30%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(30deg);
  animation: ht-pipe 5s ease-in-out infinite alternate;
}
.scn-hand-tactics .smoke-1 {
  position: absolute; bottom: 60%; right: 28%; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(200,180,160,.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ht-smoke-1 4s ease-out infinite;
}
.scn-hand-tactics .smoke-2 {
  position: absolute; bottom: 65%; right: 32%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ht-smoke-2 5s ease-out infinite 2s;
}
@keyframes ht-hl {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-3px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes ht-hr {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  100% { transform: rotate(-18deg) translateY(0); }
}
@keyframes ht-finger {
  0% { transform: rotate(20deg) scaleY(1); }
  50% { transform: rotate(25deg) scaleY(1.1); }
  100% { transform: rotate(15deg) scaleY(1); }
}
@keyframes ht-pipe {
  0% { transform: rotate(30deg) translateX(0); }
  50% { transform: rotate(33deg) translateX(-2px); }
  100% { transform: rotate(27deg) translateX(0); }
}
@keyframes ht-smoke-1 {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  100% { transform: translateY(-40px) scale(2.5); opacity: 0; }
}
@keyframes ht-smoke-2 {
  0% { transform: translateY(0) scale(1); opacity: 0.5; }
  100% { transform: translateY(-50px) scale(3); opacity: 0; }
}

/* ---------- leg-tactics ---------- */
.scn-leg-tactics {
  background: linear-gradient(180deg, #1f1610 0%, #1a100a 40%, #140a06 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-leg-tactics .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #2a1e12 0%, #1f140c 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-leg-tactics .leg-left {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140c 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  transform-origin: top center;
  animation: lt-leg-l 6s ease-in-out infinite alternate;
}
.scn-leg-tactics .leg-right {
  position: absolute; bottom: 18%; right: 30%; width: 32px; height: 65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-8deg);
  transform-origin: top center;
  animation: lt-leg-r 7s ease-in-out infinite alternate;
}
.scn-leg-tactics .sentry-box {
  position: absolute; bottom: 25%; left: 10%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 4px 8px rgba(0,0,0,.4);
  animation: lt-box 5s ease-in-out infinite;
}
.scn-leg-tactics .shadow {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: lt-shadow 8s ease-in-out infinite alternate;
}
.scn-leg-tactics .glow {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,208,128,.3);
  animation: lt-glow 3s ease-in-out infinite alternate;
}
@keyframes lt-leg-l {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-4px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes lt-leg-r {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-3px); }
  100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes lt-box {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(1deg); }
  70% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lt-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(1.1) scaleY(1.2); opacity: 0.9; }
  100% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
}
@keyframes lt-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}

/* ---------- fortifications-destroyed ---------- */
.scn-fortifications-destroyed {
  background: linear-gradient(180deg, #2e2a34 0%, #1f1c26 30%, #141118 70%, #0e0c12 100%),
              radial-gradient(ellipse at 50% 0%, #3a3644 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-fortifications-destroyed .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a3644 0%, #2e2a34 60%, #1f1c26 100%);
  animation: fd-sky 15s ease-in-out infinite alternate;
}
.scn-fortifications-destroyed .ruins-wall {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(135deg, #4a424c 0%, #2a2630 100%);
  border-radius: 10% 10% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.6);
  transform: scaleX(0.85);
  animation: fd-wall 20s ease-in-out infinite alternate;
}
.scn-fortifications-destroyed .basin {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #3a3e4a 0%, #1a1e28 100%);
  border-radius: 50% / 30% 30% 60% 60%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
  animation: fd-basin 12s ease-in-out infinite alternate;
}
.scn-fortifications-destroyed .mole {
  position: absolute; bottom: 22%; left: 45%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #4a4640 0%, #2a2822 100%);
  border-radius: 20% 20% 40% 40% / 40% 40% 20% 20%;
  transform: rotate(-5deg);
  animation: fd-mole 9s ease-in-out infinite alternate;
}
.scn-fortifications-destroyed .figure {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #1a1820 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fd-figure 6s ease-in-out infinite;
}
.scn-fortifications-destroyed .rubble {
  position: absolute; bottom: 16%; left: 20%; right: 20%; height: 10px;
  background: radial-gradient(ellipse at 30% 50%, #3a3640 0%, transparent 70%),
              radial-gradient(ellipse at 70% 50%, #2a2630 0%, transparent 60%);
  filter: blur(2px);
  animation: fd-rubble 14s ease-in-out infinite alternate;
}
.scn-fortifications-destroyed .ember-1 {
  position: absolute; bottom: 40%; left: 30%; width: 4px; height: 4px;
  background: radial-gradient(circle, #c8553d 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #c8553d;
  animation: fd-ember-1 3s ease-in-out infinite;
}
.scn-fortifications-destroyed .ember-2 {
  position: absolute; bottom: 38%; right: 25%; width: 3px; height: 3px;
  background: radial-gradient(circle, #5e1a1d 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 1px #5e1a1d;
  animation: fd-ember-2 4s ease-in-out infinite 1.5s;
}
@keyframes fd-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes fd-wall {
  0% { transform: scaleX(0.85) translateY(0); }
  50% { transform: scaleX(0.87) translateY(-2px); }
  100% { transform: scaleX(0.83) translateY(0); }
}
@keyframes fd-basin {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.02) rotate(1deg); }
  100% { transform: scaleY(0.98) rotate(-1deg); }
}
@keyframes fd-mole {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-7deg) translateX(-1px); }
}
@keyframes fd-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-2px) rotate(-2deg); }
  70% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fd-rubble {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.3); }
  100% { opacity: 0.4; transform: scaleY(0.9); }
}
@keyframes fd-ember-1 {
  0% { transform: translate(0, 0) scale(1); opacity: 0.8; }
  50% { transform: translate(3px, -6px) scale(1.4); opacity: 0.4; }
  100% { transform: translate(-2px, -3px) scale(0.8); opacity: 0.6; }
}
@keyframes fd-ember-2 {
  0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  50% { transform: translate(-2px, -8px) scale(1.6); opacity: 0.2; }
  100% { transform: translate(1px, -4px) scale(0.9); opacity: 0.5; }
}

.scn-bridge-misunderstanding {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 70%, #6a5a4a 0%, transparent 60%);
}
.scn-bridge-misunderstanding .bg-walls {
  position: absolute; inset: 0; background: linear-gradient(135deg, #5a4a3a 0%, #2a1a0a 100%);
  animation: bm-walls 12s ease-in-out infinite alternate;
}
.scn-bridge-misunderstanding .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: bm-table 8s ease-in-out infinite;
}
.scn-bridge-misunderstanding .bridge {
  position: absolute; bottom: 40%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(90deg, #8a7a5a 0%, #b8a88a 40%, #8a7a5a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: bm-bridge 6s ease-in-out infinite;
}
.scn-bridge-misunderstanding .figure-toby {
  position: absolute; bottom: 42%; left: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bm-toby 4s ease-in-out infinite;
}
.scn-bridge-misunderstanding .figure-trim {
  position: absolute; bottom: 42%; left: 58%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bm-trim 4s ease-in-out infinite 0.5s;
}
.scn-bridge-misunderstanding .candle-flame {
  position: absolute; bottom: 48%; left: 45%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,.3);
  animation: bm-candle 2s ease-in-out infinite alternate;
}
.scn-bridge-misunderstanding .shadow {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: bm-shadow 6s ease-in-out infinite;
}
@keyframes bm-walls {
  0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 }
}
@keyframes bm-table {
  0%,100% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-2px) scaleY(1.02) }
}
@keyframes bm-bridge {
  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 bm-toby {
  0% { transform: translateX(0) rotate(0deg) }
  30% { transform: translateX(4px) rotate(3deg) }
  60% { transform: translateX(-2px) rotate(-2deg) }
  100% { transform: translateX(0) rotate(0deg) }
}
@keyframes bm-trim {
  0% { transform: translateX(0) rotate(0deg) }
  30% { transform: translateX(-3px) rotate(-3deg) }
  60% { transform: translateX(2px) rotate(2deg) }
  100% { transform: translateX(0) rotate(0deg) }
}
@keyframes bm-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: .9 }
  50% { transform: scaleY(1.3) scaleX(.9); opacity: 1 }
  100% { transform: scaleY(.9) scaleX(1.1); opacity: .85 }
}
@keyframes bm-shadow {
  0%,100% { transform: scaleX(1) scaleY(1); opacity: .3 }
  50% { transform: scaleX(1.2) scaleY(.8); opacity: .5 }
}

.scn-nose-bridge {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #0a0505 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a2a 0%, transparent 70%);
}
.scn-nose-bridge .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a0a0a 0%, #0a0505 100%);
  animation: nb-bg 15s ease-in-out infinite alternate;
}
.scn-nose-bridge .candlelight {
  position: absolute; top: 30%; left: 45%; width: 16px; height: 20px;
  background: radial-gradient(circle, #e0b080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(192,128,64,.4), 0 0 80px 40px rgba(192,128,64,.2);
  animation: nb-candle 3s ease-in-out infinite alternate;
}
.scn-nose-bridge .face-profile {
  position: absolute; top: 20%; right: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 70% 30% 40% 60% / 60% 40% 60% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,.7);
  animation: nb-face 8s ease-in-out infinite;
}
.scn-nose-bridge .hand {
  position: absolute; top: 45%; left: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: 50% 100%;
  animation: nb-hand 5s ease-in-out infinite;
}
.scn-nose-bridge .cotton {
  position: absolute; top: 48%; left: 32%; width: 14px; height: 10px;
  background: radial-gradient(circle, #c8b8a8 0%, #a89888 100%);
  border-radius: 50%; filter: blur(1px);
  animation: nb-cotton 4s ease-in-out infinite alternate;
}
.scn-nose-bridge .whalebone {
  position: absolute; top: 48%; left: 38%; width: 20px; height: 4px;
  background: linear-gradient(90deg, #b8a888 0%, #d8c8b8 100%);
  border-radius: 2px; transform: rotate(-30deg);
  animation: nb-whalebone 4s ease-in-out infinite alternate;
}
.scn-nose-bridge .bridge {
  position: absolute; top: 47%; left: 30%; width: 22px; height: 6px;
  background: linear-gradient(90deg, #a09080 0%, #c0b0a0 50%, #a09080 100%);
  border-radius: 3px; box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: nb-bridge 4s ease-in-out infinite alternate;
}
.scn-nose-bridge .shadow-nose {
  position: absolute; top: 25%; left: 38%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: nb-shadow 6s ease-in-out infinite;
}
@keyframes nb-bg {
  0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 }
}
@keyframes nb-candle {
  0% { transform: scale(1) rotate(0deg); opacity: .8 }
  50% { transform: scale(1.1) rotate(2deg); opacity: 1 }
  100% { transform: scale(.95) rotate(-2deg); opacity: .85 }
}
@keyframes nb-face {
  0%,100% { transform: translateX(0) rotate(0deg) }
  50% { transform: translateX(4px) rotate(-2deg) }
}
@keyframes nb-hand {
  0% { transform: rotate(0deg) translateX(0) }
  30% { transform: rotate(8deg) translateX(3px) }
  60% { transform: rotate(-5deg) translateX(-2px) }
  100% { transform: rotate(0deg) translateX(0) }
}
@keyframes nb-cotton {
  0% { transform: scaleX(1) scaleY(1) }
  50% { transform: scaleX(1.3) scaleY(.8) }
  100% { transform: scaleX(.9) scaleY(1.1) }
}
@keyframes nb-whalebone {
  0% { transform: rotate(-30deg) translateX(0) }
  50% { transform: rotate(-20deg) translateX(5px) }
  100% { transform: rotate(-35deg) translateX(-3px) }
}
@keyframes nb-bridge {
  0% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-2px) scaleY(1.2) }
  100% { transform: translateY(1px) scaleY(.9) }
}
@keyframes nb-shadow {
  0%,100% { transform: scale(1); opacity: .4 }
  50% { transform: scale(1.2); opacity: .6 }
}

.scn-fathers-despair {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 70% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-fathers-despair .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3a 0%, #0a0a1a 100%);
  animation: fd-bg 10s ease-in-out infinite alternate;
}
.scn-fathers-despair .window {
  position: absolute; top: 10%; right: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.4);
  animation: fd-window 8s ease-in-out infinite;
}
.scn-fathers-despair .storm-cloud {
  position: absolute; top: 10%; right: 10%; width: 30%; height: 20%;
  background: linear-gradient(180deg, rgba(30,40,50,.7) 0%, rgba(10,20,30,.4) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: fd-cloud 15s linear infinite;
}
.scn-fathers-despair .desk {
  position: absolute; bottom: 25%; left: 15%; right: 40%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: fd-desk 6s ease-in-out infinite;
}
.scn-fathers-despair .figure-father {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fd-father 7s ease-in-out infinite;
}
.scn-fathers-despair .candle {
  position: absolute; bottom: 35%; left: 12%; width: 10px; height: 16px;
  background: radial-gradient(circle, #e0a060 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(192,128,64,.5), 0 0 60px 20px rgba(192,128,64,.2);
  animation: fd-candle 3s ease-in-out infinite alternate;
}
.scn-fathers-despair .papers {
  position: absolute; bottom: 28%; left: 25%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #c8b8a8 0%, #a89888 100%);
  border-radius: 2px; transform: rotate(10deg); box-shadow: 2px 2px 4px rgba(0,0,0,.3);
  animation: fd-papers 5s ease-in-out infinite;
}
@keyframes fd-bg {
  0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 }
}
@keyframes fd-window {
  0%,100% { opacity: .6 } 50% { opacity: 1 }
}
@keyframes fd-cloud {
  0% { transform: translateX(0) scaleX(1) }
  50% { transform: translateX(-20px) scaleX(1.1) }
  100% { transform: translateX(10px) scaleX(.9) }
}
@keyframes fd-desk {
  0%,100% { transform: translateY(0) }
  50% { transform: translateY(-3px) }
}
@keyframes fd-father {
  0% { transform: rotate(0deg) scaleY(1) }
  30% { transform: rotate(-10deg) scaleY(1.05) }
  60% { transform: rotate(5deg) scaleY(.95) }
  100% { transform: rotate(0deg) scaleY(1) }
}
@keyframes fd-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: .8 }
  50% { transform: scaleY(1.2) scaleX(.9); opacity: 1 }
  100% { transform: scaleY(.9) scaleX(1.1); opacity: .75 }
}
@keyframes fd-papers {
  0%,100% { transform: rotate(10deg) translateX(0) }
  50% { transform: rotate(15deg) translateX(5px) }
}

.scn-horizontal-position {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #0a0505 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a2a 0%, transparent 70%);
}
.scn-horizontal-position .bg-bedroom {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a0a0a 0%, #0a0505 100%);
  animation: hp-bg 12s ease-in-out infinite alternate;
}
.scn-horizontal-position .bed-frame {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 8% 8%; box-shadow: 0 10px 30px rgba(0,0,0,.7);
  animation: hp-frame 8s ease-in-out infinite;
}
.scn-horizontal-position .mattress {
  position: absolute; bottom: 18%; left: 12%; right: 12%; height: 18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: inset 0 6px 12px rgba(0,0,0,.4);
  animation: hp-mattress 6s ease-in-out infinite;
}
.scn-horizontal-position .figure-prostrate {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 14%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: center bottom;
  animation: hp-figure 10s ease-in-out infinite;
}
.scn-horizontal-position .candle-left {
  position: absolute; bottom: 30%; left: 8%; width: 10px; height: 16px;
  background: radial-gradient(circle, #e0a060 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(192,128,64,.5), 0 0 60px 20px rgba(192,128,64,.2);
  animation: hp-candle 3s ease-in-out infinite alternate;
}
.scn-horizontal-position .shadow-bed {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
  animation: hp-shadow 8s ease-in-out infinite;
}
.scn-horizontal-position .drapery {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, transparent 100%);
  border-radius: 0 0 60% 60% / 0 0 40% 40%;
  animation: hp-drape 12s ease-in-out infinite;
}
@keyframes hp-bg {
  0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 }
}
@keyframes hp-frame {
  0%,100% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-2px) scaleY(1.02) }
}
@keyframes hp-mattress {
  0%,100% { transform: translateY(0) }
  50% { transform: translateY(-3px) }
}
@keyframes hp-figure {
  0% { transform: rotate(0deg) scaleY(1) translateY(0) }
  30% { transform: rotate(2deg) scaleY(1.03) translateY(-2px) }
  60% { transform: rotate(-3deg) scaleY(.97) translateY(1px) }
  100% { transform: rotate(0deg) scaleY(1) translateY(0) }
}
@keyframes hp-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: .8 }
  50% { transform: scaleY(1.2) scaleX(.9); opacity: 1 }
  100% { transform: scaleY(.9) scaleX(1.1); opacity: .75 }
}
@keyframes hp-shadow {
  0%,100% { transform: scaleX(1); opacity: .4 }
  50% { transform: scaleX(1.2); opacity: .6 }
}
@keyframes hp-drape {
  0% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-5px) scaleY(1.05) }
  100% { transform: translateY(3px) scaleY(.95) }
}

.scn-julias-letter { background: linear-gradient(180deg, #141126 0%, #2a1e3e 40%, #1f1a2e 100%), radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 70%); }
.scn-julias-letter .window-frame { position:absolute; left:35%; top:15%; width:30%; height:55%; border:4px solid #3a2a1a; border-radius:4px; background: transparent; box-shadow:inset 0 0 20px rgba(0,0,0,.5); animation: jl-frame 6s ease-in-out infinite; }
.scn-julias-letter .window-glow { position:absolute; left:35%; top:15%; width:30%; height:55%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,140,.3) 0%, transparent 70%); animation: jl-glow-pulse 8s ease-in-out infinite alternate; }
.scn-julias-letter .figure { position:absolute; left:48%; bottom:15%; width:22px; height:60px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: jl-sigh 4s ease-in-out infinite; }
.scn-julias-letter .letter { position:absolute; left:42%; bottom:35%; width:28px; height:36px; background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 100%); border-radius:2px; box-shadow:0 2px 8px rgba(0,0,0,.4); transform: rotate(-5deg); animation: jl-letter 5s ease-in-out infinite; }
.scn-julias-letter .candle { position:absolute; right:35%; bottom:30%; width:10px; height:22px; background: linear-gradient(0deg, #c08040 0%, #e0a050 60%, #ffd080 100%); border-radius:2px 2px 4px 4px; animation: jl-candle 3s ease-in-out infinite; }
.scn-julias-letter .candle-glow { position:absolute; right:35%; bottom:30%; width:30px; height:30px; margin:0 -10px; background: radial-gradient(circle, rgba(255,200,100,.6) 0%, transparent 70%); animation: jl-candle-glow 2s ease-in-out infinite alternate; }
@keyframes jl-frame { 0% { box-shadow:inset 0 0 15px rgba(0,0,0,.4), 0 0 8px rgba(0,0,0,.2); } 50% { box-shadow:inset 0 0 25px rgba(0,0,0,.6), 0 0 12px rgba(0,0,0,.3); } 100% { box-shadow:inset 0 0 10px rgba(0,0,0,.3), 0 0 4px rgba(0,0,0,.1); } }
@keyframes jl-glow-pulse { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.2; } }
@keyframes jl-sigh { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes jl-letter { 0%,100% { transform: rotate(-5deg) translate(0); } 50% { transform: rotate(-3deg) translate(2px,-1px); } }
@keyframes jl-candle { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(.95) translateY(1px); } }
@keyframes jl-candle-glow { 0% { opacity:.4; transform: scale(1); } 100% { opacity:.8; transform: scale(1.2); } }

.scn-julias-suffering { background: linear-gradient(180deg, #0e1a2a 0%, #1a283e 40%, #0e1422 100%), radial-gradient(ellipse at 50% 80%, #1a3040 0%, transparent 70%); }
.scn-julias-suffering .window { position:absolute; right:25%; top:10%; width:40%; height:60%; border:3px solid #1a2a3a; border-radius:6px; background: rgba(20,30,50,.7); box-shadow:inset 0 0 30px rgba(0,0,0,.7); animation: js-window 10s ease-in-out infinite alternate; }
.scn-julias-suffering .moon { position:absolute; right:28%; top:15%; width:40px; height:40px; background: radial-gradient(circle at 40% 40%, #c8d8f0 0%, #8898b0 100%); border-radius:50%; box-shadow: 0 0 20px rgba(100,140,200,.4); animation: js-moon-drift 20s linear infinite; }
.scn-julias-suffering .figure { position:absolute; left:35%; bottom:10%; width:28px; height:55px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a18 100%); border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%; transform-origin: center bottom; animation: js-sway 5s ease-in-out infinite; }
.scn-julias-suffering .tear-1 { position:absolute; left:37%; bottom:38%; width:4px; height:8px; background: radial-gradient(circle at 50% 30%, #b0c8e0 0%, transparent 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; animation: js-tear 3s ease-in-out infinite; }
.scn-julias-suffering .tear-2 { position:absolute; left:34%; bottom:36%; width:3px; height:6px; background: radial-gradient(circle at 50% 30%, #a0b8d0 0%, transparent 100%); border-radius:50%; animation: js-tear 4.5s ease-in-out infinite 0.5s; }
.scn-julias-suffering .shadow { position:absolute; left:30%; bottom:5%; width:60px; height:10px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 70%); border-radius:50%; animation: js-shadow 5s ease-in-out infinite; }
@keyframes js-window { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.4; } }
@keyframes js-moon-drift { 0% { transform: translate(0,0); } 50% { transform: translate(10px,5px); } 100% { transform: translate(0,0); } }
@keyframes js-sway { 0%,100% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 75% { transform: translateY(-2px) rotate(0deg); } }
@keyframes js-tear { 0% { transform: translateY(0) scale(1); opacity:.8; } 50% { transform: translateY(10px) scale(1.2); opacity:1; } 100% { transform: translateY(20px) scale(.6); opacity:0; } }
@keyframes js-shadow { 0%,100% { transform: scaleX(1); opacity:.3; } 50% { transform: scaleX(.9); opacity:.2; } }

.scn-diegos-response { background: linear-gradient(180deg, #f2c896 0%, #e8b87a 30%, #c89050 70%, #a07040 100%), radial-gradient(ellipse at 50% 0%, #fce0b0 0%, transparent 50%); }
.scn-diegos-response .wall { position:absolute; left:20%; bottom:15%; width:60%; height:60%; background: linear-gradient(180deg, #d0b880 0%, #b09868 100%); border-radius:8px 8px 0 0; box-shadow:inset 0 -10px 20px rgba(0,0,0,.3); animation: dr-wall 12s ease-in-out infinite alternate; }
.scn-diegos-response .charcoal { position:absolute; left:35%; bottom:40%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 50%, #1a1a1a 0%, #2a2a2a 60%, transparent 100%); border-radius:20% 40% 30% 50%; transform: rotate(10deg); animation: dr-charcoal 4s ease-in-out infinite; }
.scn-diegos-response .figure { position:absolute; right:30%; bottom:20%; width:24px; height:58px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: dr-figure 6s ease-in-out infinite; }
.scn-diegos-response .letter { position:absolute; right:25%; bottom:45%; width:32px; height:42px; background: linear-gradient(135deg, #f0e4cc 0%, #dcc8a8 100%); transform: rotate(12deg); box-shadow:0 2px 6px rgba(0,0,0,.3); animation: dr-letter 5s ease-in-out infinite alternate; }
.scn-diegos-response .sunrise { position:absolute; left:10%; top:10%; width:80px; height:80px; background: radial-gradient(circle at 50% 50%, #ffd080 0%, #f0a050 40%, #d08030 70%, transparent 100%); border-radius:50%; box-shadow:0 0 60px 20px rgba(255,200,100,.4); animation: dr-sunrise 20s linear infinite; }
.scn-diegos-response .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 20%, rgba(255,220,160,.3) 0%, transparent 60%); animation: dr-glow 8s ease-in-out infinite alternate; }
@keyframes dr-wall { 0% { box-shadow:inset 0 -10px 20px rgba(0,0,0,.3); } 50% { box-shadow:inset 0 -15px 30px rgba(0,0,0,.5); } 100% { box-shadow:inset 0 -5px 10px rgba(0,0,0,.2); } }
@keyframes dr-charcoal { 0%,100% { transform: rotate(10deg) translate(0); } 50% { transform: rotate(14deg) translate(1px,-1px); } }
@keyframes dr-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(3deg); } 60% { transform: translateY(0) rotate(-1deg); } }
@keyframes dr-letter { 0% { transform: rotate(12deg) translate(0); } 100% { transform: rotate(8deg) translate(2px,-2px); } }
@keyframes dr-sunrise { 0% { transform: scale(.8) translateX(0); opacity:.6; } 50% { transform: scale(1) translateX(-20px); opacity:1; } 100% { transform: scale(.9) translateX(10px); opacity:.7; } }
@keyframes dr-glow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.2; } }

.scn-reunion { background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 30%, #f0d8b0 60%, #d0a070 100%), radial-gradient(ellipse at 50% 100%, #b0d0e0 0%, transparent 60%); }
.scn-reunion .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0d8f0 0%, #f0e8c0 100%); animation: re-sky 15s ease-in-out infinite alternate; }
.scn-reunion .sun { position:absolute; top:12%; right:20%; width:50px; height:50px; background: radial-gradient(circle at 40% 40%, #fff0c0 0%, #ffd080 50%, #f0a050 100%); border-radius:50%; box-shadow:0 0 40px 10px rgba(255,220,120,.5); animation: re-sun 12s ease-in-out infinite alternate; }
.scn-reunion .hill-a { position:absolute; bottom:25%; left:0; right:40%; height:30%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); border-radius: 0 60% 0 0; animation: re-hill-a 20s linear infinite; }
.scn-reunion .hill-b { position:absolute; bottom:30%; left:40%; right:0; height:25%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 60% 0 0 0; animation: re-hill-b 25s linear infinite reverse; }
.scn-reunion .horse-1 { position:absolute; left:20%; bottom:10%; width:60px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 60% 20% 20% / 60% 60% 30% 30%; animation: re-horse-gallop 4s ease-in-out infinite; }
.scn-reunion .horse-2 { position:absolute; left:45%; bottom:8%; width:60px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 60% 20% 20% / 60% 60% 30% 30%; animation: re-horse-gallop 4s ease-in-out infinite 2s; }
.scn-reunion .road { position:absolute; bottom:0; left:5%; right:5%; height:12%; background: linear-gradient(0deg, #c0a060 0%, #a08040 100%); border-radius: 20% 20% 0 0; animation: re-road 10s ease-in-out infinite alternate; }
@keyframes re-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes re-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-10px) scale(1.05); } 100% { transform: translateX(0) scale(.95); } }
@keyframes re-hill-a { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes re-hill-b { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes re-horse-gallop { 0%,100% { transform: translateX(0) rotate(0deg) scaleX(1); } 25% { transform: translateX(10px) rotate(3deg) scaleX(1.02); } 50% { transform: translateX(20px) rotate(-2deg) scaleX(.98); } 75% { transform: translateX(30px) rotate(2deg) scaleX(1); } }
@keyframes re-road { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.05); opacity:1; } 100% { transform: scaleY(.95); opacity:.9; } }

.scn-fine-chains-lost { background: linear-gradient(180deg, #3a2a1a 0%, #1f1510 50%, #140f0c 100%), radial-gradient(ellipse at 50% 0%, #5a3a1a 0%, transparent 70%); }
.scn-fine-chains-lost .bg    { position:absolute; inset:0; background: linear-gradient(135deg, #2a1e14 0%, #1a120c 100%); animation: fc1-bg 20s ease-in-out infinite alternate; }
.scn-fine-chains-lost .wall  { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-fine-chains-lost .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120c 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; animation: fc1-floor 15s ease-in-out infinite; }
.scn-fine-chains-lost .chair { position:absolute; bottom:25%; left:35%; width:80px; height:110px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%); border-radius: 10% 10% 5% 5% / 60% 60% 20% 20%; transform-origin: bottom center; animation: fc1-chair 4s ease-in-out infinite; }
.scn-fine-chains-lost .figure{ position:absolute; bottom:28%; left:38%; width:40px; height:70px; background: linear-gradient(180deg, #1a1510 0%, #0f0c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fc1-figure 5s ease-in-out infinite; }
.scn-fine-chains-lost .chain { position:absolute; top:20%; left:45%; width:6px; height:80px; background: linear-gradient(180deg, #c8a870 0%, #8a6a40 100%); border-radius: 50%; filter: blur(1px); animation: fc1-chain 3s ease-in-out infinite alternate; }
.scn-fine-chains-lost .lamp  { position:absolute; top:15%; left:20%; width:20px; height:20px; background: radial-gradient(circle, #f0c868 0%, #c09040 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(240,200,104,.5), 0 0 60px 20px rgba(240,200,104,.3); animation: fc1-lamp 2s ease-in-out infinite alternate; }
.scn-fine-chains-lost .shadow{ position:absolute; bottom:25%; left:30%; width:120px; height:30px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 70%); border-radius: 50%; animation: fc1-shadow 5s ease-in-out infinite; }
@keyframes fc1-bg    { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fc1-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fc1-chair { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes fc1-figure{ 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(0) } }
@keyframes fc1-chain { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(5deg) translateX(2px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes fc1-lamp  { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(1) } }
@keyframes fc1-shadow{ 0% { transform: scaleX(.95) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }

.scn-pineal-gland-doubt { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #3a3a5e 0%, transparent 70%); }
.scn-pineal-gland-doubt .bg    { position:absolute; inset:0; background: linear-gradient(135deg, #1e1e30 0%, #12121e 100%); animation: pg2-bg 25s ease-in-out infinite alternate; }
.scn-pineal-gland-doubt .head-profile { position:absolute; bottom:20%; left:30%; width:70px; height:90px; background: linear-gradient(180deg, #2a2a3e 0%, #14141e 100%); border-radius: 50% 40% 40% 50% / 60% 50% 40% 50%; transform-origin: bottom center; animation: pg2-head 6s ease-in-out infinite; }
.scn-pineal-gland-doubt .brain{ position:absolute; bottom:35%; left:34%; width:40px; height:30px; background: radial-gradient(ellipse, #8a7a5a 0%, #4a3a2a 100%); border-radius: 50%; opacity:.6; animation: pg2-brain 8s ease-in-out infinite; }
.scn-pineal-gland-doubt .hole { position:absolute; bottom:42%; left:36%; width:12px; height:12px; background: #0a0a12; border-radius: 50%; box-shadow: inset 0 0 6px #000; animation: pg2-hole 4s ease-in-out infinite alternate; }
.scn-pineal-gland-doubt .pineal-glow { position:absolute; bottom:40%; left:39%; width:8px; height:8px; background: radial-gradient(circle, #c0ffa0 0%, #60c060 70%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(96,192,96,.6), 0 0 40px 12px rgba(96,192,96,.3); animation: pg2-pineal 2s ease-in-out infinite alternate; }
.scn-pineal-gland-doubt .finger{ position:absolute; bottom:45%; left:18%; width:6px; height:30px; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: top center; animation: pg2-finger 4s ease-in-out infinite; }
.scn-pineal-gland-doubt .shadow{ position:absolute; bottom:20%; left:20%; width:120px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%); border-radius: 50%; animation: pg2-shadow 8s ease-in-out infinite; }
@keyframes pg2-bg    { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pg2-head  { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes pg2-brain { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(.98) } }
@keyframes pg2-hole  { 0% { transform: scale(1) } 50% { transform: scale(1.3) } 100% { transform: scale(1) } }
@keyframes pg2-pineal{ 0% { opacity:.7; transform: scale(.9) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.8; transform: scale(1) } }
@keyframes pg2-finger{ 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(10px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes pg2-shadow{ 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(.95) } }

.scn-cerebellum-theory { background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 50%, #1a120c 100%), radial-gradient(ellipse at 50% 100%, #6a5a3a 0%, transparent 70%); }
.scn-cerebellum-theory .bg    { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #1f1510 100%); animation: cb3-bg 30s ease-in-out infinite alternate; }
.scn-cerebellum-theory .desk  { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: cb3-desk 12s ease-in-out infinite; }
.scn-cerebellum-theory .book  { position:absolute; bottom:30%; left:20%; width:50px; height:35px; background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: rotate(-5deg); animation: cb3-book 10s ease-in-out infinite; }
.scn-cerebellum-theory .candle{ position:absolute; bottom:35%; left:50%; width:12px; height:40px; background: linear-gradient(180deg, #e0c8a0 0%, #b89870 100%); border-radius: 20% 20% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 0 20px 6px rgba(224,200,160,.6); animation: cb3-candle 3s ease-in-out infinite alternate; }
.scn-cerebellum-theory .figure{ position:absolute; bottom:22%; left:35%; width:35px; height:60px; background: linear-gradient(180deg, #1a1510 0%, #0f0c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cb3-figure 7s ease-in-out infinite; }
.scn-cerebellum-theory .brain-model{ position:absolute; bottom:30%; left:55%; width:30px; height:25px; background: radial-gradient(ellipse, #c8a870 0%, #8a6a40 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: cb3-model 5s ease-in-out infinite; }
.scn-cerebellum-theory .glow  { position:absolute; bottom:35%; left:48%; width:40px; height:40px; background: radial-gradient(circle, rgba(224,200,160,.4) 0%, transparent 70%); border-radius: 50%; animation: cb3-glow 4s ease-in-out infinite alternate; }
@keyframes cb3-bg    { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.88 } }
@keyframes cb3-desk  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cb3-book  { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes cb3-candle{ 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.9; transform: scaleY(.98) } }
@keyframes cb3-figure{ 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-1px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(0) } }
@keyframes cb3-model { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes cb3-glow  { 0% { opacity:.5; transform: scale(.9) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1) } }

.scn-birth-force-havoc { background: linear-gradient(180deg, #0a0a12 0%, #1a1a2e 30%, #0f0f1a 100%), radial-gradient(ellipse at 50% 0%, #2a2a4e 0%, transparent 70%); }
.scn-birth-force-havoc .bg   { position:absolute; inset:0; background: linear-gradient(135deg, #12121e 0%, #080812 100%); animation: bh4-bg 18s ease-in-out infinite alternate; }
.scn-birth-force-havoc .cerebrum { position:absolute; top:15%; left:35%; width:60px; height:55px; background: radial-gradient(ellipse, #5a4a3a 0%, #2a1e14 100%); border-radius: 50%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); animation: bh4-cerebrum 6s ease-in-out infinite; }
.scn-birth-force-havoc .cerebellum { position:absolute; top:45%; left:38%; width:30px; height:25px; background: radial-gradient(ellipse, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: inset 0 -6px 12px rgba(0,0,0,.5); animation: bh4-cerebellum 5s ease-in-out infinite alternate; }
.scn-birth-force-havoc .force{ position:absolute; top:5%; left:40%; width:80px; height:80px; background: radial-gradient(ellipse, #c8553d 0%, #8a3a2a 50%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: bh4-force 2s ease-in-out infinite alternate; }
.scn-birth-force-havoc .figure{ position:absolute; bottom:15%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bh4-figure 8s ease-in-out infinite; }
.scn-birth-force-havoc .debris{ position:absolute; top:30%; left:20%; width:6px; height:6px; background: #6a4a3a; border-radius: 50%; filter: blur(1px); animation: bh4-debris 3s linear infinite; }
.scn-birth-force-havoc .shockwave{ position:absolute; top:10%; left:30%; width:100px; height:100px; border: 2px solid rgba(200,85,61,.3); border-radius: 50%; animation: bh4-shock 4s ease-out infinite; }
@keyframes bh4-bg      { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bh4-cerebrum{ 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-8px) rotate(-3deg) } 60% { transform: translateY(0) rotate(3deg) } 100% { transform: translateY(-4px) rotate(0) } }
@keyframes bh4-cerebellum{ 0% { transform: scale(1) } 50% { transform: scale(1.15) } 100% { transform: scale(.95) } }
@keyframes bh4-force  { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.7; transform: scale(.9) } }
@keyframes bh4-figure { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(2deg) } 60% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(-2px) rotate(0) } }
@keyframes bh4-debris { 0% { transform: translate(0,0) scale(1); opacity:1 } 50% { transform: translate(20px,-20px) scale(1.5); opacity:.6 } 100% { transform: translate(40px,-40px) scale(.5); opacity:0 } }
@keyframes bh4-shock  { 0% { transform: scale(.5); opacity:.8 } 50% { transform: scale(1.5); opacity:.3 } 100% { transform: scale(2); opacity:0 } }

.scn-coat-pocket-fashions { background: 
  linear-gradient(180deg, #2a1a0e 0%, #1a0d04 40%, #3a2a18 100%),
  radial-gradient(ellipse at 50% 70%, #4a3a28 0%, transparent 80%);
}
.scn-coat-pocket-fashions .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a28 0%, #2a1a0e 100%); animation: cpf-wall 12s ease-in-out infinite alternate; }
.scn-coat-pocket-fashions .chair { position:absolute; bottom:15%; left:50%; width:120px; height:90px; transform:translateX(-50%); background: linear-gradient(135deg, #5a3a1a 0%, #3a2210 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: cpf-chair 6s ease-in-out infinite; }
.scn-coat-pocket-fashions .figure { position:absolute; bottom:20%; left:50%; width:60px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: cpf-figure 4s ease-in-out infinite; }
.scn-coat-pocket-fashions .coat { position:absolute; bottom:23%; left:50%; width:80px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; clip-path: polygon(10% 0%, 90% 0%, 85% 100%, 15% 100%); animation: cpf-coat 5s ease-in-out infinite alternate; }
.scn-coat-pocket-fashions .pocket { position:absolute; bottom:30%; left:55%; width:16px; height:14px; background: #5a3a1a; border-radius: 10% 10% 20% 20%; box-shadow: inset 0 2px 4px #0a0604; animation: cpf-pocket 3s ease-in-out infinite; }
.scn-coat-pocket-fashions .chain { position:absolute; bottom:48%; left:58%; width:2px; height:40px; background: linear-gradient(180deg, #d4a84a, #a08030); transform-origin: top center; border-radius: 50%; animation: cpf-chain 2s ease-in-out infinite alternate; }
.scn-coat-pocket-fashions .shadow { position:absolute; bottom:10%; left:50%; width:120px; height:12px; transform:translateX(-50%); background: radial-gradient(ellipse, #0a0604 0%, transparent 70%); animation: cpf-shadow 8s ease-in-out infinite; }
@keyframes cpf-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes cpf-chair { 0%,100% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(2deg) translateY(-3px) } }
@keyframes cpf-figure { 0%,100% { transform:translateX(-50%) rotate(1deg) } 50% { transform:translateX(-50%) rotate(-1deg) translateY(-2px) } }
@keyframes cpf-coat { 0% { transform:translateX(-50%) scale(1) } 100% { transform:translateX(-50%) scale(1.02) translateY(-1px) } }
@keyframes cpf-pocket { 0%,100% { transform:scale(1) } 50% { transform:scale(1.1) } }
@keyframes cpf-chain { 0% { transform:rotate(10deg) } 100% { transform:rotate(-10deg) } }
@keyframes cpf-shadow { 0%,100% { transform:translateX(-50%) scaleX(1) } 50% { transform:translateX(-50%) scaleX(1.1) } }

.scn-jerkin-lining-metaphor { background: 
  linear-gradient(180deg, #1e1410 0%, #2a1e18 40%, #1a100c 100%),
  radial-gradient(ellipse at 50% 50%, #3a2a22 0%, transparent 70%);
}
.scn-jerkin-lining-metaphor .bg-drapes { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a22 0%, #1a100c 100%); animation: jlm-drapes 15s ease-in-out infinite alternate; }
.scn-jerkin-lining-metaphor .torso { position:absolute; bottom:10%; left:50%; width:70px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: jlm-torso 5s ease-in-out infinite; }
.scn-jerkin-lining-metaphor .jerkin-outer { position:absolute; bottom:12%; left:50%; width:90px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3028 0%, #2a1a14 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); animation: jlm-outer 6s ease-in-out infinite alternate; }
.scn-jerkin-lining-metaphor .jerkin-lining { position:absolute; bottom:12%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a868 0%, #a08048 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; clip-path: polygon(10% 5%, 90% 5%, 80% 95%, 20% 95%); animation: jlm-lining 4s ease-in-out infinite alternate; }
.scn-jerkin-lining-metaphor .arm-l { position:absolute; bottom:30%; left:28%; width:20px; height:60px; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 30% 30% 20% 20%; transform-origin: top center; animation: jlm-arm-l 3s ease-in-out infinite; }
.scn-jerkin-lining-metaphor .arm-r { position:absolute; bottom:30%; right:28%; width:20px; height:60px; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 30% 30% 20% 20%; transform-origin: top center; animation: jlm-arm-r 3.2s ease-in-out infinite; }
.scn-jerkin-lining-metaphor .button { position:absolute; bottom:50%; left:50%; width:10px; height:10px; transform:translate(-50%,-50%); background: radial-gradient(circle, #d4b070 0%, #a08048 100%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(180,140,70,.5); animation: jlm-button 2s ease-in-out infinite alternate; }
@keyframes jlm-drapes { 0% { opacity:.9 } 100% { opacity:.7 } }
@keyframes jlm-torso { 0%,100% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(2deg) translateY(-3px) } }
@keyframes jlm-outer { 0% { transform:translateX(-50%) scale(1) } 100% { transform:translateX(-50%) scale(0.98) translateY(2px) } }
@keyframes jlm-lining { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes jlm-arm-l { 0%,100% { transform:rotate(5deg) } 50% { transform:rotate(-5deg) } }
@keyframes jlm-arm-r { 0%,100% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } }
@keyframes jlm-button { 0% { transform:translate(-50%,-50%) scale(1) } 100% { transform:translate(-50%,-50%) scale(1.2) } }

.scn-stoic-philosophers { background: 
  linear-gradient(180deg, #1a1814 0%, #2a2420 40%, #1a1410 100%),
  radial-gradient(ellipse at 50% 60%, #3a322a 0%, transparent 70%);
}
.scn-stoic-philosophers .niche { position:absolute; inset:10% 15% 30% 15%; background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 30px #0a0806; animation: sph-niche 20s ease-in-out infinite alternate; }
.scn-stoic-philosophers .shelf { position:absolute; bottom:30%; left:15%; right:15%; height:8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sph-shelf 10s ease-in-out infinite; }
.scn-stoic-philosophers .bust { position:absolute; bottom:35%; width:30px; height:45px; background: linear-gradient(180deg, #3a2a20 0%, #1a100a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: sph-bust 8s ease-in-out infinite; }
.scn-stoic-philosophers .bust-a { left:20%; animation-delay: 0s; }
.scn-stoic-philosophers .bust-b { left:45%; transform:translateX(-50%); animation-delay: -2.6s; }
.scn-stoic-philosophers .bust-c { right:20%; animation-delay: -5.3s; }
.scn-stoic-philosophers .scroll { position:absolute; bottom:32%; left:35%; width:40px; height:6px; background: linear-gradient(180deg, #c8a868 0%, #a08048 100%); border-radius: 20% 20% 10% 10% / 50% 50% 50% 50%; animation: sph-scroll 12s ease-in-out infinite; }
.scn-stoic-philosophers .shadow-shelf { position:absolute; bottom:28%; left:10%; right:10%; height:20px; background: radial-gradient(ellipse, #0a0806 0%, transparent 80%); animation: sph-shadow 14s ease-in-out infinite; }
@keyframes sph-niche { 0% { box-shadow: inset 0 0 30px #0a0806 } 50% { box-shadow: inset 0 0 50px #1a1410 } 100% { box-shadow: inset 0 0 30px #0a0806 } }
@keyframes sph-shelf { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes sph-bust { 0% { transform:rotate(0deg) } 25% { transform:rotate(3deg) } 75% { transform:rotate(-3deg) } 100% { transform:rotate(0deg) } }
@keyframes sph-scroll { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(5deg) translateY(2px) } }
@keyframes sph-shadow { 0%,100% { opacity:.6 } 50% { opacity:.4 } }

.scn-reviewers-criticism { background: 
  linear-gradient(180deg, #1e1410 0%, #2a1e18 40%, #1a100c 100%),
  radial-gradient(ellipse at 50% 50%, #3a2820 0%, transparent 80%);
}
.scn-reviewers-criticism .backdrop { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2820 0%, #1a100c 100%); animation: rcr-backdrop 18s ease-in-out infinite alternate; }
.scn-reviewers-criticism .jerkin { position:absolute; bottom:15%; left:50%; width:90px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3028 0%, #2a1a14 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); animation: rcr-jerkin 4s ease-in-out infinite alternate; }
.scn-reviewers-criticism .slash { position:absolute; bottom:20%; left:50%; width:60px; height:2px; background: linear-gradient(90deg, transparent, #a04020 20%, #c06030 50%, #a04020 80%, transparent); border-radius: 1px; transform-origin: center; animation: rcr-slash 2s ease-in-out infinite; }
.scn-reviewers-criticism .slash-1 { transform:translateX(-50%) rotate(-20deg); top:30%; animation-delay: 0s; }
.scn-reviewers-criticism .slash-2 { transform:translateX(-50%) rotate(10deg); top:45%; animation-delay: 0.7s; }
.scn-reviewers-criticism .slash-3 { transform:translateX(-50%) rotate(-5deg); top:60%; animation-delay: 1.4s; }
.scn-reviewers-criticism .scissor-handle { position:absolute; bottom:35%; left:30%; width:40px; height:40px; border:3px solid #4a3a28; border-radius: 50%; background: transparent; animation: rcr-scissor-handle 3s ease-in-out infinite; }
.scn-reviewers-criticism .scissor-blade { position:absolute; bottom:45%; left:30%; width:50px; height:6px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 3px; transform-origin: 100% 50%; animation: rcr-scissor-blade 3s ease-in-out infinite alternate; }
@keyframes rcr-backdrop { 0% { opacity:.8 } 100% { opacity:.6 } }
@keyframes rcr-jerkin { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.02) rotate(1deg) } 100% { transform:translateX(-50%) scale(0.98) rotate(-1deg) } }
@keyframes rcr-slash { 0%,100% { opacity:.3 } 50% { opacity:1 } }
@keyframes rcr-scissor-handle { 0% { transform:rotate(0deg) } 50% { transform:rotate(15deg) } 100% { transform:rotate(0deg) } }
@keyframes rcr-scissor-blade { 0% { transform:rotate(-10deg) } 100% { transform:rotate(10deg) } }

/* nosarians-vs-anti */
.scn-nosarians-vs-anti {
  background: 
    linear-gradient(180deg, #2c1e16 0%, #4a3524 40%, #3d2a1a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(200,150,80,0.15) 0%, transparent 70%);
}
.scn-nosarians-vs-anti .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); animation: na-room 20s ease-in-out infinite alternate; }
.scn-nosarians-vs-anti .table { position:absolute; bottom:18%; left:10%; width:80%; height:22%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.5); animation: na-table 12s ease-in-out infinite; }
.scn-nosarians-vs-anti .figure-left { position:absolute; bottom:28%; left:15%; width:30px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: na-figure-left 3s ease-in-out infinite; }
.scn-nosarians-vs-anti .figure-right { position:absolute; bottom:28%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: na-figure-right 3.2s ease-in-out infinite 0.5s; }
.scn-nosarians-vs-anti .book-stack { position:absolute; bottom:20%; left:42%; width:40px; height:30px; background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%); border-radius: 10%; box-shadow: 4px 4px 8px rgba(0,0,0,0.6); animation: na-book 8s ease-in-out infinite; }
.scn-nosarians-vs-anti .candle { position:absolute; bottom:22%; left:48%; width:8px; height:50px; background: linear-gradient(180deg, #e0c0a0 0%, #c09a70 60%, #8a6030 100%); border-radius: 40% 40% 20% 20%; animation: na-candle 4s ease-in-out infinite alternate; }
.scn-nosarians-vs-anti .candle-glow { position:absolute; bottom:35%; left:47%; width:20px; height:20px; background: radial-gradient(circle, rgba(255,200,100,0.8) 0%, rgba(255,160,60,0.3) 60%, transparent 100%); border-radius:50%; filter: blur(8px); animation: na-glow 3s ease-in-out infinite alternate; }
.scn-nosarians-vs-anti .speech-bubble { position:absolute; width:40px; height:30px; background: rgba(240,230,210,0.9); border-radius: 40% 40% 30% 30%; filter: blur(1px); animation: na-talk 5s ease-in-out infinite; }
.scn-nosarians-vs-anti .speech-bubble.left { bottom:50%; left:10%; animation-delay: 0s; }
.scn-nosarians-vs-anti .speech-bubble.right { bottom:50%; right:10%; animation-delay: 2.5s; }
@keyframes na-room { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes na-table { 0%,100% { transform: rotateX(0deg) } 50% { transform: rotateX(4deg) } }
@keyframes na-figure-left { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(8px) translateY(0) rotate(-2deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(4deg) } 100% { transform: translateX(0) translateY(0) rotate(-5deg) } }
@keyframes na-figure-right { 0% { transform: translateX(0) translateY(0) rotate(5deg) } 25% { transform: translateX(-4px) translateY(-2px) rotate(-3deg) } 50% { transform: translateX(-8px) translateY(0) rotate(2deg) } 75% { transform: translateX(-4px) translateY(-1px) rotate(-4deg) } 100% { transform: translateX(0) translateY(0) rotate(5deg) } }
@keyframes na-book { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.9) translateY(-3px) } }
@keyframes na-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1.05) } }
@keyframes na-glow { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(0.9); } }
@keyframes na-talk { 0%,100% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } }

/* steeple-nose */
.scn-steeple-nose {
  background: 
    linear-gradient(180deg, #1f1612 0%, #2c1f18 40%, #3a2820 100%),
    radial-gradient(ellipse at 50% 70%, rgba(180,130,80,0.2) 0%, transparent 60%);
}
.scn-steeple-nose .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e18 0%, #1a120e 100%); animation: sn-wall 15s ease-in-out infinite alternate; }
.scn-steeple-nose .pulpit { position:absolute; bottom:20%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); animation: sn-pulpit 6s ease-in-out infinite; }
.scn-steeple-nose .steeple-nose { position:absolute; bottom:35%; left:50%; width:20px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #a07040 0%, #704820 100%); border-radius: 60% 60% 20% 20%; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: sn-nose 4s ease-in-out infinite alternate; }
.scn-steeple-nose .doctor-silhouette { position:absolute; bottom:20%; left:10%; width:40px; height:70px; background: rgba(10,8,6,0.9); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sn-doctor 3.5s ease-in-out infinite; }
.scn-steeple-nose .candle-sconce { position:absolute; bottom:40%; right:15%; width:12px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%); border-radius: 20%; animation: sn-sconce 8s ease-in-out infinite; }
.scn-steeple-nose .candle-flame { position:absolute; bottom:55%; right:15%; width:10px; height:18px; background: radial-gradient(ellipse, #ffd080 0%, #ffaa40 50%, transparent 100%); border-radius: 50% 50% 30% 30%; animation: sn-flame 2s ease-in-out infinite alternate; }
.scn-steeple-nose .shadow-on-wall { position:absolute; bottom:15%; left:5%; width:70%; height:50%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); filter: blur(10px); animation: sn-shadow 5s ease-in-out infinite alternate; }
@keyframes sn-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sn-pulpit { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes sn-nose { 0% { transform: translateX(-50%) rotate(0deg) scaleX(1); } 50% { transform: translateX(-50%) rotate(5deg) scaleX(0.95); } 100% { transform: translateX(-50%) rotate(-5deg) scaleX(1.05); } }
@keyframes sn-doctor { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-5px) rotate(3deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes sn-sconce { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes sn-flame { 0% { transform: scaleY(0.8) scaleX(0.9); opacity:0.8 } 50% { transform: scaleY(1.1) scaleX(1); opacity:1 } 100% { transform: scaleY(0.9) scaleX(0.95); opacity:0.9 } }
@keyframes sn-shadow { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.1) } }

/* school-divinity */
.scn-school-divinity {
  background: 
    linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, #0a1a2a 100%),
    radial-gradient(ellipse at 30% 50%, rgba(60,120,180,0.2) 0%, transparent 70%);
}
.scn-school-divinity .sea-bg { position:absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #1a2a3a 0%, #2a4a5a 100%); animation: sd-sea 15s ease-in-out infinite alternate; }
.scn-school-divinity .ship-hull { position:absolute; bottom:30%; left:30%; width:120px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 0 0 30% 30%; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); animation: sd-ship 8s ease-in-out infinite; }
.scn-school-divinity .sail-main { position:absolute; bottom:45%; left:38%; width:40px; height:70px; background: radial-gradient(ellipse, rgba(240,230,210,0.8) 0%, rgba(200,180,150,0.6) 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: sd-sail 4s ease-in-out infinite alternate; }
.scn-school-divinity .sail-jib { position:absolute; bottom:45%; left:28%; width:30px; height:50px; background: radial-gradient(ellipse, rgba(240,230,210,0.7) 0%, rgba(200,180,150,0.5) 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: sd-sail 5s ease-in-out infinite alternate-reverse; }
.scn-school-divinity .wave-1 { position:absolute; bottom:15%; left:0; width:100%; height:30px; background: linear-gradient(180deg, transparent 0%, #2a5a6a 100%); border-radius: 50% 50% 0 0; filter: blur(3px); animation: sd-wave1 6s ease-in-out infinite; }
.scn-school-divinity .wave-2 { position:absolute; bottom:10%; left:0; width:100%; height:20px; background: linear-gradient(180deg, transparent 0%, #1a4a5a 100%); border-radius: 50% 50% 0 0; filter: blur(4px); animation: sd-wave2 7s ease-in-out infinite 2s; }
.scn-school-divinity .book-cloud { position:absolute; top:10%; right:15%; width:80px; height:60px; background: radial-gradient(circle, rgba(200,180,150,0.6) 0%, transparent 70%); filter: blur(8px); animation: sd-books 20s linear infinite; }
.scn-school-divinity .figures-on-deck { position:absolute; bottom:30%; left:40%; width:20px; height:30px; background: rgba(20,10,5,0.8); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sd-figures 3s ease-in-out infinite; }
@keyframes sd-sea { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sd-ship { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes sd-sail { 0% { transform: rotate(-8deg) scaleX(0.9); } 50% { transform: rotate(0deg) scaleX(1); } 100% { transform: rotate(8deg) scaleX(0.9); } }
@keyframes sd-wave1 { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-6px) scaleY(1.2); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sd-wave2 { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(4px) scaleY(0.8); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sd-books { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-30px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sd-figures { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }

/* expectation-mounts */
.scn-expectation-mounts {
  background: 
    linear-gradient(180deg, #f0e8d0 0%, #d0c8a0 40%, #a09070 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-expectation-mounts .sky-bg { position:absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #ffe8b0 0%, #b0c8e0 100%); animation: em-sky 10s ease-in-out infinite alternate; }
.scn-expectation-mounts .sun { position:absolute; top:8%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #ffeeaa 0%, #ffd080 60%, transparent 100%); border-radius:50%; filter: blur(15px); animation: em-sun 14s ease-in-out infinite; }
.scn-expectation-mounts .city-wall { position:absolute; bottom:30%; left:5%; width:90%; height:40%; background: linear-gradient(180deg, #a09070 0%, #7a6a50 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2); animation: em-wall 6s ease-in-out infinite; }
.scn-expectation-mounts .gate { position:absolute; bottom:30%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px rgba(0,0,0,0.4); animation: em-gate 4s ease-in-out infinite alternate; }
.scn-expectation-mounts .crowd-silhouettes { position:absolute; bottom:30%; left:10%; width:80%; height:30%; background: repeating-linear-gradient(90deg, rgba(10,10,10,0.4) 0px, rgba(10,10,10,0.4) 15px, transparent 15px, transparent 25px); filter: blur(2px); animation: em-crowd 3s ease-in-out infinite; }
.scn-expectation-mounts .dust-particles { position:absolute; top:20%; left:0; width:100%; height:60%; background: radial-gradient(circle, rgba(200,180,150,0.1) 1px, transparent 1px); background-size: 30px 30px; animation: em-dust 8s linear infinite; }
.scn-expectation-mounts .shadow-stripes { position:absolute; inset:0; background: repeating-linear-gradient(45deg, rgba(0,0,0,0.05) 0px, rgba(0,0,0,0.05) 20px, transparent 20px, transparent 40px); animation: em-stripes 15s linear infinite reverse; }
@keyframes em-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes em-sun { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.1) translateX(10px); } 100% { transform: scale(1) translateX(0); } }
@keyframes em-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes em-gate { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(5deg); } 100% { transform: rotateY(-5deg); } }
@keyframes em-crowd { 0% { opacity:0.6; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.05); } 100% { opacity:0.6; transform: scaleX(1); } }
@keyframes em-dust { 0% { background-position: 0 0; } 100% { background-position: 60px 30px; } }
@keyframes em-stripes { 0% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-sash-window-accident {
  background:
    linear-gradient(180deg, #2a2418 0%, #3a3022 40%, #4a3c28 100%),
    radial-gradient(ellipse at 30% 60%, #5a4a32 0%, transparent 70%);
}
.scn-sash-window-accident .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a2418 0%, #3a3022 100%);
}
.scn-sash-window-accident .window-frame {
  position:absolute; top:15%; left:30%; width:40%; height:60%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: inset 0 0 0 4px #3a2a18, 0 6px 12px rgba(0,0,0,.6);
}
.scn-sash-window-accident .window-pane {
  position:absolute; top:18%; left:33%; width:34%; height:54%;
  background: linear-gradient(180deg, rgba(200,180,140,.2) 0%, rgba(160,140,100,.1) 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(200,180,140,.3);
  animation: sas1-pane 6s ease-in-out infinite alternate;
}
.scn-sash-window-accident .sash-weight {
  position:absolute; top:40%; left:45%; width:10px; height:30px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.7);
  animation: sas1-weight 1.2s ease-in-out infinite;
}
.scn-sash-window-accident .figure {
  position:absolute; bottom:20%; left:25%; width:24px; height:48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sas1-figure 2s ease-in-out infinite;
}
.scn-sash-window-accident .lantern {
  position:absolute; bottom:15%; left:65%; width:12px; height:18px;
  background: radial-gradient(circle, #e8c860 0%, #c8a840 60%, #806020 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 8px rgba(200,168,64,.5), 0 0 40px 12px rgba(200,168,64,.3);
  animation: sas1-lantern 4s ease-in-out infinite alternate;
}
@keyframes sas1-pane {
  0% { opacity:.3; transform: scaleY(1); }
  50% { opacity:.5; transform: scaleY(1.02); }
  100% { opacity:.4; transform: scaleY(1); }
}
@keyframes sas1-weight {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(8px) rotate(5deg); }
  60% { transform: translateY(0) rotate(-3deg); }
  100% { transform: translateY(2px) rotate(0); }
}
@keyframes sas1-figure {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  30% { transform: translateX(-4px) translateY(-2px) rotate(8deg); }
  60% { transform: translateX(4px) translateY(-1px) rotate(-6deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes sas1-lantern {
  0% { box-shadow: 0 0 15px 6px rgba(200,168,64,.4); }
  50% { box-shadow: 0 0 25px 10px rgba(200,168,64,.6); }
  100% { box-shadow: 0 0 18px 7px rgba(200,168,64,.45); }
}

.scn-susannah-flees {
  background:
    linear-gradient(180deg, #2a2018 0%, #3a2e1e 50%, #4a3828 100%),
    radial-gradient(ellipse at 70% 40%, #5a4832 0%, transparent 80%);
}
.scn-susannah-flees .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a2018 0%, #3a2e1e 100%);
}
.scn-susannah-flees .doorway {
  position:absolute; top:20%; left:60%; width:35%; height:70%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e1e 100%);
  border-radius: 4px 0 0 4px;
  box-shadow: inset -8px 0 12px rgba(0,0,0,.5);
}
.scn-susannah-flees .door {
  position:absolute; top:20%; left:60%; width:35%; height:70%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 0 4px 4px 0;
  transform-origin: left center;
  animation: sus1-door 3s ease-in-out infinite alternate;
}
.scn-susannah-flees .susannah {
  position:absolute; bottom:25%; left:40%; width:20px; height:44px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1208 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sus1-run 1.5s ease-in-out infinite;
}
.scn-susannah-flees .trim-face {
  position:absolute; bottom:30%; left:25%; width:16px; height:20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 0 2px #1a1208;
  animation: sus1-peek 4s ease-in-out infinite;
}
.scn-susannah-flees .candle {
  position:absolute; bottom:15%; left:80%; width:6px; height:14px;
  background: linear-gradient(180deg, #e8c860 0%, #c8a040 80%, #806020 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px rgba(200,168,64,.5);
  animation: sus1-light 5s ease-in-out infinite alternate;
}
@keyframes sus1-door {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(-40deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes sus1-run {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  25% { transform: translateX(6px) translateY(-2px) rotate(5deg); }
  50% { transform: translateX(12px) translateY(0) rotate(-5deg); }
  75% { transform: translateX(18px) translateY(-1px) rotate(5deg); }
  100% { transform: translateX(24px) translateY(0) rotate(0); }
}
@keyframes sus1-peek {
  0%,100% { transform: translateX(0) scaleX(1); }
  30% { transform: translateX(-4px) scaleX(0.8); opacity:.8; }
  60% { transform: translateX(2px) scaleX(1.1); opacity:1; }
}
@keyframes sus1-light {
  0% { opacity:.8; box-shadow: 0 0 15px 5px rgba(200,168,64,.4); }
  50% { opacity:1; box-shadow: 0 0 25px 10px rgba(200,168,64,.6); }
  100% { opacity:.85; box-shadow: 0 0 18px 6px rgba(200,168,64,.45); }
}

.scn-sash-weights-taken {
  background:
    linear-gradient(180deg, #2a2218 0%, #3a2e20 40%, #4a3a28 100%),
    radial-gradient(ellipse at 50% 80%, #5a4a32 0%, transparent 70%);
}
.scn-sash-weights-taken .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a2218 0%, #3a2e20 100%);
}
.scn-sash-weights-taken .window-frame {
  position:absolute; top:10%; left:20%; width:60%; height:70%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: inset 0 0 0 6px #3a2a18, 0 6px 12px rgba(0,0,0,.6);
}
.scn-sash-weights-taken .weight-a {
  position:absolute; top:45%; left:30%; width:14px; height:16px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.7);
  animation: saw1-weightA 3s ease-in-out infinite;
}
.scn-sash-weights-taken .weight-b {
  position:absolute; top:45%; left:55%; width:14px; height:16px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.7);
  animation: saw1-weightB 3.5s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-sash-weights-taken .trim-arm {
  position:absolute; bottom:30%; left:40%; width:36px; height:10px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 0 0 50%;
  transform-origin: right center;
  animation: saw1-arm 2.5s ease-in-out infinite;
}
.scn-sash-weights-taken .stool {
  position:absolute; bottom:18%; left:35%; width:30px; height:24px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
  animation: saw1-stool 10s ease-in-out infinite;
}
.scn-sash-weights-taken .shadow {
  position:absolute; bottom:18%; left:25%; width:50px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: saw1-shadow 2.5s ease-in-out infinite;
}
@keyframes saw1-weightA {
  0% { transform: translateY(0) rotate(0); }
  33% { transform: translateY(5px) rotate(10deg); }
  66% { transform: translateY(-2px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes saw1-weightB {
  0% { transform: translateY(2px) rotate(-3deg); }
  33% { transform: translateY(-1px) rotate(5deg); }
  66% { transform: translateY(6px) rotate(-8deg); }
  100% { transform: translateY(2px) rotate(0); }
}
@keyframes saw1-arm {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(4px) rotate(15deg); }
  60% { transform: translateX(-2px) rotate(-10deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes saw1-stool {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes saw1-shadow {
  0%,100% { opacity:.4; transform: scaleX(1); }
  50% { opacity:.7; transform: scaleX(1.1); }
}

.scn-trim-confesses {
  background:
    linear-gradient(180deg, #2a1e12 0%, #3a2a1a 40%, #4a3420 100%),
    radial-gradient(ellipse at 40% 50%, #6a5030 0%, transparent 70%);
}
.scn-trim-confesses .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1e12 0%, #3a2a1a 100%);
}
.scn-trim-confesses .fireplace {
  position:absolute; bottom:20%; left:10%; width:30%; height:50%;
  background: linear-gradient(180deg, #4a3420 0%, #2a1e12 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 0 20px rgba(200,100,40,.3);
}
.scn-trim-confesses .uncle-toby {
  position:absolute; bottom:22%; left:45%; width:28px; height:50px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: trim1-toby 4s ease-in-out infinite;
}
.scn-trim-confesses .trim {
  position:absolute; bottom:22%; left:55%; width:24px; height:46px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1208 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: trim1-trim 3.5s ease-in-out infinite;
}
.scn-trim-confesses .yorick {
  position:absolute; bottom:25%; right:15%; width:20px; height:40px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity:.7;
  animation: trim1-yorick 5s ease-in-out infinite;
}
.scn-trim-confesses .candle {
  position:absolute; bottom:30%; left:70%; width:6px; height:14px;
  background: linear-gradient(180deg, #e8b060 0%, #c08840 80%, #805020 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px rgba(200,136,64,.6);
  animation: trim1-light 4s ease-in-out infinite alternate;
}
.scn-trim-confesses .warm-glow {
  position:absolute; bottom:10%; left:20%; width:60%; height:60%;
  background: radial-gradient(ellipse at 50% 80%, rgba(200,136,64,.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: trim1-glow 6s ease-in-out infinite alternate;
}
@keyframes trim1-toby {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  30% { transform: translateX(1px) translateY(-1px) rotate(2deg); }
  60% { transform: translateX(-1px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes trim1-trim {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  25% { transform: translateX(3px) translateY(-1px) rotate(5deg); }
  50% { transform: translateX(0) translateY(0) rotate(-3deg); }
  75% { transform: translateX(-3px) translateY(-1px) rotate(4deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes trim1-yorick {
  0%,100% { opacity:.6; transform: scaleX(1); }
  50% { opacity:.85; transform: scaleX(1.05); }
}
@keyframes trim1-light {
  0% { opacity:.7; box-shadow: 0 0 12px 5px rgba(200,136,64,.4); }
  50% { opacity:1; box-shadow: 0 0 25px 10px rgba(200,136,64,.6); }
  100% { opacity:.8; box-shadow: 0 0 15px 6px rgba(200,136,64,.45); }
}
@keyframes trim1-glow {
  0% { opacity:.3; transform: scale(0.95); }
  50% { opacity:.5; transform: scale(1.05); }
  100% { opacity:.4; transform: scale(1); }
}

.scn-tenants-life {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F0E68C 100%) , radial-gradient(ellipse at 60% 20%, #FFD700 0%, transparent 60%);
}
.scn-tenants-life .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6CB4EE 0%, #B0E0E6 80%); }
.scn-tenants-life .sun { position:absolute; top:8%; left:65%; width:60px; height:60px; background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.5); animation: tl-sun 6s ease-in-out infinite alternate; }
.scn-tenants-life .cloud-a { position:absolute; top:12%; left:-5%; width:120px; height:25px; background: rgba(255,255,255,0.7); border-radius:50%; filter: blur(5px); animation: tl-drift-a 30s linear infinite; }
.scn-tenants-life .cloud-b { position:absolute; top:20%; right:-5%; width:80px; height:18px; background: rgba(255,255,255,0.6); border-radius:50%; filter: blur(4px); animation: tl-drift-b 45s linear infinite reverse; }
.scn-tenants-life .hill { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7CCD7C 0%, #3CB371 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: tl-hill 15s ease-in-out infinite; }
.scn-tenants-life .cottage { position:absolute; bottom:20%; left:35%; width:100px; height:65px; background: linear-gradient(180deg, #D2B48C 0%, #8B4513 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-tenants-life .door { position:absolute; bottom:20%; left:42%; width:18px; height:30px; background: #5C4033; border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 5px #3E2723; }
.scn-tenants-life .figure { position:absolute; bottom:18%; left:50%; width:14px; height:30px; background: linear-gradient(180deg, #2E1A0E 0%, #1A0D06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tl-walk 6s ease-in-out infinite; }
.scn-tenants-life .dog { position:absolute; bottom:16%; left:56%; width:20px; height:14px; background: linear-gradient(180deg, #8B6914 0%, #5C4033 100%); border-radius: 40% 40% 30% 30%; animation: tl-bounce 3s ease-in-out infinite; }
@keyframes tl-sun { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.85; } }
@keyframes tl-drift-a { 0% { transform: translateX(-120px); } 100% { transform: translateX(120vw); } }
@keyframes tl-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes tl-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes tl-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes tl-bounce { 0% { transform: translateY(0) scaleY(1); } 30% { transform: translateY(-6px) scaleY(0.9); } 60% { transform: translateY(0) scaleY(1); } 100% { transform: translateY(-3px) scaleY(0.95); } }

.scn-digression-needed {
  background: linear-gradient(180deg, #1B1B2F 0%, #2A2A40 60%, #3D3D5C 100%), radial-gradient(ellipse at 50% 100%, #4A4A6E 0%, transparent 70%);
}
.scn-digression-needed .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3D3D5C 0%, #2A2A40 100%); }
.scn-digression-needed .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1E1E30 0%, #0D0D1A 100%); }
.scn-digression-needed .desk { position:absolute; bottom:18%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #4A3A2A 0%, #2E1F12 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-digression-needed .lamp { position:absolute; bottom:26%; left:30%; width:8px; height:30px; background: #5C4033; border-radius: 4px; }
.scn-digression-needed .lamp::after { content:''; position:absolute; top:-10px; left:-12px; width:32px; height:12px; background: radial-gradient(ellipse, #FFD700 0%, #B8860B 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,215,0,0.4); animation: dn-lamp-glow 4s ease-in-out infinite alternate; }
.scn-digression-needed .paper-a, .scn-digression-needed .paper-b { position:absolute; width:40px; height:30px; background: #F5E6D0; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-digression-needed .paper-a { bottom:22%; left:25%; animation: dn-float-a 10s ease-in-out infinite; }
.scn-digression-needed .paper-b { bottom:24%; left:45%; animation: dn-float-b 12s ease-in-out infinite reverse; }
.scn-digression-needed .figure { position:absolute; bottom:15%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #2E1A0E 0%, #1A0D06 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: dn-sway 8s ease-in-out infinite; }
.scn-digression-needed .shadow { position:absolute; bottom:15%; left:35%; width:20px; height:10px; background: rgba(0,0,0,0.4); border-radius:50%; filter: blur(4px); animation: dn-shadow 8s ease-in-out infinite; }
@keyframes dn-lamp-glow { 0% { box-shadow: 0 0 20px 5px rgba(255,215,0,0.3); opacity:0.8; } 50% { box-shadow: 0 0 40px 15px rgba(255,215,0,0.6); opacity:1; } 100% { box-shadow: 0 0 25px 8px rgba(255,215,0,0.4); opacity:0.9; } }
@keyframes dn-float-a { 0% { transform: translateX(0) rotate(0deg) translateY(0); } 25% { transform: translateX(10px) rotate(5deg) translateY(-3px); } 50% { transform: translateX(20px) rotate(10deg) translateY(0); } 75% { transform: translateX(10px) rotate(5deg) translateY(-2px); } 100% { transform: translateX(0) rotate(0deg) translateY(0); } }
@keyframes dn-float-b { 0% { transform: translateX(0) rotate(0deg) translateY(0); } 25% { transform: translateX(-8px) rotate(-5deg) translateY(-2px); } 50% { transform: translateX(-16px) rotate(-10deg) translateY(0); } 75% { transform: translateX(-8px) rotate(-5deg) translateY(-3px); } 100% { transform: translateX(0) rotate(0deg) translateY(0); } }
@keyframes dn-sway { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes dn-shadow { 0% { transform: scale(1); opacity:0.4; } 50% { transform: scale(1.1); opacity:0.6; } 100% { transform: scale(1); opacity:0.4; } }

.scn-addressing-soul {
  background: linear-gradient(180deg, #0E0E1E 0%, #1A1A2E 40%, #2A2A4A 100%), radial-gradient(ellipse at 50% 30%, #3A3A6A 0%, transparent 80%);
}
.scn-addressing-soul .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1A1A2E 0%, #0E0E1E 100%); }
.scn-addressing-soul .mirror { position:absolute; top:15%; left:35%; width:30%; height:50%; background: #2A2A4A; border: 6px solid #5C4033; border-radius: 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
.scn-addressing-soul .reflection { position:absolute; top:17%; left:37%; width:26%; height:46%; background: linear-gradient(180deg, rgba(100,100,160,0.3) 0%, transparent 100%); filter: blur(2px); animation: as-reflection 6s ease-in-out infinite alternate; }
.scn-addressing-soul .figure { position:absolute; bottom:10%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #2E1A0E 0%, #1A0D06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: as-figure 5s ease-in-out infinite; }
.scn-addressing-soul .soul { position:absolute; bottom:15%; left:38%; width:18px; height:40px; background: radial-gradient(ellipse, rgba(200,200,255,0.5) 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: as-soul 4s ease-in-out infinite; }
.scn-addressing-soul .candle { position:absolute; bottom:10%; left:30%; width:6px; height:20px; background: #8B4513; border-radius: 2px; }
.scn-addressing-soul .candle::after { content:''; position:absolute; top:-8px; left:-4px; width:14px; height:10px; background: radial-gradient(ellipse, #FFD700 0%, #FF8C00 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,140,0,0.4); animation: as-candle 3s ease-in-out infinite alternate; }
@keyframes as-reflection { 0% { opacity:0.3; transform: translateY(0); } 50% { opacity:0.6; transform: translateY(-5px); } 100% { opacity:0.4; transform: translateY(3px); } }
@keyframes as-figure { 0% { transform: rotate(-3deg) translateX(0); } 25% { transform: rotate(3deg) translateX(5px); } 50% { transform: rotate(-2deg) translateX(-3px); } 75% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes as-soul { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-10px) scale(1.2); opacity:0.8; } 100% { transform: translateY(0) scale(1); opacity:0.5; } }
@keyframes as-candle { 0% { transform: scale(1) translateY(0); opacity:0.8; } 50% { transform: scale(1.2) translateY(-2px); opacity:1; } 100% { transform: scale(0.9) translateY(0); opacity:0.7; } }

.scn-envy-absent {
  background: linear-gradient(180deg, #1A1A2E 0%, #2A2A4A 50%, #3D3D5C 100%), radial-gradient(ellipse at 50% 100%, #4A4A6E 0%, transparent 70%);
}
.scn-envy-absent .desk-top { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4A3A2A 0%, #2E1F12 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-envy-absent .inkwell { position:absolute; bottom:20%; left:45%; width:30px; height:20px; background: radial-gradient(ellipse, #2A2A2A 0%, #0A0A0A 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: ea-inkwell 8s ease-in-out infinite; }
.scn-envy-absent .quill { position:absolute; bottom:35%; left:48%; width:6px; height:40px; background: linear-gradient(180deg, #F5F5DC 0%, #D2B48C 100%); transform: rotate(-20deg); transform-origin: bottom center; border-radius: 0 0 40% 40%; animation: ea-quill 6s ease-in-out infinite; }
.scn-envy-absent .paper-sheet { position:absolute; bottom:15%; left:25%; width:50%; height:25%; background: #F5E6D0; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform: rotate(5deg); }
.scn-envy-absent .splatter-a, .scn-envy-absent .splatter-b { position:absolute; width:10px; height:10px; background: radial-gradient(circle, #2A1A0A 0%, transparent 80%); border-radius:50%; filter: blur(1px); }
.scn-envy-absent .splatter-a { bottom:30%; left:40%; animation: ea-splatter-a 10s ease-in-out infinite; }
.scn-envy-absent .splatter-b { bottom:25%; left:55%; animation: ea-splatter-b 12s ease-in-out infinite reverse; }
.scn-envy-absent .lamp-overhead { position:absolute; top:5%; left:40%; width:20%; height:10%; background: radial-gradient(ellipse, #FFD700 0%, #B8860B 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.3); animation: ea-lamp 5s ease-in-out infinite alternate; }
@keyframes ea-inkwell { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes ea-quill { 0% { transform: rotate(-20deg) translateY(0); } 25% { transform: rotate(-15deg) translateY(-3px); } 50% { transform: rotate(-25deg) translateY(0); } 75% { transform: rotate(-18deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes ea-splatter-a { 0% { transform: translateX(0) translateY(0) scale(1); opacity:0.6; } 25% { transform: translateX(5px) translateY(3px) scale(1.2); opacity:0.8; } 50% { transform: translateX(10px) translateY(0) scale(1); opacity:0.5; } 75% { transform: translateX(3px) translateY(-2px) scale(1.1); opacity:0.7; } 100% { transform: translateX(0) translateY(0) scale(1); opacity:0.6; } }
@keyframes ea-splatter-b { 0% { transform: translateX(0) translateY(0) scale(1); opacity:0.5; } 25% { transform: translateX(-4px) translateY(-2px) scale(1.3); opacity:0.7; } 50% { transform: translateX(-8px) translateY(0) scale(1); opacity:0.4; } 75% { transform: translateX(-2px) translateY(2px) scale(1.1); opacity:0.6; } 100% { transform: translateX(0) translateY(0) scale(1); opacity:0.5; } }
@keyframes ea-lamp { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.95); } }

/* bavarian-prince - dim interior, funny, monk with sword */
.scn-bavarian-prince {
  background:
    radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, #2a1a0a 60%, #1a0e05 100%),
    linear-gradient(180deg, #3a2212 0%, #1a0e05 100%);
}
.scn-bavarian-prince .prince-shadows {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 30% 70%, transparent 30%, rgba(10,5,2,.6) 100%);
  animation: bp-shad 8s ease-in-out infinite alternate;
}
.scn-bavarian-prince .prince-arch {
  position:absolute; top:0; left:10%; right:10%; height:45%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2210 60%, transparent 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,.7);
  animation: bp-arch 12s ease-in-out infinite alternate;
}
.scn-bavarian-prince .prince-figure {
  position:absolute; bottom:18%; left:50%; width:60px; height:110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2210 0%, #1a0e05 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: bp-fig 5s ease-in-out infinite;
}
.scn-bavarian-prince .prince-cowl {
  position:absolute; bottom:72%; left:50%; width:36px; height:28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: bp-cowl 4s ease-in-out infinite alternate;
}
.scn-bavarian-prince .prince-sword {
  position:absolute; bottom:30%; left:42%;
  width:4px; height:50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #c0b090 50%, #8a7a5a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  box-shadow: 0 0 6px rgba(200,180,150,.4);
  animation: bp-sword 3s ease-in-out infinite;
}
.scn-bavarian-prince .prince-brazier {
  position:absolute; bottom:10%; left:30%;
  width:28px; height:22px;
  background: radial-gradient(ellipse at 50% 60%, #c07030 0%, #7a4020 60%, #3a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(192,112,48,.5);
  animation: bp-bra 6s ease-in-out infinite alternate;
}
.scn-bavarian-prince .prince-smoke {
  position:absolute; bottom:24%; left:30%; width:40px; height:60px;
  background: radial-gradient(ellipse, rgba(80,50,30,.25) 0%, transparent 70%);
  filter: blur(8px);
  animation: bp-smok 10s ease-in-out infinite;
}
.scn-bavarian-prince .prince-ember {
  position:absolute; bottom:18%; left:32%; width:4px; height:4px;
  background: radial-gradient(circle, #ffa040 0%, #c07030 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(255,160,64,.6);
  animation: bp-emb 2s ease-in-out infinite;
}
@keyframes bp-shad { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes bp-arch { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes bp-fig { 0% { transform: translateX(-50%) rotate(-1deg) } 30% { transform: translateX(-50%) translateY(-2px) rotate(0) } 60% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes bp-cowl { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes bp-sword { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes bp-bra { 0% { box-shadow: 0 0 20px 5px rgba(192,112,48,.4) } 50% { box-shadow: 0 0 40px 12px rgba(255,160,64,.6) } 100% { box-shadow: 0 0 24px 6px rgba(192,112,48,.4) } }
@keyframes bp-smok { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.3 } 50% { transform: translateY(-30px) translateX(8px) scale(1.8); opacity:.1 } 100% { transform: translateY(0) translateX(0) scale(1); opacity:.3 } }
@keyframes bp-emb { 0% { transform: translateY(0) scale(1); opacity:.8 } 50% { transform: translateY(-15px) scale(.6); opacity:.2 } 100% { transform: translateY(0) scale(1); opacity:.8 } }

/* chaise-wrecked - sunlit, broken carriage by water, funny */
.scn-chaise-wrecked {
  background:
    linear-gradient(180deg, #b0d8f0 0%, #e0f0ff 30%, #f5f8ff 60%, #c8d8e8 100%),
    radial-gradient(ellipse at 50% 0%, #f0f8ff 0%, #80b0d0 100%);
}
.scn-chaise-wrecked .chaise-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #80c0e8 0%, #b8e0f8 40%, transparent 100%);
  animation: cw-sky 25s ease-in-out infinite alternate;
}
.scn-chaise-wrecked .chaise-sun {
  position:absolute; top:8%; right:20%; width:50px; height:50px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe880 40%, #f0c040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,232,128,.5), 0 0 120px 40px rgba(240,192,64,.2);
  animation: cw-sun 40s ease-in-out infinite alternate;
}
.scn-chaise-wrecked .chaise-water {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #5a90b0 0%, #3a7090 50%, #2a5a7a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,.3);
  animation: cw-wat 8s ease-in-out infinite alternate;
}
.scn-chaise-wrecked .chaise-wreck {
  position:absolute; bottom:30%; left:30%; width:100px; height:50px;
  background: linear-gradient(135deg, #6a4a2a 0%, #8a6a3a 30%, #5a3a1a 70%, #4a2a0a 100%);
  border-radius: 10% 20% 40% 10% / 30% 40% 30% 20%;
  transform: rotate(-12deg);
  box-shadow: 0 6px 20px rgba(0,0,0,.5);
  animation: cw-wre 6s ease-in-out infinite;
}
.scn-chaise-wrecked .chaise-wheel {
  position:absolute; bottom:26%; left:38%; width:34px; height:34px;
  background: radial-gradient(circle, #6a4a2a 30%, #3a2210 40%, #5a3a1a 50%, #3a2210 60%, #6a4a2a 70%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5), inset 0 0 8px rgba(0,0,0,.3);
  animation: cw-whl 3s linear infinite;
}
.scn-chaise-wrecked .chaise-ripple {
  position:absolute; bottom:14%; left:35%; width:80px; height:10px;
  background: radial-gradient(ellipse, rgba(200,230,255,.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: cw-rip 4s ease-in-out infinite;
}
.scn-chaise-wrecked .chaise-bird {
  position:absolute; top:15%; left:10%; width:20px; height:14px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-10deg);
  animation: cw-bir 12s linear infinite;
}
@keyframes cw-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cw-sun { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10px) scale(1.05) } 100% { transform: translateX(-10px) scale(.98) } }
@keyframes cw-wat { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(4px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes cw-wre { 0% { transform: rotate(-12deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } 100% { transform: rotate(-14deg) translateY(0) } }
@keyframes cw-whl { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes cw-rip { 0% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.4); opacity:.3 } 100% { transform: scaleX(1); opacity:.5 } }
@keyframes cw-bir { 0% { transform: translateX(0) rotate(-10deg) } 50% { transform: translateX(40vw) rotate(5deg) } 100% { transform: translateX(80vw) rotate(-10deg) } }

/* book-keeping-disasters - dim interior, funny, ledgers and misfortunes */
.scn-book-keeping-disasters {
  background:
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a1208 60%, #0e0a04 100%),
    linear-gradient(180deg, #2a1e0e 0%, #1a1208 100%);
}
.scn-book-keeping-disasters .bk-desk {
  position:absolute; bottom:0; left:5%; right:5%; height:40%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 40%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 24px rgba(0,0,0,.6);
  animation: bk-desk 15s ease-in-out infinite alternate;
}
.scn-book-keeping-disasters .bk-wall {
  position:absolute; top:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #2a1e0e 0%, #3a2a18 40%, transparent 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: bk-wall 20s ease-in-out infinite alternate;
}
.scn-book-keeping-disasters .bk-ledger {
  position:absolute; bottom:25%; left:50%; width:80px; height:60px;
  transform: translateX(-50%) rotate(-2deg);
  background: linear-gradient(180deg, #c8b898 0%, #a89870 40%, #8a7a5a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5), inset 0 1px 4px rgba(255,240,200,.3);
  animation: bk-ledg 6s ease-in-out infinite;
}
.scn-book-keeping-disasters .bk-hand {
  position:absolute; bottom:20%; left:42%; width:16px; height:24px;
  background: linear-gradient(180deg, #d0b898 0%, #b89878 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: bk-hand 4s ease-in-out infinite;
}
.scn-book-keeping-disasters .bk-quill {
  position:absolute; bottom:22%; left:56%; width:3px; height:40px;
  background: linear-gradient(180deg, #e8dcc0 0%, #c0b090 50%, #a09070 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  transform: rotate(15deg);
  animation: bk-quil 3s ease-in-out infinite;
}
.scn-book-keeping-disasters .bk-coin {
  position:absolute; bottom:12%; left:34%; width:14px; height:14px;
  background: radial-gradient(circle, #e0c860 20%, #c0a840 40%, #a08020 60%, #6a5010 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5), 0 0 8px rgba(200,180,60,.3);
  animation: bk-coin 5s ease-in-out infinite;
}
.scn-book-keeping-disasters .bk-candle {
  position:absolute; bottom:38%; left:20%; width:10px; height:30px;
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 60%, #c8b898 100%);
  border-radius: 4px 4px 6px 6px;
  box-shadow: 0 0 20px 6px rgba(240,220,160,.4);
  animation: bk-cand 4s ease-in-out infinite alternate;
}
.scn-book-keeping-disasters .bk-drip {
  position:absolute; bottom:36%; left:21%; width:3px; height:12px;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 100%);
  border-radius: 2px;
  animation: bk-drip 6s ease-in-out infinite;
}
@keyframes bk-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bk-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bk-ledg { 0% { transform: translateX(-50%) rotate(-2deg) translateY(0) } 50% { transform: translateX(-50%) rotate(0) translateY(-2px) } 100% { transform: translateX(-50%) rotate(-1deg) translateY(0) } }
@keyframes bk-hand { 0% { transform: rotate(-3deg) } 30% { transform: rotate(0) } 60% { transform: rotate(4deg) } 100% { transform: rotate(-3deg) } }
@keyframes bk-quil { 0% { transform: rotate(12deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(12deg) } }
@keyframes bk-coin { 0% { transform: translateY(0) rotate(0) scale(1) } 50% { transform: translateY(-8px) rotate(180deg) scale(1.1) } 100% { transform: translateY(0) rotate(360deg) scale(1) } }
@keyframes bk-cand { 0% { box-shadow: 0 0 16px 4px rgba(240,220,160,.3) } 50% { box-shadow: 0 0 28px 10px rgba(255,240,200,.6) } 100% { box-shadow: 0 0 18px 5px rgba(240,220,160,.35) } }
@keyframes bk-drip { 0% { transform: translateY(0); opacity:.8 } 50% { transform: translateY(10px); opacity:.2 } 100% { transform: translateY(0); opacity:.8 } }

/* lyons-sightseeing - sunlit, warm, looking at city */
.scn-lyons-sightseeing {
  background:
    linear-gradient(180deg, #b0d0e8 0%, #d8e8f8 30%, #f0f4ff 60%, #e0e8f0 100%),
    radial-gradient(ellipse at 50% 0%, #f0f8ff 0%, #80b0d0 100%);
}
.scn-lyons-sightseeing .lyons-sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #90c8e8 0%, #c8e4f8 40%, transparent 100%);
  animation: ly-sky 30s ease-in-out infinite alternate;
}
.scn-lyons-sightseeing .lyons-spire {
  position:absolute; bottom:35%; left:50%; width:30px; height:100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 40%, #5a4a2a 100%);
  clip-path: polygon(25% 0%, 75% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 6px 20px rgba(0,0,0,.3);
  animation: ly-spir 10s ease-in-out infinite alternate;
}
.scn-lyons-sightseeing .lyons-roofs {
  position:absolute; bottom:30%; left:8%; right:8%; height:30%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 60%, #4a3a1a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -6px 20px rgba(0,0,0,.3);
  animation: ly-roof 15s ease-in-out infinite alternate;
}
.scn-lyons-sightseeing .lyons-arch {
  position:absolute; bottom:20%; left:20%; width:40px; height:60px;
  background: linear-gradient(180deg, #c0b898 0%, #a09070 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.2);
  animation: ly-arch 8s ease-in-out infinite alternate;
}
.scn-lyons-sightseeing .lyons-figure {
  position:absolute; bottom:15%; left:38%; width:20px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  animation: ly-fig 5s ease-in-out infinite;
}
.scn-lyons-sightseeing .lyons-shadow {
  position:absolute; bottom:12%; left:35%; width:40px; height:8px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: ly-shad 5s ease-in-out infinite;
}
.scn-lyons-sightseeing .lyons-flag {
  position:absolute; top:10%; left:54%; width:16px; height:20px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 50%, #804020 100%);
  border-radius: 0 4px 4px 0;
  transform-origin: left top;
  animation: ly-flag 4s ease-in-out infinite;
}
@keyframes ly-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ly-spir { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ly-roof { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ly-arch { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes ly-fig { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-2px) rotate(0) } 60% { transform: translateY(0) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ly-shad { 0% { transform: scaleX(1); opacity:.4 } 50% { transform: scaleX(1.2); opacity:.3 } 100% { transform: scaleX(1); opacity:.4 } }
@keyframes ly-flag { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(8deg) scaleY(1.05) } 100% { transform: rotate(0) scaleY(1) } }

/* pie-none */
.scn-pie-none {
  background: 
    linear-gradient(180deg, #1c1410 0%, #2a1e18 40%, #3d2a20 100%),
    radial-gradient(ellipse at 50% 80%, #3d2a20 0%, transparent 70%);
}
.scn-pie-none .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2c1e16 0%, #1c1410 100%);
  animation: pn-wall 12s ease-in-out infinite alternate;
}
.scn-pie-none .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1e18 100%);
  border-radius: 12% 12% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: pn-table 9s ease-in-out infinite;
}
.scn-pie-none .pie {
  position: absolute; bottom: 25%; left: 35%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 40%, #c8924a 0%, #8a5e30 60%, #4a3528 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: pn-pie 5s ease-in-out infinite alternate;
}
.scn-pie-none .cap {
  position: absolute; bottom: 22%; left: 60%; width: 70px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #6a4a3a 0%, #3a2a20 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: pn-cap 4s ease-in-out infinite;
}
.scn-pie-none .hand {
  position: absolute; bottom: 18%; left: 55%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a3e2e 0%, #3a2a1e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pn-hand 3s ease-in-out infinite;
}
.scn-pie-none .steam {
  position: absolute; bottom: 55%; left: 38%; width: 20px; height: 30px;
  background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: pn-steam 6s ease-out infinite;
}
.scn-pie-none .candle {
  position: absolute; bottom: 20%; left: 15%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e0c080 0%, #b89860 50%, #7a5a30 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px #f0d090;
  animation: pn-candle-glow 3s ease-in-out infinite alternate;
}
@keyframes pn-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pn-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes pn-pie {
  0% { transform: scale(1) rotate(-1deg); }
  50% { transform: scale(1.02) rotate(1deg); }
  100% { transform: scale(1) rotate(0); }
}
@keyframes pn-cap {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-4px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes pn-hand {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(8px) rotate(10deg); }
  60% { transform: translateX(4px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes pn-steam {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 0.3; }
  100% { transform: translateY(-40px) scale(2); opacity: 0; }
}
@keyframes pn-candle-glow {
  0% { box-shadow: 0 0 8px 2px #d0b070; opacity: 0.8; }
  50% { box-shadow: 0 0 20px 6px #f0d090; opacity: 1; }
  100% { box-shadow: 0 0 12px 3px #d0b070; opacity: 0.9; }
}

/* love-defined */
.scn-love-defined {
  background: 
    linear-gradient(180deg, #1c1410 0%, #2a201a 50%, #3d2e24 100%),
    radial-gradient(ellipse at 50% 70%, #3d2e24 0%, transparent 70%);
}
.scn-love-defined .bg-study {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e16 0%, #1a1410 100%);
  animation: ld-bg 20s ease-in-out infinite alternate;
}
.scn-love-defined .desk {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1c1410 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.6);
  animation: ld-desk 10s ease-in-out infinite;
}
.scn-love-defined .man-silhouette {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ld-man 6s ease-in-out infinite;
}
.scn-love-defined .quill {
  position: absolute; bottom: 22%; left: 48%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ld-quill 4s ease-in-out infinite alternate;
}
.scn-love-defined .floating-heart1 {
  position: absolute; bottom: 60%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 40%, #b87878 0%, #702243 100%);
  clip-path: polygon(50% 0%, 0% 35%, 15% 100%, 50% 75%, 85% 100%, 100% 35%);
  animation: ld-float1 8s ease-in-out infinite;
}
.scn-love-defined .floating-heart2 {
  position: absolute; bottom: 70%; right: 25%; width: 14px; height: 14px;
  background: radial-gradient(circle at 50% 40%, #b87878 0%, #702243 100%);
  clip-path: polygon(50% 0%, 0% 35%, 15% 100%, 50% 75%, 85% 100%, 100% 35%);
  animation: ld-float2 10s ease-in-out infinite reverse;
}
.scn-love-defined .floating-dot {
  position: absolute; bottom: 65%; left: 60%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d0b070 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(208,176,112,.5);
  animation: ld-dot 6s ease-in-out infinite alternate;
}
@keyframes ld-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ld-desk {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes ld-man {
  0% { transform: translateX(-50%) rotate(0); }
  25% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(0); }
  75% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes ld-quill {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes ld-float1 {
  0% { transform: translateY(0) scale(1); opacity: 0.7; }
  50% { transform: translateY(-30px) scale(1.2); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.7; }
}
@keyframes ld-float2 {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-40px) scale(1.3); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.6; }
}
@keyframes ld-dot {
  0% { transform: translate(0, 0); box-shadow: 0 0 8px 1px rgba(208,176,112,.3); }
  50% { transform: translate(10px, -10px); box-shadow: 0 0 20px 4px rgba(208,176,112,.6); }
  100% { transform: translate(-5px, -5px); box-shadow: 0 0 10px 2px rgba(208,176,112,.4); }
}

/* widow-watches */
.scn-widow-watches {
  background: 
    linear-gradient(180deg, #f0e8d8 0%, #e0d0b0 30%, #c8b898 60%, #a89878 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e8 0%, transparent 60%);
}
.scn-widow-watches .wall-warm {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 100%);
  animation: ww-wall 15s ease-in-out infinite alternate;
}
.scn-widow-watches .window-frame {
  position: absolute; bottom: 20%; left: 50%; width: 160px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #705848 0%, #504038 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 0 20px #605040, 0 8px 20px rgba(0,0,0,.3);
  animation: ww-frame 8s ease-in-out infinite;
}
.scn-widow-watches .curtain-left {
  position: absolute; bottom: 20%; left: 30%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #c8a878 0%, #a08060 100%);
  border-radius: 0 8px 8px 0;
  transform-origin: left center;
  animation: ww-curtain-l 6s ease-in-out infinite alternate;
}
.scn-widow-watches .curtain-right {
  position: absolute; bottom: 20%; right: 30%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #c8a878 0%, #a08060 100%);
  border-radius: 8px 0 0 8px;
  transform-origin: right center;
  animation: ww-curtain-r 6s ease-in-out infinite alternate;
}
.scn-widow-watches .widow-figure {
  position: absolute; bottom: 23%; left: 50%; width: 30px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ww-figure 4s ease-in-out infinite;
}
.scn-widow-watches .sunbeam {
  position: absolute; top: 10%; left: 40%; width: 40%; height: 15%;
  background: linear-gradient(135deg, rgba(255,248,224,.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(8px);
  animation: ww-sunbeam 10s ease-in-out infinite alternate;
}
.scn-widow-watches .bird-silhouette {
  position: absolute; top: 15%; left: 20%; width: 20px; height: 10px;
  background: #2a1e18;
  clip-path: polygon(0% 50%, 30% 0%, 70% 50%, 100% 0%, 100% 100%, 0% 100%);
  animation: ww-bird 20s linear infinite;
}
@keyframes ww-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ww-frame {
  0%, 100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.005); }
}
@keyframes ww-curtain-l {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(1); }
}
@keyframes ww-curtain-r {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(1); }
}
@keyframes ww-figure {
  0% { transform: translateX(-50%) rotate(0); }
  25% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(0); }
  75% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes ww-sunbeam {
  0% { transform: translateX(-10%) rotate(-2deg); opacity: 0.6; }
  50% { transform: translateX(5%) rotate(2deg); opacity: 0.9; }
  100% { transform: translateX(-5%) rotate(-1deg); opacity: 0.7; }
}
@keyframes ww-bird {
  0% { transform: translateX(-50px); }
  100% { transform: translateX(120vw); }
}

/* blind-gut */
.scn-blind-gut {
  background: 
    linear-gradient(180deg, #1c1410 0%, #2a1e18 40%, #3d2a20 100%),
    radial-gradient(ellipse at 50% 80%, #3d2a20 0%, transparent 70%);
}
.scn-blind-gut .bg-clinic {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2c1e16 0%, #1c1410 100%);
  animation: bg-clinic 14s ease-in-out infinite alternate;
}
.scn-blind-gut .table-round {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1e 0%, #1c1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.5);
  animation: bg-table 8s ease-in-out infinite;
}
.scn-blind-gut .doctor-silhouette {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bg-doc 5s ease-in-out infinite;
}
.scn-blind-gut .toby-silhouette {
  position: absolute; bottom: 18%; right: 30%; width: 55px; height: 75px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bg-toby 5s ease-in-out infinite reverse;
}
.scn-blind-gut .diagram-scroll {
  position: absolute; bottom: 20%; left: 50%; width: 90px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b898 0%, #a89070 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: bg-scroll 6s ease-in-out infinite alternate;
}
.scn-blind-gut .pointing-hand {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom left;
  animation: bg-point 4s ease-in-out infinite;
}
.scn-blind-gut .candle-stand {
  position: absolute; bottom: 15%; left: 20%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #d0b070 0%, #7a5a30 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 3px #f0d090;
  animation: bg-candle 3s ease-in-out infinite alternate;
}
@keyframes bg-clinic {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes bg-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes bg-doc {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes bg-toby {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes bg-scroll {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.05); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes bg-point {
  0% { transform: rotate(0); }
  25% { transform: rotate(15deg); }
  50% { transform: rotate(-10deg); }
  75% { transform: rotate(20deg); }
  100% { transform: rotate(0); }
}
@keyframes bg-candle {
  0% { box-shadow: 0 0 8px 2px #d0b070; opacity: 0.8; }
  50% { box-shadow: 0 0 20px 6px #f0d090; opacity: 1; }
  100% { box-shadow: 0 0 12px 3px #d0b070; opacity: 0.9; }
}

.scn-radical-moisture-defined { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 30%, #1a1208 100%), radial-gradient(ellipse at 60% 80%, #c07030 0%, transparent 60%); }
.scn-radical-moisture-defined .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-radical-moisture-defined .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a1208 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-radical-moisture-defined .father { position:absolute; bottom:20%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rmd-father 5s ease-in-out infinite; }
.scn-radical-moisture-defined .armchair { position:absolute; bottom:18%; left:30%; width:80px; height:50px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-radical-moisture-defined .bottle { position:absolute; bottom:26%; left:55%; width:18px; height:30px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: rmd-bottle 7s ease-in-out infinite; }
.scn-radical-moisture-defined .drip { position:absolute; width:4px; height:8px; background: radial-gradient(circle, #c08050 0%, #a06030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rmd-drip 3s ease-in-out infinite; }
.scn-radical-moisture-defined .drip-a { top:20%; left:58%; animation-delay: 0s; }
.scn-radical-moisture-defined .drip-b { top:24%; left:60%; animation-delay: 1.5s; }
.scn-radical-moisture-defined .candle { position:absolute; bottom:30%; left:18%; width:6px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 10%; }
.scn-radical-moisture-defined .flame { position:absolute; bottom:50%; left:18%; width:8px; height:12px; background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%); border-radius: 50%; animation: rmd-flame 1s ease-in-out infinite alternate; }
@keyframes rmd-father {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rmd-bottle {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(-3deg); }
  75% { transform: rotate(2deg); }
}
@keyframes rmd-drip {
  0% { transform: translateY(0) scaleY(1); opacity:1; }
  20% { transform: translateY(10px) scaleY(1.2); opacity:1; }
  40% { transform: translateY(20px) scaleY(1); opacity:0.8; }
  60% { transform: translateY(30px) scaleY(0.8); opacity:0.5; }
  80% { transform: translateY(40px) scaleY(0.5); opacity:0.2; }
  100% { transform: translateY(50px) scaleY(0.3); opacity:0; }
}
@keyframes rmd-flame {
  0% { transform: scaleY(1) rotate(0deg); opacity:0.8; }
  50% { transform: scaleY(1.2) rotate(5deg); opacity:1; }
  100% { transform: scaleY(0.9) rotate(-5deg); opacity:0.7; }
}
.scn-limerek-lesson { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #120800 100%), radial-gradient(ellipse at 50% 100%, #b06030 0%, transparent 70%); }
.scn-limerek-lesson .bg-wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-limerek-lesson .bg-floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; }
.scn-limerek-lesson .fireplace { position:absolute; bottom:30%; left:10%; width:80px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-limerek-lesson .fire-glow { position:absolute; bottom:30%; left:15%; width:60px; height:50px; background: radial-gradient(circle, #ff8040 0%, transparent 60%); opacity:0.5; animation: ll-fire 3s ease-in-out infinite alternate; }
.scn-limerek-lesson .table { position:absolute; bottom:20%; left:40%; width:120px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 10% 10% 5% 5% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-limerek-lesson .figure { position:absolute; bottom:16%; width:34px; height:50px; background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; }
.scn-limerek-lesson .toby { left:48%; animation: ll-figure 6s ease-in-out infinite; }
.scn-limerek-lesson .trim { left:58%; animation: ll-figure 6s ease-in-out infinite reverse; }
.scn-limerek-lesson .bottle { position:absolute; bottom:30%; left:50%; width:14px; height:28px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 40% 40% 20% 20%; transform: translateX(-50%); animation: ll-bottle 8s ease-in-out infinite; }
.scn-limerek-lesson .glass { position:absolute; width:10px; height:16px; background: linear-gradient(180deg, #b0a080 0%, #908060 100%); border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%; }
.scn-limerek-lesson .glass-a { bottom:26%; left:46%; animation: ll-glass 5s ease-in-out infinite; }
.scn-limerek-lesson .glass-b { bottom:26%; right:46%; animation: ll-glass 5s ease-in-out infinite reverse; }
@keyframes ll-fire {
  0% { transform: scale(1) rotate(0deg); opacity:0.4; }
  25% { transform: scale(1.1) rotate(5deg); opacity:0.6; }
  50% { transform: scale(0.95) rotate(-3deg); opacity:0.5; }
  75% { transform: scale(1.05) rotate(2deg); opacity:0.7; }
  100% { transform: scale(1) rotate(0deg); opacity:0.4; }
}
@keyframes ll-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 ll-bottle {
  0% { transform: translateX(-50%) rotate(0deg); }
  20% { transform: translateX(-50%) rotate(8deg); }
  40% { transform: translateX(-50%) rotate(-5deg); }
  60% { transform: translateX(-50%) rotate(6deg); }
  80% { transform: translateX(-50%) rotate(-3deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ll-glass {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
.scn-noblest-grave { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 40%, #0a0500 100%), radial-gradient(ellipse at 30% 80%, #8a5a3a 0%, transparent 60%); }
.scn-noblest-grave .bg-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-noblest-grave .bg-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-noblest-grave .monument { position:absolute; bottom:20%; left:25%; width:100px; height:80px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 20% 20% 5% 5% / 40% 40% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-noblest-grave .plaque { position:absolute; bottom:30%; left:35%; width:50px; height:30px; background: linear-gradient(180deg, #b09060 0%, #907040 100%); border-radius: 5%; box-shadow: inset 0 2px 4px rgba(0,0,0,.3); }
.scn-noblest-grave .figure-corporal { position:absolute; bottom:18%; left:50%; width:30px; height:50px; background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ng-corporal 6s ease-in-out infinite; }
.scn-noblest-grave .soldier-hat { position:absolute; bottom:28%; left:50%; width:24px; height:10px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 0 0; transform: translateX(-50%); animation: ng-hat 6s ease-in-out infinite; }
.scn-noblest-grave .candle { position:absolute; bottom:30%; left:15%; width:6px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 10%; }
.scn-noblest-grave .glow { position:absolute; bottom:32%; left:15%; width:60px; height:60px; background: radial-gradient(circle, #ffd080 0%, transparent 60%); opacity:0.3; animation: ng-glow 4s ease-in-out infinite alternate; }
@keyframes ng-corporal {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ng-hat {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  75% { transform: translateX(-50%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ng-glow {
  0% { transform: scale(1); opacity:0.2; }
  50% { transform: scale(1.2); opacity:0.5; }
  100% { transform: scale(0.9); opacity:0.3; }
}
.scn-contention-applied { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 40%, #0a0500 100%), radial-gradient(ellipse at 70% 80%, #a06030 0%, transparent 60%); }
.scn-contention-applied .bg-wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-contention-applied .bg-floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; }
.scn-contention-applied .father { position:absolute; bottom:20%; left:15%; width:40px; height:60px; background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ca-father 5s ease-in-out infinite; }
.scn-contention-applied .corporal { position:absolute; bottom:20%; right:15%; width:36px; height:55px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ca-corporal 7s ease-in-out infinite; }
.scn-contention-applied .scale { position:absolute; bottom:35%; left:50%; width:80px; height:10px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 10%; transform: translateX(-50%); animation: ca-scale 8s ease-in-out infinite; }
.scn-contention-applied .weight { position:absolute; width:12px; height:12px; background: radial-gradient(circle, #c08050 0%, #a06030 100%); border-radius: 50%; }
.scn-contention-applied .heat { bottom:38%; left:40%; animation: ca-weight 8s ease-in-out infinite; }
.scn-contention-applied .moisture { bottom:38%; right:40%; animation: ca-weight 8s ease-in-out infinite reverse; }
.scn-contention-applied .candle { position:absolute; bottom:30%; left:45%; width:6px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 10%; }
.scn-contention-applied .flame { position:absolute; bottom:50%; left:45%; width:8px; height:12px; background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%); border-radius: 50%; animation: ca-flame 1.5s ease-in-out infinite alternate; }
@keyframes ca-father {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-2px) scaleY(1.05); }
  50% { transform: translateY(0) scaleY(0.95); }
  75% { transform: translateY(-1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ca-corporal {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ca-scale {
  0% { transform: translateX(-50%) rotate(0deg); }
  20% { transform: translateX(-50%) rotate(5deg); }
  40% { transform: translateX(-50%) rotate(-3deg); }
  60% { transform: translateX(-50%) rotate(4deg); }
  80% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ca-weight {
  0% { transform: translateY(0); }
  20% { transform: translateY(-4px); }
  40% { transform: translateY(2px); }
  60% { transform: translateY(-3px); }
  80% { transform: translateY(1px); }
  100% { transform: translateY(0); }
}
@keyframes ca-flame {
  0% { transform: scaleY(1) rotate(0deg); opacity:0.8; }
  50% { transform: scaleY(1.2) rotate(5deg); opacity:1; }
  100% { transform: scaleY(0.9) rotate(-5deg); opacity:0.7; }
}

.scn-lady-baussiere-rides { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #cd853f 100%), radial-gradient(ellipse at 30% 70%, #f0e68c 0%, transparent 70%); }
.scn-lady-baussiere-rides .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, transparent 100%); animation: lb-sky 15s ease-in-out infinite alternate; }
.scn-lady-baussiere-rides .sun { position:absolute; top:10%; left:20%; width:70px; height:70px; background: radial-gradient(circle, #ffd700 0%, #ffa500 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,215,0,.4); animation: lb-sun 6s ease-in-out infinite alternate; }
.scn-lady-baussiere-rides .road { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8b7355 0%, #6b5e45 100%); border-radius: 20% 80% 0 0 / 30% 70% 0 0; }
.scn-lady-baussiere-rides .horse { position:absolute; bottom:25%; left:30%; width:120px; height:60px; background: linear-gradient(180deg, #a07040 0%, #704828 100%); border-radius: 40% 40% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lb-horse 2s ease-in-out infinite; }
.scn-lady-baussiere-rides .rider { position:absolute; bottom:45%; left:33%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lb-rider 2s ease-in-out infinite; }
.scn-lady-baussiere-rides .beggar { position:absolute; bottom:20%; left:60%; width:20px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: lb-beggar 4s ease-in-out infinite alternate; }
.scn-lady-baussiere-rides .cloud { position:absolute; top:12%; width:90px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(5px); }
.scn-lady-baussiere-rides .c1 { left:-10%; animation: lb-cloud1 40s linear infinite; }
.scn-lady-baussiere-rides .c2 { right:-10%; width:60px; height:14px; animation: lb-cloud2 55s linear infinite reverse; }
@keyframes lb-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes lb-sun { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 40px 15px rgba(255,215,0,.3) } 50% { transform: scale(1.05) translateY(-4px); box-shadow: 0 0 80px 30px rgba(255,215,0,.5) } 100% { transform: scale(1) translateY(0); box-shadow: 0 0 40px 15px rgba(255,215,0,.3) } }
@keyframes lb-horse { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lb-rider { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lb-beggar { 0% { transform: translateX(0) skewX(0deg) } 50% { transform: translateX(5px) skewX(3deg) } 100% { transform: translateX(0) skewX(0deg) } }
@keyframes lb-cloud1 { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes lb-cloud2 { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-whiskers-call { background: linear-gradient(180deg, #f0e68c 0%, #cd853f 40%, #8b7355 100%), radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 60%); }
.scn-whiskers-call .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, transparent 100%); animation: wc-sky 12s ease-in-out infinite alternate; }
.scn-whiskers-call .sun { position:absolute; top:8%; right:25%; width:60px; height:60px; background: radial-gradient(circle, #ffd700 0%, #ffa500 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(255,215,0,.4); animation: wc-sun 5s ease-in-out infinite alternate; }
.scn-whiskers-call .road { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a09070 0%, #6b5e45 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-whiskers-call .lady { position:absolute; bottom:42%; left:25%; width:40px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wc-lady 3s ease-in-out infinite; }
.scn-whiskers-call .palfrey { position:absolute; bottom:22%; left:18%; width:130px; height:65px; background: linear-gradient(180deg, #b08050 0%, #704828 100%); border-radius: 45% 45% 35% 35% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wc-palfrey 2s ease-in-out infinite; }
.scn-whiskers-call .page { position:absolute; bottom:20%; left:55%; width:22px; height:50px; background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: wc-page 4s ease-in-out infinite; }
.scn-whiskers-call .whisker { position:absolute; bottom:65%; width:40px; height:8px; background: linear-gradient(90deg, #8b7355 0%, transparent 100%); border-radius: 50%; transform-origin: right center; }
.scn-whiskers-call .wl { left:20%; animation: wc-whisker-l 2s ease-in-out infinite; }
.scn-whiskers-call .wr { left:27%; width:35px; animation: wc-whisker-r 2s ease-in-out infinite reverse; }
@keyframes wc-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes wc-sun { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 30px 10px rgba(255,215,0,.3) } 50% { transform: scale(1.08) translateY(-5px); box-shadow: 0 0 70px 25px rgba(255,215,0,.5) } 100% { transform: scale(1) translateY(0); box-shadow: 0 0 30px 10px rgba(255,215,0,.3) } }
@keyframes wc-lady { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes wc-palfrey { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(4px) rotate(1deg) } 60% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wc-page { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 20% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 40% { transform: translateX(16px) translateY(0) rotate(-2deg) } 60% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 80% { transform: translateX(32px) translateY(0) rotate(-2deg) } 100% { transform: translateX(40px) translateY(0) rotate(0deg) } }
@keyframes wc-whisker-l { 0% { transform: rotate(10deg) scaleX(1) } 50% { transform: rotate(20deg) scaleX(1.1) } 100% { transform: rotate(10deg) scaleX(1) } }
@keyframes wc-whisker-r { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-20deg) scaleX(1.1) } 100% { transform: rotate(-10deg) scaleX(1) } }

.scn-whiskers-ruined { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 50%, #3a3a4a 0%, transparent 80%); }
.scn-whiskers-ruined .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); opacity:.8; }
.scn-whiskers-ruined .window { position:absolute; top:10%; right:10%; width:80px; height:100px; background: radial-gradient(ellipse, #4a5a6a 0%, #2a3a4a 80%); border: 6px solid #5a4a3a; border-radius: 8%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: wr-window 10s ease-in-out infinite alternate; }
.scn-whiskers-ruined .table { position:absolute; bottom:10%; left:10%; width:60%; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.6); }
.scn-whiskers-ruined .figure { position:absolute; bottom:20%; width:30px; height:60px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; }
.scn-whiskers-ruined .f1 { left:20%; animation: wr-figure1 5s ease-in-out infinite; }
.scn-whiskers-ruined .f2 { right:20%; height:55px; animation: wr-figure2 6s ease-in-out infinite alternate; }
.scn-whiskers-ruined .whisker-mark { position:absolute; bottom:55%; width:30px; height:2px; background: #8b7355; border-radius: 2px; }
.scn-whiskers-ruined .m1 { left:30%; transform: rotate(15deg); animation: wr-mark1 2s ease-in-out infinite; }
.scn-whiskers-ruined .m2 { left:35%; top:45%; width:25px; transform: rotate(-20deg); animation: wr-mark2 2.5s ease-in-out infinite; }
@keyframes wr-window { 0% { opacity:.3; box-shadow: inset 0 0 20px rgba(0,0,0,.5) } 50% { opacity:.6; box-shadow: inset 0 0 40px rgba(30,40,60,.4) } 100% { opacity:.4; box-shadow: inset 0 0 20px rgba(0,0,0,.5) } }
@keyframes wr-figure1 { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes wr-figure2 { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes wr-mark1 { 0% { opacity:.6; transform: rotate(15deg) scaleX(1) } 50% { opacity:1; transform: rotate(20deg) scaleX(1.2) } 100% { opacity:.6; transform: rotate(15deg) scaleX(1) } }
@keyframes wr-mark2 { 0% { opacity:.5; transform: rotate(-20deg) scaleX(.9) } 50% { opacity:1; transform: rotate(-25deg) scaleX(1.1) } 100% { opacity:.5; transform: rotate(-20deg) scaleX(.9) } }

.scn-curates-warning { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #2a1a0a 100%), radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 80%); }
.scn-curates-warning .wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-curates-warning .desk { position:absolute; bottom:8%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.5); }
.scn-curates-warning .book { position:absolute; bottom:25%; left:30%; width:80px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 2px 2px 6px rgba(0,0,0,.6); animation: cw-book 8s ease-in-out infinite; }
.scn-curates-warning .candle { position:absolute; bottom:35%; right:25%; width:20px; height:40px; background: linear-gradient(180deg, #c8a878 0%, #8a6a48 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px rgba(200,168,120,.3); }
.scn-curates-warning .flame { position:absolute; bottom:52%; right:25%; width:10px; height:20px; background: radial-gradient(ellipse, #ffd700 0%, #ff8c00 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,140,0,.4); animation: cw-flame 1s ease-in-out infinite alternate; }
.scn-curates-warning .curate { position:absolute; bottom:18%; left:20%; width:35px; height:70px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cw-curate 6s ease-in-out infinite; }
.scn-curates-warning .quill { position:absolute; bottom:30%; left:40%; width:25px; height:8px; background: linear-gradient(90deg, #a09070 0%, #705040 100%); border-radius: 50%; transform-origin: left center; animation: cw-quill 3s ease-in-out infinite alternate; }
@keyframes cw-book { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cw-flame { 0% { transform: scaleY(1) translateY(0); opacity:.8 } 50% { transform: scaleY(1.2) translateY(-3px); opacity:1 } 100% { transform: scaleY(1) translateY(0); opacity:.8 } }
@keyframes cw-curate { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cw-quill { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(1.1) } 100% { transform: rotate(-10deg) scaleX(1) } }

/* fathers-pettish-journey – funny sunlit journey */
.scn-fathers-pettish-journey { background: linear-gradient(180deg, #87ceeb 0%, #e0f0ff 40%, #fef0d0 100%), radial-gradient(ellipse at 50% 0%, #fff7e0 0%, transparent 70%); }
.scn-fathers-pettish-journey .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #a0d4f0 0%, #cceaff 100%); animation: fpj-sky 15s ease-in-out infinite alternate; }
.scn-fathers-pettish-journey .sun { position:absolute; top:8%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #fff7b0 0%, #ffd580 50%, #ffb040 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,200,80,.5); animation: fpj-sun 6s ease-in-out infinite alternate; }
.scn-fathers-pettish-journey .cloud-a, .scn-fathers-pettish-journey .cloud-b { position:absolute; top:12%; width:100px; height:28px; background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, rgba(200,220,240,.3) 100%); border-radius:50%; filter: blur(5px); }
.scn-fathers-pettish-journey .cloud-a { left:5%; animation: fpj-drift-a 40s linear infinite; }
.scn-fathers-pettish-journey .cloud-b { left:55%; animation: fpj-drift-b 55s linear infinite reverse; width:70px; height:22px; top:18%; }
.scn-fathers-pettish-journey .road { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b09070 0%, #8a6d4f 40%, #6b4f33 100%); border-radius: 20% 30% 0 0 / 30% 40% 0 0; }
.scn-fathers-pettish-journey .carriage { position:absolute; bottom:30%; left:30%; width:120px; height:70px; background: linear-gradient(180deg, #7a5633 0%, #4a321f 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: fpj-bounce 2.5s ease-in-out infinite; }
.scn-fathers-pettish-journey .wheel-f, .scn-fathers-pettish-journey .wheel-r { position:absolute; bottom:28%; width:22px; height:22px; background: radial-gradient(circle, #3a2a1a 30%, #1a1008 70%); border-radius:50%; box-shadow: 0 0 0 3px #2a1a0a; animation: fpj-spin 1s linear infinite; }
.scn-fathers-pettish-journey .wheel-f { left:33%; }
.scn-fathers-pettish-journey .wheel-r { left:49%; }
.scn-fathers-pettish-journey .figures { position:absolute; bottom:35%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: fpj-figures 3s ease-in-out infinite; }
@keyframes fpj-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fpj-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(255,200,80,.5) } 50% { transform: scale(1.08); box-shadow: 0 0 80px 30px rgba(255,220,120,.7) } 100% { transform: scale(.95); box-shadow: 0 0 50px 15px rgba(255,200,80,.4) } }
@keyframes fpj-drift-a { 0% { transform: translateX(-120px) } 100% { transform: translateX(120vw) } }
@keyframes fpj-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-130vw) } }
@keyframes fpj-bounce { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fpj-spin { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes fpj-figures { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) } }

/* lost-son-lament – dark dim-interior */
.scn-lost-son-lament { background: linear-gradient(180deg, #1a1420 0%, #0f0a14 50%, #050308 100%), radial-gradient(ellipse at 60% 40%, #2a2030 0%, transparent 70%); }
.scn-lost-son-lament .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a2430 0%, #1a1420 50%, #0f0a14 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-lost-son-lament .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1420 0%, #0f0a14 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-lost-son-lament .window { position:absolute; top:8%; left:10%; width:50px; height:70px; background: #0a0a1a; border: 6px solid #2a1a2a; border-radius:4%; box-shadow: inset 0 0 20px 5px rgba(100,140,200,.15); }
.scn-lost-son-lament .moonlight { position:absolute; top:8%; left:10%; width:50px; height:70px; background: radial-gradient(circle at 50% 40%, rgba(180,200,255,.15) 0%, transparent 70%); animation: lsl-moon 12s ease-in-out infinite alternate; }
.scn-lost-son-lament .chair { position:absolute; bottom:20%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-lost-son-lament .figure { position:absolute; bottom:25%; left:34%; width:20px; height:40px; background: linear-gradient(180deg, #1a0a14 0%, #0f050a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lsl-figure 5s ease-in-out infinite; }
.scn-lost-son-lament .table { position:absolute; bottom:15%; left:55%; width:35px; height:18px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 4%; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
.scn-lost-son-lament .candle { position:absolute; bottom:25%; left:60%; width:6px; height:20px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 2px; animation: lsl-candle 3s ease-in-out infinite; }
.scn-lost-son-lament .candle::before { content:''; position:absolute; top:-6px; left:-2px; width:10px; height:10px; background: radial-gradient(circle, #ffc080 0%, #d08040 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,192,128,.4); animation: lsl-flame .8s ease-in-out infinite alternate; }
@keyframes lsl-moon { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.2 } }
@keyframes lsl-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(1px) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-2deg) } 75% { transform: translateY(1px) rotate(0deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes lsl-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes lsl-flame { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.2) translateY(-2px) } 100% { transform: scale(.95) translateY(0) } }

/* church-spectacle – funny sunlit church exterior */
.scn-church-spectacle { background: linear-gradient(180deg, #aad0ff 0%, #d0e8ff 50%, #f5f5e0 100%), radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 70%); }
.scn-church-spectacle .sky-church { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #95c8ff 0%, #c0ddff 100%); animation: chs-sky 14s ease-in-out infinite alternate; }
.scn-church-spectacle .roof { position:absolute; bottom:35%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); clip-path: polygon(5% 100%, 50% 10%, 95% 100%); }
.scn-church-spectacle .facade { position:absolute; bottom:20%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.3); }
.scn-church-spectacle .window-church { position:absolute; bottom:35%; left:42%; width:12%; height:18%; background: radial-gradient(circle, #80b0e0 0%, #3060a0 70%); border: 3px solid #4a3a2a; border-radius: 4% 4% 10% 10% / 6% 6% 12% 12%; box-shadow: inset 0 0 20px 5px rgba(128,176,224,.5); animation: chs-glow 4s ease-in-out infinite alternate; }
.scn-church-spectacle .door { position:absolute; bottom:20%; left:46%; width:6%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-church-spectacle .figure-f { position:absolute; bottom:18%; left:50%; width:16px; height:35px; background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: chs-laugh 2s ease-in-out infinite; }
.scn-church-spectacle .figure-m { position:absolute; bottom:18%; left:56%; width:18px; height:38px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: chs-gesture 2.8s ease-in-out infinite; }
.scn-church-spectacle .pew { position:absolute; bottom:16%; left:48%; width:20%; height:8%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 4px; }
@keyframes chs-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes chs-glow { 0% { box-shadow: inset 0 0 15px 3px rgba(128,176,224,.3) } 50% { box-shadow: inset 0 0 30px 10px rgba(128,176,224,.8) } 100% { box-shadow: inset 0 0 20px 5px rgba(128,176,224,.4) } }
@keyframes chs-laugh { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(5deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-2px) rotate(4deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes chs-gesture { 0% { transform: translateY(0) rotate(2deg) } 30% { transform: translateY(-3px) rotate(-8deg) } 60% { transform: translateY(-1px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }

/* fathers-secret-resolution – tense dim‑interior */
.scn-fathers-secret-resolution { background: linear-gradient(180deg, #1a1410 0%, #0f0a08 50%, #050302 100%), radial-gradient(ellipse at 40% 50%, #2a1a12 0%, transparent 80%); }
.scn-fathers-secret-resolution .wall-r { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); }
.scn-fathers-secret-resolution .floor-r { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a0e08 0%, #0f0502 100%); border-radius: 20% 20% 0 0 / 15% 15% 0 0; }
.scn-fathers-secret-resolution .desk { position:absolute; bottom:20%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-fathers-secret-resolution .document { position:absolute; bottom:24%; left:30%; width:30%; height:8%; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform-origin: center; animation: fsr-doc 5s ease-in-out infinite; }
.scn-fathers-secret-resolution .chair-r { position:absolute; bottom:15%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 4px; }
.scn-fathers-secret-resolution .figure-r { position:absolute; bottom:22%; left:38%; width:18px; height:40px; background: linear-gradient(180deg, #1a0e0a 0%, #0f0502 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fsr-figure 4s ease-in-out infinite; }
.scn-fathers-secret-resolution .lamp { position:absolute; bottom:40%; left:65%; width:8px; height:14px; background: linear-gradient(180deg, #b08060 0%, #6a4020 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(200,140,80,.3); animation: fsr-lamp 3.5s ease-in-out infinite; }
.scn-fathers-secret-resolution .lamp::before { content:''; position:absolute; top:-8px; left:-6px; width:20px; height:20px; background: radial-gradient(circle, #ffb060 0%, #d08040 50%, transparent 70%); border-radius:50%; animation: fsr-flame 1s ease-in-out infinite alternate; }
@keyframes fsr-doc { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(0deg) } }
@keyframes fsr-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(1px) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-2deg) } 75% { transform: translateY(1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fsr-lamp { 0% { box-shadow: 0 0 15px 4px rgba(200,140,80,.2) } 50% { box-shadow: 0 0 30px 10px rgba(200,140,80,.5) } 100% { box-shadow: 0 0 15px 4px rgba(200,140,80,.2) } }
@keyframes fsr-flame { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.15) translateY(-2px) } 100% { transform: scale(.95) translateY(0) } }

.scn-mare-and-mule {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #6a5a3a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, #5a4a2a 0%, transparent 60%);
}
.scn-mare-and-mule .stall-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-bottom: 6px solid #2a1a0a;
  animation: mare-wall 20s ease-in-out infinite alternate;
}
.scn-mare-and-mule .stall-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-top: 4px solid #3a2a1a;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.3);
}
.scn-mare-and-mule .horse {
  position: absolute; bottom: 35%; left: 20%; width: 60px; height: 90px;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mare-horse 3s ease-in-out infinite;
}
.scn-mare-and-mule .mule {
  position: absolute; bottom: 38%; right: 25%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 40% 50% 40% 40% / 50% 60% 30% 40%;
  transform-origin: bottom center;
  animation: mare-mule 3.5s ease-in-out infinite 0.5s;
}
.scn-mare-and-mule .haystack {
  position: absolute; bottom: 30%; left: 5%; width: 80px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #b89850 0%, #8a6a30 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: mare-hay 8s ease-in-out infinite;
}
.scn-mare-and-mule .lantern {
  position: absolute; bottom: 50%; left: 50%; width: 12px; height: 16px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #e0a040, 0 0 40px 12px rgba(224,160,64,.4);
  animation: mare-lantern 4s ease-in-out infinite alternate;
}
.scn-mare-and-mule .bucket {
  position: absolute; bottom: 32%; left: 70%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 -4px 0 #2a1a0a;
  animation: mare-bucket 6s ease-in-out infinite;
}
@keyframes mare-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes mare-horse {
  0%, 100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(-2deg); }
  50% { transform: translateX(-2px) rotate(2deg); }
  75% { transform: translateX(4px) rotate(-1deg); }
}
@keyframes mare-mule {
  0%, 100% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-3px) rotate(1deg); }
  60% { transform: translateX(4px) rotate(-2deg); }
  90% { transform: translateX(-2px) rotate(1deg); }
}
@keyframes mare-hay {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
}
@keyframes mare-lantern {
  0% { box-shadow: 0 0 15px 4px #e0a040, 0 0 30px 8px rgba(224,160,64,.3); }
  50% { box-shadow: 0 0 25px 8px #f0c060, 0 0 50px 18px rgba(240,192,96,.5); }
  100% { box-shadow: 0 0 18px 5px #e0a040, 0 0 35px 10px rgba(224,160,64,.35); }
}
@keyframes mare-bucket {
  0%, 100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(2px) rotate(-3deg); }
  75% { transform: translateX(-2px) rotate(3deg); }
}

.scn-philosophy-of-death {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 70%);
}
.scn-philosophy-of-death .study-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(315deg, #2a2a3e 0%, #1a1a2a 100%);
  border-bottom: 4px solid #0a0a1a;
  animation: phil-wall 30s ease-in-out infinite alternate;
}
.scn-philosophy-of-death .study-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-philosophy-of-death .bookshelf {
  position: absolute; bottom: 40%; left: 5%; width: 30%; height: 25%;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: phil-shelf 12s ease-in-out infinite;
}
.scn-philosophy-of-death .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(315deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-philosophy-of-death .candle {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 40%, #806040 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 8px #f0c060, 0 0 40px 16px rgba(240,192,96,.4);
  animation: phil-candle 2s ease-in-out infinite alternate;
}
.scn-philosophy-of-death .figure {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: phil-figure 8s ease-in-out infinite;
}
.scn-philosophy-of-death .shadow {
  position: absolute; bottom: 0; left: 25%; width: 50%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: phil-shadow 15s ease-in-out infinite;
}
@keyframes phil-wall {
  0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; }
}
@keyframes phil-shelf {
  0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); }
}
@keyframes phil-candle {
  0% { box-shadow: 0 0 15px 5px #f0c060, 0 0 30px 10px rgba(240,192,96,.3); }
  50% { box-shadow: 0 0 22px 8px #f0d080, 0 0 45px 18px rgba(240,208,128,.5); }
  100% { box-shadow: 0 0 18px 6px #f0c060, 0 0 35px 12px rgba(240,192,96,.4); }
}
@keyframes phil-figure {
  0%, 100% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-2px) rotate(-1deg); }
  70% { transform: translateY(1px) rotate(2deg); }
}
@keyframes phil-shadow {
  0%, 100% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.05); }
}

.scn-evolutions-revolutions {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 30%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-evolutions-revolutions .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(315deg, #4a3a2a 0%, #2a1a0a 100%);
  border-bottom: 4px solid #1a0a00;
  animation: evolv-wall 25s ease-in-out infinite alternate;
}
.scn-evolutions-revolutions .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,.3);
}
.scn-evolutions-revolutions .table {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: evolv-table 6s ease-in-out infinite;
}
.scn-evolutions-revolutions .father {
  position: absolute; bottom: 18%; left: 20%; width: 35px; height: 65px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: evolv-father 3s ease-in-out infinite;
}
.scn-evolutions-revolutions .uncle {
  position: absolute; bottom: 22%; right: 20%; width: 32px; height: 55px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: evolv-uncle 3.5s ease-in-out infinite 0.5s;
}
.scn-evolutions-revolutions .pipe {
  position: absolute; bottom: 35%; left: 32%; width: 20px; height: 4px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom right;
  animation: evolv-pipe 2s ease-in-out infinite;
}
.scn-evolutions-revolutions .smoke {
  position: absolute; bottom: 45%; left: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,190,180,.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: evolv-smoke 4s ease-in-out infinite;
}
@keyframes evolv-wall {
  0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.85; }
}
@keyframes evolv-table {
  0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); }
}
@keyframes evolv-father {
  0%, 100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(4px) rotate(-3deg); }
  50% { transform: translateX(-3px) rotate(4deg); }
  75% { transform: translateX(5px) rotate(-2deg); }
}
@keyframes evolv-uncle {
  0%, 100% { transform: translateX(0) rotate(1deg); }
  30% { transform: translateX(-3px) rotate(-2deg); }
  70% { transform: translateX(2px) rotate(3deg); }
}
@keyframes evolv-pipe {
  0%, 100% { transform: rotate(0) scaleY(1); }
  50% { transform: rotate(15deg) scaleY(1.2); }
}
@keyframes evolv-smoke {
  0% { transform: translateY(0) scale(0.8); opacity: 0.3; }
  50% { transform: translateY(-15px) scale(1.2); opacity: 0.6; }
  100% { transform: translateY(-30px) scale(1.5); opacity: 0; }
}

.scn-ancient-cities {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #6a5a3a 30%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 20%, #7a6a4a 0%, transparent 70%);
}
.scn-ancient-cities .study-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(315deg, #5a4a3a 0%, #3a2a1a 100%);
  border-bottom: 4px solid #2a1a0a;
  animation: anci-wall 30s ease-in-out infinite alternate;
}
.scn-ancient-cities .study-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.3);
}
.scn-ancient-cities .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(135deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: anci-desk 10s ease-in-out infinite;
}
.scn-ancient-cities .book {
  position: absolute; bottom: 30%; left: 25%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 2% 2% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: anci-book 6s ease-in-out infinite;
}
.scn-ancient-cities .lamp {
  position: absolute; bottom: 38%; left: 10%; width: 14px; height: 20px;
  background: radial-gradient(circle, #f0d080 0%, #c0a060 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 25px 10px #f0c060, 0 0 50px 20px rgba(240,192,96,.4);
  animation: anci-lamp 3s ease-in-out infinite alternate;
}
.scn-ancient-cities .figure {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: anci-figure 8s ease-in-out infinite;
}
.scn-ancient-cities .scroll {
  position: absolute; bottom: 30%; right: 15%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #b8a88a 0%, #8a7a5a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: anci-scroll 5s ease-in-out infinite;
}
@keyframes anci-wall {
  0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.85; }
}
@keyframes anci-desk {
  0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); }
}
@keyframes anci-book {
  0%, 100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(-2deg); }
}
@keyframes anci-lamp {
  0% { box-shadow: 0 0 18px 6px #f0c060, 0 0 35px 12px rgba(240,192,96,.3); }
  50% { box-shadow: 0 0 28px 10px #f0d080, 0 0 55px 20px rgba(240,208,128,.5); }
  100% { box-shadow: 0 0 22px 8px #f0c060, 0 0 40px 15px rgba(240,192,96,.35); }
}
@keyframes anci-figure {
  0%, 100% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(1px) rotate(1deg); }
}
@keyframes anci-scroll {
  0%, 100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(3deg); }
}

/* tobys-reward */
.scn-tobys-reward {
  background:
    linear-gradient(180deg, #2a1e0e 0%, #1a120a 40%, #0d0a06 100%),
    radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 70%);
}
.scn-tobys-reward .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e0e 100%);
}
.scn-tobys-reward .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-tobys-reward .table {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-tobys-reward .candle {
  position: absolute; bottom: 42%; left: 50%; width: 6px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 60%, #604020 100%);
  border-radius: 3px 3px 2px 2px;
  box-shadow: 0 0 30px 10px rgba(255,180,80,.5), 0 0 60px 20px rgba(255,140,60,.3);
  animation: tre-candle 4s ease-in-out infinite alternate;
}
.scn-tobys-reward .figure-toby {
  position: absolute; bottom: 26%; left: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: tre-toby 5s ease-in-out infinite;
}
.scn-tobys-reward .figure-trim {
  position: absolute; bottom: 26%; left: 58%; width: 36px; height: 58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: tre-trim 6s ease-in-out infinite;
}
.scn-tobys-reward .handkerchief {
  position: absolute; bottom: 40%; left: 60%; width: 16px; height: 12px;
  background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: tre-handkerchief 3s ease-in-out infinite alternate;
}
.scn-tobys-reward .shadow {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 12%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%);
  filter: blur(4px);
  animation: tre-shadow 8s ease-in-out infinite alternate;
}
@keyframes tre-candle {
  0% { opacity: .6; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.02) rotate(1deg); }
  100% { opacity: .5; transform: translateX(-50%) scaleY(.98) rotate(-1deg); }
}
@keyframes tre-toby {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tre-trim {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tre-handkerchief {
  0% { transform: rotate(15deg) scaleY(1); }
  50% { transform: rotate(20deg) scaleY(1.1) translateY(-2px); }
  100% { transform: rotate(10deg) scaleY(.95); }
}
@keyframes tre-shadow {
  0% { opacity: .3; transform: scaleY(1); }
  100% { opacity: .6; transform: scaleY(1.2); }
}

/* pension-promised */
.scn-pension-promised {
  background:
    linear-gradient(180deg, #2e2212 0%, #1e140a 40%, #0f0a06 100%),
    radial-gradient(ellipse at 70% 80%, #5a3820 0%, transparent 60%);
}
.scn-pension-promised .bg-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,.3) 0%, transparent 70%);
  animation: pen-shadow 12s ease-in-out infinite alternate;
}
.scn-pension-promised .fireplace {
  position: absolute; bottom: 20%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 60%, #1a0e06 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px #8a5020, 0 0 40px rgba(200,120,40,.4);
  animation: pen-fireplace 5s ease-in-out infinite alternate;
}
.scn-pension-promised .chair-toby {
  position: absolute; bottom: 25%; left: 35%; width: 45px; height: 55px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: pen-chair 6s ease-in-out infinite;
}
.scn-pension-promised .trim-standing {
  position: absolute; bottom: 26%; left: 55%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pen-trim 5s ease-in-out infinite;
}
.scn-pension-promised .candle {
  position: absolute; bottom: 42%; left: 50%; width: 5px; height: 26px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8c0 0%, #b8a080 60%, #503020 100%);
  border-radius: 2px;
  box-shadow: 0 0 28px 10px rgba(255,180,80,.5);
  animation: pen-candle 4s ease-in-out infinite alternate;
}
.scn-pension-promised .rug {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 50%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: scaleX(1.2);
  filter: blur(1px);
  animation: pen-rug 10s ease-in-out infinite alternate;
}
.scn-pension-promised .mug {
  position: absolute; bottom: 28%; left: 45%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: pen-mug 3s ease-in-out infinite;
}
@keyframes pen-shadow {
  0% { opacity: .2; }
  50% { opacity: .5; }
  100% { opacity: .3; }
}
@keyframes pen-fireplace {
  0% { transform: scaleY(1); box-shadow: inset 0 0 20px #8a5020, 0 0 40px rgba(200,120,40,.4); }
  50% { transform: scaleY(1.05); box-shadow: inset 0 0 30px #aa6020, 0 0 60px rgba(200,120,40,.6); }
  100% { transform: scaleY(.98); box-shadow: inset 0 0 15px #6a4010, 0 0 30px rgba(200,120,40,.3); }
}
@keyframes pen-chair {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pen-trim {
  0% { transform: translateY(0) rotate(1deg) scaleY(1); }
  50% { transform: translateY(-2px) rotate(-1deg) scaleY(1.02); }
  100% { transform: translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes pen-candle {
  0% { opacity: .7; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.03) rotate(-1deg); }
  100% { opacity: .6; transform: translateX(-50%) scaleY(.97) rotate(1deg); }
}
@keyframes pen-rug {
  0% { transform: scaleX(1.2) translateY(0); }
  50% { transform: scaleX(1.22) translateY(-2px); }
  100% { transform: scaleX(1.18) translateY(1px); }
}
@keyframes pen-mug {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(1px) rotate(-3deg); }
}

/* trims-gratitude */
.scn-trims-gratitude {
  background:
    linear-gradient(180deg, #261a0e 0%, #1a1008 40%, #0d0804 100%),
    radial-gradient(ellipse at 80% 50%, #3a2212 0%, transparent 70%);
}
.scn-trims-gratitude .door {
  position: absolute; bottom: 10%; left: 40%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 60%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: -4px 0 12px rgba(0,0,0,.5), inset 0 0 10px #8a6030;
  animation: tri-door 8s ease-in-out infinite alternate;
}
.scn-trims-gratitude .doorframe-left {
  position: absolute; bottom: 10%; left: 37%; width: 6px; height: 104px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
}
.scn-trims-gratitude .doorframe-right {
  position: absolute; bottom: 10%; right: 37%; width: 6px; height: 104px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
}
.scn-trims-gratitude .figure-trim {
  position: absolute; bottom: 16%; right: 42%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom right;
  animation: tri-trim 5s ease-in-out infinite;
}
.scn-trims-gratitude .hand-on-chest {
  position: absolute; bottom: 38%; right: 42%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: tri-hand 4s ease-in-out infinite alternate;
}
.scn-trims-gratitude .tear {
  position: absolute; bottom: 48%; right: 38%; width: 4px; height: 6px;
  background: radial-gradient(circle, #a0c8d0 0%, #608090 70%);
  border-radius: 50%;
  filter: blur(1px);
  opacity: .7;
  animation: tri-tear 2s ease-in-out infinite;
}
.scn-trims-gratitude .shadow {
  position: absolute; bottom: 8%; left: 30%; right: 30%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%);
  filter: blur(3px);
  animation: tri-shadow 6s ease-in-out infinite alternate;
}
@keyframes tri-door {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(.98); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes tri-trim {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(1px) rotate(1deg); }
}
@keyframes tri-hand {
  0% { transform: rotate(-20deg) scaleY(1); }
  50% { transform: rotate(-15deg) scaleY(1.1) translateY(-2px); }
  100% { transform: rotate(-22deg) scaleY(.95); }
}
@keyframes tri-tear {
  0% { transform: translateY(0) scale(1); opacity: .7; }
  50% { transform: translateY(-4px) scale(1.2); opacity: 1; }
  100% { transform: translateY(0) scale(.8); opacity: .3; }
}
@keyframes tri-shadow {
  0% { opacity: .3; transform: scaleY(1); }
  100% { opacity: .6; transform: scaleY(1.1); }
}

/* philosophy-of-resilience */
.scn-philosophy-of-resilience {
  background:
    linear-gradient(180deg, #2e2212 0%, #1e140a 40%, #0f0a06 100%),
    radial-gradient(ellipse at 50% 70%, #3a2212 0%, transparent 60%);
}
.scn-philosophy-of-resilience .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e0e 100%);
}
.scn-philosophy-of-resilience .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-philosophy-of-resilience .chair {
  position: absolute; bottom: 24%; left: 30%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: phi-chair 6s ease-in-out infinite;
}
.scn-philosophy-of-resilience .figure-father {
  position: absolute; bottom: 26%; left: 50%; width: 34px; height: 62px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: phi-father 5s ease-in-out infinite;
}
.scn-philosophy-of-resilience .figure-toby {
  position: absolute; bottom: 24%; left: 60%; width: 38px; height: 58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: phi-toby 7s ease-in-out infinite;
}
.scn-philosophy-of-resilience .candle {
  position: absolute; bottom: 44%; left: 45%; width: 5px; height: 26px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8c0 0%, #b8a080 60%, #503020 100%);
  border-radius: 2px;
  box-shadow: 0 0 28px 10px rgba(255,180,80,.5);
  animation: phi-candle 4s ease-in-out infinite alternate;
}
.scn-philosophy-of-resilience .chamber-pot {
  position: absolute; bottom: 20%; left: 55%; width: 12px; height: 10px;
  background: linear-gradient(180deg, #a08870 0%, #705840 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 2px 4px #403020;
  animation: phi-pot 8s ease-in-out infinite alternate;
}
.scn-philosophy-of-resilience .shadow {
  position: absolute; bottom: 15%; left: 40%; right: 20%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(3px);
  animation: phi-shadow 10s ease-in-out infinite alternate;
}
@keyframes phi-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes phi-father {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(5px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes phi-toby {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes phi-candle {
  0% { opacity: .6; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.03) rotate(-1deg); }
  100% { opacity: .5; transform: translateX(-50%) scaleY(.97) rotate(1deg); }
}
@keyframes phi-pot {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(2px) scaleX(1.05); }
  100% { transform: translateY(-1px) scaleX(.95); }
}
@keyframes phi-shadow {
  0% { opacity: .3; transform: scaleY(1) translateX(0); }
  100% { opacity: .5; transform: scaleY(1.2) translateX(10px); }
}

/* life-and-opinions */
.scn-life-and-opinions {
  background: 
    linear-gradient(180deg, #2c1a0e 0%, #4a2e1a 40%, #3a2210 100%),
    radial-gradient(ellipse at 60% 40%, #6b4a2a 0%, transparent 60%);
}
.scn-life-and-opinions .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #3a2210 0%, #2c1a0e 50%, transparent 100%);
  opacity: 0.6;
}
.scn-life-and-opinions .desk {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 24%;
  background: linear-gradient(180deg, #5e3a20 0%, #3a2210 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
}
.scn-life-and-opinions .candle {
  position: absolute; bottom: 28%; left: 38%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c4a27a 100%);
  border-radius: 2px 2px 4px 4px;
  transform: rotate(-3deg);
}
.scn-life-and-opinions .flame {
  position: absolute; bottom: 60%; left: 38%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 0%, #ffc080 0%, #ff8c40 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,200,128,0.5), 0 0 40px 20px rgba(255,140,64,0.3);
  animation: lo-flame 2s ease-in-out infinite alternate;
  transform: translateX(-4px);
}
.scn-life-and-opinions .papers {
  position: absolute; bottom: 20%; left: 20%; right: 40%; height: 16%;
  background: linear-gradient(135deg, #f0e6d0 0%, #d4c4a8 60%, #c4b498 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(2deg);
  animation: lo-papers 12s ease-in-out infinite alternate;
}
.scn-life-and-opinions .quill {
  position: absolute; bottom: 16%; left: 48%; width: 10px; height: 64px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 50%, #8a7a62 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: lo-quill 4s ease-in-out infinite alternate;
}
.scn-life-and-opinions .chair-silhouette {
  position: absolute; bottom: 6%; right: 8%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0602 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-life-and-opinions .window-shape {
  position: absolute; top: 10%; right: 6%; width: 80px; height: 110px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 8% 8% 4% 4%;
  border: 4px solid #4a3a2a;
  box-shadow: inset 0 0 30px rgba(10,20,30,0.6);
}
.scn-life-and-opinions .moonbeam {
  position: absolute; top: 10%; right: 6%; width: 80px; height: 110px;
  background: linear-gradient(135deg, rgba(200,220,255,0.15) 0%, transparent 60%);
  border-radius: 8% 8% 4% 4%;
  animation: lo-moonbeam 20s ease-in-out infinite alternate;
}
@keyframes lo-flame {
  0% { transform: translateX(-4px) scaleY(1); opacity: 0.9; }
  50% { transform: translateX(-2px) scaleY(1.15); opacity: 1; }
  100% { transform: translateX(-6px) scaleY(0.95); opacity: 0.85; }
}
@keyframes lo-papers {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-2px); }
  100% { transform: rotate(1deg) translateY(0); }
}
@keyframes lo-quill {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
  100% { transform: rotate(-22deg) translateY(0); }
}
@keyframes lo-moonbeam {
  0% { opacity: 0.1; transform: scaleX(1); }
  50% { opacity: 0.25; transform: scaleX(1.02); }
  100% { opacity: 0.15; transform: scaleX(0.98); }
}

/* widow-midwife */
.scn-widow-midwife {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 70%);
}
.scn-widow-midwife .wall-cottage {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  opacity: 0.7;
}
.scn-widow-midwife .hearth {
  position: absolute; bottom: 0%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-widow-midwife .fire-glow {
  position: absolute; bottom: 12%; left: 35%; right: 35%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #ff8c40 0%, #ff5a20 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,90,32,0.4);
  animation: wm-fireglow 3s ease-in-out infinite alternate;
}
.scn-widow-midwife .cradle {
  position: absolute; bottom: 4%; left: 12%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: wm-cradle 6s ease-in-out infinite;
}
.scn-widow-midwife .woman-figure {
  position: absolute; bottom: 8%; left: 60%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wm-woman 10s ease-in-out infinite alternate;
}
.scn-widow-midwife .basket {
  position: absolute; bottom: 2%; right: 10%; width: 40px; height: 24px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-widow-midwife .window-cottage {
  position: absolute; top: 8%; left: 8%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 6% 6% 4% 4%;
  border: 4px solid #4a3a2a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-widow-midwife .curtain-left {
  position: absolute; top: 8%; left: 4%; width: 16px; height: 80px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 0 20% 20% 0;
  transform: rotate(2deg);
  animation: wm-curtain-l 15s ease-in-out infinite alternate;
}
.scn-widow-midwife .curtain-right {
  position: absolute; top: 8%; right: 4%; width: 16px; height: 80px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 0 0 20%;
  transform: rotate(-2deg);
  animation: wm-curtain-r 15s ease-in-out infinite alternate;
}
@keyframes wm-fireglow {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.8; transform: scaleY(0.95); }
}
@keyframes wm-cradle {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes wm-woman {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes wm-curtain-l {
  0% { transform: rotate(2deg) translateX(0); }
  50% { transform: rotate(4deg) translateX(-4px); }
  100% { transform: rotate(1deg) translateX(0); }
}
@keyframes wm-curtain-r {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(-4deg) translateX(4px); }
  100% { transform: rotate(-1deg) translateX(0); }
}

/* hobby-horse-philosophy */
.scn-hobby-horse-philosophy {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a3a4a 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 40% 30%, #4a4a5a 0%, transparent 70%);
}
.scn-hobby-horse-philosophy .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%);
  opacity: 0.6;
}
.scn-hobby-horse-philosophy .bookshelf {
  position: absolute; top: 4%; left: 2%; right: 2%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-hobby-horse-philosophy .desk-study {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.6);
}
.scn-hobby-horse-philosophy .horse-silhouette {
  position: absolute; bottom: 12%; left: 30%; width: 80px; height: 70px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hp-horse 8s ease-in-out infinite alternate;
}
.scn-hobby-horse-philosophy .lamp {
  position: absolute; bottom: 26%; left: 55%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #c4b49a 0%, #8a7a62 100%);
  border-radius: 2px;
  transform: rotate(5deg);
}
.scn-hobby-horse-philosophy .lamp-glow {
  position: absolute; bottom: 35%; left: 52%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 50%, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,160,64,0.3);
  animation: hp-lampglow 4s ease-in-out infinite alternate;
}
.scn-hobby-horse-philosophy .rug {
  position: absolute; bottom: 0%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 40%, #5a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
}
.scn-hobby-horse-philosophy .chair-study {
  position: absolute; bottom: 4%; right: 12%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
}
.scn-hobby-horse-philosophy .world-globe {
  position: absolute; bottom: 14%; right: 6%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #5a8a5a 0%, #2a5a2a 60%, #1a3a1a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: hp-globe 20s linear infinite;
}
@keyframes hp-horse {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-4px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes hp-lampglow {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes hp-globe {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(2px); }
  100% { transform: rotate(0deg) translateX(0); }
}

/* dedication-mockery */
.scn-dedication-mockery {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 20%, #4a3a4a 0%, transparent 60%);
}
.scn-dedication-mockery .stage-curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a4a4a 0%, #4a2a2a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-dedication-mockery .stage-floor {
  position: absolute; bottom: 0%; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 4% 4% 0 0;
}
.scn-dedication-mockery .figure-bowing {
  position: absolute; bottom: 8%; left: 40%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0e1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dm-bow 4s ease-in-out infinite alternate;
}
.scn-dedication-mockery .hat {
  position: absolute; bottom: 72%; left: 44%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-10deg);
  animation: dm-hat 4s ease-in-out infinite alternate;
}
.scn-dedication-mockery .dedication-scroll {
  position: absolute; bottom: 18%; left: 25%; right: 55%; height: 40%;
  background: linear-gradient(135deg, #f0e6d0 0%, #d4c4a8 40%, #e8dcc8 100%);
  border-radius: 2% 2% 6% 6% / 4% 4% 8% 8%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  transform: rotate(5deg);
  animation: dm-scroll 6s ease-in-out infinite alternate;
}
.scn-dedication-mockery .quill-mock {
  position: absolute; bottom: 20%; left: 38%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-30deg);
  animation: dm-quill 3s ease-in-out infinite;
}
.scn-dedication-mockery .inkwell {
  position: absolute; bottom: 6%; left: 22%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-dedication-mockery .spotlight {
  position: absolute; top: 0; left: 35%; right: 35%; height: 30%;
  background: linear-gradient(180deg, rgba(255,240,200,0.2) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: dm-spotlight 12s ease-in-out infinite alternate;
}
.scn-dedication-mockery .confetti-dots {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 20%;
  background-image: radial-gradient(circle at 20% 30%, #ffa040 4px, transparent 4px),
                    radial-gradient(circle at 60% 40%, #ffd080 3px, transparent 3px),
                    radial-gradient(circle at 80% 60%, #c0a0a0 5px, transparent 5px);
  background-size: 60px 60px;
  animation: dm-confetti 20s linear infinite;
}
@keyframes dm-bow {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-6px); }
  100% { transform: rotate(12deg) translateY(0); }
}
@keyframes dm-hat {
  0% { transform: rotate(-10deg) translate(0,0); }
  50% { transform: rotate(5deg) translate(4px,-8px); }
  100% { transform: rotate(-12deg) translate(0,0); }
}
@keyframes dm-scroll {
  0% { transform: rotate(5deg) scaleX(1); }
  50% { transform: rotate(8deg) scaleX(1.03); }
  100% { transform: rotate(4deg) scaleX(0.98); }
}
@keyframes dm-quill {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-20deg) translateY(-4px); }
  100% { transform: rotate(-32deg) translateY(0); }
}
@keyframes dm-spotlight {
  0% { opacity: 0.3; transform: scaleX(0.9); }
  50% { opacity: 0.6; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.95); }
}
@keyframes dm-confetti {
  0% { background-position: 0 0; }
  100% { background-position: 60px 60px; }
}

/* Scene: beguine-hand */
.scn-beguine-hand {
  background: linear-gradient(135deg, #1a0f0a 0%, #2a1a10 50%, #0f0a05 100%), radial-gradient(ellipse at 60% 30%, #3a2010 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-beguine-hand .bg-dark {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(10,5,2,0.8) 100%);
}
.scn-beguine-hand .bg-warm {
  position: absolute;
  inset: 20% 10% 30% 20%;
  background: radial-gradient(ellipse at 70% 60%, #4a2a15 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(20px);
  animation: bg-ambient 8s ease-in-out infinite alternate;
}
.scn-beguine-hand .hand {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 30%;
  height: 50%;
  background: linear-gradient(180deg, #2a1a0f 0%, #1a0f08 50%, #0f0803 100%);
  border-radius: 60% 40% 20% 80% / 70% 50% 50% 30%;
  transform-origin: bottom center;
  animation: bg-hand-reach 6s ease-in-out infinite;
}
.scn-beguine-hand .hand-shadow {
  position: absolute;
  bottom: 8%;
  left: 28%;
  width: 32%;
  height: 52%;
  background: rgba(0,0,0,0.5);
  border-radius: 60% 40% 20% 80% / 70% 50% 50% 30%;
  filter: blur(8px);
  transform: translate(8px, 4px);
  animation: bg-shadow-drift 6s ease-in-out infinite;
}
.scn-beguine-hand .light-glow {
  position: absolute;
  top: 15%;
  right: 20%;
  width: 70px;
  height: 70px;
  background: radial-gradient(circle, #ffb060 0%, #d08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,176,96,0.3), 0 0 80px 40px rgba(200,100,40,0.1);
  animation: bg-flicker 2s ease-in-out infinite alternate;
}
.scn-beguine-hand .particle {
  position: absolute;
  width: 4px;
  height: 4px;
  background: rgba(255,200,150,0.7);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-beguine-hand .particle-1 {
  top: 40%;
  left: 60%;
  animation: bg-float 12s linear infinite;
}
.scn-beguine-hand .particle-2 {
  top: 50%;
  left: 30%;
  animation: bg-float 15s linear infinite 2s;
}
.scn-beguine-hand .particle-3 {
  top: 35%;
  left: 45%;
  animation: bg-float 18s linear infinite 4s;
}
@keyframes bg-ambient {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes bg-hand-reach {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-8px) translateY(-10px) rotate(5deg); }
  60% { transform: translateX(4px) translateY(-6px) rotate(-3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes bg-shadow-drift {
  0% { transform: translate(8px, 4px) scaleX(1); }
  50% { transform: translate(12px, 2px) scaleX(0.95); }
  100% { transform: translate(8px, 4px) scaleX(1); }
}
@keyframes bg-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 30px 15px rgba(255,176,96,0.2); }
  50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,176,96,0.4); }
  100% { opacity: 0.85; box-shadow: 0 0 35px 18px rgba(255,176,96,0.25); }
}
@keyframes bg-float {
  0% { transform: translate(0, 0); opacity: 0.4; }
  25% { transform: translate(10px, -15px); opacity: 0.8; }
  50% { transform: translate(-5px, 20px); opacity: 0.6; }
  75% { transform: translate(15px, -10px); opacity: 0.9; }
  100% { transform: translate(0, 0); opacity: 0.4; }
}

/* Scene: rubbing-love */
.scn-rubbing-love {
  background: linear-gradient(135deg, #1a120a 0%, #2a1e10 40%, #0f0a05 100%), radial-gradient(ellipse at 40% 50%, #3a2210 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-rubbing-love .bg-deep {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(5,2,0,0.6) 100%);
}
.scn-rubbing-love .bg-mid {
  position: absolute;
  inset: 10% 5% 20% 5%;
  background: radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(30px);
  animation: rb-pulse 10s ease-in-out infinite alternate;
}
.scn-rubbing-love .hand-base {
  position: absolute;
  bottom: 15%;
  left: 20%;
  width: 40%;
  height: 60%;
  background: linear-gradient(180deg, #3a2215 0%, #1a0f08 100%);
  border-radius: 70% 30% 30% 70% / 60% 40% 60% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: rb-base-shift 8s ease-in-out infinite;
}
.scn-rubbing-love .hand-rubbing {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 30%;
  height: 45%;
  background: linear-gradient(180deg, #2a1a0f 0%, #1a0f08 100%);
  border-radius: 50% 50% 30% 70% / 40% 30% 70% 60%;
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: rb-rub-move 4s ease-in-out infinite;
}
.scn-rubbing-love .rub-glow {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #ffc080 0%, #d08040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,192,128,0.3);
  animation: rb-glow-pulse 2s ease-in-out infinite alternate;
}
.scn-rubbing-love .rub-heat {
  position: absolute;
  bottom: 40%;
  left: 40%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #ffa060 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(5px);
  animation: rb-heat-waver 3s ease-in-out infinite;
}
.scn-rubbing-love .sparkle {
  position: absolute;
  width: 6px;
  height: 6px;
  background: #ffd070;
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(255,208,112,0.6);
}
.scn-rubbing-love .sparkle-a {
  top: 45%;
  left: 35%;
  animation: rb-sparkle 5s ease-in-out infinite;
}
.scn-rubbing-love .sparkle-b {
  top: 50%;
  left: 55%;
  animation: rb-sparkle 6s ease-in-out infinite 2s;
}
.scn-rubbing-love .sparkle-c {
  top: 35%;
  left: 50%;
  animation: rb-sparkle 7s ease-in-out infinite 4s;
}
@keyframes rb-pulse {
  0% { opacity: 0.5; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes rb-base-shift {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-4px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes rb-rub-move {
  0% { transform: rotate(15deg) translate(0, 0); }
  25% { transform: rotate(12deg) translate(8px, -5px); }
  50% { transform: rotate(18deg) translate(12px, -2px); }
  75% { transform: rotate(10deg) translate(6px, -8px); }
  100% { transform: rotate(15deg) translate(0, 0); }
}
@keyframes rb-glow-pulse {
  0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(255,192,128,0.2); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,192,128,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(255,192,128,0.3); }
}
@keyframes rb-heat-waver {
  0% { transform: scale(0.8) translate(0, 0); opacity: 0.4; }
  50% { transform: scale(1.2) translate(5px, -3px); opacity: 0.8; }
  100% { transform: scale(0.8) translate(0, 0); opacity: 0.4; }
}
@keyframes rb-sparkle {
  0% { transform: translate(0, 0) scale(0.5); opacity: 0; }
  50% { transform: translate(15px, -20px) scale(1.2); opacity: 1; }
  100% { transform: translate(30px, -40px) scale(0.3); opacity: 0; }
}

/* Scene: passion-peaked */
.scn-passion-peaked {
  background: linear-gradient(135deg, #1a0e08 0%, #2a1a0f 40%, #0f0703 100%), radial-gradient(ellipse at 50% 40%, #3a1a0a 0%, transparent 55%);
  position: relative;
  overflow: hidden;
}
.scn-passion-peaked .bg-dark {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(5,2,0,0.7) 100%);
}
.scn-passion-peaked .silhouette {
  position: absolute;
  bottom: 5%;
  right: 10%;
  width: 35%;
  height: 70%;
  background: linear-gradient(180deg, #1a0f0a 0%, #0f0805 100%);
  border-radius: 50% 50% 40% 60% / 60% 70% 30% 40%;
  transform-origin: bottom center;
  animation: ps-profile 8s ease-in-out infinite alternate;
}
.scn-passion-peaked .lips {
  position: absolute;
  bottom: 40%;
  right: 25%;
  width: 12%;
  height: 6%;
  background: linear-gradient(180deg, #40201a 0%, #2a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: ps-lips-move 4s ease-in-out infinite;
  z-index: 2;
}
.scn-passion-peaked .hand-hold {
  position: absolute;
  bottom: 35%;
  right: 35%;
  width: 25%;
  height: 40%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 60% 40% 40% 60% / 50% 40% 60% 50%;
  transform: rotate(30deg);
  transform-origin: bottom left;
  animation: ps-hand-clasp 6s ease-in-out infinite;
  z-index: 1;
}
.scn-passion-peaked .steam {
  position: absolute;
  width: 10px;
  height: 20px;
  background: rgba(255,200,150,0.3);
  border-radius: 50%;
  filter: blur(3px);
}
.scn-passion-peaked .steam-1 {
  bottom: 45%;
  right: 28%;
  animation: ps-steam 5s ease-out infinite;
}
.scn-passion-peaked .steam-2 {
  bottom: 48%;
  right: 32%;
  animation: ps-steam 6s ease-out infinite 2s;
}
.scn-passion-peaked .warm-haze {
  position: absolute;
  inset: 10% 5% 20% 10%;
  background: radial-gradient(ellipse at 40% 50%, #4a2a1a 0%, transparent 60%);
  filter: blur(25px);
  opacity: 0.5;
  animation: ps-haze 12s ease-in-out infinite alternate;
}
@keyframes ps-profile {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ps-lips-move {
  0% { transform: rotate(-20deg) scaleX(1); }
  25% { transform: rotate(-18deg) scaleX(1.1); }
  50% { transform: rotate(-22deg) scaleX(0.95); }
  75% { transform: rotate(-20deg) scaleX(1.05); }
  100% { transform: rotate(-20deg) scaleX(1); }
}
@keyframes ps-hand-clasp {
  0% { transform: rotate(30deg) translate(0, 0); }
  30% { transform: rotate(25deg) translate(-5px, -8px); }
  60% { transform: rotate(35deg) translate(3px, -4px); }
  100% { transform: rotate(30deg) translate(0, 0); }
}
@keyframes ps-steam {
  0% { transform: translateY(0) scaleX(1); opacity: 0.6; }
  50% { transform: translateY(-30px) scaleX(1.5); opacity: 0.3; }
  100% { transform: translateY(-60px) scaleX(0.5); opacity: 0; }
}
@keyframes ps-haze {
  0% { opacity: 0.4; transform: scale(0.95); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.45; transform: scale(0.95); }
}

/* Scene: mote-in-eye */
.scn-mote-in-eye {
  background: linear-gradient(135deg, #f5e0c0 0%, #e0c898 40%, #c8a878 100%), radial-gradient(ellipse at 50% 30%, #ffeedd 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-mote-in-eye .bg-light {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,240,200,0.3) 0%, transparent 60%);
}
.scn-mote-in-eye .eye {
  position: absolute;
  top: 20%;
  left: 30%;
  width: 40%;
  height: 40%;
  background: #f0f0f0;
  border-radius: 50% 50% 40% 40% / 50% 50% 50% 50%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1), 0 4px 12px rgba(0,0,0,0.2);
  animation: mt-blink 4s ease-in-out infinite;
}
.scn-mote-in-eye .iris {
  position: absolute;
  top: 30%;
  left: 40%;
  width: 20%;
  height: 20%;
  background: radial-gradient(circle, #5a3a1a 0%, #8a6a3a 40%, #f0e0c0 80%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: mt-iris-move 6s ease-in-out infinite;
}
.scn-mote-in-eye .pupil {
  position: absolute;
  top: 36%;
  left: 46%;
  width: 8%;
  height: 8%;
  background: #1a0a00;
  border-radius: 50%;
  animation: mt-pupil-move 6s ease-in-out infinite;
}
.scn-mote-in-eye .mote {
  position: absolute;
  top: 28%;
  left: 48%;
  width: 3%;
  height: 3%;
  background: #4a3a20;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: mt-mote-jitter 2s ease-in-out infinite;
}
.scn-mote-in-eye .finger {
  position: absolute;
  top: 15%;
  left: 55%;
  width: 10%;
  height: 30%;
  background: linear-gradient(180deg, #d4a878 0%, #b89060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: mt-finger-poke 3s ease-in-out infinite;
}
.scn-mote-in-eye .tear {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 4%;
  height: 6%;
  background: rgba(100,150,200,0.4);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: mt-tear-fall 4s ease-in infinite;
}
.scn-mote-in-eye .magnify-lens {
  position: absolute;
  top: 5%;
  right: 10%;
  width: 15%;
  height: 15%;
  border: 3px solid #6a4a2a;
  border-radius: 50%;
  background: rgba(200,180,160,0.3);
  box-shadow: 0 0 15px rgba(0,0,0,0.2);
  animation: mt-lens-float 8s ease-in-out infinite alternate;
}
@keyframes mt-blink {
  0% { transform: scaleY(1); }
  4% { transform: scaleY(0.1); }
  8% { transform: scaleY(1); }
  100% { transform: scaleY(1); }
}
@keyframes mt-iris-move {
  0% { transform: translate(0, 0); }
  25% { transform: translate(5px, 3px); }
  50% { transform: translate(-2px, -4px); }
  75% { transform: translate(8px, 2px); }
  100% { transform: translate(0, 0); }
}
@keyframes mt-pupil-move {
  0% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(3px, 2px) scale(1.1); }
  50% { transform: translate(-1px, -3px) scale(0.9); }
  75% { transform: translate(5px, 1px) scale(1.05); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes mt-mote-jitter {
  0% { transform: translate(0, 0); }
  20% { transform: translate(2px, -1px); }
  40% { transform: translate(-1px, 2px); }
  60% { transform: translate(3px, 1px); }
  80% { transform: translate(-2px, -2px); }
  100% { transform: translate(0, 0); }
}
@keyframes mt-finger-poke {
  0% { transform: rotate(30deg) translate(0, 0); }
  30% { transform: rotate(25deg) translate(-8px, -10px); }
  60% { transform: rotate(35deg) translate(5px, -5px); }
  100% { transform: rotate(30deg) translate(0, 0); }
}
@keyframes mt-tear-fall {
  0% { transform: translateY(0) scaleX(1); opacity: 0.8; }
  50% { transform: translateY(20px) scaleX(1.2); opacity: 0.4; }
  100% { transform: translateY(40px) scaleX(0.8); opacity: 0; }
}
@keyframes mt-lens-float {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* father-returns */
.scn-father-returns { background: linear-gradient(180deg, #1e1b1a 0%, #2c2624 40%, #1a1716 100%), radial-gradient(ellipse at 50% 80%, #4a3c34 0%, transparent 60%); }
.scn-father-returns .fr-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a322e 0%, #1e1b1a 100%); animation: fr-wall 12s ease-in-out infinite alternate; }
.scn-father-returns .fr-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2522 0%, #141110 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-father-returns .fr-door { position:absolute; bottom:35%; left:25%; width:80px; height:120px; background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%); border-radius: 4px; border: 3px solid #1a1310; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: fr-door 8s ease-in-out infinite; }
.scn-father-returns .fr-table { position:absolute; bottom:38%; left:60%; width:100px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e24 100%); border-radius: 4px; transform-origin: bottom left; animation: fr-table 6s ease-in-out infinite; }
.scn-father-returns .fr-candle-flame { position:absolute; bottom:52%; left:68%; width:8px; height:12px; background: radial-gradient(circle, #ffd080 30%, #c08040 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 12px 4px #ffb060; animation: fr-flame 2s ease-in-out infinite; }
.scn-father-returns .fr-candle-halo { position:absolute; bottom:48%; left:66%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,200,120,0.4) 0%, transparent 70%); border-radius: 50%; animation: fr-halo 4s ease-in-out infinite; }
.scn-father-returns .fr-figure { position:absolute; bottom:38%; left:32%; width:30px; height:80px; background: linear-gradient(180deg, #0d0b0a 0%, #1a1310 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fr-figure 5s ease-in-out infinite; }
.scn-father-returns .fr-hatstand { position:absolute; bottom:40%; left:15%; width:10px; height:80px; background: linear-gradient(180deg, #2a1e18 0%, #1a1310 100%); border-radius: 2px; transform: rotate(-5deg); animation: fr-hatstand 10s ease-in-out infinite; }
@keyframes fr-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes fr-door { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-3deg) translateX(2px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(3deg) translateX(-2px); } }
@keyframes fr-table { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } }
@keyframes fr-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform: scaleY(1) translateY(0); opacity:0.9; } }
@keyframes fr-halo { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.1); opacity:0.8; } 100% { transform: scale(1); opacity:0.6; } }
@keyframes fr-figure { 0% { transform: translateX(0) rotate(0deg) scaleX(1); } 25% { transform: translateX(5px) rotate(2deg) scaleX(0.95); } 50% { transform: translateX(10px) rotate(0deg) scaleX(1); } 75% { transform: translateX(15px) rotate(-2deg) scaleX(0.95); } 100% { transform: translateX(20px) rotate(0deg) scaleX(1); } }
@keyframes fr-hatstand { 0%,100% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-4deg) scaleY(0.98); } }

/* child-of-wrath */
.scn-child-of-wrath { background: linear-gradient(180deg, #1a1a2e 0%, #2a2240 40%, #0e0a1a 100%), radial-gradient(ellipse at 50% 100%, #3a2e5a 0%, transparent 60%); }
.scn-child-of-wrath .cw-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2e 100%); animation: cw-bg 15s ease-in-out infinite alternate; }
.scn-child-of-wrath .cw-window { position:absolute; top:10%; right:10%; width:80px; height:100px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 4px; border: 4px solid #1a1a2e; box-shadow: inset 0 0 20px rgba(255,255,255,0.1); animation: cw-window 8s ease-in-out infinite; }
.scn-child-of-wrath .cw-moon { position:absolute; top:12%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #d0d0e0 0%, #a0a0c0 60%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,200,230,0.3), 0 0 60px 20px rgba(200,200,230,0.15); animation: cw-moon 6s ease-in-out infinite; }
.scn-child-of-wrath .cw-cradle { position:absolute; bottom:30%; left:30%; width:120px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e1a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: cw-cradle 4s ease-in-out infinite; }
.scn-child-of-wrath .cw-child { position:absolute; bottom:35%; left:40%; width:30px; height:30px; background: radial-gradient(circle, #c0a080 0%, #8a6a4a 100%); border-radius: 50%; box-shadow: 0 0 10px 2px #a08060; animation: cw-child 3s ease-in-out infinite; }
.scn-child-of-wrath .cw-shadow { position:absolute; bottom:30%; right:20%; width:80px; height:120px; background: linear-gradient(180deg, rgba(10,10,20,0.8) 0%, rgba(10,10,20,0.2) 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: cw-shadow 10s ease-in-out infinite; }
.scn-child-of-wrath .cw-curtain { position:absolute; top:0; right:15%; width:60px; height:100%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%); border-radius: 10% 10% 0 0; filter: blur(2px); animation: cw-curtain 12s ease-in-out infinite; }
@keyframes cw-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes cw-window { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.02) scaleY(1.01); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes cw-moon { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(-3px) scale(1.02); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.9; } }
@keyframes cw-cradle { 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 cw-child { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes cw-shadow { 0% { transform: translateX(0) scaleX(1); opacity:0.5; } 50% { transform: translateX(5px) scaleX(0.95); opacity:0.7; } 100% { transform: translateX(0) scaleX(1); opacity:0.5; } }
@keyframes cw-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }

/* system-failed */
.scn-system-failed { background: linear-gradient(180deg, #1e1a18 0%, #2c2420 40%, #140e0c 100%), radial-gradient(ellipse at 50% 70%, #3a2e2a 0%, transparent 60%); }
.scn-system-failed .sf-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2e2a 0%, #1e1a18 100%); animation: sf-bg 12s ease-in-out infinite alternate; }
.scn-system-failed .sf-bed { position:absolute; bottom:25%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: sf-bed 8s ease-in-out infinite; }
.scn-system-failed .sf-midwife { position:absolute; bottom:35%; left:60%; width:40px; height:90px; background: linear-gradient(180deg, #2a2220 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: sf-midwife 5s ease-in-out infinite; }
.scn-system-failed .sf-child { position:absolute; bottom:40%; left:40%; width:20px; height:20px; background: radial-gradient(circle, #b08060 0%, #804a30 100%); border-radius: 50%; box-shadow: 0 0 8px 2px #a06040; animation: sf-child 3s ease-in-out infinite; }
.scn-system-failed .sf-candle-l { position:absolute; bottom:45%; left:25%; width:6px; height:10px; background: radial-gradient(circle, #ffc860 0%, #c08040 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 6px #ffb040; animation: sf-candle 2.5s ease-in-out infinite; }
.scn-system-failed .sf-candle-r { position:absolute; bottom:45%; left:70%; width:6px; height:10px; background: radial-gradient(circle, #ffc860 0%, #c08040 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 6px #ffb040; animation: sf-candle 3s ease-in-out infinite 0.5s; }
.scn-system-failed .sf-clock { position:absolute; top:10%; left:15%; width:40px; height:40px; background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50%; border: 4px solid #2a1a0a; box-shadow: 0 0 10px 2px rgba(0,0,0,.4); animation: sf-clock 20s linear infinite; }
@keyframes sf-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes sf-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes sf-midwife { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 25% { transform: translateX(3px) rotate(2deg) scaleY(0.95); } 50% { transform: translateX(6px) rotate(0deg) scaleY(1); } 75% { transform: translateX(3px) rotate(-2deg) scaleY(0.95); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes sf-child { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } }
@keyframes sf-candle { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.3) translateY(-2px); opacity:1; } 100% { transform: scaleY(1) translateY(0); opacity:0.9; } }
@keyframes sf-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* authors-apostrophe */
.scn-authors-apostrophe { background: linear-gradient(180deg, #2a1a0a 0%, #4a3020 40%, #1a0e06 100%), radial-gradient(ellipse at 50% 80%, #6a4a3a 0%, transparent 60%); }
.scn-authors-apostrophe .aa-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a4030 0%, #2a1a0a 100%); animation: aa-bg 10s ease-in-out infinite alternate; }
.scn-authors-apostrophe .aa-desk { position:absolute; bottom:30%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.4); transform-origin: bottom left; animation: aa-desk 6s ease-in-out infinite; }
.scn-authors-apostrophe .aa-chair { position:absolute; bottom:30%; left:40%; width:40px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 10% 10% 20% 20%; transform-origin: bottom; animation: aa-chair 4s ease-in-out infinite; }
.scn-authors-apostrophe .aa-writer { position:absolute; bottom:35%; left:42%; width:30px; height:70px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: aa-writer 3s ease-in-out infinite; }
.scn-authors-apostrophe .aa-bookshelf { position:absolute; top:10%; right:10%; width:80px; height:70%; background: linear-gradient(180deg, #6a5030 0%, #4a3020 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: aa-bookshelf 12s ease-in-out infinite; }
.scn-authors-apostrophe .aa-papers { position:absolute; bottom:32%; left:55%; width:50px; height:10px; background: #e0c8a0; border-radius: 2px; transform: rotate(-10deg); animation: aa-papers 2s ease-in-out infinite; }
.scn-authors-apostrophe .aa-lamp { position:absolute; bottom:45%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #c0a060 0%, #806040 100%); border-radius: 4px; transform-origin: bottom; animation: aa-lamp 5s ease-in-out infinite; box-shadow: 0 0 20px 8px #ffc860; }
.scn-authors-apostrophe .aa-inkwell { position:absolute; bottom:33%; left:38%; width:20px; height:20px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50%; box-shadow: 0 0 4px 1px rgba(255,255,255,0.1); animation: aa-inkwell 4s ease-in-out infinite; }
@keyframes aa-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes aa-desk { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } }
@keyframes aa-chair { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(3deg) translateX(2px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(-3deg) translateX(-2px); } }
@keyframes aa-writer { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 25% { transform: translateY(-3px) rotate(2deg) scaleX(0.95); } 50% { transform: translateY(0) rotate(0deg) scaleX(1); } 75% { transform: translateY(-3px) rotate(-2deg) scaleX(0.95); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes aa-bookshelf { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes aa-papers { 0% { transform: rotate(-10deg) translateY(0); opacity:0.8; } 50% { transform: rotate(5deg) translateY(-4px); opacity:1; } 100% { transform: rotate(-10deg) translateY(0); opacity:0.8; } }
@keyframes aa-lamp { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(0.98); } 100% { transform: rotate(-2deg) scaleY(1); } }
@keyframes aa-inkwell { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(5deg); } }

.scn-knock-given {
  background:
    radial-gradient(ellipse at 70% 50%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #2a1f14 0%, #1a120c 100%);
}
.scn-knock-given .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 20%, #4a3830 80%);
  animation: kg-shift 12s ease-in-out infinite alternate;
}
.scn-knock-given .door {
  position: absolute; left: 20%; bottom: 10%; width: 40%; height: 70%;
  background: linear-gradient(135deg, #6a5230 0%, #4a3820 50%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5), 0 8px 16px rgba(0,0,0,0.7);
  transform: perspective(400px) rotateY(-5deg);
  animation: kg-door 6s ease-in-out infinite;
}
.scn-knock-given .knocker {
  position: absolute; left: 38%; bottom: 45%; width: 10%; height: 12%;
  background: radial-gradient(circle, #b89870 0%, #7a6030 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6), inset 0 2px 6px #d0b080;
  transform-origin: center top;
  animation: kg-knock 0.6s cubic-bezier(0.68, -0.55, 0.27, 1.55) 3s infinite;
}
.scn-knock-given .hand {
  position: absolute; left: 50%; bottom: 50%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #805a40 0%, #5a3a28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: kg-reach 4s ease-in-out infinite alternate;
}
.scn-knock-given .figure {
  position: absolute; left: 60%; bottom: 15%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #1a120c 0%, #0d0a08 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform: scale(0.9);
  animation: kg-bob 3s ease-in-out infinite;
}
.scn-knock-given .light {
  position: absolute; right: 10%; top: 20%; width: 15%; height: 20%;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: kg-glow 5s ease-in-out infinite alternate;
}
@keyframes kg-shift {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes kg-door {
  0%,100% { transform: perspective(400px) rotateY(-5deg); }
  50% { transform: perspective(400px) rotateY(2deg) translateX(2px); }
}
@keyframes kg-knock {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(8px) rotate(-15deg); }
  60% { transform: translateY(-4px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kg-reach {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-10px) rotate(8deg) scale(1.05); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kg-bob {
  0%,100% { transform: scale(0.9) translateY(0); }
  50% { transform: scale(0.92) translateY(-3px); }
}
@keyframes kg-glow {
  0% { opacity: 0.2; filter: blur(10px); }
  50% { opacity: 0.5; filter: blur(6px); }
  100% { opacity: 0.3; filter: blur(12px); }
}

.scn-debt-confession {
  background:
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #1f1814 0%, #120d0a 100%);
}
.scn-debt-confession .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 40%, #2a1e16 100%);
  animation: dc-dim 8s ease-in-out infinite alternate;
}
.scn-debt-confession .desk {
  position: absolute; left: 10%; bottom: 0; width: 80%; height: 30%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2a18 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  transform: perspective(300px) rotateX(10deg);
}
.scn-debt-confession .figure {
  position: absolute; left: 25%; bottom: 25%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #2a1e16 0%, #0d0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-lean 5s ease-in-out infinite;
}
.scn-debt-confession .hand-coin {
  position: absolute; left: 45%; bottom: 28%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #6a4a38 0%, #4a3020 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: center top;
  animation: dc-hand 3s ease-in-out infinite alternate;
}
.scn-debt-confession .hand-coin::after {
  content: ''; position: absolute; left: 50%; top: 50%; width: 40%; height: 40%;
  background: radial-gradient(circle, #c8a870 0%, #8a6830 100%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: dc-coin 2s ease-in-out infinite alternate;
}
.scn-debt-confession .candle {
  position: absolute; right: 15%; bottom: 35%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #705038 0%, #2a1a10 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 20px 8px rgba(255,180,80,0.2);
}
.scn-debt-confession .candle::after {
  content: ''; position: absolute; top: -8%; left: 50%; width: 60%; height: 15%;
  background: radial-gradient(circle, #ffcc60 0%, #ffa030 70%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: dc-flame 1s ease-in-out infinite alternate;
}
.scn-debt-confession .shadow {
  position: absolute; left: 10%; bottom: 0; width: 80%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(6px);
}
@keyframes dc-dim {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes dc-lean {
  0%,100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(2deg); }
  60% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes dc-hand {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-8px) rotate(10deg) scale(1.05); }
}
@keyframes dc-coin {
  0% { transform: translate(-50%, -50%) rotate(0deg); }
  100% { transform: translate(-50%, -50%) rotate(20deg) scale(0.9); }
}
@keyframes dc-flame {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.3); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.9); opacity: 0.7; }
}

.scn-womans-ends {
  background:
    radial-gradient(ellipse at 50% 40%, #4a3828 0%, transparent 80%),
    linear-gradient(180deg, #2a1e16 0%, #1a120c 100%);
}
.scn-womans-ends .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, #2a1e16 100%);
  animation: we-mist 10s ease-in-out infinite alternate;
}
.scn-womans-ends .figure {
  position: absolute; left: 50%; bottom: 25%; width: 24%; height: 55%;
  background: linear-gradient(180deg, #1f1814 0%, #0d0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: we-sway 6s ease-in-out infinite;
}
.scn-womans-ends .hand-left {
  position: absolute; left: 35%; bottom: 45%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #6a4a38 0%, #4a3020 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom right;
  animation: we-hand-l 4s ease-in-out infinite alternate;
}
.scn-womans-ends .hand-right {
  position: absolute; right: 35%; bottom: 45%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #6a4a38 0%, #4a3020 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom left;
  animation: we-hand-r 4s ease-in-out infinite alternate;
}
.scn-womans-ends .mote {
  position: absolute; width: 2%; height: 2%;
  background: radial-gradient(circle, rgba(255,220,180,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-womans-ends .mot-a {
  left: 20%; top: 30%;
  animation: we-drift-a 15s linear infinite;
}
.scn-womans-ends .mot-b {
  right: 25%; top: 50%;
  animation: we-drift-b 20s linear infinite reverse;
}
@keyframes we-mist {
  0% { opacity: 0.6; filter: saturate(0.8); }
  50% { opacity: 0.9; filter: saturate(1.2); }
  100% { opacity: 0.7; filter: saturate(0.9); }
}
@keyframes we-sway {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(3deg); }
  50% { transform: translateX(-50%) rotate(-2deg); }
  75% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes we-hand-l {
  0% { transform: translate(0,0) rotate(10deg); }
  50% { transform: translate(-5px, -8px) rotate(-10deg) scale(1.05); }
  100% { transform: translate(0,0) rotate(10deg); }
}
@keyframes we-hand-r {
  0% { transform: translate(0,0) rotate(-10deg); }
  50% { transform: translate(5px, -8px) rotate(10deg) scale(1.05); }
  100% { transform: translate(0,0) rotate(-10deg); }
}
@keyframes we-drift-a {
  0% { transform: translate(0,0) scale(1); }
  25% { transform: translate(10px, -15px) scale(1.2); }
  50% { transform: translate(-5px, -25px) scale(0.8); }
  75% { transform: translate(15px, -10px) scale(1.1); }
  100% { transform: translate(0,0) scale(1); }
}
@keyframes we-drift-b {
  0% { transform: translate(0,0) scale(1); }
  25% { transform: translate(-8px, 10px) scale(0.9); }
  50% { transform: translate(12px, -20px) scale(1.3); }
  75% { transform: translate(-10px, 5px) scale(0.7); }
  100% { transform: translate(0,0) scale(1); }
}

.scn-pannier-search {
  background:
    radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 80%),
    linear-gradient(180deg, #1f1814 0%, #0d0a08 100%);
}
.scn-pannier-search .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 20%, #2a1e16 80%);
  animation: ps-dim 9s ease-in-out infinite alternate;
}
.scn-pannier-search .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a18 0%, #1f1810 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-pannier-search .woman {
  position: absolute; left: 15%; bottom: 22%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #1a120c 0%, #0d0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-bend 4s ease-in-out infinite alternate;
}
.scn-pannier-search .donkey {
  position: absolute; right: 20%; bottom: 20%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e16 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: ps-twitch 3s ease-in-out infinite;
}
.scn-pannier-search .donkey::before {
  content: ''; position: absolute; top: -25%; left: 20%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e16 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(10deg);
}
.scn-pannier-search .pannier {
  position: absolute; right: 30%; bottom: 15%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #7a5a38 0%, #5a3a20 100%);
  border-radius: 15% 15% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 -4px 8px rgba(0,0,0,0.3);
  transform-origin: center top;
  animation: ps-shake 2s ease-in-out infinite;
}
.scn-pannier-search .halter {
  position: absolute; right: 32%; bottom: 30%; width: 8%; height: 4%;
  background: #5a3a20;
  border-radius: 20%;
  transform: rotate(-20deg);
  animation: ps-pull 4s ease-in-out infinite alternate;
}
.scn-pannier-search .hay {
  position: absolute; right: 28%; bottom: 30%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #b89870 0%, #8a6830 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(30deg);
  animation: ps-haydrop 3s ease-in-out infinite;
}
@keyframes ps-dim {
  0% { opacity: 0.7; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}
@keyframes ps-bend {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-8px) rotate(10deg) scale(0.95); }
}
@keyframes ps-twitch {
  0%,100% { transform: scaleX(-1) translateY(0); }
  30% { transform: scaleX(-1) translateY(-2px) rotate(-2deg); }
  60% { transform: scaleX(-1) translateY(0) rotate(2deg); }
}
@keyframes ps-shake {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  75% { transform: rotate(-5deg); }
}
@keyframes ps-pull {
  0% { transform: translate(0,0) rotate(-20deg); }
  100% { transform: translate(-3px, 2px) rotate(-15deg); }
}
@keyframes ps-haydrop {
  0% { transform: translateY(0) rotate(30deg); opacity: 1; }
  50% { transform: translateY(-10px) rotate(60deg); opacity: 0.7; }
  100% { transform: translateY(0) rotate(30deg); opacity: 1; }
}

.scn-danish-travel {
  background: linear-gradient(180deg, #8ecae6 0%, #6eb2d1 40%, #4a8fbf 70%, #356b9a 100%),
              radial-gradient(ellipse at 70% 20%, rgba(255,240,180,0.3) 0%, transparent 60%);
}
.scn-danish-travel .sky-dt {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a0d6ef 0%, transparent 100%);
  animation: dt-sky 20s ease-in-out infinite alternate;
}
.scn-danish-travel .sun-dt {
  position: absolute; top: 12%; left: 70%;
  width: 70px; height: 70px;
  background: radial-gradient(circle, #fff7c0 0%, #ffe680 40%, #f0b060 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,230,128,0.4), 0 0 120px 40px rgba(255,200,100,0.2);
  animation: dt-sun 16s ease-in-out infinite alternate;
}
.scn-danish-travel .hills-dt {
  position: absolute; bottom: 35%; left: 0; right: 0;
  height: 30%; border-radius: 50% 60% 0 0;
  background: linear-gradient(180deg, #5b8c4a 0%, #3d6b30 100%);
}
.scn-danish-travel .hill-back {
  bottom: 38%; height: 25%;
  background: linear-gradient(180deg, #6f9e5c 0%, #4d7c3e 100%);
  border-radius: 60% 40% 0 0;
  animation: dt-hill-back 25s ease-in-out infinite alternate;
}
.scn-danish-travel .hill-mid {
  bottom: 35%; height: 28%;
  background: linear-gradient(180deg, #4d7c3e 0%, #2d5a20 100%);
  border-radius: 40% 60% 0 0;
  animation: dt-hill-mid 18s ease-in-out infinite alternate;
}
.scn-danish-travel .path-dt {
  position: absolute; bottom: 20%; left: 40%; right: 20%;
  height: 8%;
  background: linear-gradient(180deg, #c2a66b 0%, #a68a4a 100%);
  border-radius: 0 0 20% 20% / 0 0 100% 100%;
  transform: perspective(200px) rotateX(5deg);
  animation: dt-path 12s ease-in-out infinite alternate;
}
.scn-danish-travel .figure-dt {
  position: absolute; bottom: 22%; left: 30%;
  width: 14px; height: 36px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dt-figure 6s ease-in-out infinite;
}
.scn-danish-travel .cloud-dt {
  position: absolute;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
}
.scn-danish-travel .cloud-a {
  top: 8%; left: 10%; width: 100px; height: 20px;
  animation: dt-cloud-a 40s linear infinite;
}
.scn-danish-travel .cloud-b {
  top: 15%; left: 50%; width: 70px; height: 14px;
  animation: dt-cloud-b 50s linear infinite reverse;
  animation-delay: -10s;
}
@keyframes dt-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes dt-sun { 0% { transform: scale(0.95) translateX(-2px); box-shadow: 0 0 50px 15px rgba(255,230,128,0.3); } 50% { transform: scale(1.05) translateX(2px); box-shadow: 0 0 80px 25px rgba(255,230,128,0.5); } 100% { transform: scale(0.98) translateX(0); box-shadow: 0 0 60px 20px rgba(255,230,128,0.35); } }
@keyframes dt-hill-back { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dt-hill-mid { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dt-path { 0% { transform: perspective(200px) rotateX(5deg) translateX(0); } 50% { transform: perspective(200px) rotateX(7deg) translateX(5px); } 100% { transform: perspective(200px) rotateX(5deg) translateX(0); } }
@keyframes dt-figure { 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 dt-cloud-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes dt-cloud-b { 0% { transform: translateX(20vw); } 100% { transform: translateX(-80vw); } }

.scn-english-contrast {
  background: linear-gradient(180deg, #ffd399 0%, #f5b77a 30%, #d48c4b 60%, #8b5a2b 100%),
              radial-gradient(ellipse at 50% 80%, #b86e32 0%, transparent 50%);
}
.scn-english-contrast .bg-ec {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(255,180,100,0.1) 100%);
  animation: ec-bg 8s ease-in-out infinite alternate;
}
.scn-english-contrast .sun-ec {
  position: absolute; top: 5%; left: 50%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8d0 0%, #ffd47a 40%, #e89f45 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 80px 30px rgba(255,212,122,0.5);
  animation: ec-sun 20s ease-in-out infinite alternate;
}
.scn-english-contrast .peak-ec {
  position: absolute; bottom: 40%; left: 20%; right: 55%;
  height: 40%;
  background: linear-gradient(180deg, #b07a4a 0%, #7a5020 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: ec-peak 15s ease-in-out infinite alternate;
}
.scn-english-contrast .valley-ec {
  position: absolute; bottom: 25%; left: 55%; right: 10%;
  height: 30%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 0 40% 0 0 / 0 100% 0 0;
  animation: ec-valley 18s ease-in-out infinite alternate;
}
.scn-english-contrast .figure-ec {
  position: absolute; bottom: 35%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-english-contrast .fig-high {
  left: 35%; animation: ec-fig-high 5s ease-in-out infinite;
}
.scn-english-contrast .fig-low {
  left: 70%; bottom: 28%; height: 30px; width: 14px;
  animation: ec-fig-low 5s ease-in-out infinite reverse;
}
.scn-english-contrast .toggle-ec {
  position: absolute; bottom: 45%; left: 50%;
  width: 60px; height: 8px;
  background: linear-gradient(90deg, #c87a3a 0%, #a05a1a 100%);
  border-radius: 50%;
  transform: translateX(-50%) rotate(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ec-toggle 10s ease-in-out infinite alternate;
}
@keyframes ec-bg { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.4 } }
@keyframes ec-sun { 0% { transform: translateX(-50%) scale(0.95); } 50% { transform: translateX(-50%) scale(1.03); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes ec-peak { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ec-valley { 0% { transform: translateY(0); } 50% { transform: translateY(-6px); } 100% { transform: translateY(0); } }
@keyframes ec-fig-high { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(-4px) rotate(1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ec-fig-low { 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(0); } }
@keyframes ec-toggle { 0% { transform: translateX(-50%) rotate(5deg); } 50% { transform: translateX(-50%) rotate(20deg); } 100% { transform: translateX(-50%) rotate(5deg); } }

.scn-yorick-gravity-hatred {
  background: linear-gradient(180deg, #3a2a1a 0%, #1e150e 40%, #0a0704 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%);
}
.scn-yorick-gravity-hatred .floor-yg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: yg-floor 4s ease-in-out infinite alternate;
}
.scn-yorick-gravity-hatred .wall-yg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-yorick-gravity-hatred .table-yg {
  position: absolute; bottom: 18%; left: 50%;
  width: 120px; height: 8px;
  background: linear-gradient(90deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: yg-table 6s ease-in-out infinite alternate;
}
.scn-yorick-gravity-hatred .jester-yg {
  position: absolute; bottom: 20%; left: 30%;
  width: 20px; height: 44px;
  background: linear-gradient(180deg, #d48a4a 0%, #b86a2a 50%, #7a4210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yg-jester 0.8s ease-in-out infinite alternate;
}
.scn-yorick-gravity-hatred .gravity-yg {
  position: absolute; bottom: 22%; left: 60%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform-origin: center bottom;
  box-shadow: 0 0 20px rgba(0,0,0,0.7);
  animation: yg-gravity 3s ease-in-out infinite alternate;
}
.scn-yorick-gravity-hatred .lantern-yg {
  position: absolute; top: 10%; left: 50%;
  width: 14px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 8px rgba(255,208,128,0.4), 0 0 60px 16px rgba(255,208,128,0.2);
  animation: yg-lantern 5s ease-in-out infinite alternate;
}
.scn-yorick-gravity-hatred .shadow-yg {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 80%);
  filter: blur(4px);
  animation: yg-shadow 0.8s ease-in-out infinite alternate;
}
@keyframes yg-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes yg-table { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes yg-jester { 0% { transform: translateY(0) rotate(-5deg) scaleX(1); } 50% { transform: translateY(-8px) rotate(5deg) scaleX(0.95); } 100% { transform: translateY(0) rotate(-5deg) scaleX(1); } }
@keyframes yg-gravity { 0% { transform: translateY(0) rotate(0) scaleY(1); } 50% { transform: translateY(-5px) rotate(3deg) scaleY(0.98); } 100% { transform: translateY(0) rotate(0) scaleY(1); } }
@keyframes yg-lantern { 0% { box-shadow: 0 0 20px 5px rgba(255,208,128,0.3), 0 0 40px 10px rgba(255,208,128,0.15); } 50% { box-shadow: 0 0 40px 12px rgba(255,208,128,0.5), 0 0 80px 20px rgba(255,208,128,0.25); } 100% { box-shadow: 0 0 25px 6px rgba(255,208,128,0.35), 0 0 50px 12px rgba(255,208,128,0.15); } }
@keyframes yg-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.4; transform: scaleX(1); } }

.scn-yorick-catastrophe {
  background: linear-gradient(180deg, #1a0a0a 0%, #0d0505 40%, #000000 100%),
              radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, transparent 70%);
}
.scn-yorick-catastrophe .floor-yc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.8);
}
.scn-yorick-catastrophe .wall-yc {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.9);
}
.scn-yorick-catastrophe .chair-yc {
  position: absolute; bottom: 12%; left: 40%;
  width: 50px; height: 60px;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px 4px 20% 20% / 4px 4px 40% 40%;
  transform-origin: bottom center;
  animation: yc-chair 2s ease-in-out infinite alternate;
}
.scn-yorick-catastrophe .figure-yc {
  position: absolute; bottom: 18%; left: 35%;
  width: 16px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yc-figure 1.5s ease-in-out infinite alternate;
}
.scn-yorick-catastrophe .debris-yc {
  position: absolute; bottom: 5%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1005 100%);
  border-radius: 2px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.5);
}
.scn-yorick-catastrophe .piece1 {
  left: 45%; transform: rotate(-30deg);
  animation: yc-debris1 3s ease-in-out infinite;
}
.scn-yorick-catastrophe .piece2 {
  left: 55%; width: 15px; height: 8px; transform: rotate(45deg);
  animation: yc-debris2 3.5s ease-in-out infinite reverse;
}
.scn-yorick-catastrophe .candle-yc {
  position: absolute; top: 20%; left: 50%;
  width: 8px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, #d0b080 60%, #a08050 100%);
  border-radius: 10% 10% 4% 4%;
  transform: translateX(-50%);
  box-shadow: 0 0 10px 2px rgba(240,224,192,0.3);
  animation: yc-candle 4s ease-in-out infinite alternate;
}
.scn-yorick-catastrophe .glow-yc {
  position: absolute; top: 15%; left: 50%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(240,224,192,0.15) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  animation: yc-glow 4s ease-in-out infinite alternate;
}
@keyframes yc-chair { 0% { transform: translate(0) rotate(-2deg); } 25% { transform: translate(-5px) rotate(5deg); } 50% { transform: translate(0) rotate(-2deg); } 75% { transform: translate(5px) rotate(3deg); } 100% { transform: translate(0) rotate(-2deg); } }
@keyframes yc-figure { 0% { transform: translateY(0) rotate(-3deg) scaleY(1); } 50% { transform: translateY(-6px) rotate(3deg) scaleY(1.02); } 100% { transform: translateY(0) rotate(-3deg) scaleY(1); } }
@keyframes yc-debris1 { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-4px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes yc-debris2 { 0% { transform: rotate(45deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-3px); } 100% { transform: rotate(45deg) translateY(0); } }
@keyframes yc-candle { 0% { opacity: 0.6; filter: blur(0); } 50% { opacity: 1; filter: blur(0.5px); } 100% { opacity: 0.7; filter: blur(0); } }
@keyframes yc-glow { 0% { opacity: 0.3; transform: translate(-50%, -50%) scale(0.8); } 50% { opacity: 0.6; transform: translate(-50%, -50%) scale(1.1); } 100% { opacity: 0.4; transform: translate(-50%, -50%) scale(0.9); } }

/* walter-s-ass */
.scn-walter-s-ass {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e04 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-walter-s-ass .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: ws-wall 12s ease-in-out infinite alternate;
}
.scn-walter-s-ass .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0e04 0%, #2a1a0a 100%);
  border-radius: 30% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-walter-s-ass .candle {
  position: absolute; bottom: 35%; left: 20%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0c060 0%, #b08030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #d09040, 0 0 40px 12px rgba(200,120,40,.4);
  animation: ws-candle 2s ease-in-out infinite alternate;
}
.scn-walter-s-ass .figure-walter {
  position: absolute; bottom: 28%; left: 35%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ws-figure 3s ease-in-out infinite;
}
.scn-walter-s-ass .ass {
  position: absolute; bottom: 25%; left: 45%;
  width: 40px; height: 35px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%;
  animation: ws-ass 4s ease-in-out infinite;
}
.scn-walter-s-ass .hobby-horse {
  position: absolute; bottom: 30%; left: 25%;
  width: 10px; height: 25px;
  background: #3a2a1a;
  border-radius: 50% 50% 20% 20%;
  transform: rotate(20deg);
  animation: ws-hobby 5s ease-in-out infinite;
}
.scn-walter-s-ass .swing-ear {
  position: absolute; bottom: 40%; left: 52%;
  width: 8px; height: 4px;
  background: #4a3a2a;
  border-radius: 50%;
  transform-origin: left center;
  animation: ws-ear 1.5s ease-in-out infinite;
}
@keyframes ws-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes ws-candle { 0% { transform: scaleX(1) scaleY(1); box-shadow: 0 0 12px 4px #d09040 } 50% { transform: scaleX(1.1) scaleY(1.05); box-shadow: 0 0 14px 6px #e0a050 } 100% { transform: scaleX(.95) scaleY(1); box-shadow: 0 0 10px 3px #c08030 } }
@keyframes ws-figure { 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 ws-ass { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ws-hobby { 0% { transform: rotate(18deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(18deg) } }
@keyframes ws-ear { 0% { transform: rotate(0) } 50% { transform: rotate(40deg) } 100% { transform: rotate(0) } }

/* ase-misunderstood */
.scn-ase-misunderstood {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e04 100%),
    radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 80%);
}
.scn-ase-misunderstood .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: am-bg 15s ease-in-out infinite alternate;
}
.scn-ase-misunderstood .table {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: am-table 6s ease-in-out infinite;
}
.scn-ase-misunderstood .figure-toby {
  position: absolute; bottom: 28%; left: 20%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: am-toby 4s ease-in-out infinite;
}
.scn-ase-misunderstood .figure-walter {
  position: absolute; bottom: 28%; right: 20%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: am-walter 3.5s ease-in-out infinite;
}
.scn-ase-misunderstood .ass {
  position: absolute; bottom: 22%; left: 45%;
  width: 35px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 40% 30% 60% / 40% 50% 50% 40%;
  animation: am-ass 5s ease-in-out infinite;
}
.scn-ase-misunderstood .candle {
  position: absolute; bottom: 35%; left: 48%;
  width: 6px; height: 25px;
  background: linear-gradient(180deg, #f0c060 0%, #b08030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 18px 5px #d09040;
  animation: am-candle 2.5s ease-in-out infinite alternate;
}
.scn-ase-misunderstood .snuff-box {
  position: absolute; bottom: 27%; left: 38%;
  width: 12px; height: 8px;
  background: #4a3a2a;
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: am-snuff 8s ease-in-out infinite;
}
@keyframes am-bg { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .7 } }
@keyframes am-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes am-toby { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes am-walter { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-4px) rotate(-3deg) } 60% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes am-ass { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes am-candle { 0% { transform: scaleY(1); box-shadow: 0 0 14px 3px #d09040 } 50% { transform: scaleY(1.06); box-shadow: 0 0 18px 6px #e0a050 } 100% { transform: scaleY(.97); box-shadow: 0 0 12px 3px #c08030 } }
@keyframes am-snuff { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }

/* two-kinds-of-love */
.scn-two-kinds-of-love {
  background:
    linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 50%, #0a040e 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a3a 0%, transparent 70%);
}
.scn-two-kinds-of-love .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,200,150,0.05) 0%, transparent 100%);
  animation: tkl-bg 20s ease-in-out infinite alternate;
}
.scn-two-kinds-of-love .brain {
  position: absolute; top: 20%; left: 15%;
  width: 40px; height: 35px;
  background: radial-gradient(ellipse at 40% 40%, #c8a060 0%, #8a6a3a 100%);
  border-radius: 50% 50% 60% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 3px rgba(200,160,100,.5);
  animation: tkl-brain 4s ease-in-out infinite;
}
.scn-two-kinds-of-love .liver {
  position: absolute; top: 20%; right: 15%;
  width: 45px; height: 30px;
  background: radial-gradient(ellipse at 60% 50%, #c87050 0%, #88402a 100%);
  border-radius: 50% 50% 40% 60% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 3px rgba(200,112,80,.5);
  animation: tkl-liver 4.5s ease-in-out infinite;
}
.scn-two-kinds-of-love .heart-brain {
  position: absolute; top: 15%; left: 22%;
  width: 12px; height: 10px;
  background: radial-gradient(circle, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform: rotate(45deg);
  box-shadow: 0 0 10px 2px #c8553d;
  animation: tkl-heart 3s ease-in-out infinite alternate;
}
.scn-two-kinds-of-love .heart-liver {
  position: absolute; top: 15%; right: 22%;
  width: 12px; height: 10px;
  background: radial-gradient(circle, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform: rotate(45deg);
  box-shadow: 0 0 10px 2px #c8553d;
  animation: tkl-heart 3.5s ease-in-out infinite alternate;
}
.scn-two-kinds-of-love .lamp {
  position: absolute; top: 5%; left: 45%;
  width: 10px; height: 20px;
  background: linear-gradient(180deg, #f0d080 0%, #b09040 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #c0a050;
  animation: tkl-lamp 6s ease-in-out infinite alternate;
}
@keyframes tkl-bg { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .5 } }
@keyframes tkl-brain { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.05) rotate(3deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes tkl-liver { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.04) rotate(-2deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes tkl-heart { 0% { transform: rotate(45deg) scale(1); opacity: .8 } 50% { transform: rotate(50deg) scale(1.2); opacity: 1 } 100% { transform: rotate(40deg) scale(1); opacity: .85 } }
@keyframes tkl-lamp { 0% { box-shadow: 0 0 20px 5px #c0a050; opacity: .8 } 50% { box-shadow: 0 0 40px 15px #e0c070; opacity: 1 } 100% { box-shadow: 0 0 25px 6px #b09040; opacity: .75 } }

/* plato-s-loves */
.scn-plato-s-loves {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e04 100%),
    radial-gradient(ellipse at 70% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-plato-s-loves .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: psl-bg 18s ease-in-out infinite alternate;
}
.scn-plato-s-loves .window {
  position: absolute; top: 10%; right: 15%;
  width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #2a4a2a 0%, #1a2a1a 100%);
  border: 3px solid #3a2a1a;
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 8px #1a2a1a;
  animation: psl-window 10s ease-in-out infinite alternate;
}
.scn-plato-s-loves .mother {
  position: absolute; bottom: 28%; left: 25%;
  width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: psl-mother 4s ease-in-out infinite;
}
.scn-plato-s-loves .toby {
  position: absolute; bottom: 28%; right: 20%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: psl-toby 5s ease-in-out infinite;
}
.scn-plato-s-loves .snuff-box {
  position: absolute; bottom: 32%; left: 30%;
  width: 14px; height: 10px;
  background: #4a3a2a;
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: psl-snuff 8s ease-in-out infinite;
}
.scn-plato-s-loves .book {
  position: absolute; bottom: 30%; left: 40%;
  width: 16px; height: 12px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 5% 5% 10% 10%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: psl-book 9s ease-in-out infinite alternate;
}
.scn-plato-s-loves .candle {
  position: absolute; bottom: 35%; left: 50%;
  width: 6px; height: 22px;
  background: linear-gradient(180deg, #f0c060 0%, #b08030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 16px 4px #d09040;
  animation: psl-candle 2s ease-in-out infinite alternate;
}
.scn-plato-s-loves .snuff-puff {
  position: absolute; bottom: 38%; left: 28%;
  width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(200,180,160,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: psl-puff 3.5s ease-in-out infinite;
}
@keyframes psl-bg { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .7 } }
@keyframes psl-window { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .5 } }
@keyframes psl-mother { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes psl-toby { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(2px) rotate(-3deg) } 60% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes psl-snuff { 0% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .8; transform: scale(1) } }
@keyframes psl-book { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-12deg) } }
@keyframes psl-candle { 0% { transform: scaleY(1); box-shadow: 0 0 12px 3px #d09040 } 50% { transform: scaleY(1.08); box-shadow: 0 0 18px 6px #e0a050 } 100% { transform: scaleY(.95); box-shadow: 0 0 10px 2px #c08030 } }
@keyframes psl-puff { 0% { transform: translateY(0) scale(1); opacity: .3 } 50% { transform: translateY(-6px) scale(2); opacity: .1 } 100% { transform: translateY(0) scale(1); opacity: .3 } }

/* hooks-and-eyes */
.scn-hooks-and-eyes {
  background: linear-gradient(180deg, #2f1e1a 0%, #4a3228 40%, #6e4f3a 100%), radial-gradient(ellipse at 50% 100%, #6e4f3a 0%, transparent 70%);
}
.scn-hooks-and-eyes .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3d2922 0%, #2a1a15 100%); animation: hae-wall 12s ease-in-out infinite;
}
.scn-hooks-and-eyes .lantern-swing {
  position: absolute; top: 8%; left: 42%; width: 14px; height: 24px; background: radial-gradient(circle at 50% 70%, #e8c060 0%, #b07830 70%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 8px #c08830; animation: hae-lantern 5s ease-in-out infinite alternate;
}
.scn-hooks-and-eyes .table {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 10%; background: linear-gradient(180deg, #6a4e3a 0%, #4a3426 100%); border-radius: 4% 4% 0 0; transform: perspective(200px) rotateX(10deg);
}
.scn-hooks-and-eyes .breeches {
  position: absolute; bottom: 28%; left: 44%; width: 40px; height: 50px; background: linear-gradient(180deg, #5e463a 0%, #3a2a20 100%); border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%; transform-origin: bottom center; animation: hae-breeches 3s ease-in-out infinite;
}
.scn-hooks-and-eyes .hook {
  position: absolute; width: 8px; height: 8px; background: #c08050; border-radius: 50%; box-shadow: 0 0 4px #906030;
}
.scn-hooks-and-eyes .hook-a { top: 42%; left: 48%; animation: hae-hook-a 4s ease-in-out infinite; }
.scn-hooks-and-eyes .hook-b { top: 52%; left: 46%; animation: hae-hook-b 4s ease-in-out infinite 2s; }
.scn-hooks-and-eyes .tailor {
  position: absolute; bottom: 30%; left: 28%; width: 20px; height: 50px; background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hae-tailor 6s ease-in-out infinite;
}
.scn-hooks-and-eyes .thread {
  position: absolute; bottom: 48%; left: 32%; width: 2px; height: 40px; background: #b0a090; transform: rotate(15deg); animation: hae-thread 2s ease-in-out infinite alternate;
}
@keyframes hae-wall { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes hae-lantern { 0% { transform: rotate(-8deg) translateY(0); box-shadow: 0 0 20px 6px #b08030 } 50% { transform: rotate(6deg) translateY(-2px); box-shadow: 0 0 35px 12px #d09840 } 100% { transform: rotate(-5deg) translateY(0); box-shadow: 0 0 25px 8px #b08030 } }
@keyframes hae-breeches { 0% { transform: rotate(-3deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(0.98) } 100% { transform: rotate(-2deg) scaleY(1) } }
@keyframes hae-hook-a { 0%,100% { transform: translate(0,0) } 50% { transform: translate(2px,-3px) } }
@keyframes hae-hook-b { 0%,100% { transform: translate(0,0) } 50% { transform: translate(-2px,-2px) } }
@keyframes hae-tailor { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 60% { transform: translateX(16px) translateY(0) rotate(-1deg) } 100% { transform: translateX(24px) translateY(0) rotate(0deg) } }
@keyframes hae-thread { 0% { transform: rotate(10deg) } 100% { transform: rotate(20deg) } }

/* fortifications-described */
.scn-fortifications-described {
  background: linear-gradient(180deg, #6f9bc0 0%, #b8d4e8 40%, #e0e8b0 100%), radial-gradient(ellipse at 70% 0%, #fff4d0 0%, transparent 60%);
}
.scn-fortifications-described .sky-sun {
  position: absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8db8d8 0%, #c8e0f0 70%, transparent); animation: fde-sky 20s linear infinite alternate;
}
.scn-fortifications-described .grass {
  position: absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7a9a50 0%, #4c6e2e 100%); border-radius:0 0 20% 20% / 0 0 10% 10%;
}
.scn-fortifications-described .table-mod {
  position: absolute; bottom:20%; left:25%; right:25%; height:12%; background: linear-gradient(180deg, #8b6f4a 0%, #5e462a 100%); border-radius: 8% 8% 2% 2%; transform: perspective(300px) rotateX(5deg); box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-fortifications-described .wall-model {
  position: absolute; bottom:28%; left:40%; width:60px; height:30px; background: linear-gradient(180deg, #ad9a7a 0%, #7a6850 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: fde-wall 10s ease-in-out infinite;
}
.scn-fortifications-described .flag {
  position: absolute; bottom:52%; left:46%; width:10px; height:20px; background: linear-gradient(180deg, #d0a040 0%, #a08030 100%); border-radius: 0 30% 30% 0; animation: fde-flag 3s ease-in-out infinite alternate;
}
.scn-fortifications-described .figure-toby {
  position: absolute; bottom:24%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fde-toby 8s ease-in-out infinite;
}
.scn-fortifications-described .tree {
  position: absolute; bottom:30%; right:18%; width:12px; height:50px; background: linear-gradient(180deg, #5e3a2a 0%, #3a2216 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset -2px -2px 6px rgba(0,0,0,0.3); animation: fde-tree 15s ease-in-out infinite;
}
.scn-fortifications-described .cloud-fluff {
  position: absolute; top:12%; left:20%; width:80px; height:18px; background: rgba(255,255,240,0.6); border-radius: 50%; filter: blur(8px); animation: fde-cloud 35s linear infinite;
}
@keyframes fde-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fde-wall { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes fde-flag { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(5deg) translateX(1px) } 100% { transform: rotate(-8deg) translateX(0) } }
@keyframes fde-toby { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(10px) translateY(-2px) rotate(1deg) } 60% { transform: translateX(20px) translateY(0) rotate(-1deg) } 100% { transform: translateX(30px) translateY(0) rotate(0deg) } }
@keyframes fde-tree { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }
@keyframes fde-cloud { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

/* campaigns-on-green */
.scn-campaigns-on-green {
  background: linear-gradient(180deg, #7aafc0 0%, #b8d8c8 35%, #dce8a0 100%), radial-gradient(ellipse at 50% 0%, #ffecb0 0%, transparent 50%);
}
.scn-campaigns-on-green .sky-warm {
  position: absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #8bc0d0 0%, #c0e0d0 60%, transparent); animation: cpg-sky 18s linear infinite alternate;
}
.scn-campaigns-on-green .lawn {
  position: absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7aa850 0%, #4c7a2a 100%); border-radius:0 0 30% 30% / 0 0 15% 15%;
}
.scn-campaigns-on-green .town-model {
  position: absolute; bottom:25%; left:30%; width:100px; height:50px; background: linear-gradient(180deg, #b8a88a 0%, #8a7a62 100%); border-radius: 8% 8% 4% 4%; clip-path: polygon(0% 100%, 0% 40%, 20% 20%, 40% 40%, 40% 20%, 60% 20%, 60% 40%, 80% 20%, 100% 40%, 100% 100%); animation: cpg-town 20s ease-in-out infinite;
}
.scn-campaigns-on-green .figure-toby-c {
  position: absolute; bottom:26%; left:20%; width:16px; height:36px; background: linear-gradient(180deg, #2a3a4a 0%, #121e2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cpg-toby 8s ease-in-out infinite;
}
.scn-campaigns-on-green .figure-trim {
  position: absolute; bottom:25%; left:28%; width:14px; height:34px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cpg-trim 8s ease-in-out infinite 3s;
}
.scn-campaigns-on-green .gazette {
  position: absolute; bottom:38%; left:23%; width:20px; height:26px; background: linear-gradient(180deg, #e8e0c0 0%, #c0b8a0 100%); border-radius: 4%; transform: rotate(-8deg); animation: cpg-gazette 6s ease-in-out infinite alternate;
}
.scn-campaigns-on-green .cannon {
  position: absolute; bottom:28%; left:48%; width:18px; height:12px; background: linear-gradient(90deg, #5e5a52 0%, #3a3630 100%); border-radius: 30% 30% 10% 10%; transform: rotate(15deg); animation: cpg-cannon 12s ease-in-out infinite;
}
.scn-campaigns-on-green .cloud-puff {
  position: absolute; top:15%; right:10%; width:60px; height:14px; background: rgba(255,255,240,0.5); border-radius: 50%; filter: blur(6px); animation: cpg-cloud 40s linear infinite reverse;
}
@keyframes cpg-sky { 0% { opacity:0.75 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cpg-town { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(0.99) } }
@keyframes cpg-toby { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0deg) } }
@keyframes cpg-trim { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 33% { transform: translateX(6px) translateY(-1px) rotate(1deg) } 66% { transform: translateX(12px) translateY(0) rotate(-1deg) } 100% { transform: translateX(18px) translateY(0) rotate(0deg) } }
@keyframes cpg-gazette { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes cpg-cannon { 0%,100% { transform: rotate(12deg) translateX(0) } 50% { transform: rotate(18deg) translateX(2px) } }
@keyframes cpg-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* town-of-houses */
.scn-town-of-houses {
  background: linear-gradient(180deg, #7ab0c8 0%, #b0d4d8 40%, #d0e0a8 100%), radial-gradient(ellipse at 80% 0%, #fff4c0 0%, transparent 60%);
}
.scn-town-of-houses .sky-glow {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8ec0d4 0%, #c0dcd8 60%, transparent); animation: toh-sky 22s linear infinite alternate;
}
.scn-town-of-houses .green-base {
  position: absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a9a48 0%, #3e6a24 100%); border-radius: 0 0 25% 25% / 0 0 10% 10%;
}
.scn-town-of-houses .house {
  position: absolute; bottom:28%; width:30px; height:36px; background: linear-gradient(180deg, #b8a080 0%, #8a705a 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.scn-town-of-houses .house-1 { left:15%; animation: toh-house1 12s ease-in-out infinite; }
.scn-town-of-houses .house-2 { left:38%; width:40px; height:42px; background: linear-gradient(180deg, #c8b098 0%, #9a826a 100%); animation: toh-house2 14s ease-in-out infinite 2s; }
.scn-town-of-houses .house-3 { right:18%; width:24px; height:30px; background: linear-gradient(180deg, #a89078 0%, #7a6852 100%); animation: toh-house3 10s ease-in-out infinite 4s; }
.scn-town-of-houses .gate {
  position: absolute; bottom:24%; left:55%; width:24px; height:32px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2e 100%); border-radius: 20% 20% 4% 4%; transform: scaleY(0.85); animation: toh-gate 20s ease-in-out infinite;
}
.scn-town-of-houses .sentry-box {
  position: absolute; bottom:22%; right:30%; width:20px; height:34px; background: linear-gradient(180deg, #5e4e3e 0%, #3e2e22 100%); border-radius: 20% 20% 6% 6%; box-shadow: 0 0 0 2px #4e3e2e; animation: toh-sentrybox 9s ease-in-out infinite;
}
.scn-town-of-houses .figure-sentry {
  position: absolute; bottom:24%; right:32%; width:12px; height:30px; background: linear-gradient(180deg, #2a3a3a 0%, #121e1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: toh-sentry 7s ease-in-out infinite;
}
@keyframes toh-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes toh-house1 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes toh-house2 { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } }
@keyframes toh-house3 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes toh-gate { 0%,100% { transform: scaleY(0.85) } 50% { transform: scaleY(0.90) } }
@keyframes toh-sentrybox { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes toh-sentry { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(4px) translateY(-1px) rotate(0deg) } 60% { transform: translateX(8px) translateY(0) rotate(1deg) } 100% { transform: translateX(12px) translateY(0) rotate(-1deg) } }

.scn-nose-tale-begins {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a1208 100%),
              radial-gradient(ellipse at 50% 60%, #5a3a1a 0%, transparent 60%);
}
.scn-nose-tale-begins .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%);
  animation: ntb-wall 6s ease-in-out infinite alternate;
}
.scn-nose-tale-begins .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1208 0%, #2a1a0a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-nose-tale-begins .table {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 20px;
  background: linear-gradient(90deg, #5a3a1a 0%, #4a2a0a 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
}
.scn-nose-tale-begins .candle {
  position: absolute; bottom: 36%; left: 35%; width: 8px; height: 40px;
  background: linear-gradient(0deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 2px;
  animation: ntb-candle 2s ease-in-out infinite alternate;
}
.scn-nose-tale-begins .candle::after {
  content: ''; position: absolute; top: -12px; left: -4px;
  width: 16px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  animation: ntb-flame 0.8s ease-in-out infinite alternate;
}
.scn-nose-tale-begins .nose {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 110px;
  background: linear-gradient(180deg, #d4a080 0%, #b08060 40%, #906040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset -4px -8px 12px rgba(0,0,0,0.4), 0 8px 20px rgba(0,0,0,0.3);
  animation: ntb-nose 5s ease-in-out infinite alternate;
}
.scn-nose-tale-begins .husband {
  position: absolute; bottom: 22%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ntb-figure 3s ease-in-out infinite;
}
.scn-nose-tale-begins .wife {
  position: absolute; bottom: 22%; left: 65%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1808 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ntb-figure 3.4s ease-in-out infinite reverse;
}
.scn-nose-tale-begins .innkeeper {
  position: absolute; bottom: 22%; left: 45%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0800 100%);
  border-radius: 35% 35% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ntb-figure 4s ease-in-out infinite;
}
.scn-nose-tale-begins .shadow {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
}
@keyframes ntb-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ntb-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes ntb-flame { 0% { transform: scale(1) translateY(0); opacity: 0.9 } 50% { transform: scale(1.1) translateY(-2px); opacity: 1 } 100% { transform: scale(0.95) translateY(1px); opacity: 0.8 } }
@keyframes ntb-nose { 0% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(1deg); } }
@keyframes ntb-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }

.scn-stranger-enters-strasburg {
  background: linear-gradient(180deg, #2a2a4e 0%, #3a3a5e 30%, #5a4a3a 60%, #8a7a5a 100%),
              radial-gradient(ellipse at 50% 0%, #8a7a5a 0%, transparent 70%);
}
.scn-stranger-enters-strasburg .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #4a3a5e 40%, #6a5a4a 80%);
  animation: ses-sky 15s ease-in-out infinite alternate;
}
.scn-stranger-enters-strasburg .city-skyline {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #1a1a3e 0%, #2a2a4e 100%);
  clip-path: polygon(0% 100%, 5% 30%, 10% 100%, 18% 20%, 25% 100%, 35% 40%, 40% 100%, 50% 10%, 60% 100%, 70% 30%, 80% 100%, 90% 50%, 100% 100%);
  animation: ses-skyline 20s ease-in-out infinite;
}
.scn-stranger-enters-strasburg .gate-arch {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 100px;
  background: transparent;
  border: 4px solid #5a4a3a;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-stranger-enters-strasburg .gate-arch::after {
  content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 20px; height: 100%;
  background: linear-gradient(0deg, #4a3a2a 0%, transparent 100%);
}
.scn-stranger-enters-strasburg .stranger-mule {
  position: absolute; bottom: 28%; left: 28%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ses-walk 8s ease-in-out infinite;
}
.scn-stranger-enters-strasburg .cloak-bag {
  position: absolute; bottom: 38%; left: 30%; width: 16px; height: 18px;
  background: linear-gradient(135deg, #8a6a5a 0%, #6a4a3a 100%);
  border-radius: 20% 20% 40% 40%;
  animation: ses-sway 3s ease-in-out infinite alternate;
}
.scn-stranger-enters-strasburg .mule-legs {
  position: absolute; bottom: 22%; left: 26%; width: 30px; height: 25px;
  background: transparent;
  border-left: 4px solid #3a2a2a;
  border-right: 4px solid #3a2a2a;
  border-radius: 0 0 50% 50%;
  animation: ses-legs 1.5s ease-in-out infinite;
}
.scn-stranger-enters-strasburg .distant-cloud {
  position: absolute; top: 20%; left: 10%; width: 120px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: ses-drift 40s linear infinite;
}
.scn-stranger-enters-strasburg .evening-star {
  position: absolute; top: 12%; right: 30%; width: 6px; height: 6px;
  background: #fff4d0;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,244,208,0.6);
  animation: ses-twinkle 4s ease-in-out infinite alternate;
}
@keyframes ses-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ses-skyline { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ses-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(-1deg) } 50% { transform: translateX(10px) rotate(0deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0deg) } }
@keyframes ses-sway { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes ses-legs { 0% { height: 25px } 50% { height: 30px } 100% { height: 25px } }
@keyframes ses-drift { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes ses-twinkle { 0% { opacity: 0.4; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.6; transform: scale(0.9) } }

.scn-sentinel-and-drummer {
  background: linear-gradient(180deg, #2a2a4e 0%, #3a3a5e 40%, #5a4a3a 70%, #7a6a5a 100%),
              radial-gradient(ellipse at 50% 0%, #7a6a5a 0%, transparent 70%);
}
.scn-sentinel-and-drummer .dusk-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #4a3a5e 50%, #6a5a4a 100%);
  animation: sad-bg 10s ease-in-out infinite alternate;
}
.scn-sentinel-and-drummer .ground-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-sentinel-and-drummer .sentinel-pole {
  position: absolute; bottom: 35%; left: 30%; width: 6px; height: 90px;
  background: linear-gradient(0deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: sad-pole 1.2s ease-in-out infinite;
}
.scn-sentinel-and-drummer .sentinel-body {
  position: absolute; bottom: 30%; left: 25%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20% / 70% 70% 30% 30%;
  animation: sad-figure 2s ease-in-out infinite alternate;
}
.scn-sentinel-and-drummer .drummer-body {
  position: absolute; bottom: 30%; right: 30%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: sad-figure 2.3s ease-in-out infinite alternate-reverse;
}
.scn-sentinel-and-drummer .drum {
  position: absolute; bottom: 32%; right: 34%; width: 22px; height: 18px;
  background: radial-gradient(circle, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: sad-drum 1.8s ease-in-out infinite;
}
.scn-sentinel-and-drummer .bandy-leg {
  position: absolute; bottom: 22%; right: 30%; width: 18px; height: 30px;
  background: transparent;
  border-left: 4px solid #3a2a1a;
  border-right: 4px solid #3a2a1a;
  border-radius: 0 0 60% 60%;
  animation: sad-leg 0.8s ease-in-out infinite alternate;
}
.scn-sentinel-and-drummer .scabbard {
  position: absolute; bottom: 38%; left: 20%; width: 14px; height: 28px;
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(30deg);
  animation: sad-scabbard 4s ease-in-out infinite;
}
@keyframes sad-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes sad-pole { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes sad-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sad-drum { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.05) rotate(2deg) } 100% { transform: scale(0.95) rotate(-2deg) } }
@keyframes sad-leg { 0% { height: 30px; transform: rotate(-5deg) } 100% { height: 35px; transform: rotate(5deg) } }
@keyframes sad-scabbard { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(35deg) translateY(-2px) } 100% { transform: rotate(30deg) translateY(0) } }

.scn-trumpeter-dispute {
  background: linear-gradient(180deg, #2a2a4e 0%, #3a3a5e 30%, #5a4a3a 60%, #7a6a5a 100%),
              radial-gradient(ellipse at 50% 0%, #7a6a5a 0%, transparent 70%);
}
.scn-trumpeter-dispute .dusk-street {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #4a3a5e 40%, #6a5a4a 80%);
  animation: tdp-street 12s ease-in-out infinite alternate;
}
.scn-trumpeter-dispute .lamppost {
  position: absolute; bottom: 20%; left: 15%; width: 6px; height: 100px;
  background: linear-gradient(0deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 4px rgba(255,200,100,0.2);
}
.scn-trumpeter-dispute .lamppost::after {
  content: ''; position: absolute; top: -8px; left: -8px;
  width: 22px; height: 22px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  animation: tdp-glow 2s ease-in-out infinite alternate;
}
.scn-trumpeter-dispute .trumpeter-body {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: tdp-figure 2.5s ease-in-out infinite;
}
.scn-trumpeter-dispute .trumpet {
  position: absolute; bottom: 32%; left: 42%; width: 50px; height: 12px;
  background: linear-gradient(90deg, #8a7a5a 0%, #6a5a3a 60%, #5a4a2a 100%);
  border-radius: 20% 50% 50% 20%;
  transform: rotate(20deg);
  transform-origin: left center;
  animation: tdp-trumpet 3s ease-in-out infinite alternate;
}
.scn-trumpeter-dispute .wife-body {
  position: absolute; bottom: 20%; right: 30%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1808 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: tdp-figure 3s ease-in-out infinite reverse;
}
.scn-trumpeter-dispute .pointing-arm {
  position: absolute; bottom: 36%; right: 20%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #4a2a1a 0%, #3a1a0a 100%);
  border-radius: 50%;
  transform: rotate(-30deg);
  animation: tdp-point 1.8s ease-in-out infinite alternate;
}
.scn-trumpeter-dispute .stranger-silhouette {
  position: absolute; bottom: 18%; left: 60%; width: 18px; height: 40px;
  background: #1a1008;
  border-radius: 30% 30% 20% 20% / 70% 70% 30% 30%;
  animation: tdp-stranger 6s ease-in-out infinite;
}
.scn-trumpeter-dispute .nose-trace {
  position: absolute; bottom: 28%; left: 55%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.2) 0%, transparent 70%);
  filter: blur(4px);
  animation: tdp-nosetrace 4s ease-in-out infinite alternate;
}
@keyframes tdp-street { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes tdp-glow { 0% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(0.95) } }
@keyframes tdp-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tdp-trumpet { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(20deg) } }
@keyframes tdp-point { 0% { transform: rotate(-30deg) translateX(0) } 50% { transform: rotate(-25deg) translateX(3px) } 100% { transform: rotate(-30deg) translateX(0) } }
@keyframes tdp-stranger { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes tdp-nosetrace { 0% { opacity: 0.1; width: 40px } 50% { opacity: 0.3; width: 55px } 100% { opacity: 0.1; width: 40px } }

.scn-paris-cooks {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2a1a 40%, #5a3d2a 100%),
              radial-gradient(ellipse at 50% 100%, #7a5a3a 0%, transparent 70%);
}
.scn-paris-cooks .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, transparent 0%, rgba(180,140,100,0.3) 40%, transparent 80%);
  animation: pc-wall 12s ease-in-out infinite alternate;
}
.scn-paris-cooks .shelf {
  position: absolute; top: 45%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-paris-cooks .pot-a {
  position: absolute; top: 38%; left: 18%; width: 40px; height: 35px;
  background: radial-gradient(circle at 50% 60%, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: pc-pot 3s ease-in-out infinite;
}
.scn-paris-cooks .pot-b {
  position: absolute; top: 40%; left: 55%; width: 45px; height: 40px;
  background: radial-gradient(circle at 50% 60%, #9a7a5a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 15% 15% / 45% 45% 25% 25%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: pc-pot-b 4s ease-in-out infinite 1s;
}
.scn-paris-cooks .cook {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-cook 5s ease-in-out infinite;
}
.scn-paris-cooks .stove {
  position: absolute; bottom: 18%; left: 40%; width: 80px; height: 30px;
  background: linear-gradient(0deg, #2a1a0a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.5);
}
.scn-paris-cooks .candle-glow {
  position: absolute; top: 20%; left: 70%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #d09050, 0 0 60px 30px rgba(200,140,80,0.4);
  animation: pc-candle 2s ease-in-out infinite alternate;
}
@keyframes pc-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pc-pot {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  75% { transform: translateX(3px) rotate(2deg); }
}
@keyframes pc-pot-b {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.05); }
}
@keyframes pc-cook {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(5px) rotate(-2deg); }
  60% { transform: translateX(-5px) rotate(2deg); }
}
@keyframes pc-candle {
  0% { opacity: 0.7; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1.05); }
}

.scn-paris-by-day {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #e0f0ff 100%),
              radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 80%);
}
.scn-paris-by-day .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, transparent 100%);
  animation: pbd-sky 20s ease-in-out infinite alternate;
}
.scn-paris-by-day .building {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88c 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.2), 0 5px 15px rgba(0,0,0,0.3);
}
.scn-paris-by-day .window-1 {
  position: absolute; bottom: 55%; left: 25%; width: 20px; height: 28px;
  background: linear-gradient(135deg, #a8d8ea 0%, #87ceeb 100%);
  border: 2px solid #7a6a4a;
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 10px rgba(135,206,235,0.5);
  animation: pbd-window 4s ease-in-out infinite alternate;
}
.scn-paris-by-day .window-2 {
  position: absolute; bottom: 55%; left: 55%; width: 20px; height: 28px;
  background: linear-gradient(135deg, #a8d8ea 0%, #87ceeb 100%);
  border: 2px solid #7a6a4a;
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 10px rgba(135,206,235,0.5);
  animation: pbd-window 4s ease-in-out infinite alternate-reverse;
}
.scn-paris-by-day .door {
  position: absolute; bottom: 10%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  border: 3px solid #7a6a4a;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.5);
}
.scn-paris-by-day .awning {
  position: absolute; bottom: 40%; left: 35%; width: 80px; height: 20px;
  background: linear-gradient(90deg, #d4a050 0%, #f0c060 50%, #d4a050 100%);
  border-radius: 40% 40% 0 0 / 100% 100% 0 0;
  transform-origin: bottom center;
  animation: pbd-awning 7s ease-in-out infinite;
}
.scn-paris-by-day .figure {
  position: absolute; bottom: 15%; left: 15%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pbd-figure 6s ease-in-out infinite;
}
@keyframes pbd-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes pbd-window {
  0% { background: linear-gradient(135deg, #a8d8ea 0%, #87ceeb 100%); }
  50% { background: linear-gradient(135deg, #c0e0ff 0%, #b0d8f8 100%); }
  100% { background: linear-gradient(135deg, #a8d8ea 0%, #87ceeb 100%); }
}
@keyframes pbd-awning {
  0%, 100% { transform: scaleX(1) translateY(0); }
  25% { transform: scaleX(1.05) translateY(-2px); }
  75% { transform: scaleX(0.95) translateY(2px); }
}
@keyframes pbd-figure {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(10px) rotate(-3deg); }
  70% { transform: translateX(-5px) rotate(2deg); }
}

.scn-paris-portico {
  background: linear-gradient(180deg, #e0f0ff 0%, #b0d0e8 50%, #87a8c8 100%),
              radial-gradient(ellipse at 30% 60%, #d8e8f0 0%, transparent 60%);
}
.scn-paris-portico .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c0e0f0 0%, transparent 100%);
  animation: pp-sky 15s ease-in-out infinite alternate;
}
.scn-paris-portico .portico {
  position: absolute; bottom: 40%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(0deg, #c4b49c 0%, #e8dcc4 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  box-shadow: 0 -5px 20px rgba(0,0,0,0.3);
}
.scn-paris-portico .col-left {
  position: absolute; bottom: 20%; left: 20%; width: 12px; height: 40%;
  background: linear-gradient(90deg, #d8c8b0 0%, #f0e0c8 50%, #d8c8b0 100%);
  border-radius: 20%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.1);
}
.scn-paris-portico .col-right {
  position: absolute; bottom: 20%; right: 20%; width: 12px; height: 40%;
  background: linear-gradient(90deg, #d8c8b0 0%, #f0e0c8 50%, #d8c8b0 100%);
  border-radius: 20%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.1);
}
.scn-paris-portico .gate {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  border: 3px solid #8a7a6a;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: pp-gate 8s ease-in-out infinite;
}
.scn-paris-portico .statue {
  position: absolute; bottom: 18%; left: 48%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c4b8a8 0%, #a89888 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pp-statue 10s ease-in-out infinite;
}
.scn-paris-portico .path {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #b8a888 0%, #908070 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
@keyframes pp-sky {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.95; transform: scale(0.98); }
}
@keyframes pp-gate {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
}
@keyframes pp-statue {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-1deg); }
  75% { transform: translateY(2px) rotate(1deg); }
}

.scn-spleen-declared {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%),
              radial-gradient(ellipse at 50% 90%, #4a3a4a 0%, transparent 80%);
}
.scn-spleen-declared .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%);
  animation: sd-wall 18s ease-in-out infinite alternate;
}
.scn-spleen-declared .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.5);
}
.scn-spleen-declared .globe {
  position: absolute; bottom: 32%; left: 35%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 35%, #7a9a6a 0%, #4a6a3a 60%, #2a4a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sd-globe 12s linear infinite;
}
.scn-spleen-declared .candle {
  position: absolute; bottom: 30%; left: 60%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ccc 0%, #888 100%);
  border-radius: 20%;
  box-shadow: 0 0 20px 10px #d09050, 0 0 40px 20px rgba(200,140,80,0.4);
  animation: sd-candle 3s ease-in-out infinite alternate;
}
.scn-spleen-declared .chair {
  position: absolute; bottom: 15%; left: 45%; width: 25px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-spleen-declared .figure {
  position: absolute; bottom: 18%; left: 42%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #3a2a2e 0%, #1a1a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: sd-figure 5s ease-in-out infinite;
}
@keyframes sd-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.85; }
}
@keyframes sd-globe {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(90deg) translateX(2px); }
  50% { transform: rotate(180deg) translateX(0); }
  75% { transform: rotate(270deg) translateX(-2px); }
  100% { transform: rotate(360deg) translateX(0); }
}
@keyframes sd-candle {
  0% { opacity: 0.7; transform: scaleY(0.95); }
  100% { opacity: 1; transform: scaleY(1.05); }
}
@keyframes sd-figure {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(3px) rotate(-2deg); }
  60% { transform: translateX(-3px) rotate(2deg); }
}

.scn-yorick-innocent {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 40%, #4a3828 70%, #2a1e14 100%),
              radial-gradient(ellipse at 30% 80%, #5a3a1a 0%, transparent 60%);
}
.scn-yorick-innocent .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #1a100a 0%, transparent 50%);
  animation: yo-breathe 6s ease-in-out infinite;
}
.scn-yorick-innocent .wall {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 65%;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3828 50%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: inset 0 4px 20px rgba(0,0,0,.6);
}
.scn-yorick-innocent .table {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5);
}
.scn-yorick-innocent .candle {
  position: absolute; bottom: 32%; left: 30%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 60%, #5a3010 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px #ffb04080;
  animation: yo-candle 2s ease-in-out infinite alternate;
}
.scn-yorick-innocent .figure {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(2deg);
  animation: yo-figure 4s ease-in-out infinite;
}
.scn-yorick-innocent .book {
  position: absolute; bottom: 20%; left: 48%; width: 16px; height: 10px;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px; box-shadow: 1px 1px 4px rgba(0,0,0,.5);
  transform: rotate(5deg);
  animation: yo-book 8s ease-in-out infinite;
}
.scn-yorick-innocent .window {
  position: absolute; top: 10%; right: 12%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a2040 0%, #2a3060 100%);
  border: 4px solid #3a2a1a; border-radius: 2px;
  box-shadow: inset 0 0 10px #2a306080;
  animation: yo-window 10s ease-in-out infinite alternate;
}
@keyframes yo-breathe { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes yo-candle { 0% { transform: scaleY(1); box-shadow: 0 0 18px 6px #ffb04080 } 50% { transform: scaleY(1.05); box-shadow: 0 0 22px 10px #ffb04090 } 100% { transform: scaleY(.95); box-shadow: 0 0 14px 4px #ffb04060 } }
@keyframes yo-figure { 0% { transform: translateX(-50%) rotate(2deg) } 30% { transform: translateX(-50%) rotate(3deg) translateY(-1px) } 60% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(2deg) } }
@keyframes yo-book { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-1px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes yo-window { 0% { opacity: .4 } 50% { opacity: .6 } 100% { opacity: .3 } }

.scn-printing-press-remedy {
  background: linear-gradient(180deg, #1a100a 0%, #2a1e14 40%, #3a2818 70%, #1a100a 100%),
              radial-gradient(ellipse at 60% 50%, #3a2818 0%, transparent 60%);
}
.scn-printing-press-remedy .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #0c0806 0%, transparent 40%);
  animation: pr-bg 8s ease-in-out infinite;
}
.scn-printing-press-remedy .press-frame {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-printing-press-remedy .press-wheel {
  position: absolute; bottom: 55%; left: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle, #5a3a1a 0%, #3a2a1a 60%, #1a100a 100%);
  border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,.5);
  animation: pr-wheel 3s linear infinite;
}
.scn-printing-press-remedy .lever {
  position: absolute; bottom: 45%; left: 35%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 3px; transform-origin: bottom center;
  animation: pr-lever 1.5s ease-in-out infinite;
}
.scn-printing-press-remedy .hand {
  position: absolute; bottom: 40%; left: 36%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: pr-hand 1.5s ease-in-out infinite;
}
.scn-printing-press-remedy .paper {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: pr-paper 4s ease-in-out infinite;
}
.scn-printing-press-remedy .flame {
  position: absolute; bottom: 35%; right: 25%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ff8040 0%, #ff4000 50%, transparent 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 16px 6px #ff400080;
  animation: pr-flame 1s ease-in-out infinite alternate;
}
@keyframes pr-bg { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .6 } }
@keyframes pr-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes pr-lever { 0% { transform: rotate(-15deg) } 25% { transform: rotate(0deg) } 50% { transform: rotate(-15deg) } 75% { transform: rotate(0deg) } 100% { transform: rotate(-15deg) } }
@keyframes pr-hand { 0% { transform: rotate(10deg) translateY(0) } 25% { transform: rotate(5deg) translateY(-2px) } 50% { transform: rotate(10deg) translateY(0) } 75% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes pr-paper { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pr-flame { 0% { transform: scaleY(1); opacity: .8 } 100% { transform: scaleY(1.3); opacity: 1 } }

.scn-treatise-remedy {
  background: linear-gradient(180deg, #1a100a 0%, #2a1e14 50%, #1a100a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2818 0%, transparent 70%);
}
.scn-treatise-remedy .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #0c0806 0%, transparent 30%);
  animation: tr-bg 6s ease-in-out infinite;
}
.scn-treatise-remedy .table-surface {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-treatise-remedy .hand {
  position: absolute; bottom: 30%; left: 30%; width: 22px; height: 16px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  animation: tr-hand 2s ease-in-out infinite;
}
.scn-treatise-remedy .rag {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 50%, #806040 100%);
  border-radius: 20% 30% 20% 30% / 30% 20% 30% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: tr-rag 3s ease-in-out infinite;
}
.scn-treatise-remedy .bottle {
  position: absolute; bottom: 28%; right: 20%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 40%, #3a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 8px rgba(0,0,0,.4);
  animation: tr-bottle 5s ease-in-out infinite;
}
.scn-treatise-remedy .drip {
  position: absolute; bottom: 30%; right: 22%; width: 4px; height: 6px;
  background: radial-gradient(circle, #806040 0%, #4a2a1a 100%);
  border-radius: 50%; 
  animation: tr-drip 2s ease-in-out infinite;
}
@keyframes tr-bg { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .5 } }
@keyframes tr-hand { 0% { transform: rotate(10deg) translateY(0) } 30% { transform: rotate(5deg) translateY(-3px) } 60% { transform: rotate(8deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes tr-rag { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.05) rotate(3deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes tr-bottle { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes tr-drip { 0% { transform: translateY(0); opacity: 1 } 50% { transform: translateY(6px); opacity: .5 } 100% { transform: translateY(0); opacity: 1 } }

.scn-chapter-de-concubinaria {
  background: linear-gradient(180deg, #1a100a 0%, #2a1e14 50%, #3a2818 80%, #1a100a 100%),
              radial-gradient(ellipse at 40% 70%, #3a2818 0%, transparent 60%);
}
.scn-chapter-de-concubinaria .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #0c0806 0%, transparent 40%);
  animation: co-bg 7s ease-in-out infinite;
}
.scn-chapter-de-concubinaria .figure {
  position: absolute; bottom: 25%; left: 20%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: co-figure 5s ease-in-out infinite;
}
.scn-chapter-de-concubinaria .arm {
  position: absolute; bottom: 32%; left: 25%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(20deg);
  animation: co-arm 3s ease-in-out infinite;
}
.scn-chapter-de-concubinaria .paper {
  position: absolute; bottom: 35%; left: 35%; width: 28px; height: 36px;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 2px; box-shadow: 1px 1px 6px rgba(0,0,0,.3);
  transform: rotate(-5deg);
  animation: co-paper 4s ease-in-out infinite;
}
.scn-chapter-de-concubinaria .candle {
  position: absolute; bottom: 30%; right: 25%; width: 6px; height: 22px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 60%, #5a3010 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 14px 4px #ffb04080;
  animation: co-candle 2.5s ease-in-out infinite alternate;
}
.scn-chapter-de-concubinaria .table {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5);
}
@keyframes co-bg { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .6 } }
@keyframes co-figure { 0% { transform: rotate(-3deg) translateY(0) } 30% { transform: rotate(-2deg) translateY(-2px) } 60% { transform: rotate(-4deg) translateY(0) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes co-arm { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(20deg) } }
@keyframes co-paper { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes co-candle { 0% { transform: scaleY(1); box-shadow: 0 0 12px 3px #ffb04080 } 50% { transform: scaleY(1.08); box-shadow: 0 0 18px 6px #ffb04090 } 100% { transform: scaleY(.95); box-shadow: 0 0 10px 2px #ffb04060 } }

/* toms-character */
.scn-toms-character { background: linear-gradient(180deg, #1f1310 0%, #2c1a14 40%, #4a2a1a 100%), radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 70%); }
.scn-toms-character .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2f1e18 0%, #1a0f0c 100%); opacity:.9; }
.scn-toms-character .window { position:absolute; top:12%; right:15%; width:80px; height:100px; background: radial-gradient(circle at 50% 60%, #f0c060 0%, #b08030 60%, transparent 80%); border-radius:4px; box-shadow: 0 0 60px 20px rgba(240,192,96,0.5); animation: tc-window 5s ease-in-out infinite alternate; }
.scn-toms-character .table { position:absolute; bottom:25%; left:10%; right:10%; height:8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:2px; box-shadow: 0 3px 6px rgba(0,0,0,0.7); }
.scn-toms-character .figure { position:absolute; bottom:33%; left:28%; width:40px; height:80px; background: linear-gradient(180deg, #2a2018 0%, #150c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-fig 6s ease-in-out infinite; }
.scn-toms-character .tear { position:absolute; bottom:58%; left:35%; width:8px; height:10px; background: radial-gradient(circle, #90d0ff 0%, #60a0d0 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 6px rgba(144,208,255,0.6); animation: tc-tear 2s ease-in-out infinite; }
.scn-toms-character .candle { position:absolute; bottom:35%; left:18%; width:6px; height:18px; background: linear-gradient(180deg, #f0d080 0%, #c09040 100%); border-radius:3px 3px 1px 1px; box-shadow: 0 0 20px 10px rgba(240,208,128,0.7); animation: tc-candle 1.5s ease-in-out infinite; }
@keyframes tc-window { 0% { box-shadow:0 0 40px 15px rgba(240,192,96,0.4); opacity:.9 } 50% { box-shadow:0 0 80px 30px rgba(240,192,96,0.7); opacity:1 } 100% { box-shadow:0 0 50px 20px rgba(240,192,96,0.5); opacity:.85 } }
@keyframes tc-fig { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(2px) scaleY(1.01) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes tc-tear { 0% { transform: translateY(0) scale(1); opacity:.8 } 50% { transform: translateY(-4px) scale(1.2); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:.7 } }
@keyframes tc-candle { 0% { transform: scaleY(1); box-shadow:0 0 15px 8px rgba(240,208,128,0.6) } 50% { transform: scaleY(1.05); box-shadow:0 0 25px 12px rgba(240,208,128,0.9) } 100% { transform: scaleY(1); box-shadow:0 0 18px 9px rgba(240,208,128,0.7) } }

/* negro-girl */
.scn-negro-girl { background: linear-gradient(180deg, #1a1410 0%, #2c1e18 50%, #4a2e20 100%), radial-gradient(ellipse at 40% 100%, #4a2e20 0%, transparent 70%); }
.scn-negro-girl .bg-ng { position:absolute; inset:0; background: linear-gradient(135deg, #241b15 0%, #150f0c 100%); opacity:.8; }
.scn-negro-girl .window-ng { position:absolute; top:8%; left:12%; width:100px; height:120px; background: radial-gradient(ellipse at 50% 70%, #c8a060 0%, #806040 60%, transparent 80%); border-radius:4px; box-shadow: 0 0 80px 30px rgba(200,160,96,0.6); animation: ng-window 8s ease-in-out infinite alternate; }
.scn-negro-girl .girl { position:absolute; bottom:28%; left:38%; width:45px; height:90px; background: linear-gradient(180deg, #1a1512 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ng-girl 7s ease-in-out infinite; }
.scn-negro-girl .fan { position:absolute; bottom:40%; left:50%; width:40px; height:50px; background: linear-gradient(90deg, #e8e0d0 0%, #f0ece4 50%, #d8d0c0 100%); border-radius: 80% 0 0 80% / 60% 0 0 60%; clip-path: polygon(0% 0%, 100% 20%, 100% 80%, 0% 100%); transform-origin: right center; animation: ng-fan 1.5s ease-in-out infinite; box-shadow: 0 0 20px 10px rgba(232,224,208,0.5); }
.scn-negro-girl .fly { position:absolute; width:4px; height:4px; background: radial-gradient(circle, #c0b0a0 0%, #605040 100%); border-radius:50%; }
.scn-negro-girl .ng-fly1 { top:30%; left:20%; animation: ng-fly1 4s ease-in-out infinite; }
.scn-negro-girl .ng-fly2 { top:45%; left:55%; animation: ng-fly2 3.5s ease-in-out infinite 0.5s; }
.scn-negro-girl .ng-fly3 { top:60%; left:35%; animation: ng-fly3 5s ease-in-out infinite 1s; }
@keyframes ng-window { 0% { box-shadow:0 0 60px 20px rgba(200,160,96,0.4); opacity:.9 } 50% { box-shadow:0 0 100px 40px rgba(200,160,96,0.7); opacity:1 } 100% { box-shadow:0 0 70px 25px rgba(200,160,96,0.5); opacity:.85 } }
@keyframes ng-girl { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ng-fan { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(10deg) scale(1.05) } 100% { transform: rotate(-15deg) scale(1) } }
@keyframes ng-fly1 { 0% { transform: translate(0,0) } 25% { transform: translate(30px,-10px) } 50% { transform: translate(60px,0) } 75% { transform: translate(30px,10px) } 100% { transform: translate(0,0) } }
@keyframes ng-fly2 { 0% { transform: translate(0,0) } 30% { transform: translate(-20px,15px) } 60% { transform: translate(-40px,-5px) } 100% { transform: translate(0,0) } }
@keyframes ng-fly3 { 0% { transform: translate(0,0) } 20% { transform: translate(50px,20px) } 70% { transform: translate(20px,40px) } 100% { transform: translate(0,0) } }

/* negro-soul */
.scn-negro-soul { background: linear-gradient(180deg, #0f0c0a 0%, #1c1410 50%, #2a1e18 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%); }
.scn-negro-soul .bg-ns { position:absolute; inset:0; background: linear-gradient(135deg, #1a1412 0%, #0a0806 100%); opacity:.9; }
.scn-negro-soul .figure-ns { position:absolute; bottom:25%; left:50%; width:50px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1210 0%, #0c0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 30px 10px rgba(30,20,15,0.8); animation: ns-fig 10s ease-in-out infinite; }
.scn-negro-soul .heart-ns { position:absolute; top:55%; left:50%; width:20px; height:20px; transform:translate(-50%,-50%) rotate(45deg); background: linear-gradient(135deg, #e04030 0%, #b02020 100%); border-radius: 50% 50% 50% 0; box-shadow: 0 0 40px 15px rgba(200,60,40,0.7); animation: ns-heart 2s ease-in-out infinite; }
.scn-negro-soul .aura-ns { position:absolute; top:45%; left:38%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,120,80,0.3) 0%, rgba(200,120,80,0.05) 50%, transparent 70%); border-radius:50%; animation: ns-aura 6s ease-in-out infinite; }
.scn-negro-soul .light-ns { position:absolute; top:0; left:30%; right:30%; height:60%; background: linear-gradient(180deg, rgba(220,180,140,0.15) 0%, transparent 100%); animation: ns-light 8s ease-in-out infinite alternate; }
@keyframes ns-fig { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes ns-heart { 0% { transform: translate(-50%,-50%) rotate(45deg) scale(1); box-shadow:0 0 30px 10px rgba(200,60,40,0.6) } 50% { transform: translate(-50%,-50%) rotate(45deg) scale(1.15); box-shadow:0 0 60px 20px rgba(200,60,40,0.9) } 100% { transform: translate(-50%,-50%) rotate(45deg) scale(1); box-shadow:0 0 35px 12px rgba(200,60,40,0.7) } }
@keyframes ns-aura { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.2); opacity:.8 } 100% { transform: scale(1); opacity:.6 } }
@keyframes ns-light { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* sausage-making */
.scn-sausage-making { background: linear-gradient(180deg, #1c1410 0%, #2a1c14 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 100%, #3a2a1e 0%, transparent 70%); }
.scn-sausage-making .bg-sm { position:absolute; inset:0; background: linear-gradient(135deg, #1e1814 0%, #100c0a 100%); opacity:.85; }
.scn-sausage-making .table-sm { position:absolute; bottom:20%; left:5%; right:5%; height:10px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.8); }
.scn-sausage-making .figure-sm { position:absolute; bottom:32%; left:25%; width:45px; height:75px; background: linear-gradient(180deg, #1c1410 0%, #0c0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sm-fig 2s ease-in-out infinite; }
.scn-sausage-making .sausage { position:absolute; bottom:24%; left:40%; width:60px; height:20px; background: linear-gradient(90deg, #8a6040 0%, #b07850 50%, #8a6040 100%); border-radius:20px; box-shadow: 0 3px 6px rgba(0,0,0,0.5); transform-origin: center center; animation: sm-sausage 1s ease-in-out infinite; }
.scn-sausage-making .heart-sm { position:absolute; top:60%; left:52%; width:16px; height:16px; transform:rotate(45deg); background: linear-gradient(135deg, #c06040 0%, #a04030 100%); border-radius:50% 50% 50% 0; box-shadow: 0 0 20px 8px rgba(192,96,64,0.6); animation: sm-heart 1.2s ease-in-out infinite; }
.scn-sausage-making .candle-sm { position:absolute; bottom:32%; right:15%; width:5px; height:16px; background: linear-gradient(180deg, #f0c080 0%, #b08040 100%); border-radius:2px; box-shadow: 0 0 15px 6px rgba(240,192,128,0.6); animation: sm-candle 1.8s ease-in-out infinite; }
@keyframes sm-fig { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes sm-sausage { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.1) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes sm-heart { 0% { transform: rotate(45deg) scale(1); box-shadow:0 0 15px 5px rgba(192,96,64,0.5) } 50% { transform: rotate(45deg) scale(1.2); box-shadow:0 0 30px 10px rgba(192,96,64,0.8) } 100% { transform: rotate(45deg) scale(1); box-shadow:0 0 18px 6px rgba(192,96,64,0.6) } }
@keyframes sm-candle { 0% { transform: scaleY(1); box-shadow:0 0 12px 5px rgba(240,192,128,0.5) } 50% { transform: scaleY(1.1); box-shadow:0 0 20px 8px rgba(240,192,128,0.8) } 100% { transform: scaleY(1); box-shadow:0 0 14px 6px rgba(240,192,128,0.6) } }

/* bobbys-death */
.scn-bobbys-death {
  background:
    linear-gradient(180deg, #0f0a0a 0%, #1c1210 40%, #2a1815 70%, #1a0f0d 100%),
    radial-gradient(ellipse at 50% 30%, #2a1815 0%, transparent 70%);
}
.scn-bobbys-death .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #1f1412 0%, #2a1a16 50%, #140c0a 100%);
  animation: bd-bg 12s ease-in-out infinite alternate;
}
.scn-bobbys-death .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1f1a17 0%, #0f0a08 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: bd-floor 10s ease-in-out infinite;
}
.scn-bobbys-death .wall-left {
  position: absolute; bottom: 30%; left: 0; width: 25%; height: 70%;
  background: linear-gradient(90deg, #2a1a16 0%, #1f1412 100%);
  transform-origin: bottom left;
  animation: bd-wall-l 8s ease-in-out infinite;
}
.scn-bobbys-death .wall-right {
  position: absolute; bottom: 30%; right: 0; width: 25%; height: 70%;
  background: linear-gradient(90deg, #1f1412 0%, #2a1a16 100%);
  transform-origin: bottom right;
  animation: bd-wall-r 8s ease-in-out infinite;
}
.scn-bobbys-death .figure {
  position: absolute; bottom: 32%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0f0a08 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: bd-figure 6s ease-in-out infinite;
}
.scn-bobbys-death .glow-left {
  position: absolute; bottom: 35%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle at center, #ff8840 0%, #cc6622 40%, transparent 70%);
  border-radius: 50%;
  animation: bd-glow-l 4s ease-in-out infinite alternate;
}
.scn-bobbys-death .glow-right {
  position: absolute; bottom: 35%; right: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle at center, #40aaff 0%, #2266cc 40%, transparent 70%);
  border-radius: 50%;
  animation: bd-glow-r 4s ease-in-out infinite alternate;
  animation-delay: 2s;
}
.scn-bobbys-death .chain {
  position: absolute; bottom: 42%; left: 50%; width: 2px; height: 60px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1a10 100%);
  transform: translateX(-50%);
  border-radius: 1px;
  animation: bd-chain 3s ease-in-out infinite;
}
@keyframes bd-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes bd-floor { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes bd-wall-l { 0%, 100% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(0.98); } }
@keyframes bd-wall-r { 0%, 100% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-2deg) scaleX(0.98); } }
@keyframes bd-figure { 0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-52%) translateY(-2px) rotate(-3deg); } 50% { transform: translateX(-48%) translateY(1px) rotate(3deg); } 75% { transform: translateX(-51%) translateY(-1px) rotate(-1deg); } }
@keyframes bd-glow-l { 0% { opacity: 0.5; transform: scale(0.9) translate(0, 0); } 100% { opacity: 1; transform: scale(1.1) translate(3px, -2px); } }
@keyframes bd-glow-r { 0% { opacity: 0.5; transform: scale(0.9) translate(0, 0); } 100% { opacity: 1; transform: scale(1.1) translate(-3px, -2px); } }
@keyframes bd-chain { 0%, 100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg) scaleY(1.05); } }

/* heir-apparent */
.scn-heir-apparent {
  background:
    linear-gradient(180deg, #0d0d12 0%, #1a1a24 40%, #2a2a3a 70%, #12121a 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, transparent 70%);
}
.scn-heir-apparent .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  animation: ha-bg 15s ease-in-out infinite alternate;
}
.scn-heir-apparent .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: ha-desk 8s ease-in-out infinite alternate;
}
.scn-heir-apparent .chair {
  position: absolute; bottom: 24%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  transform: translateX(-50%);
  animation: ha-chair 6s ease-in-out infinite;
}
.scn-heir-apparent .figure {
  position: absolute; bottom: 28%; left: 45%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ha-figure 9s ease-in-out infinite;
}
.scn-heir-apparent .candle {
  position: absolute; bottom: 32%; left: 52%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffe8b0 0%, #d4a860 50%, #8a5a20 100%);
  border-radius: 2px 2px 3px 3px;
  transform: translateX(-50%);
  animation: ha-candle 4s ease-in-out infinite alternate;
}
.scn-heir-apparent .glow {
  position: absolute; bottom: 30%; left: 52%; width: 50px; height: 50px;
  background: radial-gradient(circle at center, #ffd080 0%, #cc9040 30%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ha-glow 5s ease-in-out infinite;
}
.scn-heir-apparent .book-left {
  position: absolute; bottom: 20%; left: 28%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: ha-book-l 10s ease-in-out infinite alternate;
}
.scn-heir-apparent .book-right {
  position: absolute; bottom: 22%; right: 28%; width: 22px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  animation: ha-book-r 10s ease-in-out infinite alternate;
}
@keyframes ha-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ha-desk { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(0.97) translateY(1px); } }
@keyframes ha-chair { 0%, 100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-48%) rotate(2deg) translateY(1px); } }
@keyframes ha-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 33% { transform: translateX(-51%) translateY(-2px) rotate(-2deg); } 66% { transform: translateX(-49%) translateY(1px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ha-candle { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 100% { transform: translateX(-50%) scaleY(0.95) rotate(1deg); } }
@keyframes ha-glow { 0% { opacity: 0.6; transform: translateX(-50%) scale(0.9); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.7; transform: translateX(-50%) scale(0.95); } }
@keyframes ha-book-l { 0%, 100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(2px); } }
@keyframes ha-book-r { 0%, 100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(6deg) translateY(1px); } }

/* campaign-amours */
.scn-campaign-amours {
  background:
    linear-gradient(180deg, #1a0e0a 0%, #2a1a12 40%, #3a2418 70%, #1a1008 100%),
    radial-gradient(ellipse at 50% 60%, #3a2418 0%, transparent 70%);
}
.scn-campaign-amours .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a14 0%, #1f120e 100%);
  animation: ca-bg 12s ease-in-out infinite alternate;
}
.scn-campaign-amours .table {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2214 100%);
  border-radius: 6px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: ca-table 14s ease-in-out infinite;
}
.scn-campaign-amours .map {
  position: absolute; bottom: 22%; left: 25%; width: 35%; height: 20%;
  background: linear-gradient(135deg, #8a7050 0%, #6a5038 50%, #5a4028 100%);
  border-radius: 4px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ca-map 10s ease-in-out infinite alternate;
}
.scn-campaign-amours .pipe {
  position: absolute; bottom: 24%; left: 35%; width: 16px; height: 8px;
  background: linear-gradient(90deg, #4a2a18 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(20deg);
  animation: ca-pipe 5s ease-in-out infinite;
}
.scn-campaign-amours .mug {
  position: absolute; bottom: 20%; right: 30%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%);
  border-radius: 4px 4px 8px 8px;
  animation: ca-mug 7s ease-in-out infinite alternate;
}
.scn-campaign-amours .figure {
  position: absolute; bottom: 26%; left: 40%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a120e 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ca-figure 8s ease-in-out infinite;
}
.scn-campaign-amours .candle {
  position: absolute; bottom: 30%; left: 52%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #ffd090 0%, #d49050 60%, #6a3a10 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: ca-candle 3s ease-in-out infinite alternate;
}
.scn-campaign-amours .glow {
  position: absolute; bottom: 28%; left: 52%; width: 60px; height: 60px;
  background: radial-gradient(circle at center, #ffb060 0%, #e08030 30%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ca-glow 6s ease-in-out infinite;
}
@keyframes ca-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ca-table { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(0.98) translateY(2px); } }
@keyframes ca-map { 0% { transform: rotate(-2deg) scale(1); } 100% { transform: rotate(4deg) scale(1.02); } }
@keyframes ca-pipe { 0%, 100% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(25deg) scale(0.95) translateY(1px); } }
@keyframes ca-mug { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes ca-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 33% { transform: translateX(-52%) translateY(-3px) rotate(-3deg); } 66% { transform: translateX(-48%) translateY(1px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ca-candle { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 100% { transform: translateX(-50%) scaleY(0.9) rotate(2deg); } }
@keyframes ca-glow { 0% { opacity: 0.5; transform: translateX(-50%) scale(0.9); } 50% { opacity: 1; transform: translateX(-50%) scale(1.15); } 100% { opacity: 0.6; transform: translateX(-50%) scale(0.95); } }

/* shandeism */
.scn-shandeism {
  background:
    linear-gradient(180deg, #0f0a06 0%, #1f140e 40%, #2f1e16 70%, #1a0f0a 100%),
    radial-gradient(ellipse at 50% 50%, #2f1e16 0%, transparent 70%);
}
.scn-shandeism .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a120c 0%, #0f0a06 100%);
  animation: sh-bg 18s ease-in-out infinite alternate;
}
.scn-shandeism .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a100a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: sh-floor 12s ease-in-out infinite;
}
.scn-shandeism .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: sh-table 10s ease-in-out infinite alternate;
}
.scn-shandeism .mug-left {
  position: absolute; bottom: 22%; left: 28%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%);
  border-radius: 4px 4px 8px 8px;
  animation: sh-mug-l 6s ease-in-out infinite alternate;
}
.scn-shandeism .mug-right {
  position: absolute; bottom: 24%; right: 28%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a20 100%);
  border-radius: 4px 4px 8px 8px;
  animation: sh-mug-r 7s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-shandeism .figure-left {
  position: absolute; bottom: 26%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a120e 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sh-figure-l 7s ease-in-out infinite;
}
.scn-shandeism .figure-right {
  position: absolute; bottom: 26%; right: 35%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #140e0a 0%, #080604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(50%);
  animation: sh-figure-r 8s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-shandeism .fireplace {
  position: absolute; bottom: 20%; left: 10%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 0 20px #5a2a10;
  animation: sh-fireplace 5s ease-in-out infinite;
}
@keyframes sh-bg { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sh-floor { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.03) translateY(-2px); } }
@keyframes sh-table { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(0.96) translateY(2px); } }
@keyframes sh-mug-l { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-3px) rotate(5deg); } }
@keyframes sh-mug-r { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-2px) rotate(-4deg); } }
@keyframes sh-figure-l { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-52%) translateY(-3px) rotate(-4deg); } 50% { transform: translateX(-48%) translateY(2px) rotate(3deg); } 75% { transform: translateX(-51%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes sh-figure-r { 0% { transform: translateX(50%) translateY(0) rotate(0deg); } 25% { transform: translateX(48%) translateY(-2px) rotate(5deg); } 50% { transform: translateX(52%) translateY(1px) rotate(-3deg); } 75% { transform: translateX(49%) translateY(-1px) rotate(2deg); } 100% { transform: translateX(50%) translateY(0) rotate(0deg); } }
@keyframes sh-fireplace { 0%, 100% { opacity: 0.8; } 50% { opacity: 1; box-shadow: inset 0 0 30px #7a3a1a; } }

.scn-nose-nourishment { background: linear-gradient(180deg, #2a1a0e 0%, #4a2a18 60%, #1a0e08 100%), radial-gradient(ellipse at 50% 20%, #5a3a1a 0%, transparent 60%); }
.scn-nose-nourishment .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2212 0%, transparent 100%); }
.scn-nose-nourishment .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0e06 0%, #2a1a0a 100%); }
.scn-nose-nourishment .table { position:absolute; bottom:15%; left:20%; right:20%; height:6%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2212 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-nose-nourishment .figure-body { position:absolute; bottom:20%; left:45%; width:20%; height:30%; background: linear-gradient(180deg, #1a1a0e 0%, #0e0e06 100%); border-radius: 40% 30% 20% 20% / 50% 40% 20% 20%; transform-origin: bottom center; animation: nn-body 6s ease-in-out infinite; }
.scn-nose-nourishment .figure-head { position:absolute; bottom:45%; left:46%; width:10%; height:14%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nn-head 8s ease-in-out infinite; }
.scn-nose-nourishment .figure-nose { position:absolute; bottom:50%; left:48%; width:4%; height:10%; background: linear-gradient(180deg, #3a2212 0%, #1a0e06 100%); border-radius: 60% 20% 20% 40% / 80% 40% 20% 40%; transform-origin: center 100%; animation: nn-nose 2s ease-in-out infinite alternate; }
.scn-nose-nourishment .plate { position:absolute; bottom:18%; left:28%; width:10%; height:4%; background: radial-gradient(circle, #6a3a1a 0%, #3a1a0a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: nn-plate 10s ease-in-out infinite; }
.scn-nose-nourishment .candle { position:absolute; bottom:30%; left:36%; width:2%; height:12%; background: linear-gradient(180deg, #b07040 0%, #6a3a1a 100%); border-radius: 2px; box-shadow: 0 0 12px 4px #d09050; animation: nn-candle 3s ease-in-out infinite; }
@keyframes nn-body { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes nn-head { 0% { transform: translateX(0) scale(1.02); } 50% { transform: translateX(3px) scale(1); } 100% { transform: translateX(-2px) scale(1.01); } }
@keyframes nn-nose { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(4px) rotate(5deg) scaleY(1.2); } 100% { transform: translateX(-2px) rotate(-3deg) scaleY(0.95); } }
@keyframes nn-plate { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes nn-candle { 0% { opacity: 0.9; box-shadow: 0 0 10px 3px #d09050; } 50% { opacity: 1; box-shadow: 0 0 16px 6px #e0a060; } 100% { opacity: 0.85; box-shadow: 0 0 8px 2px #c08040; } }

.scn-half-man-argument { background: linear-gradient(180deg, #1a2018 0%, #2a3028 40%, #1a1a12 100%), radial-gradient(ellipse at 50% 80%, #3a3a2a 0%, transparent 70%); }
.scn-half-man-argument .bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a3028 0%, transparent 100%); }
.scn-half-man-argument .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #12120e 0%, #1a1a14 100%); }
.scn-half-man-argument .table { position:absolute; bottom:15%; left:30%; right:30%; height:5%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-half-man-argument .figure-left { position:absolute; bottom:20%; left:15%; width:18%; height:45%; background: linear-gradient(180deg, #1a1a12 0%, #0e0e0a 100%); border-radius: 40% 30% 10% 10% / 50% 40% 10% 10%; transform-origin: bottom center; animation: hm-left 8s ease-in-out infinite; }
.scn-half-man-argument .figure-right { position:absolute; bottom:20%; right:15%; width:18%; height:25%; background: linear-gradient(180deg, #1a1a12 0%, #0e0e0a 100%); border-radius: 40% 30% 0 0 / 50% 40% 0 0; overflow: hidden; transform-origin: bottom center; animation: hm-right 8s ease-in-out infinite 0.5s; }
.scn-half-man-argument .arm-left { position:absolute; bottom:40%; left:30%; width:8%; height:20%; background: linear-gradient(180deg, #1a1a12 0%, #0e0e0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: top center; animation: hm-arm-l 4s ease-in-out infinite; }
.scn-half-man-argument .arm-right { position:absolute; bottom:32%; right:30%; width:8%; height:18%; background: linear-gradient(180deg, #1a1a12 0%, #0e0e0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: top center; animation: hm-arm-r 4s ease-in-out infinite 1s; }
@keyframes hm-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hm-right { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-12px) scaleY(0.8); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes hm-arm-l { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-4px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes hm-arm-r { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }

.scn-geometrical-limits { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #0e0e1a 100%), radial-gradient(circle at 50% 50%, #2a2a3e 0%, transparent 70%); }
.scn-geometrical-limits .bg { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0%, rgba(255,255,255,0.02) 1px, transparent 2px), repeating-linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.02) 1px, transparent 2px); }
.scn-geometrical-limits .circle.large { position:absolute; top:50%; left:50%; width:40%; height:40%; transform: translate(-50%,-50%); border: 2px solid rgba(200,180,140,0.3); border-radius: 50%; background: radial-gradient(circle, rgba(200,180,140,0.08) 0%, transparent 70%); animation: gl-circle 12s ease-in-out infinite; }
.scn-geometrical-limits .line-h { position:absolute; top:50%; left:10%; right:10%; height:2px; background: rgba(200,180,140,0.2); animation: gl-line-h 15s ease-in-out infinite; }
.scn-geometrical-limits .line-v { position:absolute; top:10%; bottom:10%; left:50%; width:2px; background: rgba(200,180,140,0.2); animation: gl-line-v 15s ease-in-out infinite reverse; }
.scn-geometrical-limits .dot.center { position:absolute; top:50%; left:50%; width:2%; height:2%; background: radial-gradient(circle, #d0b080 0%, transparent 70%); border-radius: 50%; transform: translate(-50%,-50%); animation: gl-dot 4s ease-in-out infinite; }
.scn-geometrical-limits .dot.small-1 { position:absolute; top:30%; left:40%; width:1.5%; height:1.5%; background: radial-gradient(circle, #b09060 0%, transparent 70%); border-radius: 50%; animation: gl-dot-s 6s ease-in-out infinite 0.5s; }
.scn-geometrical-limits .dot.small-2 { position:absolute; bottom:30%; right:35%; width:1.5%; height:1.5%; background: radial-gradient(circle, #b09060 0%, transparent 70%); border-radius: 50%; animation: gl-dot-s 6s ease-in-out infinite 2s; }
@keyframes gl-circle { 0% { transform: translate(-50%,-50%) rotate(0deg) scale(1); } 50% { transform: translate(-50%,-50%) rotate(180deg) scale(1.05); } 100% { transform: translate(-50%,-50%) rotate(360deg) scale(1); } }
@keyframes gl-line-h { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5%) scaleX(0.9); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes gl-line-v { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(5%) scaleY(0.9); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes gl-dot { 0% { transform: translate(-50%,-50%) scale(1); opacity: 1; } 50% { transform: translate(-50%,-50%) scale(1.5); opacity: 0.6; } 100% { transform: translate(-50%,-50%) scale(1); opacity: 1; } }
@keyframes gl-dot-s { 0% { transform: translate(0,0) scale(1); opacity: 0.7; } 50% { transform: translate(10px,-5px) scale(1.3); opacity: 1; } 100% { transform: translate(0,0) scale(1); opacity: 0.7; } }

.scn-logicians-defeated { background: linear-gradient(180deg, #1e1a14 0%, #2e2a1e 50%, #14100a 100%), radial-gradient(ellipse at 30% 50%, #3a3222 0%, transparent 70%); }
.scn-logicians-defeated .bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2e2a1e 0%, transparent 100%); }
.scn-logicians-defeated .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #0e0c08 0%, #1a1610 100%); }
.scn-logicians-defeated .figure-a { position:absolute; bottom:18%; left:12%; width:22%; height:50%; background: linear-gradient(180deg, #1a1610 0%, #0e0c08 100%); border-radius: 40% 30% 20% 20% / 50% 40% 20% 20%; transform-origin: bottom center; animation: ld-a 8s ease-in-out infinite; }
.scn-logicians-defeated .figure-b { position:absolute; bottom:18%; right:12%; width:22%; height:50%; background: linear-gradient(180deg, #1a1610 0%, #0e0c08 100%); border-radius: 30% 40% 20% 20% / 40% 50% 20% 20%; transform-origin: bottom center; animation: ld-b 8s ease-in-out infinite 1s; }
.scn-logicians-defeated .sword { position:absolute; bottom:40%; left:30%; width:2%; height:35%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 2px; transform-origin: bottom left; animation: ld-sword 6s ease-in-out infinite; }
.scn-logicians-defeated .broken-sword { position:absolute; bottom:35%; right:40%; width:1.5%; height:20%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 2px; transform-origin: bottom left; transform: rotate(30deg); animation: ld-broken 4s ease-in-out infinite 0.5s; }
@keyframes ld-a { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-6px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes ld-b { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-6px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ld-sword { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-5px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ld-broken { 0% { transform: rotate(30deg) translateY(0) scaleY(1); } 50% { transform: rotate(20deg) translateY(-3px) scaleY(0.7); } 100% { transform: rotate(30deg) translateY(0) scaleY(1); } }

.scn-<sermon-continued> { background: linear-gradient(180deg, #1a1410 0%, #2a1e16 40%, #1a1410 100%), radial-gradient(ellipse at 60% 70%, #4a3528 0%, transparent 60%); }
.scn-<sermon-continued> .bg-wall { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #2a1e16 0%, #1a1410 100%); }
.scn-<sermon-continued> .bg-floor { position:absolute; bottom:0; left:5%; right:5%; height:42%; background:linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%); border-radius:30% 30% 0 0 / 20% 20% 0 0; }
.scn-<sermon-continued> .pulpit { position:absolute; bottom:38%; left:30%; width:25%; height:30%; background:linear-gradient(180deg, #4a3528 0%, #2a1e16 100%); border-radius:4% 4% 8% 8%; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-<sermon-continued> .figure { position:absolute; bottom:40%; left:45%; width:14%; height:45%; background:linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scont-fig 6s ease-in-out infinite; }
.scn-<sermon-continued> .handkerchief { position:absolute; bottom:58%; left:48%; width:8%; height:8%; background:linear-gradient(135deg, #b8a898 0%, #8a7a6a 100%); border-radius:20% 40% 40% 20%; transform:rotate(15deg); animation: scont-hank 4s ease-in-out infinite; }
.scn-<sermon-continued> .book { position:absolute; bottom:40%; left:38%; width:12%; height:8%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6% 6% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-<sermon-continued> .candle { position:absolute; bottom:50%; left:56%; width:2%; height:18%; background:linear-gradient(180deg, #f0d8b0 0%, #b89060 100%); border-radius:40% 40% 10% 10%; box-shadow: 0 0 8px 2px #d0b080; animation: scont-candle 2s ease-in-out infinite; }
.scn-<sermon-continued> .candle-halo { position:absolute; bottom:52%; left:56%; width:8%; height:14%; background:radial-gradient(ellipse, #f0d8b0 0%, transparent 70%); border-radius:50%; opacity:.4; animation: scont-halo 3s ease-in-out infinite; }
.scn-<sermon-continued> .dust { position:absolute; width:1%; height:1%; background:rgba(200,180,160,.3); border-radius:50%; filter:blur(1px); }
.scn-<sermon-continued> .mote-a { top:20%; left:30%; animation: scont-dust 15s linear infinite; }
.scn-<sermon-continued> .mote-b { top:30%; left:60%; animation: scont-dust 20s linear infinite reverse; }
@keyframes scont-fig { 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 scont-hank { 0%,100% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(.9); } }
@keyframes scont-candle { 0%,100% { opacity:.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } }
@keyframes scont-halo { 0%,100% { opacity:.3; transform: scale(1); } 50% { opacity:.5; transform: scale(1.2); } }
@keyframes scont-dust { 0% { transform: translateX(0) translateY(0); opacity:.3; } 50% { opacity:.6; } 100% { transform: translateX(30px) translateY(-20px); opacity:.1; } }

.scn-<conscience-knowledge> { background: linear-gradient(180deg, #1a1410 0%, #2a1e16 50%, #1a1410 100%), radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 60%); }
.scn-<conscience-knowledge> .bg-wall { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #2a1e16 0%, #1a1410 100%); }
.scn-<conscience-knowledge> .bg-shelf { position:absolute; top:20%; left:0; right:0; height:15%; background:linear-gradient(180deg, #4a3528 0%, #2a1e16 100%); border-radius:0; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-<conscience-knowledge> .table { position:absolute; bottom:35%; left:20%; right:20%; height:15%; background:linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%); border-radius:6% 6% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-<conscience-knowledge> .figure { position:absolute; bottom:35%; left:40%; width:15%; height:50%; background:linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cknow-fig 8s ease-in-out infinite; }
.scn-<conscience-knowledge> .book-open { position:absolute; bottom:52%; left:44%; width:20%; height:10%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-<conscience-knowledge> .book-page-left { position:absolute; bottom:52%; left:44%; width:9%; height:8%; background:linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%); border-radius:2% 6% 6% 2%; transform-origin: right center; animation: cknow-turn 12s ease-in-out infinite; }
.scn-<conscience-knowledge> .book-page-right { position:absolute; bottom:52%; left:55%; width:9%; height:8%; background:linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%); border-radius:6% 2% 2% 6%; transform-origin: left center; animation: cknow-turn2 12s ease-in-out infinite; }
.scn-<conscience-knowledge> .candle { position:absolute; bottom:50%; left:68%; width:2%; height:18%; background:linear-gradient(180deg, #f0d8b0 0%, #b89060 100%); border-radius:40% 40% 10% 10%; box-shadow: 0 0 8px 2px #d0b080; animation: cknow-candle 2.5s ease-in-out infinite; }
.scn-<conscience-knowledge> .candle-halo { position:absolute; bottom:52%; left:68%; width:8%; height:14%; background:radial-gradient(ellipse, #f0d8b0 0%, transparent 70%); border-radius:50%; opacity:.4; animation: cknow-halo 3s ease-in-out infinite; }
@keyframes cknow-fig { 0% { transform: translateY(0) rotate(0); } 40% { transform: translateY(-2px) rotate(1deg); } 80% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cknow-turn { 0%,100% { transform: rotateY(0); } 50% { transform: rotateY(10deg); } }
@keyframes cknow-turn2 { 0%,100% { transform: rotateY(0); } 50% { transform: rotateY(-10deg); } }
@keyframes cknow-candle { 0%,100% { opacity:.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } }
@keyframes cknow-halo { 0%,100% { opacity:.3; transform: scale(1); } 50% { opacity:.5; transform: scale(1.2); } }

.scn-<protestant-vs-paul> { background: linear-gradient(180deg, #1a1410 0%, #2a1e16 45%, #1a1410 100%), radial-gradient(ellipse at 50% 70%, #3a2a1e 0%, transparent 60%); }
.scn-<protestant-vs-paul> .bg-wall { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #2a1e16 0%, #1a1410 100%); }
.scn-<protestant-vs-paul> .bg-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%); border-radius:30% 30% 0 0 / 20% 20% 0 0; }
.scn-<protestant-vs-paul> .table { position:absolute; bottom:42%; left:25%; right:25%; height:12%; background:linear-gradient(180deg, #4a3528 0%, #2a1e16 100%); border-radius:4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.7); }
.scn-<protestant-vs-paul> .figure-left { position:absolute; bottom:40%; left:30%; width:14%; height:48%; background:linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pvp-armL 1.5s ease-in-out infinite; }
.scn-<protestant-vs-paul> .figure-right { position:absolute; bottom:40%; right:30%; width:14%; height:48%; background:linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pvp-armR 1.8s ease-in-out infinite; }
.scn-<protestant-vs-paul> .scroll { position:absolute; bottom:50%; left:44%; width:12%; height:6%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 4% 4%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-<protestant-vs-paul> .candle { position:absolute; bottom:52%; left:48%; width:2%; height:16%; background:linear-gradient(180deg, #f0d8b0 0%, #b89060 100%); border-radius:40% 40% 10% 10%; box-shadow: 0 0 8px 2px #d0b080; animation: pvp-candle .8s ease-in-out infinite; }
.scn-<protestant-vs-paul> .candle-halo { position:absolute; bottom:54%; left:48%; width:8%; height:14%; background:radial-gradient(ellipse, #f0d8b0 0%, transparent 70%); border-radius:50%; opacity:.4; animation: pvp-halo 1s ease-in-out infinite; }
.scn-<protestant-vs-paul> .figure-left::before { content:''; position:absolute; top:30%; left:80%; width:30%; height:6%; background:linear-gradient(90deg, #1a1410 0%, transparent 100%); border-radius:20%; transform-origin: left center; animation: pvp-gestureL .6s ease-in-out infinite; }
.scn-<protestant-vs-paul> .figure-right::before { content:''; position:absolute; top:35%; right:80%; width:30%; height:6%; background:linear-gradient(270deg, #1a1410 0%, transparent 100%); border-radius:20%; transform-origin: right center; animation: pvp-gestureR .7s ease-in-out infinite; }
@keyframes pvp-armL { 0%,100% { transform: rotate(0); } 25% { transform: rotate(-5deg); } 75% { transform: rotate(3deg); } }
@keyframes pvp-armR { 0%,100% { transform: rotate(0); } 25% { transform: rotate(5deg); } 75% { transform: rotate(-3deg); } }
@keyframes pvp-gestureL { 0%,100% { transform: rotate(0); } 50% { transform: rotate(-15deg); } }
@keyframes pvp-gestureR { 0%,100% { transform: rotate(0); } 50% { transform: rotate(15deg); } }
@keyframes pvp-candle { 0%,100% { opacity:.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } }
@keyframes pvp-halo { 0%,100% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.3); } }

.scn-<conscience-self-deceit> { background: linear-gradient(180deg, #1a1410 0%, #2a1e16 50%, #1a1410 100%), radial-gradient(ellipse at 40% 75%, #3a2a1e 0%, transparent 65%); }
.scn-<conscience-self-deceit> .bg-wall { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #2a1e16 0%, #1a1410 100%); }
.scn-<conscience-self-deceit> .bg-floor { position:absolute; bottom:0; left:10%; right:10%; height:48%; background:linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%); border-radius:30% 30% 0 0 / 20% 20% 0 0; }
.scn-<conscience-self-deceit> .table { position:absolute; bottom:38%; left:30%; right:30%; height:14%; background:linear-gradient(180deg, #4a3528 0%, #2a1e16 100%); border-radius:6% 6% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-<conscience-self-deceit> .figure { position:absolute; bottom:35%; left:30%; width:14%; height:55%; background:linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: csd-fig 7s ease-in-out infinite; }
.scn-<conscience-self-deceit> .mirror { position:absolute; bottom:55%; left:50%; width:16%; height:22%; background:linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50%; border: 2px solid #4a3528; box-shadow: inset 0 0 20px #1a1410, 0 4px 8px rgba(0,0,0,.5); transform:translateX(-50%); }
.scn-<conscience-self-deceit> .mirror::after { content:''; position:absolute; top:10%; left:10%; width:80%; height:80%; background:radial-gradient(ellipse, rgba(200,180,160,.2) 0%, transparent 60%); border-radius:50%; }
.scn-<conscience-self-deceit> .hand { position:absolute; bottom:42%; left:38%; width:8%; height:12%; background:linear-gradient(180deg, #2a1e16 0%, #1a1410 100%); border-radius:30% 30% 40% 40%; transform-origin: bottom center; animation: csd-hand 5s ease-in-out infinite; }
.scn-<conscience-self-deceit> .candle { position:absolute; bottom:52%; left:22%; width:2%; height:18%; background:linear-gradient(180deg, #f0d8b0 0%, #b89060 100%); border-radius:40% 40% 10% 10%; box-shadow: 0 0 8px 2px #d0b080; animation: csd-candle 3s ease-in-out infinite; }
.scn-<conscience-self-deceit> .candle-halo { position:absolute; bottom:54%; left:22%; width:8%; height:14%; background:radial-gradient(ellipse, #f0d8b0 0%, transparent 70%); border-radius:50%; opacity:.4; animation: csd-halo 4s ease-in-out infinite; }
@keyframes csd-fig { 0% { transform: translateY(0) rotate(0); } 35% { transform: translateY(-3px) rotate(2deg); } 70% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes csd-hand { 0%,100% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(3px, -2px) rotate(5deg); } }
@keyframes csd-candle { 0%,100% { opacity:.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } }
@keyframes csd-halo { 0%,100% { opacity:.3; transform: scale(1); } 50% { opacity:.5; transform: scale(1.2); } }

.scn-sciatica-affliction {
  background:
    radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1a0e 0%, #2a2218 40%, #1e160e 100%);
}
.scn-sciatica-affliction .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a2218 0%, #1a140c 100%); opacity:0.9; }
.scn-sciatica-affliction .bed-wood { position:absolute; bottom:10%; left:15%; width:70%; height:45%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 8px 8px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.7); }
.scn-sciatica-affliction .bed-mattress { position:absolute; bottom:12%; left:17%; width:66%; height:36%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%); border-radius: 12px 12px 6px 6px; }
.scn-sciatica-affliction .pillow { position:absolute; bottom:43%; left:20%; width:28%; height:10%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 50% / 80% 80% 40% 40%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3); }
.scn-sciatica-affliction .figure-sa { position:absolute; bottom:18%; left:22%; width:18%; height:30%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sa-figure 6s ease-in-out infinite; }
.scn-sciatica-affliction .leg-sa { position:absolute; bottom:30%; left:55%; width:12%; height:32%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom left; animation: sa-leg 2s ease-in-out infinite alternate; }
.scn-sciatica-affliction .blanket { position:absolute; bottom:16%; left:18%; width:64%; height:18%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-sciatica-affliction .candle-sa { position:absolute; bottom:5%; right:18%; width:2%; height:15%; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 6px rgba(200,150,60,0.4); }
.scn-sciatica-affliction .candle-glow-sa { position:absolute; bottom:7%; right:16%; width:8%; height:12%; background: radial-gradient(circle, #ffd060 0%, rgba(255,200,80,0.4) 40%, transparent 70%); border-radius: 50%; animation: sa-glow 3s ease-in-out infinite alternate; }
.scn-sciatica-affliction .window-sa { position:absolute; top:8%; right:10%; width:16%; height:28%; border: 3px solid #1a120a; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
@keyframes sa-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sa-leg { 0% { transform: rotate(0deg) scaleY(1); } 100% { transform: rotate(15deg) scaleY(1.05); } }
@keyframes sa-glow { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(1); } }

.scn-fortune-sport {
  background:
    radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, transparent 60%),
    linear-gradient(180deg, #0a0a0a 0%, #1a1210 40%, #12100a 100%);
}
.scn-fortune-sport .bg-deep-fs { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,10,10,0.9) 0%, rgba(20,16,12,0.8) 100%); }
.scn-fortune-sport .vault { position:absolute; top:0; left:20%; right:20%; height:70%; background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); }
.scn-fortune-sport .planet-scraps { position:absolute; top:25%; left:50%; width:30%; height:30%; transform: translate(-50%,0); background: radial-gradient(circle at 40% 40%, #8a6a3a 0%, #4a3220 40%, #2a1a0a 100%); border-radius: 50%; box-shadow: 0 0 40px rgba(100,60,20,0.3); animation: fs-planet 20s linear infinite; }
.scn-fortune-sport .shred { position:absolute; width:4%; height:3%; background: linear-gradient(135deg, #6a4a2a 0%, #3a2010 100%); border-radius: 2px 40% 4px 30%; opacity:0.8; }
.scn-fortune-sport .shred.floating-a { top:15%; left:30%; animation: fs-shred-a 12s ease-in-out infinite; }
.scn-fortune-sport .shred.floating-b { top:40%; left:70%; animation: fs-shred-b 15s ease-in-out infinite; }
.scn-fortune-sport .shred.floating-c { top:60%; left:20%; animation: fs-shred-c 18s ease-in-out infinite; }
.scn-fortune-sport .hand-fs { position:absolute; bottom:15%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; transform-origin: bottom center; animation: fs-hand 4s ease-in-out infinite alternate; }
.scn-fortune-sport .dust-fs { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(180,140,80,0.05) 0%, transparent 50%); animation: fs-dust 8s ease-in-out infinite alternate; }
@keyframes fs-planet { 0% { transform: translate(-50%,0) rotate(0deg) scale(1); } 50% { transform: translate(-50%,-5px) rotate(180deg) scale(1.02); } 100% { transform: translate(-50%,0) rotate(360deg) scale(1); } }
@keyframes fs-shred-a { 0% { transform: translate(0,0) rotate(0deg) scale(1); } 50% { transform: translate(20px,-15px) rotate(45deg) scale(0.8); } 100% { transform: translate(0,0) rotate(0deg) scale(1); } }
@keyframes fs-shred-b { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-15px,20px) rotate(-30deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes fs-shred-c { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(12px,12px) rotate(60deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes fs-hand { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.1) translateY(5px); } }
@keyframes fs-dust { 0% { opacity:0.3; } 100% { opacity:0.6; } }

.scn-small-hero-misadventures {
  background:
    radial-gradient(ellipse at 50% 30%, #1a120e 0%, transparent 60%),
    linear-gradient(180deg, #0e0a08 0%, #1a1410 50%, #12100a 100%);
}
.scn-small-hero-misadventures .bg-sh { position:absolute; inset:0; background: linear-gradient(135deg, #120e0a 0%, #1a1410 100%); }
.scn-small-hero-misadventures .corner-wall { position:absolute; bottom:25%; height:75%; width:45%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); }
.scn-small-hero-misadventures .corner-wall.left-wall { left:0; border-radius: 0 40% 0 0; }
.scn-small-hero-misadventures .corner-wall.right-wall { right:0; border-radius: 40% 0 0 0; }
.scn-small-hero-misadventures .floor-sh { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a120c 0%, #0e0a06 100%); }
.scn-small-hero-misadventures .hero-sh { position:absolute; bottom:22%; left:35%; width:8%; height:18%; background: linear-gradient(180deg, #0a0808 0%, #16120e 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sh-hero 4s ease-in-out infinite; }
.scn-small-hero-misadventures .fortune-sh { position:absolute; bottom:22%; right:30%; width:18%; height:60%; background: linear-gradient(180deg, #1a1010 0%, #0e0808 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: sh-fortune 6s ease-in-out infinite; }
.scn-small-hero-misadventures .shadow-wisp { position:absolute; width:20%; height:10%; background: radial-gradient(ellipse, rgba(30,25,20,0.6) 0%, transparent 70%); filter: blur(8px); }
.scn-small-hero-misadventures .shadow-wisp.a { top:20%; left:10%; animation: sh-wisp-a 8s ease-in-out infinite alternate; }
.scn-small-hero-misadventures .shadow-wisp.b { top:40%; right:15%; animation: sh-wisp-b 10s ease-in-out infinite alternate; }
.scn-small-hero-misadventures .candle-sh { position:absolute; bottom:10%; left:48%; width:2%; height:12%; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius: 20%; box-shadow: 0 0 12px rgba(200,150,60,0.5); animation: sh-candle 2s ease-in-out infinite alternate; }
@keyframes sh-hero { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes sh-fortune { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sh-wisp-a { 0% { opacity:0.2; transform: translateX(0) scale(1); } 100% { opacity:0.6; transform: translateX(30px) scale(1.2); } }
@keyframes sh-wisp-b { 0% { opacity:0.3; transform: translateX(0) scale(1); } 100% { opacity:0.7; transform: translateX(-25px) scale(0.8); } }
@keyframes sh-candle { 0% { opacity:0.8; transform: scaleY(1); } 100% { opacity:1; transform: scaleY(1.1); } }

.scn-authors-patience-request {
  background:
    radial-gradient(ellipse at 40% 50%, #2a2218 0%, transparent 70%),
    linear-gradient(180deg, #1a1410 0%, #221c16 30%, #1a1410 100%);
}
.scn-authors-patience-request .bg-ap { position:absolute; inset:0; background: linear-gradient(180deg, #1e1814 0%, #16120e 100%); }
.scn-authors-patience-request .desk-top { position:absolute; bottom:12%; left:10%; right:20%; height:8%; background: linear-gradient(180deg, #3a2a18 0%, #2a1a0e 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-authors-patience-request .desk-leg { position:absolute; bottom:0; left:12%; right:22%; height:12%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 0 0 6px 6px; }
.scn-authors-patience-request .figure-ap { position:absolute; bottom:20%; left:25%; width:14%; height:40%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 40% 40% 25% 25% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ap-figure 8s ease-in-out infinite; }
.scn-authors-patience-request .candle-ap { position:absolute; bottom:22%; left:50%; width:2%; height:14%; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius: 20%; box-shadow: 0 0 8px rgba(200,150,60,0.4); }
.scn-authors-patience-request .candle-glow-ap { position:absolute; bottom:22%; left:48%; width:8%; height:12%; background: radial-gradient(circle, #ffd060 0%, rgba(255,200,80,0.3) 40%, transparent 70%); border-radius: 50%; animation: ap-glow 4s ease-in-out infinite alternate; }
.scn-authors-patience-request .paper-stack { position:absolute; bottom:20%; left:38%; width:10%; height:4%; background: linear-gradient(180deg, #c8b090 0%, #a08870 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: ap-paper 6s ease-in-out infinite alternate; }
.scn-authors-patience-request .inkwell { position:absolute; bottom:20%; left:44%; width:4%; height:6%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-authors-patience-request .quill { position:absolute; bottom:22%; left:46%; width:1%; height:10%; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius: 50% 50% 0 0; transform-origin: bottom center; animation: ap-quill 3s ease-in-out infinite alternate; }
.scn-authors-patience-request .bookshelf { position:absolute; top:8%; left:5%; width:30%; height:60%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 4px; border: 1px solid #2a1a0e; }
.scn-authors-patience-request .bookshelf::before { content: ''; position:absolute; top:25%; left:5%; right:5%; height:2%; background: #3a2a18; }
.scn-authors-patience-request .bookshelf::after { content: ''; position:absolute; top:50%; left:5%; right:5%; height:2%; background: #3a2a18; }
@keyframes ap-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ap-glow { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes ap-paper { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-3px) scale(1.02); } }
@keyframes ap-quill { 0% { transform: rotate(0deg) translateX(0); } 100% { transform: rotate(10deg) translateX(2px); } }

/* Scene: widow-wadman-love (warm dim interior) */
.scn-widow-wadman-love {
  background: linear-gradient(180deg, #2c1a0e 0%, #3d2817 40%, #4a3020 60%, #2c1a0e 100%),
              radial-gradient(ellipse at 50% 60%, #5a3a22 0%, transparent 70%);
}
.scn-widow-wadman-love .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1a0c 0%, #3a2514 100%); border-bottom: 2px solid #4a3020; }
.scn-widow-wadman-love .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2010 0%, #1f1005 100%); border-top: 2px solid #2a1a0c; }
.scn-widow-wadman-love .table { position:absolute; bottom:30%; left:40%; width:30%; height:6%; background: linear-gradient(180deg, #4a2a14 0%, #2d1808 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-widow-wadman-love .candle { position:absolute; bottom:36%; left:46%; width:4%; height:12%; background: linear-gradient(180deg, #c8966a 0%, #a07048 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(200,150,106,0.5); }
.scn-widow-wadman-love .flame { position:absolute; bottom:48%; left:47.5%; width:2.5%; height:7%; background: radial-gradient(ellipse at 50% 100%, #ffd9a3 0%, #ffa860 40%, #d06020 70%, transparent 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: wid-flame 2s ease-in-out infinite alternate; }
.scn-widow-wadman-love .woman { position:absolute; bottom:25%; left:40%; width:12%; height:38%; background: radial-gradient(ellipse at 50% 10%, #3a2518 0%, #1f0f05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wid-woman 6s ease-in-out infinite; }
.scn-widow-wadman-love .glow { position:absolute; bottom:30%; left:44%; width:15%; height:40%; background: radial-gradient(ellipse at 50% 30%, rgba(255,200,120,0.15) 0%, transparent 100%); pointer-events: none; animation: wid-glow 4s ease-in-out infinite alternate; }
@keyframes wid-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; } 50% { transform: scaleY(1.15) translateY(-3px); opacity: 1; } 100% { transform: scaleY(0.95) translateY(1px); opacity: 0.85; } }
@keyframes wid-woman { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes wid-glow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* Scene: cause-unknown (funny dim interior) */
.scn-cause-unknown {
  background: linear-gradient(180deg, #1e1a1a 0%, #2a2424 40%, #1a1414 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a2a 0%, transparent 70%);
}
.scn-cause-unknown .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1e1a1a 0%, #2a2424 50%, #1a1414 100%); }
.scn-cause-unknown .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #100a0a 100%); }
.scn-cause-unknown .stool { position:absolute; bottom:30%; left:35%; width:20%; height:8%; background: linear-gradient(180deg, #4a2a2a 0%, #2d1818 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.7); }
.scn-cause-unknown .leg { position:absolute; bottom:38%; left:37%; width:10%; height:25%; background: linear-gradient(180deg, #d6b89a 0%, #a08060 30%, #806040 70%, #604020 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; transform: rotate(-5deg); box-shadow: inset 0 0 10px rgba(0,0,0,0.3); animation: cau-leg 3s ease-in-out infinite; }
.scn-cause-unknown .leg::after { content: ''; position:absolute; bottom:5%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #f0e0c0 0%, #d6b89a 100%); border-radius: 30% 30% 0 0; /* bandage */ }
.scn-cause-unknown .question-dot { position:absolute; bottom:55%; right:25%; width:4%; height:4%; background: #c8b080; border-radius: 50%; box-shadow: 0 0 8px rgba(200,176,128,0.5); animation: cau-q 4s ease-in-out infinite; }
.scn-cause-unknown .question-curve { position:absolute; bottom:60%; right:22%; width:6%; height:10%; border-left: 2px solid #c8b080; border-top: 2px solid #c8b080; border-radius: 50% 0 0 0; transform: rotate(10deg); box-shadow: 0 0 4px rgba(200,176,128,0.3); animation: cau-q 4s ease-in-out infinite 0.2s; }
.scn-cause-unknown .shadow { position:absolute; bottom:30%; left:35%; width:22%; height:5%; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); animation: cau-shadow 3s ease-in-out infinite; }
@keyframes cau-leg { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes cau-q { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes cau-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* Scene: asthma-reminder (funny dim interior) */
.scn-asthma-reminder {
  background: linear-gradient(180deg, #2a1e1e 0%, #3a2a2a 50%, #1a1010 100%),
              radial-gradient(ellipse at 40% 50%, #4a3030 0%, transparent 60%);
}
.scn-asthma-reminder .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e1e 0%, #1a1010 100%); }
.scn-asthma-reminder .chair { position:absolute; bottom:25%; left:30%; width:20%; height:12%; background: linear-gradient(180deg, #4a2020 0%, #2a1010 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-asthma-reminder .figure { position:absolute; bottom:37%; left:32%; width:16%; height:35%; background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ast-figure 2s ease-in-out infinite; }
.scn-asthma-reminder .lung-left { position:absolute; bottom:45%; left:25%; width:12%; height:16%; background: linear-gradient(180deg, #704040 0%, #502828 100%); border-radius: 50% 40% 50% 40% / 60% 50% 50% 40%; transform: rotate(-15deg); box-shadow: inset 0 0 10px rgba(0,0,0,0.4); animation: ast-lung 4s ease-in-out infinite; }
.scn-asthma-reminder .lung-right { position:absolute; bottom:45%; right:25%; width:12%; height:16%; background: linear-gradient(180deg, #704040 0%, #502828 100%); border-radius: 40% 50% 40% 50% / 50% 60% 40% 50%; transform: rotate(15deg); box-shadow: inset 0 0 10px rgba(0,0,0,0.4); animation: ast-lung 4s ease-in-out infinite 0.5s; }
.scn-asthma-reminder .vase { position:absolute; bottom:31%; left:22%; width:6%; height:12%; background: linear-gradient(180deg, #8a6040 0%, #603820 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-20deg); clip-path: polygon(20% 0%, 80% 0%, 100% 30%, 90% 100%, 10% 100%, 0% 30%); animation: ast-vase 2s ease-in-out infinite alternate; }
.scn-asthma-reminder .shard { position:absolute; bottom:30%; left:20%; width:3%; height:4%; background: #8a6040; clip-path: polygon(50% 0%, 100% 100%, 0% 100%); transform: rotate(40deg); animation: ast-shard 1.5s ease-in-out infinite; }
.scn-asthma-reminder .sparkle { position:absolute; top:20%; left:50%; width:4%; height:4%; background: radial-gradient(circle, #ffcc80 0%, transparent 100%); border-radius: 50%; animation: ast-sparkle 3s ease-in-out infinite; }
@keyframes ast-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ast-lung { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.05); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes ast-vase { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes ast-shard { 0% { transform: rotate(40deg) translate(0,0); opacity:1; } 50% { transform: rotate(50deg) translate(5px,-5px); opacity:0.8; } 100% { transform: rotate(40deg) translate(0,0); opacity:1; } }
@keyframes ast-sparkle { 0% { opacity:0; transform:scale(0.5); } 50% { opacity:0.8; transform:scale(1.2); } 100% { opacity:0; transform:scale(0.5); } }

/* Scene: wadman-bed (warm dim interior) */
.scn-wadman-bed {
  background: linear-gradient(180deg, #1f150c 0%, #2a1a10 40%, #1f0f05 100%),
              radial-gradient(ellipse at 50% 70%, #3a2010 0%, transparent 60%);
}
.scn-wadman-bed .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1f150c 0%, #2a1a10 100%); }
.scn-wadman-bed .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a10 0%, #100500 100%); border-top: 2px solid #3a2010; }
.scn-wadman-bed .headboard { position:absolute; bottom:30%; left:20%; width:60%; height:18%; background: linear-gradient(180deg, #4a2a16 0%, #2d180c 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-wadman-bed .mattress { position:absolute; bottom:18%; left:18%; width:64%; height:12%; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 4px; box-shadow: inset 0 2px 6px rgba(0,0,0,0.3); }
.scn-wadman-bed .blanket { position:absolute; bottom:18%; left:25%; width:45%; height:10%; background: linear-gradient(180deg, #6a4028 0%, #4a2818 100%); border-radius: 0 8px 8px 0; transform: scaleX(0.95); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: wad-blanket 8s ease-in-out infinite; }
.scn-wadman-bed .pillow { position:absolute; bottom:28%; left:22%; width:16%; height:6%; background: linear-gradient(180deg, #f0e0c8 0%, #d6c0a8 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
.scn-wadman-bed .figure { position:absolute; bottom:18%; left:24%; width:14%; height:20%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); transform-origin: bottom center; animation: wad-figure 6s ease-in-out infinite; }
.scn-wadman-bed .candle { position:absolute; bottom:12%; left:65%; width:3%; height:8%; background: linear-gradient(180deg, #c8966a 0%, #a07048 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(200,150,106,0.3); }
.scn-wadman-bed .candle-glow { position:absolute; bottom:12%; left:63%; width:8%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(255,200,120,0.12) 0%, transparent 100%); animation: wad-glow 3s ease-in-out infinite alternate; }
@keyframes wad-blanket { 0% { transform: scaleX(0.95) translateY(0); } 50% { transform: scaleX(0.98) translateY(-1px); } 100% { transform: scaleX(0.95) translateY(0); } }
@keyframes wad-figure { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes wad-glow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

.scn-calais-roads {
  background: linear-gradient(180deg, #87CEEB 0%, #FFE4B5 60%, #F0C060 100%),
              radial-gradient(ellipse at 70% 10%, #FFF8DC 0%, transparent 40%);
}
.scn-calais-roads .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #B0E0FF 0%, #87CEEB 100%);
  animation: cr-sky 12s ease-in-out infinite alternate;
}
.scn-calais-roads .sun {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,215,0,0.3);
  animation: cr-sun 6s ease-in-out infinite alternate;
}
.scn-calais-roads .road-left {
  position: absolute; bottom: 30%; left: 10%; width: 15%; height: 40%;
  background: #C0A080;
  transform: skewX(-20deg);
  border-radius: 0 0 10% 10%;
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: cr-road 8s ease-in-out infinite;
}
.scn-calais-roads .road-center {
  position: absolute; bottom: 30%; left: 42%; width: 16%; height: 40%;
  background: #C0A080;
  transform: perspective(300px) rotateX(10deg);
  border-radius: 0 0 10% 10%;
  animation: cr-road 8s ease-in-out infinite 0.5s;
}
.scn-calais-roads .road-right {
  position: absolute; bottom: 30%; right: 10%; width: 15%; height: 40%;
  background: #C0A080;
  transform: skewX(20deg);
  border-radius: 0 0 10% 10%;
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: cr-road 8s ease-in-out infinite 1s;
}
.scn-calais-roads .signpost {
  position: absolute; bottom: 38%; left: 46%; width: 6px; height: 60px;
  background: #8B5A2B;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: cr-sign 5s ease-in-out infinite;
}
.scn-calais-roads .signpost::before,
.scn-calais-roads .signpost::after {
  content: ''; position: absolute; top: -6px; width: 30px; height: 6px;
  background: #A0522D; border-radius: 2px;
}
.scn-calais-roads .signpost::before { left: -30px; transform: rotate(-15deg); }
.scn-calais-roads .signpost::after  { right: -30px; transform: rotate(15deg); }
.scn-calais-roads .traveler {
  position: absolute; bottom: 34%; left: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-walk 4s ease-in-out infinite;
}
.scn-calais-roads .wind-curl {
  position: absolute; top: 22%; left: 20%; width: 60px; height: 12px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: cr-wind 10s linear infinite;
}
@keyframes cr-sky {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; }
}
@keyframes cr-sun {
  0% { transform: scale(0.9) translateY(0); box-shadow: 0 0 60px 20px rgba(255,215,0,0.2); }
  50% { transform: scale(1.1) translateY(-4px); box-shadow: 0 0 100px 40px rgba(255,215,0,0.4); }
  100% { transform: scale(0.95) translateY(2px); box-shadow: 0 0 70px 25px rgba(255,215,0,0.3); }
}
@keyframes cr-road {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes cr-sign {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes cr-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(24px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes cr-wind {
  0% { transform: translateX(-40px) rotate(0deg); opacity: 0.2; }
  50% { transform: translateX(60px) rotate(10deg); opacity: 0.8; }
  100% { transform: translateX(160px) rotate(-5deg); opacity: 0.2; }
}

.scn-calais-description {
  background: linear-gradient(180deg, #FAF0E6 0%, #EEDFCC 30%, #D2B48C 100%),
              radial-gradient(ellipse at 80% 20%, #FFF8DC 0%, transparent 50%);
}
.scn-calais-description .wall {
  position: absolute; inset: 10% 10% 20% 10%;
  background: linear-gradient(180deg, #D2B48C 0%, #B8860B 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-calais-description .window {
  position: absolute; top: 15%; left: 50%; width: 40px; height: 50px;
  margin-left: -20px;
  background: radial-gradient(circle, #87CEEB 0%, #4682B4 100%);
  border: 4px solid #8B5A2B;
  border-radius: 4px;
  animation: cd-window 10s ease-in-out infinite alternate;
}
.scn-calais-description .desk {
  position: absolute; bottom: 28%; left: 30%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #8B5A2B 0%, #A0522D 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-calais-description .man {
  position: absolute; bottom: 38%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #F5DEB3 0%, #DEB887 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-write 3s ease-in-out infinite;
}
.scn-calais-description .quill {
  position: absolute; bottom: 46%; left: 45%; width: 4px; height: 20px;
  background: #FFF8DC;
  transform-origin: bottom center;
  border-radius: 50% 50% 0 0;
  animation: cd-quill 2s ease-in-out infinite alternate;
}
.scn-calais-description .paper {
  position: absolute; bottom: 32%; left: 35%; width: 30%; height: 10%;
  background: #FFF8DC;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: cd-paper 6s ease-in-out infinite;
}
.scn-calais-description .inkwell {
  position: absolute; bottom: 32%; left: 58%; width: 10px; height: 14px;
  background: #2F1B0E;
  border-radius: 50% 50% 20% 20%;
}
.scn-calais-description .dog {
  position: absolute; bottom: 28%; left: 20%; width: 14px; height: 18px;
  background: #8B7355;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cd-dog 5s ease-in-out infinite;
}
@keyframes cd-window {
  0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes cd-write {
  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 cd-quill {
  0% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(10deg) scaleY(1.1); }
  100% { transform: rotate(-5deg) scaleY(1); }
}
@keyframes cd-paper {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cd-dog {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(6px) scale(1.05); }
  100% { transform: translateX(0) scale(1); }
}

.scn-calais-facts {
  background: linear-gradient(180deg, #B0E0FF 0%, #87CEEB 50%, #90EE90 100%),
              radial-gradient(ellipse at 30% 10%, #FFF8DC 0%, transparent 40%);
}
.scn-calais-facts .sky-facts {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #B0E0FF 0%, #87CEEB 100%);
  animation: cf-sky 15s ease-in-out infinite alternate;
}
.scn-calais-facts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #90EE90 0%, #6B8E23 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-calais-facts .church {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 70px;
  margin-left: -30px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: cf-church 8s ease-in-out infinite;
}
.scn-calais-facts .steeple {
  position: absolute; bottom: calc(40% + 70px); left: 50%; width: 20px; height: 30px;
  margin-left: -10px;
  background: linear-gradient(180deg, #CD853F 0%, #8B5A2B 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  transform-origin: bottom center;
  animation: cf-steeple 6s ease-in-out infinite alternate;
}
.scn-calais-facts .pillar1,
.scn-calais-facts .pillar2 {
  position: absolute; bottom: 40%; width: 6px; height: 20px;
  background: #8B5A2B;
}
.scn-calais-facts .pillar1 { left: 38%; }
.scn-calais-facts .pillar2 { left: 62%; }
.scn-calais-facts .house-a,
.scn-calais-facts .house-b,
.scn-calais-facts .house-c {
  position: absolute; bottom: 40%; height: 30px;
  background: linear-gradient(180deg, #EEDC82 0%, #D2B48C 100%);
  border-radius: 4px 4px 0 0;
  animation: cf-grow 10s ease-in-out infinite;
}
.scn-calais-facts .house-a { left: 10%; width: 40px; }
.scn-calais-facts .house-b { left: 60%; width: 35px; animation-delay: 2s; }
.scn-calais-facts .house-c { right: 10%; width: 45px; animation-delay: 4s; }
@keyframes cf-sky {
  0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes cf-church {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes cf-steeple {
  0% { transform: rotate(-1deg) scaleY(0.95); }
  50% { transform: rotate(1deg) scaleY(1.05); }
  100% { transform: rotate(-0.5deg) scaleY(0.98); }
}
@keyframes cf-grow {
  0% { transform: scaleY(0.8); opacity: 0.4; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.8; }
}

.scn-calais-fortifications {
  background: linear-gradient(180deg, #87CEEB 0%, #FFE4B5 60%, #DEB887 100%),
              radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 50%);
}
.scn-calais-fortifications .sky-fort {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #B0E0FF 0%, #87CEEB 100%);
  animation: cg-sky 14s ease-in-out infinite alternate;
}
.scn-calais-fortifications .tower {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 80px;
  margin-left: -20px;
  background: linear-gradient(180deg, #DEB887 0%, #A0522D 100%);
  border-radius: 10% 10% 4% 4%;
  transform-origin: bottom center;
  animation: cg-tower 10s ease-in-out infinite;
}
.scn-calais-fortifications .tower::before {
  content: ''; position: absolute; top: -12px; left: -8px; right: -8px; height: 16px;
  background: #CD853F;
  border-radius: 2px;
}
.scn-calais-fortifications .gate {
  position: absolute; bottom: 30%; left: 44%; width: 12%; height: 20%;
  background: #4A3A2A;
  border-radius: 40% 40% 0 0;
  animation: cg-gate 5s ease-in-out infinite alternate;
}
.scn-calais-fortifications .street1,
.scn-calais-fortifications .street2 {
  position: absolute; bottom: 0; height: 30%;
  background: #A0522D;
}
.scn-calais-fortifications .street1 { left: 0; right: 55%; border-radius: 0 20% 0 0; }
.scn-calais-fortifications .street2 { left: 55%; right: 0; border-radius: 20% 0 0 0; }
.scn-calais-fortifications .town-house {
  position: absolute; bottom: 20%; left: 10%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #D2B48C 0%, #B8860B 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: cg-house 7s ease-in-out infinite;
}
.scn-calais-fortifications .flag {
  position: absolute; top: 28%; left: 50%; width: 2px; height: 30px;
  background: #8B5A2B;
  margin-left: -1px;
}
.scn-calais-fortifications .flag::after {
  content: ''; position: absolute; top: -4px; left: 2px; width: 18px; height: 12px;
  background: #4682B4;
  border-radius: 0 4px 4px 0;
  animation: cg-flag 3s ease-in-out infinite alternate;
}
.scn-calais-fortifications .sailor {
  position: absolute; bottom: 15%; left: 25%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #F5DEB3 0%, #DEB887 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cg-sailor 6s ease-in-out infinite;
}
@keyframes cg-sky {
  0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; }
}
@keyframes cg-tower {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes cg-gate {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(1.05) scaleY(0.95); }
  100% { transform: scaleX(0.98) scaleY(1.02); }
}
@keyframes cg-house {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cg-flag {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes cg-sailor {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(-2deg); }
  50% { transform: translateX(10px) rotate(1deg); }
  75% { transform: translateX(15px) rotate(-1deg); }
  100% { transform: translateX(20px) rotate(0deg); }
}

.scn-ass-at-gate {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4a373 40%, #b5835a 70%, #7a5a3a 100%),
              radial-gradient(ellipse at 60% 30%, #fff4d6 0%, transparent 60%);
}
.scn-ass-at-gate .wall {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(90deg, #8b7350 0%, #a08060 30%, #8b7350 60%, #6b5a40 100%);
  border-bottom: 4px solid #5a4a30;
  animation: ag-wall 20s ease-in-out infinite alternate;
}
.scn-ass-at-gate .arch {
  position:absolute; bottom:40%; left:35%; width:30%; height:35%;
  background: #5a4a30;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
}
.scn-ass-at-gate .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #f0e68c 100%);
  animation: ag-sky 10s ease-in-out infinite alternate;
}
.scn-ass-at-gate .ground {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-ass-at-gate .ass {
  position:absolute; bottom:42%; left:50%; width:50px; height:60px;
  transform: translateX(-60%);
  background: linear-gradient(135deg, #6b5a40 0%, #4a3a28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.3);
  animation: ag-ass 4s ease-in-out infinite;
}
.scn-ass-at-gate .ass::before {
  content:''; position:absolute; top:-15px; left:10px; width:8px; height:20px;
  background: #5a4a30; border-radius: 5px 5px 0 0;
  transform: rotate(15deg);
}
.scn-ass-at-gate .gate-shadow {
  position:absolute; bottom:38%; left:35%; width:28%; height:8%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: ag-shadow 6s ease-in-out infinite alternate;
}
.scn-ass-at-gate .sun-ray {
  position:absolute; top:0; left:20%; width:4px; height:100%;
  background: linear-gradient(180deg, rgba(255,220,100,0.6) 0%, transparent 80%);
  transform: rotate(20deg);
  transform-origin: top;
  animation: ag-sunray 12s ease-in-out infinite;
}
.scn-ass-at-gate .dust {
  position:absolute; bottom:40%; left:40%; width:20px; height:20px;
  background: radial-gradient(circle, rgba(200,180,150,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ag-dust 8s linear infinite;
}
.scn-ass-at-gate .dust::after {
  content:''; position:absolute; top:5px; left:10px; width:12px; height:12px;
  background: radial-gradient(circle, rgba(200,180,150,0.3) 0%, transparent 70%);
  filter: blur(2px);
  animation: ag-dust 10s linear infinite reverse;
}
@keyframes ag-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ag-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ag-ass { 0% { transform: translateX(-60%) translateY(0) rotate(-2deg) } 50% { transform: translateX(-55%) translateY(-3px) rotate(2deg) } 100% { transform: translateX(-60%) translateY(0) rotate(-2deg) } }
@keyframes ag-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.3; transform: scaleX(1) } }
@keyframes ag-sunray { 0% { opacity:0.3; transform: rotate(15deg) scaleY(1) } 50% { opacity:0.7; transform: rotate(25deg) scaleY(1.2) } 100% { opacity:0.3; transform: rotate(15deg) scaleY(1) } }
@keyframes ag-dust { 0% { transform: translateY(0) translateX(0) scale(1) } 50% { transform: translateY(-30px) translateX(10px) scale(1.5) } 100% { transform: translateY(0) translateX(0) scale(1) } }

.scn-communion-with-ass {
  background: linear-gradient(180deg, #fde8d0 0%, #e2c8a0 40%, #c8a880 100%),
              radial-gradient(ellipse at 50% 80%, #fff5e0 0%, transparent 70%);
}
.scn-communion-with-ass .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a080 100%);
  border-radius: 0 0 40% 40% / 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
}
.scn-communion-with-ass .ass-head {
  position:absolute; bottom:25%; left:30%; width:80px; height:90px;
  background: linear-gradient(160deg, #7a6a50 0%, #5a4a30 100%);
  border-radius: 50% 40% 30% 60% / 60% 50% 50% 50%;
  transform: rotate(-10deg);
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: ca-head 7s ease-in-out infinite;
}
.scn-communion-with-ass .hand {
  position:absolute; bottom:30%; right:30%; width:30px; height:50px;
  background: linear-gradient(135deg, #e6c8a0 0%, #d4a880 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  transform-origin: bottom right;
  animation: ca-hand 4s ease-in-out infinite;
}
.scn-communion-with-ass .arm {
  position:absolute; bottom:35%; right:20%; width:50px; height:20px;
  background: linear-gradient(135deg, #d4a880 0%, #c89870 100%);
  border-radius: 20% 20% 20% 20% / 50% 50% 50% 50%;
  transform: rotate(-30deg);
  transform-origin: right;
  animation: ca-arm 4s ease-in-out infinite;
}
.scn-communion-with-ass .shadow {
  position:absolute; bottom:15%; left:25%; width:40%; height:10%;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(6px);
  animation: ca-shadow 8s ease-in-out infinite alternate;
}
.scn-communion-with-ass .halo {
  position:absolute; top:10%; left:40%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(255,220,100,0.4) 0%, rgba(255,220,100,0.1) 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ca-halo 6s ease-in-out infinite alternate;
}
@keyframes ca-head { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes ca-hand { 0% { transform: rotate(20deg) scaleY(1) } 50% { transform: rotate(25deg) scaleY(1.1) } 100% { transform: rotate(20deg) scaleY(1) } }
@keyframes ca-arm { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(-30deg) } }
@keyframes ca-shadow { 0% { opacity:0.2; transform: scaleX(1) } 50% { opacity:0.4; transform: scaleX(1.2) } 100% { opacity:0.2; transform: scaleX(1) } }
@keyframes ca-halo { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.2) } 100% { opacity:0.3; transform: scale(1) } }

.scn-ass-conversation {
  background: linear-gradient(180deg, #efe5d0 0%, #d4c4a8 30%, #b8a888 60%, #9a8a70 100%),
              radial-gradient(ellipse at 50% 20%, #ffecb0 0%, transparent 50%);
}
.scn-ass-conversation .street {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a888 100%);
  border-bottom: 2px solid #9a8a70;
  animation: ac-street 15s ease-in-out infinite alternate;
}
.scn-ass-conversation .gate {
  position:absolute; bottom:30%; left:50%; width:20%; height:40%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #6b5a40 0%, #8b7350 30%, #6b5a40 70%, #5a4a30 100%);
  border-radius: 5px 5px 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: ac-gate 8s ease-in-out infinite;
}
.scn-ass-conversation .ass-side {
  position:absolute; bottom:30%; left:35%; width:60px; height:70px;
  background: linear-gradient(135deg, #7a6a50 0%, #4a3a28 100%);
  border-radius: 40% 60% 50% 50% / 60% 50% 50% 40%;
  transform: rotate(5deg);
  box-shadow: 0 5px 10px rgba(0,0,0,0.3);
  animation: ac-ass 5s ease-in-out infinite;
}
.scn-ass-conversation .ass-side::before {
  content:''; position:absolute; top:-10px; left:10px; width:6px; height:18px;
  background: #5a4a30; border-radius: 3px 3px 0 0;
  transform: rotate(20deg);
}
.scn-ass-conversation .figure {
  position:absolute; bottom:30%; right:35%; width:25px; height:60px;
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a080 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: ac-figure 6s ease-in-out infinite;
}
.scn-ass-conversation .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #a09070 0%, #7a6a50 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-ass-conversation .shadow {
  position:absolute; bottom:20%; left:30%; width:35%; height:8%;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(4px);
  animation: ac-shadow 10s ease-in-out infinite alternate;
}
.scn-ass-conversation .cloud {
  position:absolute; top:10%; right:10%; 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: ac-cloud 30s linear infinite;
}
@keyframes ac-street { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ac-gate { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-48%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes ac-ass { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(8deg) translateX(3px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes ac-figure { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes ac-shadow { 0% { opacity:0.15; transform: scaleX(1) } 50% { opacity:0.3; transform: scaleX(1.1) } 100% { opacity:0.15; transform: scaleX(1) } }
@keyframes ac-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-130vw) } }

.scn-macaroon-offering {
  background: linear-gradient(180deg, #f5e0c0 0%, #dcc49c 40%, #c4a880 100%),
              radial-gradient(ellipse at 30% 60%, #fff5e0 0%, transparent 50%);
}
.scn-macaroon-offering .bg-floor {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(135deg, #dcc49c 0%, #c4a880 100%);
  border-radius: 0 0 50% 50% / 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
}
.scn-macaroon-offering .ass-snout {
  position:absolute; bottom:30%; left:30%; width:60px; height:50px;
  background: linear-gradient(135deg, #7a6a50 0%, #5a4a30 100%);
  border-radius: 50% 30% 40% 60% / 60% 50% 50% 40%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.3);
  animation: mo-snout 3s ease-in-out infinite;
}
.scn-macaroon-offering .hand {
  position:absolute; bottom:32%; right:35%; width:25px; height:40px;
  background: linear-gradient(135deg, #e6c8a0 0%, #d4a880 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  transform-origin: bottom right;
  animation: mo-hand 4s ease-in-out infinite;
}
.scn-macaroon-offering .macaroon {
  position:absolute; bottom:35%; right:38%; width:20px; height:12px;
  background: radial-gradient(circle, #ffd700 0%, #e6a800 70%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(10deg);
  animation: mo-macaroon 4s ease-in-out infinite;
}
.scn-macaroon-offering .shadow {
  position:absolute; bottom:25%; right:30%; width:30%; height:6%;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(3px);
  animation: mo-shadow 6s ease-in-out infinite alternate;
}
.scn-macaroon-offering .glow {
  position:absolute; top:20%; left:40%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(255,220,100,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: mo-glow 5s ease-in-out infinite alternate;
}
@keyframes mo-snout { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes mo-hand { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes mo-macaroon { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(5deg) scale(1.1) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes mo-shadow { 0% { opacity:0.15; transform: scaleX(1) } 50% { opacity:0.25; transform: scaleX(1.1) } 100% { opacity:0.15; transform: scaleX(1) } }
@keyframes mo-glow { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.2) } 100% { opacity:0.3; transform: scale(1) } }

/* conception-philosophy */
.scn-conception-philosophy {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e12 40%, #3a2a18 70%, #2a1e12 100%), radial-gradient(ellipse at 30% 20%, #4a3520 0%, transparent 60%);
}
.scn-conception-philosophy .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(60,40,20,0.6) 50%, rgba(20,12,8,0.8) 100%);
  animation: cp-bg 12s ease-in-out infinite alternate;
}
.scn-conception-philosophy .wall {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%);
  border-bottom: 2px solid #1a1410;
}
.scn-conception-philosophy .candle {
  position: absolute; bottom: 50%; left: 48%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #e8c070 0%, #c89850 40%, #a07030 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 30px 12px rgba(200,152,80,0.5), 0 0 60px 20px rgba(200,152,80,0.2);
  animation: cp-candle 4s ease-in-out infinite;
}
.scn-conception-philosophy .bed {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 28%;
  background: linear-gradient(180deg, #4a3a28 0%, #3a2a1a 100%);
  border-radius: 8px 8px 16px 16px;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5);
  animation: cp-bed 8s ease-in-out infinite;
}
.scn-conception-philosophy .figure1 {
  position: absolute; bottom: 30%; left: 36%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-fig1 6s ease-in-out infinite;
}
.scn-conception-philosophy .figure2 {
  position: absolute; bottom: 28%; right: 32%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #2a2016 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-fig2 8s ease-in-out infinite;
}
.scn-conception-philosophy .spirit-orb {
  position: absolute; bottom: 50%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0d888 0%, #d0b060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #d0b060, 0 0 40px 12px transparent;
  animation: cp-orb 5s ease-in-out infinite;
}
@keyframes cp-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes cp-candle {
  0%, 100% { transform: scaleY(1) rotate(0deg); box-shadow: 0 0 30px 12px rgba(200,152,80,0.5); }
  30% { transform: scaleY(1.1) rotate(-1deg); box-shadow: 0 0 40px 16px rgba(200,152,80,0.7); }
  60% { transform: scaleY(0.95) rotate(1deg); box-shadow: 0 0 25px 8px rgba(200,152,80,0.4); }
}
@keyframes cp-bed {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cp-fig1 {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(-2px) rotate(0deg); }
  75% { transform: translateX(3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes cp-fig2 {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes cp-orb {
  0% { transform: translate(0,0) scale(1); opacity: 0.8; }
  25% { transform: translate(10px, -8px) scale(1.2); opacity: 1; }
  50% { transform: translate(-5px, 4px) scale(0.9); opacity: 0.6; }
  75% { transform: translate(8px, -12px) scale(1.1); opacity: 0.9; }
  100% { transform: translate(0,0) scale(1); opacity: 0.8; }
}

/* animal-spirits-doctrine */
.scn-animal-spirits-doctrine {
  background: linear-gradient(180deg, #1e1814 0%, #2e2216 40%, #3e2e1c 70%, #2e2216 100%), radial-gradient(ellipse at 50% 30%, #4a3820 0%, transparent 60%);
}
.scn-animal-spirits-doctrine .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(60,40,20,0.4) 50%, rgba(20,12,8,0.7) 100%);
  animation: as-bg 15s ease-in-out infinite alternate;
}
.scn-animal-spirits-doctrine .bookshelf {
  position: absolute; top: 10%; left: 5%; width: 22%; height: 60%;
  background: linear-gradient(180deg, #4a3828 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
}
.scn-animal-spirits-doctrine .bookshelf::before {
  content: ''; position: absolute; top: 20%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 50%, #5a4a3a 100%);
  border-radius: 2px;
  animation: as-bookshelf 12s ease-in-out infinite;
}
.scn-animal-spirits-doctrine .desk {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #4a3a28 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-animal-spirits-doctrine .figure {
  position: absolute; bottom: 22%; left: 38%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: as-fig 7s ease-in-out infinite;
}
.scn-animal-spirits-doctrine .lamp {
  position: absolute; bottom: 40%; right: 25%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e8c070 0%, #c89850 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 16px rgba(200,152,80,0.5), 0 0 80px 24px rgba(200,152,80,0.2);
  animation: as-lamp 5s ease-in-out infinite;
}
.scn-animal-spirits-doctrine .spirit {
  position: absolute; bottom: 60%; left: 55%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0d888 0%, #d0b060 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #d0b060;
  animation: as-spirit 8s ease-in-out infinite;
}
@keyframes as-bg { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes as-bookshelf { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes as-fig {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(6px) rotate(1deg); }
  60% { transform: translateX(-4px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes as-lamp {
  0%,100% { box-shadow: 0 0 40px 16px rgba(200,152,80,0.5); transform: scale(1); }
  50% { box-shadow: 0 0 60px 24px rgba(200,152,80,0.7); transform: scale(1.05); }
}
@keyframes as-spirit {
  0% { transform: translate(0,0) scale(1); opacity:0.8; }
  25% { transform: translate(12px, -8px) scale(1.2); opacity:1; }
  50% { transform: translate(-8px, 4px) scale(0.9); opacity:0.6; }
  75% { transform: translate(10px, 12px) scale(1.1); opacity:0.9; }
  100% { transform: translate(0,0) scale(1); opacity:0.8; }
}

/* clock-winding-interruption */
.scn-clock-winding-interruption {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e12 40%, #3a2a18 70%, #2a1e12 100%), radial-gradient(ellipse at 40% 50%, #4a3520 0%, transparent 70%);
}
.scn-clock-winding-interruption .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(40,30,15,0.5) 50%, rgba(10,8,5,0.8) 100%);
  animation: cw-bg 10s ease-in-out infinite alternate;
}
.scn-clock-winding-interruption .clock {
  position: absolute; bottom: 25%; left: 20%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: cw-clock 9s ease-in-out infinite;
}
.scn-clock-winding-interruption .clock::after {
  content: ''; position: absolute; top: 20%; left: 20%; width: 60%; height: 60%;
  background: radial-gradient(circle, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
}
.scn-clock-winding-interruption .pendulum {
  position: absolute; bottom: 18%; left: 28%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: cw-pendulum 2s ease-in-out infinite;
}
.scn-clock-winding-interruption .pendulum::after {
  content: ''; position: absolute; bottom: -6px; left: -6px; width: 14px; height: 14px;
  background: radial-gradient(circle, #a09080 0%, #6a5a4a 100%);
  border-radius: 50%;
}
.scn-clock-winding-interruption .figure-winding {
  position: absolute; bottom: 22%; left: 30%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cw-fig1 6s ease-in-out infinite;
}
.scn-clock-winding-interruption .figure-mother {
  position: absolute; bottom: 28%; right: 30%; width: 9%; height: 20%;
  background: linear-gradient(180deg, #2a2016 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cw-fig2 8s ease-in-out infinite;
}
.scn-clock-winding-interruption .key {
  position: absolute; bottom: 35%; left: 36%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #c89850 0%, #a07030 100%);
  border-radius: 2px;
  animation: cw-key 4s ease-in-out infinite;
}
.scn-clock-winding-interruption .candle {
  position: absolute; bottom: 45%; right: 15%; width: 10px; height: 25px;
  background: linear-gradient(180deg, #e8c070 0%, #c89850 40%, #a07030 100%);
  border-radius: 3px;
  box-shadow: 0 0 25px 10px rgba(200,152,80,0.5), 0 0 50px 16px rgba(200,152,80,0.2);
  animation: cw-candle 3s ease-in-out infinite;
}
@keyframes cw-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes cw-clock { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cw-pendulum {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(10deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes cw-fig1 {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(3px) rotate(2deg); }
  40% { transform: translateX(-2px) rotate(-1deg); }
  60% { transform: translateX(5px) rotate(1deg); }
  80% { transform: translateX(-1px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cw-fig2 {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes cw-key {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
}
@keyframes cw-candle {
  0%,100% { transform: scaleY(1); box-shadow: 0 0 25px 10px rgba(200,152,80,0.5); }
  30% { transform: scaleY(1.1); box-shadow: 0 0 35px 14px rgba(200,152,80,0.7); }
  60% { transform: scaleY(0.95); box-shadow: 0 0 20px 8px rgba(200,152,80,0.3); }
}

/* fathers-exclamation */
.scn-fathers-exclamation {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e12 40%, #3a2a18 70%, #2a1e12 100%), radial-gradient(ellipse at 60% 30%, #4a3520 0%, transparent 60%);
}
.scn-fathers-exclamation .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(40,30,15,0.4) 50%, rgba(10,8,5,0.7) 100%);
  animation: fe-bg 12s ease-in-out infinite alternate;
}
.scn-fathers-exclamation .father {
  position: absolute; bottom: 20%; left: 20%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fe-father 4s ease-in-out infinite;
}
.scn-fathers-exclamation .father::before {
  content: ''; position: absolute; top: -20%; left: -30%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(-20deg);
  animation: fe-arm 4s ease-in-out infinite;
}
.scn-fathers-exclamation .father::after {
  content: ''; position: absolute; top: -20%; right: -30%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(20deg);
  animation: fe-arm 4s ease-in-out infinite 2s;
}
.scn-fathers-exclamation .chair {
  position: absolute; bottom: 16%; left: 20%; width: 22%; height: 18%;
  background: linear-gradient(180deg, #4a3a28 0%, #3a2a1a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
  z-index: -1;
}
.scn-fathers-exclamation .table {
  position: absolute; bottom: 22%; right: 10%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #4a3a28 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-fathers-exclamation .candle {
  position: absolute; bottom: 32%; right: 22%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #e8c070 0%, #c89850 40%, #a07030 100%);
  border-radius: 3px;
  box-shadow: 0 0 30px 12px rgba(200,152,80,0.5), 0 0 60px 20px rgba(200,152,80,0.2);
  animation: fe-candle 3s ease-in-out infinite;
}
.scn-fathers-exclamation .burst {
  position: absolute; top: 15%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(232,192,112,0.6) 0%, rgba(232,192,112,0.2) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fe-burst 2s ease-in-out infinite;
}
@keyframes fe-bg { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes fe-father {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fe-arm {
  0%,100% { transform: rotate(-20deg); }
  50% { transform: rotate(30deg); }
}
@keyframes fe-candle {
  0%,100% { transform: scaleY(1); box-shadow: 0 0 30px 12px rgba(200,152,80,0.5); }
  30% { transform: scaleY(1.08); box-shadow: 0 0 40px 16px rgba(200,152,80,0.7); }
  60% { transform: scaleY(0.95); box-shadow: 0 0 25px 8px rgba(200,152,80,0.3); }
}
@keyframes fe-burst {
  0%,100% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.5); opacity: 0.2; }
}

/* forceps-experiment */
.scn-forceps-experiment {
  background:
    linear-gradient(to bottom, #1a0e0a 0%, #2c1a12 30%, #1a0e0a 100%),
    radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 60%);
}
.scn-forceps-experiment .wall-left {
  position: absolute; inset: 0 50% 0 0; background: linear-gradient(180deg, #2c1a12 0%, #1a0e0a 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.5); animation: fe1-shadow 6s ease-in-out infinite alternate;
}
.scn-forceps-experiment .wall-right {
  position: absolute; inset: 0 0 0 50%; background: linear-gradient(180deg, #3a2218 0%, #1a0e0a 100%);
  animation: fe1-shadow 6s ease-in-out infinite alternate-reverse;
}
.scn-forceps-experiment .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2218 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6); animation: fe1-table 9s ease-in-out infinite;
}
.scn-forceps-experiment .candle {
  position: absolute; bottom: 27%; left: 48%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #c08040 0%, #7a4a2a 100%); border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: fe1-candle 3s ease-in-out infinite alternate;
}
.scn-forceps-experiment .child-head {
  position: absolute; bottom: 27%; left: 35%; width: 30px; height: 26px;
  background: radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform: rotate(-10deg); animation: fe1-child 4s ease-in-out infinite alternate;
}
.scn-forceps-experiment .forceps {
  position: absolute; bottom: 30%; left: 42%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%);
  border-radius: 20% 20% 10% 10%; transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: fe1-forceps 2.5s ease-in-out infinite alternate;
}
.scn-forceps-experiment .doctor {
  position: absolute; bottom: 22%; left: 55%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fe1-doctor 4s ease-in-out infinite alternate;
}
.scn-forceps-experiment .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: fe1-shad 6s ease-in-out infinite alternate;
}
@keyframes fe1-shadow { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes fe1-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fe1-candle { 0% { box-shadow: 0 0 16px 4px #c08040; } 50% { box-shadow: 0 0 28px 8px #c08040, 0 0 48px 16px rgba(192,128,64,0.3); } 100% { box-shadow: 0 0 20px 5px #c08040; } }
@keyframes fe1-child { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes fe1-forceps { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes fe1-doctor { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fe1-shad { 0% { transform: scaleX(1); opacity: 0.5; } 100% { transform: scaleX(1.1); opacity: 0.7; } }

/* head-or-hip */
.scn-head-or-hip {
  background:
    linear-gradient(to bottom, #1a0e0a 0%, #2c1810 40%, #1a0e0a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2018 0%, transparent 60%);
}
.scn-head-or-hip .bg-room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2c1810 0%, #1a0e0a 100%);
  animation: hh2-bg 8s ease-in-out infinite alternate;
}
.scn-head-or-hip .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hh2-left 5s ease-in-out infinite alternate;
}
.scn-head-or-hip .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hh2-right 5s ease-in-out infinite alternate-reverse;
}
.scn-head-or-hip .child-body {
  position: absolute; bottom: 23%; left: 42%; width: 22px; height: 28px;
  background: radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 30% 30%;
  animation: hh2-child 4s ease-in-out infinite;
}
.scn-head-or-hip .candle {
  position: absolute; bottom: 35%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #7a4a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 18px 5px #c08040, 0 0 36px 10px rgba(192,128,64,0.3);
  animation: hh2-candle 3s ease-in-out infinite alternate;
}
.scn-head-or-hip .shawl {
  position: absolute; bottom: 25%; left: 18%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2218 100%);
  border-radius: 50% 50% 0 0; transform: rotate(-20deg);
  animation: hh2-shawl 4s ease-in-out infinite alternate;
}
.scn-head-or-hip .argument-line {
  position: absolute; bottom: 40%; left: 30%; width: 40%; height: 2px;
  background: rgba(192,128,64,0.3); filter: blur(1px);
  animation: hh2-line 6s ease-in-out infinite alternate;
}
@keyframes hh2-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hh2-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hh2-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hh2-child { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes hh2-candle { 0% { box-shadow: 0 0 14px 3px #c08040; } 50% { box-shadow: 0 0 24px 7px #c08040; } 100% { box-shadow: 0 0 16px 4px #c08040; } }
@keyframes hh2-shawl { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes hh2-line { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.1); } 100% { opacity: 0.3; transform: scaleX(1); } }

/* slop-departs */
.scn-slop-departs {
  background:
    linear-gradient(to bottom, #1a0e0a 0%, #2c1810 30%, #1a0e0a 100%),
    radial-gradient(ellipse at 70% 50%, #3a2018 0%, transparent 60%);
}
.scn-slop-departs .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2c1810 0%, #1a0e0a 100%);
  animation: sd3-wall 10s ease-in-out infinite alternate;
}
.scn-slop-departs .door-frame {
  position: absolute; bottom: 10%; right: 15%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e0a 100%);
  border: 4px solid #4a2a1a; border-radius: 5% 5% 2% 2%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.7);
  animation: sd3-door 8s ease-in-out infinite alternate;
}
.scn-slop-departs .figure-slop {
  position: absolute; bottom: 18%; left: 40%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sd3-figure 3s ease-in-out infinite alternate;
}
.scn-slop-departs .bag {
  position: absolute; bottom: 22%; left: 45%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #3a5a2a 0%, #2a3a1a 100%);
  border-radius: 20% 20% 30% 30%;
  transform: rotate(15deg);
  animation: sd3-bag 3s ease-in-out infinite alternate;
}
.scn-slop-departs .candle {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 22px;
  background: linear-gradient(180deg, #c08040 0%, #7a4a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 18px 5px #c08040, 0 0 36px 10px rgba(192,128,64,0.3);
  animation: sd3-candle 3s ease-in-out infinite alternate;
}
.scn-slop-departs .foot-step {
  position: absolute; bottom: 18%; left: 36%; width: 8px; height: 6px;
  background: #3a2218; border-radius: 50%;
  animation: sd3-step 1.5s ease-in-out infinite alternate;
}
.scn-slop-departs .shadow-floor {
  position: absolute; bottom: 10%; left: 30%; width: 60px; height: 6px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: sd3-shad 6s ease-in-out infinite alternate;
}
@keyframes sd3-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sd3-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes sd3-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sd3-bag { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes sd3-candle { 0% { box-shadow: 0 0 14px 3px #c08040; } 50% { box-shadow: 0 0 24px 7px #c08040; } 100% { box-shadow: 0 0 16px 4px #c08040; } }
@keyframes sd3-step { 0% { transform: translateX(0) scaleX(1); opacity: 0.6; } 50% { transform: translateX(4px) scaleX(1.2); opacity: 1; } 100% { transform: translateX(0) scaleX(1); opacity: 0.6; } }
@keyframes sd3-shad { 0% { transform: scaleX(1); opacity: 0.4; } 100% { transform: scaleX(1.2); opacity: 0.6; } }

/* duration-discourse */
.scn-duration-discourse {
  background:
    linear-gradient(to bottom, #2a1810 0%, #3a2218 30%, #2a1810 100%),
    radial-gradient(ellipse at 50% 70%, #6a3a22 0%, transparent 60%);
}
.scn-duration-discourse .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2218 0%, #2a1810 100%);
  animation: dd4-warm 12s ease-in-out infinite alternate;
}
.scn-duration-discourse .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #6a3a22 0%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0 / 80% 80% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: dd4-desk 9s ease-in-out infinite;
}
.scn-duration-discourse .figure-walter {
  position: absolute; bottom: 25%; left: 25%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dd4-walter 5s ease-in-out infinite alternate;
}
.scn-duration-discourse .figure-toby {
  position: absolute; bottom: 25%; right: 25%; width: 32px; height: 58px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dd4-toby 5s ease-in-out infinite alternate-reverse;
}
.scn-duration-discourse .candle-big {
  position: absolute; bottom: 35%; left: 48%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #e0a060 0%, #a06030 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 24px 8px #e0a060, 0 0 48px 16px rgba(224,160,96,0.4);
  animation: dd4-candle 3s ease-in-out infinite alternate;
}
.scn-duration-discourse .clock {
  position: absolute; bottom: 40%; left: 15%; width: 24px; height: 24px;
  background: radial-gradient(circle, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 50%; border: 2px solid #8a6a4a;
  animation: dd4-clock 6s ease-in-out infinite alternate;
}
.scn-duration-discourse .papers {
  position: absolute; bottom: 23%; left: 35%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a880 100%);
  border-radius: 5%; transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: dd4-papers 4s ease-in-out infinite alternate;
}
.scn-duration-discourse .discourse-line {
  position: absolute; bottom: 45%; left: 30%; width: 40%; height: 2px;
  background: rgba(224,160,96,0.4); filter: blur(2px);
  animation: dd4-line 8s ease-in-out infinite alternate;
}
@keyframes dd4-warm { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dd4-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes dd4-walter { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dd4-toby { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dd4-candle { 0% { box-shadow: 0 0 18px 5px #e0a060; } 50% { box-shadow: 0 0 30px 10px #e0a060, 0 0 50px 18px rgba(224,160,96,0.3); } 100% { box-shadow: 0 0 22px 6px #e0a060; } }
@keyframes dd4-clock { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(5deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes dd4-papers { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes dd4-line { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.15); } 100% { opacity: 0.3; transform: scaleX(1); } }

/* ========== map-pointed (dim interior, funny, close-up) ========== */
.scn-map-pointed {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a1008 100%),
    radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 70%);
}
.scn-map-pointed .wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-map-pointed .table {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-map-pointed .map {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(135deg, #c8a86a 0%, #a8834a 50%, #8a6a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: mp-map-roll 8s ease-in-out infinite alternate;
}
.scn-map-pointed .hand {
  position: absolute; bottom: 30%; left: 60%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #d4a86a 0%, #a07040 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mp-point 4s ease-in-out infinite;
}
.scn-map-pointed .candle {
  position: absolute; bottom: 45%; left: 70%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b080 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-map-pointed .flame-glow {
  position: absolute; bottom: 58%; left: 70%; width: 16px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #ffb040 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,176,64,0.5), 0 0 40px 16px rgba(255,176,64,0.3);
  animation: mp-flicker 1.5s ease-in-out infinite alternate;
}
.scn-map-pointed .chair-back {
  position: absolute; bottom: 30%; left: 5%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: mp-chair 12s ease-in-out infinite alternate;
}
@keyframes mp-map-roll {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(2px) rotate(0.5deg); }
  100% { transform: translateX(-2px) rotate(-0.3deg); }
}
@keyframes mp-point {
  0%   { transform: translateY(0) rotate(-5deg); }
  25%  { transform: translateY(-3px) rotate(-2deg); }
  50%  { transform: translateY(0) rotate(0deg); }
  75%  { transform: translateY(-1px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes mp-flicker {
  0%   { opacity: 0.7; transform: scale(0.9); }
  50%  { opacity: 1;   transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes mp-chair {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

/* ========== kitchen-map (staircase, dim interior, figure descending) ========== */
.scn-kitchen-map {
  background:
    linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 30%, #2a1a0a 70%, #1a1008 100%),
    radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 70%);
}
.scn-kitchen-map .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
}
.scn-kitchen-map .stair-step {
  position: absolute; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-kitchen-map .s1 { bottom: 25%; }
.scn-kitchen-map .s2 { bottom: 33%; }
.scn-kitchen-map .s3 { bottom: 41%; }
.scn-kitchen-map .figure {
  position: absolute; bottom: 30%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: km-descend 6s ease-in-out infinite alternate;
}
.scn-kitchen-map .map-roll {
  position: absolute; bottom: 33%; left: 30%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #b89860 0%, #8a6a3a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: km-map-swing 4s ease-in-out infinite alternate;
}
.scn-kitchen-map .banister {
  position: absolute; bottom: 20%; left: 22%; width: 4px; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
}
.scn-kitchen-map .lantern {
  position: absolute; bottom: 50%; right: 20%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.3);
  animation: km-lantern-swing 5s ease-in-out infinite alternate;
}
@keyframes km-descend {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes km-map-swing {
  0%   { transform: rotate(10deg) translateX(0); }
  50%  { transform: rotate(20deg) translateX(2px); }
  100% { transform: rotate(8deg) translateX(-1px); }
}
@keyframes km-lantern-swing {
  0%   { transform: rotate(-5deg); }
  50%  { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}

/* ========== bridget-convinced (two figures on bed, kiss, dim interior) ========== */
.scn-bridget-convinced {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a1008 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-bridget-convinced .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
.scn-bridget-convinced .bed {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-bridget-convinced .pillow {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c8b090 0%, #a88868 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bc-pillow 8s ease-in-out infinite alternate;
}
.scn-bridget-convinced .figure-a {
  position: absolute; bottom: 20%; left: 35%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bc-lean 6s ease-in-out infinite alternate;
}
.scn-bridget-convinced .figure-b {
  position: absolute; bottom: 20%; left: 48%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-lean-reverse 6s ease-in-out infinite alternate;
}
.scn-bridget-convinced .map-scroll {
  position: absolute; bottom: 12%; left: 20%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #b89860 0%, #8a6a3a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  transform: rotate(-20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-bridget-convinced .candle {
  position: absolute; bottom: 40%; right: 12%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-bridget-convinced .wax-drip {
  position: absolute; bottom: 40%; right: 12%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd080 0%, #ffb040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(255,176,64,0.4);
  animation: bc-drip 3s ease-in-out infinite alternate;
}
@keyframes bc-pillow {
  0%   { transform: translateY(0) scale(1); }
  50%  { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes bc-lean {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(-3px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bc-lean-reverse {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(3px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bc-drip {
  0%   { transform: translateY(0) scale(1); opacity: 0.7; }
  50%  { transform: translateY(-2px) scale(1.2); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.8; }
}

/* ========== bridget-overcome (close-up, faces touching, dim interior) ========== */
.scn-bridget-overcome {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a1008 40%, #0d0804 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-bridget-overcome .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: bo-bg-pulse 10s ease-in-out infinite alternate;
}
.scn-bridget-overcome .face-a {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #c8a080 0%, #a07050 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: bo-face-a 8s ease-in-out infinite alternate;
}
.scn-bridget-overcome .face-b {
  position: absolute; bottom: 30%; left: 42%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 50% 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: bo-face-b 8s ease-in-out infinite alternate;
}
.scn-bridget-overcome .tear {
  position: absolute; bottom: 35%; left: 35%; width: 4px; height: 8px;
  background: radial-gradient(circle, #a0c8d8 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(160,200,216,0.5);
  animation: bo-tear 4s ease-in-out infinite alternate;
}
.scn-bridget-overcome .hand-on-cheek {
  position: absolute; bottom: 28%; left: 44%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #c8a080 0%, #a07050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: bo-hand 6s ease-in-out infinite alternate;
}
.scn-bridget-overcome .hair-strand {
  position: absolute; bottom: 45%; left: 28%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-15deg);
  animation: bo-hair 5s ease-in-out infinite alternate;
}
.scn-bridget-overcome .shadow {
  position: absolute; inset: 0;
  box-shadow: inset 0 0 40px 20px rgba(0,0,0,0.7);
  pointer-events: none;
  animation: bo-shadow 12s ease-in-out infinite alternate;
}
@keyframes bo-bg-pulse {
  0%   { opacity: 0.8; }
  50%  { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes bo-face-a {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bo-face-b {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bo-tear {
  0%   { transform: translateY(0) scale(1); opacity: 0.3; }
  50%  { transform: translateY(-3px) scale(1.2); opacity: 0.8; }
  100% { transform: translateY(0) scale(1); opacity: 0.4; }
}
@keyframes bo-hand {
  0%   { transform: rotate(8deg) translateY(0); }
  50%  { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes bo-hair {
  0%   { transform: rotate(-15deg) translateX(0); }
  50%  { transform: rotate(-10deg) translateX(2px); }
  100% { transform: rotate(-15deg) translateX(0); }
}
@keyframes bo-shadow {
  0%   { opacity: 0.6; }
  50%  { opacity: 0.8; }
  100% { opacity: 0.7; }
}

.scn-yoricks-marginalia {
  background: linear-gradient(180deg, #2a1810 0%, #1a0e08 60%, #0d0705 100%),
              radial-gradient(ellipse at 50% 0%, #3a2012 0%, transparent 80%);
}
.scn-yoricks-marginalia .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #1a0e08 100%); }
.scn-yoricks-marginalia .desk { position:absolute; bottom:8%; left:15%; right:15%; height:35%; background: linear-gradient(180deg, #4a2a18 0%, #2a160a 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 -6px 10px rgba(0,0,0,.5); animation: ym-desk 20s ease-in-out infinite; }
.scn-yoricks-marginalia .paper { position:absolute; bottom:25%; left:28%; width:22%; height:18%; background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%); border-radius:2px; transform:rotate(-3deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: ym-paper 5s ease-in-out infinite; }
.scn-yoricks-marginalia .candle { position:absolute; bottom:15%; left:60%; width:4%; height:20%; background: linear-gradient(180deg, #e8d4b0 0%, #c8a87a 100%); border-radius:3px; transform:rotate(2deg); }
.scn-yoricks-marginalia .flame { position:absolute; bottom:30%; left:61%; width:2%; height:6%; background: radial-gradient(circle, #ffdf80 0%, #e8a040 60%, transparent 100%); border-radius:50% 50% 40% 40% / 80% 80% 20% 20%; box-shadow: 0 0 20px 6px rgba(232,160,64,.6), 0 0 40px 12px rgba(232,160,64,.3); animation: ym-flame 1.5s ease-in-out infinite alternate; }
.scn-yoricks-marginalia .inkpot { position:absolute; bottom:20%; left:50%; width:5%; height:8%; background: linear-gradient(180deg, #2a1a0e 0%, #0d0705 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.6); }
.scn-yoricks-marginalia .quill { position:absolute; bottom:28%; left:52%; width:10%; height:2%; background: linear-gradient(90deg, #6a4a2a 0%, #b8a880 50%, #6a4a2a 100%); border-radius:40%; transform-origin: 0% 50%; transform: rotate(-30deg); animation: ym-quill 4s ease-in-out infinite; }
.scn-yoricks-marginalia .reader { position:absolute; bottom:18%; left:25%; width:12%; height:30%; background: linear-gradient(180deg, #2a1a0e 0%, #0d0705 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: inset 0 0 10px rgba(0,0,0,.8); animation: ym-reader 7s ease-in-out infinite; }
.scn-yoricks-marginalia .scribble { position:absolute; bottom:27%; left:30%; width:18%; height:14%; background: repeating-linear-gradient(45deg, #4a3020 0px, #4a3020 3px, #b8a880 3px, #b8a880 6px); border-radius:2px; opacity:.5; animation: ym-scribble 2s ease-in-out infinite; }
@keyframes ym-desk { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes ym-paper { 0%,100% { transform:rotate(-3deg) translateX(0); } 25% { transform:rotate(-2deg) translateX(4px); } 50% { transform:rotate(-3.5deg) translateX(-2px); } 75% { transform:rotate(-2.5deg) translateX(3px); } }
@keyframes ym-flame { 0% { transform:scaleY(1) translateY(0); opacity:.8; } 50% { transform:scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform:scaleY(.9) translateY(1px); opacity:.7; } }
@keyframes ym-quill { 0%,100% { transform:rotate(-30deg) scaleX(1); } 50% { transform:rotate(-20deg) scaleX(1.1); } }
@keyframes ym-reader { 0%,100% { transform:rotate(0deg) translateY(0); } 25% { transform:rotate(2deg) translateY(-2px); } 50% { transform:rotate(0deg) translateY(-4px); } 75% { transform:rotate(-2deg) translateY(-2px); } }
@keyframes ym-scribble { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.2; } }

.scn-le-fever-sermon {
  background: linear-gradient(180deg, #1f0f08 0%, #120a05 50%, #080402 100%),
              radial-gradient(ellipse at 50% 30%, #2a1a0e 0%, transparent 70%);
}
.scn-le-fever-sermon .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0d0705 100%); }
.scn-le-fever-sermon .desk { position:absolute; bottom:10%; left:12%; right:12%; height:30%; background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 -5px 8px rgba(0,0,0,.6); animation: lfs-desk 15s ease-in-out infinite; }
.scn-le-fever-sermon .letter { position:absolute; bottom:25%; left:35%; width:25%; height:20%; background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%); border-radius:2px; transform:rotate(5deg); box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: lfs-letter 8s ease-in-out infinite; }
.scn-le-fever-sermon .yarn { position:absolute; bottom:30%; left:45%; width:15%; height:1%; background: #6a8a5a; border-radius:40%; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: lfs-yarn 6s ease-in-out infinite; }
.scn-le-fever-sermon .candle { position:absolute; bottom:15%; left:60%; width:4%; height:22%; background: linear-gradient(180deg, #e8d4b0 0%, #c8a87a 100%); border-radius:3px; transform:rotate(-2deg); }
.scn-le-fever-sermon .flame { position:absolute; bottom:30%; left:61%; width:2%; height:6%; background: radial-gradient(circle, #ffdf80 0%, #e8a040 60%, transparent 100%); border-radius:50% 50% 40% 40% / 80% 80% 20% 20%; box-shadow: 0 0 20px 6px rgba(232,160,64,.6), 0 0 40px 12px rgba(232,160,64,.3); animation: lfs-flame 1.8s ease-in-out infinite alternate; }
.scn-le-fever-sermon .portrait { position:absolute; bottom:28%; left:20%; width:10%; height:18%; background: linear-gradient(180deg, #2a1a0e 0%, #0d0705 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 0 8px rgba(0,0,0,.7); animation: lfs-portrait 12s ease-in-out infinite; }
.scn-le-fever-sermon .shadow { position:absolute; bottom:20%; left:30%; width:30%; height:5%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 100%); animation: lfs-shadow 10s ease-in-out infinite; }
@keyframes lfs-desk { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes lfs-letter { 0% { transform:rotate(5deg) translateY(0); } 25% { transform:rotate(6deg) translateY(-3px); } 50% { transform:rotate(4deg) translateY(2px); } 75% { transform:rotate(5.5deg) translateY(-1px); } }
@keyframes lfs-yarn { 0% { transform:rotate(10deg) scaleX(1); } 50% { transform:rotate(15deg) scaleX(1.05); } 100% { transform:rotate(8deg) scaleX(1); } }
@keyframes lfs-flame { 0% { transform:scaleY(1) translateY(0); opacity:.8; } 50% { transform:scaleY(1.3) translateY(-3px); opacity:1; } 100% { transform:scaleY(.8) translateY(2px); opacity:.6; } }
@keyframes lfs-portrait { 0% { transform:rotate(0deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-2deg); } }
@keyframes lfs-shadow { 0%,100% { opacity:.5; } 50% { opacity:.3; } }

.scn-sword-bequeathed {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 50%, #0d0705 100%),
              radial-gradient(ellipse at 40% 30%, #3a2012 0%, transparent 70%);
}
.scn-sword-bequeathed .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0d0705 100%); }
.scn-sword-bequeathed .desk { position:absolute; bottom:10%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 -6px 10px rgba(0,0,0,.6); animation: swb-desk 18s ease-in-out infinite; }
.scn-sword-bequeathed .manuscript { position:absolute; bottom:28%; left:20%; width:30%; height:22%; background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%); border-radius:2px; transform:rotate(-2deg); box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: swb-manuscript 7s ease-in-out infinite; }
.scn-sword-bequeathed .strike-line { position:absolute; bottom:36%; left:22%; width:26%; height:.5%; background: #6a4a2a; border-radius:40%; transform:rotate(-15deg); animation: swb-strike 4s ease-in-out infinite; }
.scn-sword-bequeathed .quill { position:absolute; bottom:32%; left:45%; width:12%; height:2%; background: linear-gradient(90deg, #6a4a2a 0%, #d4c8a0 50%, #6a4a2a 100%); border-radius:40%; transform-origin: 0% 50%; transform: rotate(-40deg); animation: swb-quill 3.5s ease-in-out infinite; }
.scn-sword-bequeathed .inkwell { position:absolute; bottom:22%; left:55%; width:5%; height:8%; background: linear-gradient(180deg, #2a1a0e 0%, #0d0705 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.6); }
.scn-sword-bequeathed .hand { position:absolute; bottom:30%; left:42%; width:8%; height:14%; background: linear-gradient(180deg, #2a1a0e 0%, #0d0705 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: swb-hand 3s ease-in-out infinite; }
.scn-sword-bequeathed .candle { position:absolute; bottom:15%; left:70%; width:4%; height:22%; background: linear-gradient(180deg, #e8d4b0 0%, #c8a87a 100%); border-radius:3px; transform:rotate(3deg); }
.scn-sword-bequeathed .flame { position:absolute; bottom:30%; left:71%; width:2%; height:6%; background: radial-gradient(circle, #ffdf80 0%, #e8a040 60%, transparent 100%); border-radius:50% 50% 40% 40% / 80% 80% 20% 20%; box-shadow: 0 0 20px 6px rgba(232,160,64,.6), 0 0 40px 12px rgba(232,160,64,.3); animation: swb-flame 1.6s ease-in-out infinite alternate; }
@keyframes swb-desk { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes swb-manuscript { 0% { transform:rotate(-2deg) translateY(0); } 25% { transform:rotate(-1deg) translateY(-3px); } 50% { transform:rotate(-3deg) translateY(1px); } 75% { transform:rotate(-1.5deg) translateY(-2px); } }
@keyframes swb-strike { 0%,100% { transform:rotate(-15deg) scaleX(1); opacity:.8; } 50% { transform:rotate(-10deg) scaleX(1.2); opacity:1; } }
@keyframes swb-quill { 0%,100% { transform:rotate(-40deg) scaleX(1); } 50% { transform:rotate(-30deg) scaleX(1.1); } }
@keyframes swb-hand { 0%,100% { transform:rotate(0deg); } 25% { transform:rotate(-5deg); } 50% { transform:rotate(3deg); } 75% { transform:rotate(-2deg); } }
@keyframes swb-flame { 0% { transform:scaleY(1) translateY(0); opacity:.8; } 50% { transform:scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform:scaleY(.9) translateY(1px); opacity:.7; } }

.scn-le-fevers-departure {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 50%, #0d0705 100%),
              radial-gradient(ellipse at 30% 20%, #3a2012 0%, transparent 70%);
}
.scn-le-fevers-departure .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0d0705 100%); }
.scn-le-fevers-departure .desk { position:absolute; bottom:8%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 -5px 8px rgba(0,0,0,.6); animation: lfd-desk 20s ease-in-out infinite; }
.scn-le-fevers-departure .compass { position:absolute; bottom:22%; left:35%; width:12%; height:12%; background: linear-gradient(135deg, #b8a880 0%, #8a7a5a 100%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: lfd-compass 10s ease-in-out infinite; }
.scn-le-fevers-departure .diagram { position:absolute; bottom:26%; left:50%; width:20%; height:18%; background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%); border-radius:2px; transform:rotate(4deg); box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: lfd-diagram 9s ease-in-out infinite; }
.scn-le-fevers-departure .figure { position:absolute; bottom:18%; left:22%; width:10%; height:25%; background: linear-gradient(180deg, #2a1a0e 0%, #0d0705 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: inset 0 0 10px rgba(0,0,0,.8); animation: lfd-figure 6s ease-in-out infinite; }
.scn-le-fevers-departure .candle { position:absolute; bottom:12%; left:70%; width:4%; height:22%; background: linear-gradient(180deg, #e8d4b0 0%, #c8a87a 100%); border-radius:3px; transform:rotate(-3deg); }
.scn-le-fevers-departure .flame { position:absolute; bottom:27%; left:71%; width:2%; height:6%; background: radial-gradient(circle, #ffdf80 0%, #e8a040 60%, transparent 100%); border-radius:50% 50% 40% 40% / 80% 80% 20% 20%; box-shadow: 0 0 20px 6px rgba(232,160,64,.6), 0 0 40px 12px rgba(232,160,64,.3); animation: lfd-flame 1.4s ease-in-out infinite alternate; }
.scn-le-fevers-departure .book { position:absolute; bottom:20%; left:55%; width:8%; height:12%; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius:2px; transform:rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.6); animation: lfd-book 15s ease-in-out infinite; }
@keyframes lfd-desk { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes lfd-compass { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(180deg) scale(.95); } 100% { transform:rotate(360deg) scale(1); } }
@keyframes lfd-diagram { 0% { transform:rotate(4deg) translateY(0); } 25% { transform:rotate(5deg) translateY(-3px); } 50% { transform:rotate(3deg) translateY(2px); } 75% { transform:rotate(4.5deg) translateY(-1px); } }
@keyframes lfd-figure { 0%,100% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-2px) rotate(2deg); } 50% { transform:translateY(-4px) rotate(0deg); } 75% { transform:translateY(-2px) rotate(-2deg); } }
@keyframes lfd-flame { 0% { transform:scaleY(1) translateY(0); opacity:.8; } 50% { transform:scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform:scaleY(.9) translateY(1px); opacity:.7; } }
@keyframes lfd-book { 0%,100% { transform:rotate(-10deg) translateX(0); } 50% { transform:rotate(-8deg) translateX(3px); } }

.scn-riot-of-curiosity {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #ffd700 100%),
    radial-gradient(ellipse at 50% 100%, #fff8dc 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-riot-of-curiosity .sky {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, transparent 100%);
  animation: rc-sky 10s ease-in-out infinite alternate;
}
.scn-riot-of-curiosity .tent {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 60%;
  height: 50%;
  background: linear-gradient(180deg, #e6a817 0%, #b8860b 100%);
  clip-path: polygon(0% 100%, 20% 10%, 80% 10%, 100% 100%);
  border-radius: 0 0 30px 30px;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.3);
  animation: rc-tent 6s ease-in-out infinite alternate;
}
.scn-riot-of-curiosity .nose-banner {
  position: absolute;
  bottom: 45%;
  left: 50%;
  width: 120px;
  height: 40px;
  transform: translateX(-50%) rotate(-2deg);
  background: linear-gradient(90deg, #c8553d 0%, #e0824a 50%, #c8553d 100%);
  border-radius: 50% / 100% 100% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: rc-nose 4s ease-in-out infinite;
}
.scn-riot-of-curiosity .figure {
  position: absolute;
  bottom: 15%;
  width: 16px;
  height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-riot-of-curiosity .crowd-a { left: 30%; animation: rc-figureA 3s ease-in-out infinite; }
.scn-riot-of-curiosity .crowd-b { left: 45%; animation: rc-figureB 3.5s ease-in-out infinite 0.5s; }
.scn-riot-of-curiosity .crowd-c { left: 60%; animation: rc-figureA 4s ease-in-out infinite 1s; }
.scn-riot-of-curiosity .dish {
  position: absolute;
  bottom: 20%;
  width: 24px;
  height: 8px;
  background: radial-gradient(ellipse, #fff8dc 0%, #daa520 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-riot-of-curiosity .dish-1 { left: 35%; animation: rc-dish 5s ease-in-out infinite; }
.scn-riot-of-curiosity .dish-2 { left: 55%; animation: rc-dish 5.5s ease-in-out infinite 2s; }

@keyframes rc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rc-tent { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes rc-nose { 0% { transform: translateX(-50%) rotate(-2deg) scaleX(1); } 50% { transform: translateX(-50%) rotate(1deg) scaleX(1.1); } 100% { transform: translateX(-50%) rotate(-2deg) scaleX(1); } }
@keyframes rc-figureA { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-3px) translateY(-2px) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes rc-figureB { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(-4px) translateY(-3px) rotate(-5deg); } 66% { transform: translateX(4px) translateY(-1px) rotate(5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes rc-dish { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(15deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Lectures on Nose */
.scn-lectures-on-nose {
  background: 
    linear-gradient(180deg, #f0e68c 0%, #ffd700 30%, #fff8dc 60%, #bdb76b 100%),
    radial-gradient(ellipse at 50% 0%, #fffacd 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-lectures-on-nose .city-gate {
  position: absolute;
  bottom: 10%;
  left: 10%;
  width: 80%;
  height: 60%;
  background: linear-gradient(180deg, #8b7d6b 0%, #5c4a3a 100%);
  clip-path: polygon(0% 100%, 10% 20%, 20% 20%, 25% 0%, 75% 0%, 80% 20%, 90% 20%, 100% 100%);
  border-radius: 0 0 20px 20px;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: ln-gate 12s ease-in-out infinite alternate;
}
.scn-lectures-on-nose .lecture-plinth {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 60px;
  height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ln-plinth 5s ease-in-out infinite;
}
.scn-lectures-on-nose .figure {
  position: absolute;
  bottom: 22%;
  width: 18px;
  height: 34px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-lectures-on-nose .lecturer {
  left: 50%;
  transform: translateX(-50%);
  animation: ln-lecturer 3s ease-in-out infinite;
}
.scn-lectures-on-nose .listener-a { left: 30%; animation: ln-listener 4s ease-in-out infinite 0.3s; }
.scn-lectures-on-nose .listener-b { left: 65%; animation: ln-listener 4.5s ease-in-out infinite 0.8s; }
.scn-lectures-on-nose .trumpet {
  position: absolute;
  bottom: 32%;
  left: 50%;
  width: 30px;
  height: 10px;
  transform: translateX(-50%) rotate(-30deg);
  background: linear-gradient(90deg, #daa520 0%, #b8860b 100%);
  border-radius: 50% 10% 10% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ln-trumpet 2s ease-in-out infinite;
}
.scn-lectures-on-nose .flag {
  position: absolute;
  top: 15%;
  left: 70%;
  width: 40px;
  height: 30px;
  background: linear-gradient(135deg, #c8553d 0%, #e0824a 100%);
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  animation: ln-flag 6s ease-in-out infinite alternate;
}
.scn-lectures-on-nose .sun-rays {
  position: absolute;
  top: 0;
  left: 20%;
  width: 100px;
  height: 100px;
  background: radial-gradient(circle, rgba(255,215,0,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: ln-rays 8s ease-in-out infinite alternate;
}

@keyframes ln-gate { 0% { transform: scaleX(0.95); } 50% { transform: scaleX(1); } 100% { transform: scaleX(0.95); } }
@keyframes ln-plinth { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ln-lecturer { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(5deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(-5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ln-listener { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ln-trumpet { 0% { transform: translateX(-50%) rotate(-30deg) scale(1); } 50% { transform: translateX(-50%) rotate(-20deg) scale(1.1); } 100% { transform: translateX(-50%) rotate(-30deg) scale(1); } }
@keyframes ln-flag { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes ln-rays { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* Faculty Dispute */
.scn-faculty-dispute {
  background: 
    linear-gradient(180deg, #e0e0e0 0%, #c0c0c0 30%, #f5deb3 60%, #d2b48c 100%),
    radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-faculty-dispute .parade-ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #d2b48c 0%, #b8860b 100%);
  border-radius: 30% 30% 0 0;
  animation: fd-ground 10s ease-in-out infinite alternate;
}
.scn-faculty-dispute .stool {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 40px;
  height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b4513 0%, #5c3a2a 100%);
  border-radius: 50% 50% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: fd-stool 5s ease-in-out infinite;
}
.scn-faculty-dispute .figure {
  position: absolute;
  bottom: 30%;
  width: 18px;
  height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-faculty-dispute .speaker {
  left: 50%;
  transform: translateX(-50%);
  height: 40px;
  animation: fd-speaker 3s ease-in-out infinite;
}
.scn-faculty-dispute .heckler-a { left: 30%; animation: fd-heckler 4s ease-in-out infinite 0.2s; }
.scn-faculty-dispute .heckler-b { left: 65%; animation: fd-heckler 4.5s ease-in-out infinite 0.7s; }
.scn-faculty-dispute .well {
  position: absolute;
  bottom: 18%;
  left: 15%;
  width: 50px;
  height: 60px;
  background: radial-gradient(ellipse at 50% 0%, #2a1a0a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: fd-well 8s ease-in-out infinite alternate;
}
.scn-faculty-dispute .bucket {
  position: absolute;
  bottom: 45%;
  left: 18%;
  width: 20px;
  height: 18px;
  background: linear-gradient(180deg, #8b7d6b 0%, #5c4a3a 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: fd-bucket 4s ease-in-out infinite;
}
.scn-faculty-dispute .dust-cloud {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 80px;
  height: 20px;
  background: rgba(210,180,140,0.6);
  border-radius: 50%;
  filter: blur(8px);
  animation: fd-dust 7s linear infinite;
}

@keyframes fd-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes fd-stool { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes fd-speaker { 0% { transform: translateX(-50%) rotate(0deg); } 20% { transform: translateX(-50%) rotate(-8deg); } 40% { transform: translateX(-50%) rotate(5deg); } 60% { transform: translateX(-50%) rotate(-3deg); } 80% { transform: translateX(-50%) rotate(4deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes fd-heckler { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-2px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(-5px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes fd-well { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fd-bucket { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fd-dust { 0% { transform: translateX(-20px) scale(1); } 50% { transform: translateX(20px) scale(1.2); } 100% { transform: translateX(-20px) scale(1); } }

/* Medical Theories */
.scn-medical-theories {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #2c2418 30%, #3a2a1a 60%, #1a1008 100%),
    radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-medical-theories .interior-wall {
  position: absolute;
  inset: 0 10% 0 10%;
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  border-radius: 10px;
  animation: mt-wall 15s ease-in-out infinite alternate;
}
.scn-medical-theories .lectern {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 80px;
  height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5c3a2a 0%, #3a2010 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: mt-lectern 6s ease-in-out infinite;
}
.scn-medical-theories .figure {
  position: absolute;
  bottom: 25%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-medical-theories .doctor {
  left: 40%;
  animation: mt-doctor 4s ease-in-out infinite;
}
.scn-medical-theories .patient {
  left: 60%;
  height: 36px;
  animation: mt-patient 5s ease-in-out infinite 0.5s;
}
.scn-medical-theories .diagram-nose {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 100px;
  height: 50px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: mt-nose 3s ease-in-out infinite;
}
.scn-medical-theories .candle {
  position: absolute;
  bottom: 30%;
  left: 25%;
  width: 8px;
  height: 30px;
  background: linear-gradient(180deg, #f5deb3 0%, #daa520 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 20px 5px rgba(218,165,32,0.4);
  animation: mt-candle 4s ease-in-out infinite alternate;
}
.scn-medical-theories .book {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 40px;
  height: 24px;
  background: linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: mt-book 8s ease-in-out infinite;
}
.scn-medical-theories .inkwell {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 12px;
  height: 14px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: mt-inkwell 7s ease-in-out infinite alternate;
}
.scn-medical-theories .paper {
  position: absolute;
  bottom: 16%;
  left: 30%;
  width: 60px;
  height: 30px;
  background: linear-gradient(135deg, #f5deb3 0%, #e0c9a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: mt-paper 6s ease-in-out infinite;
}

@keyframes mt-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mt-lectern { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-5px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes mt-doctor { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mt-patient { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes mt-nose { 0% { transform: translateX(-50%) rotate(-5deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(-3deg) scaleY(1.05); } 100% { transform: translateX(-50%) rotate(-5deg) scaleY(1); } }
@keyframes mt-candle { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.8; transform: scaleY(1); } }
@keyframes mt-book { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mt-inkwell { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mt-paper { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* one block per scene id. Append to style.css. */
.scn-yorick-identified { background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 40%, #6a5a3a 70%, #3a2a1a 100%), radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 60%); }
.scn-yorick-identified .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a2a 50%, #3a2a1a 100%); animation: yo1-wall 12s ease-in-out infinite alternate; }
.scn-yorick-identified .desk { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 0 0 8px 8px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); animation: yo1-desk 8s ease-in-out infinite; }
.scn-yorick-identified .book { position:absolute; bottom:25%; left:35%; width:80px; height:50px; background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:4px; box-shadow: 2px 2px 8px rgba(0,0,0,.5); animation: yo1-book 6s ease-in-out infinite; }
.scn-yorick-identified .sermon { position:absolute; bottom:35%; left:45%; width:40px; height:30px; background: linear-gradient(180deg, #c8b888 0%, #a89068 100%); border-radius:2px; transform-origin: bottom left; animation: yo1-sermon 4s ease-in-out infinite; }
.scn-yorick-identified .figure { position:absolute; bottom:22%; left:20%; width:30px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yo1-figure 5s ease-in-out infinite; }
.scn-yorick-identified .candle { position:absolute; bottom:30%; left:60%; width:8px; height:30px; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius:2px; box-shadow: -2px 0 6px rgba(200,160,80,.4); animation: yo1-candle 3s ease-in-out infinite; }
.scn-yorick-identified .glow { position:absolute; bottom:32%; left:60%; width:60px; height:60px; background: radial-gradient(circle, rgba(240,200,100,.5) 0%, transparent 70%); transform: translate(-50%, -50%); animation: yo1-glow 3s ease-in-out infinite alternate; }
@keyframes yo1-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes yo1-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes yo1-book { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg) scale(1.02); } }
@keyframes yo1-sermon { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(0deg) translateY(-3px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes yo1-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes yo1-candle { 0% { transform: scaleY(1); opacity:.9; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(1); opacity:.9; } }
@keyframes yo1-glow { 0% { opacity:.5; transform: translate(-50%, -50%) scale(1); } 100% { opacity:.8; transform: translate(-50%, -50%) scale(1.2); } }

.scn-sermons-adventures { background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 40%, #5a4a3a 80%, #3a2a1a 100%), radial-gradient(ellipse at 30% 50%, #6a5a3a 0%, transparent 60%); }
.scn-sermons-adventures .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #5a4a2a 100%); animation: sa2-bg 15s ease-in-out infinite alternate; }
.scn-sermons-adventures .window { position:absolute; top:12%; left:15%; width:100px; height:140px; background: #2a1a0a; border:4px solid #4a3a2a; border-radius:8px; overflow:hidden; animation: sa2-window 10s ease-in-out infinite; }
.scn-sermons-adventures .outside-horse { position:absolute; top:20%; left:20%; width:60px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: sa2-horse 2s ease-in-out infinite; }
.scn-sermons-adventures .sermon-torn { position:absolute; top:60%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #d8c8a0 0%, #b8a878 100%); clip-path: polygon(0 0, 100% 0, 100% 60%, 80% 80%, 60% 60%, 40% 80%, 20% 60%, 0 80%); transform-origin: center; animation: sa2-sermon 3s ease-in-out infinite; }
.scn-sermons-adventures .mud-splash { position:absolute; bottom:30%; left:50%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 50%, #5a3a1a 0%, #3a2a0a 70%); border-radius:50%; animation: sa2-mud 2s ease-in-out infinite; }
.scn-sermons-adventures .beggar-hand { position:absolute; bottom:40%; left:65%; width:20px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform-origin: bottom; animation: sa2-hand 2s ease-in-out infinite alternate; }
.scn-sermons-adventures .sparkle { position:absolute; top:30%; left:55%; width:10px; height:10px; background: radial-gradient(circle, #ffe080 0%, #d0a040 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,224,128,.6); animation: sa2-sparkle 1.5s ease-in-out infinite; }
@keyframes sa2-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes sa2-window { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } }
@keyframes sa2-horse { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sa2-sermon { 0% { transform: rotate(0deg) translateY(0); } 20% { transform: rotate(15deg) translateY(-10px); } 40% { transform: rotate(-20deg) translateY(5px); } 60% { transform: rotate(10deg) translateY(-5px); } 80% { transform: rotate(-5deg) translateY(2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes sa2-mud { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(1); opacity:.6 } }
@keyframes sa2-hand { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(8px) rotate(10deg); } }
@keyframes sa2-sparkle { 0%,100% { opacity:.2; transform: scale(.5); } 50% { opacity:1; transform: scale(1.2); } }

.scn-yoricks-ghost { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a1a3a 80%, #0a0a1a 100%), radial-gradient(ellipse at 50% 70%, #3a1a2a 0%, transparent 70%); }
.scn-yoricks-ghost .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a1a 0%, #1a0a1a 100%); animation: yg3-bg 20s ease-in-out infinite alternate; }
.scn-yoricks-ghost .ghost { position:absolute; top:15%; left:50%; width:60px; height:100px; background: linear-gradient(180deg, rgba(180,160,200,.4) 0%, rgba(120,100,140,.2) 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(1px); transform: translateX(-50%); animation: yg3-ghost 8s ease-in-out infinite; }
.scn-yoricks-ghost .candle { position:absolute; bottom:20%; left:30%; width:6px; height:25px; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius:2px; box-shadow: -1px 0 4px rgba(200,160,80,.3); animation: yg3-candle 4s ease-in-out infinite; }
.scn-yoricks-ghost .glow { position:absolute; bottom:22%; left:30%; width:50px; height:50px; background: radial-gradient(circle, rgba(200,160,80,.15) 0%, transparent 60%); transform: translate(-50%, -50%); animation: yg3-glow 4s ease-in-out infinite alternate; }
.scn-yoricks-ghost .books { position:absolute; bottom:15%; right:20%; width:80px; height:60px; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius:4px; box-shadow: 2px 2px 6px rgba(0,0,0,.7); animation: yg3-books 12s ease-in-out infinite; }
.scn-yoricks-ghost .hands { position:absolute; bottom:25%; left:45%; width:30px; height:20px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform-origin: top; animation: yg3-hands 6s ease-in-out infinite; }
@keyframes yg3-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes yg3-ghost { 0% { transform: translateX(-50%) translateY(0) scale(1); opacity:.3; } 50% { transform: translateX(-50%) translateY(-15px) scale(1.1); opacity:.6; } 100% { transform: translateX(-50%) translateY(0) scale(1); opacity:.3; } }
@keyframes yg3-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.2); } 100% { transform: scaleY(1); } }
@keyframes yg3-glow { 0% { opacity:.2; transform: translate(-50%, -50%) scale(1); } 100% { opacity:.5; transform: translate(-50%, -50%) scale(1.3); } }
@keyframes yg3-books { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes yg3-hands { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(5deg) scaleY(1.1); } 50% { transform: rotate(-3deg) scaleY(1.05); } 75% { transform: rotate(2deg) scaleY(1.1); } 100% { transform: rotate(0deg) scaleY(1); } }

.scn-sermon-collection { background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 30%, #5a4a3a 60%, #3a2a1a 100%), radial-gradient(ellipse at 50% 20%, #6a5a4a 0%, transparent 60%); }
.scn-sermon-collection .bg-library { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); animation: sc4-bg 18s ease-in-out infinite alternate; }
.scn-sermon-collection .shelf { position:absolute; bottom:30%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius: 0 0 4px 4px; box-shadow: 0 -2px 8px rgba(0,0,0,.5); animation: sc4-shelf 15s ease-in-out infinite; }
.scn-sermon-collection .books { position:absolute; bottom:35%; left:15%; width:60%; height:20%; background: repeating-linear-gradient(90deg, #6a4a3a 0px, #6a4a3a 8px, #5a3a2a 8px, #5a3a2a 16px, #7a5a4a 16px, #7a5a4a 24px); border-radius:2px; animation: sc4-books 10s ease-in-out infinite; }
.scn-sermon-collection .sermon-stack { position:absolute; bottom:20%; left:40%; width:50px; height:40px; background: linear-gradient(180deg, #c8b888 0%, #a89068 100%); border-radius:2px; box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: sc4-sermon 6s ease-in-out infinite; }
.scn-sermon-collection .figure { position:absolute; bottom:22%; left:25%; width:35px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc4-figure 7s ease-in-out infinite; }
.scn-sermon-collection .candle { position:absolute; bottom:28%; left:65%; width:8px; height:30px; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius:2px; box-shadow: -2px 0 6px rgba(200,160,80,.4); animation: sc4-candle 3s ease-in-out infinite; }
.scn-sermon-collection .glow { position:absolute; bottom:30%; left:65%; width:60px; height:60px; background: radial-gradient(circle, rgba(240,200,100,.5) 0%, transparent 70%); transform: translate(-50%, -50%); animation: sc4-glow 3s ease-in-out infinite alternate; }
@keyframes sc4-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes sc4-shelf { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sc4-books { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes sc4-sermon { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-2deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes sc4-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sc4-candle { 0% { transform: scaleY(1); opacity:.9; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(1); opacity:.9; } }
@keyframes sc4-glow { 0% { opacity:.5; transform: translate(-50%, -50%) scale(1); } 100% { opacity:.8; transform: translate(-50%, -50%) scale(1.2); } }

.scn-consolation-impossible { background: radial-gradient(circle at 40% 70%, #3a2210 0%, #1a0e05 100%), linear-gradient(180deg, #2a1810, #0e0702); }
.scn-consolation-impossible .background-wall { position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0e 0%, #1a0e05 100%); }
.scn-consolation-impossible .window { position: absolute; top: 8%; left: 25%; width: 30%; height: 50%; background: radial-gradient(ellipse at 50% 60%, #5a3a1a 0%, transparent 80%); border: 4px solid #3a2210; border-radius: 4px; box-shadow: inset 0 0 40px rgba(90,58,26,0.3); }
.scn-consolation-impossible .curtain-left { position: absolute; top: 0; left: 0; width: 20%; height: 100%; background: linear-gradient(180deg, #4a2a12 0%, #2a1408 100%); border-radius: 0 40% 40% 0; box-shadow: 4px 0 12px rgba(0,0,0,0.6); animation: ci-curtain 10s ease-in-out infinite alternate; }
.scn-consolation-impossible .curtain-right { position: absolute; top: 0; right: 0; width: 20%; height: 100%; background: linear-gradient(180deg, #4a2a12 0%, #2a1408 100%); border-radius: 40% 0 0 40%; box-shadow: -4px 0 12px rgba(0,0,0,0.6); animation: ci-curtain 10s ease-in-out infinite alternate-reverse; }
.scn-consolation-impossible .handkerchief { position: absolute; bottom: 40%; left: 60%; width: 40px; height: 40px; background: radial-gradient(circle at 40% 50%, #e8d8c0 0%, #b8a088 100%); border-radius: 40% 60% 60% 40%; filter: blur(1px); box-shadow: 0 0 20px rgba(232,216,192,0.3); animation: ci-hank 6s ease-in-out infinite; transform-origin: center; }
.scn-consolation-impossible .sigh { position: absolute; top: 30%; left: 50%; width: 30px; height: 20px; background: radial-gradient(circle, rgba(200,180,160,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: ci-sigh 4s ease-in-out infinite; }
.scn-consolation-impossible .chair-silhouette { position: absolute; bottom: 5%; left: 30%; width: 20%; height: 40%; background: linear-gradient(180deg, #0a0502 0%, #140a04 100%); border-radius: 30% 20% 10% 10% / 50% 40% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8); animation: ci-chair 8s ease-in-out infinite; }
@keyframes ci-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(15px); } 100% { transform: translateX(0); } }
@keyframes ci-hank { 0% { transform: translate(0,0) rotate(-5deg); opacity:0.7; } 33% { transform: translate(-8px, -12px) rotate(2deg); opacity:1; } 66% { transform: translate(4px, -20px) rotate(-10deg); opacity:0.8; } 100% { transform: translate(0,0) rotate(-5deg); opacity:0.7; } }
@keyframes ci-sigh { 0% { transform: scale(0.8) translateY(0); opacity:0.5; } 50% { transform: scale(1.2) translateY(-15px); opacity:0.2; } 100% { transform: scale(0.8) translateY(0); opacity:0.5; } }
@keyframes ci-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }

.scn-great-grandmother-bargain { background: radial-gradient(circle at 30% 80%, #4a3018 0%, #1a1008 100%), linear-gradient(180deg, #2a1a0e, #0e0702); }
.scn-great-grandmother-bargain .background-wall { position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0e 0%, #1a0e05 100%); }
.scn-great-grandmother-bargain .chair { position: absolute; bottom: 5%; left: 20%; width: 25%; height: 45%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1408 100%); border-radius: 30% 20% 10% 10% / 50% 40% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.7); animation: gb-chair 5s ease-in-out infinite; }
.scn-great-grandmother-bargain .fringes { position: absolute; bottom: 5%; left: 20%; width: 25%; height: 10%; background: repeating-linear-gradient(90deg, #8a6028 0px, #8a6028 2px, transparent 2px, transparent 6px); border-radius: 0 0 20% 20%; animation: gb-fringe 3s ease-in-out infinite; }
.scn-great-grandmother-bargain .paper { position: absolute; bottom: 55%; left: 50%; width: 30px; height: 40px; background: linear-gradient(135deg, #d8c8a0 0%, #a89070 100%); border-radius: 10% 30% 20% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: gb-paper 4s ease-in-out infinite; transform-origin: top left; }
.scn-great-grandmother-bargain .figure-grandfather { position: absolute; bottom: 10%; left: 55%; width: 12%; height: 30%; background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 2px 0 6px rgba(0,0,0,0.5); animation: gb-figure 6s ease-in-out infinite; }
.scn-great-grandmother-bargain .figure-grandmother { position: absolute; bottom: 10%; left: 15%; width: 10%; height: 28%; background: linear-gradient(180deg, #2a1a0e 0%, #0e0702 100%); border-radius: 50% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 2px 0 6px rgba(0,0,0,0.5); animation: gb-figure 7s ease-in-out infinite; }
.scn-great-grandmother-bargain .candle { position: absolute; bottom: 70%; left: 40%; width: 6px; height: 20px; background: linear-gradient(180deg, #c09050 0%, #a07030 100%); border-radius: 2px; box-shadow: 0 0 15px 5px #c09050; }
.scn-great-grandmother-bargain .candle::after { content:''; position:absolute; top:-8px; left:50%; width:10px; height:10px; margin-left:-5px; background: radial-gradient(circle, #ffd080 0%, #c09050 100%); border-radius:50%; animation: gb-flame 2s ease-in-out infinite; }
@keyframes gb-chair { 0% { transform: rotate(0deg); } 33% { transform: rotate(1.5deg); } 66% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes gb-fringe { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } 100% { transform: scaleY(1); } }
@keyframes gb-paper { 0% { transform: rotate(-10deg) translate(0,0); } 50% { transform: rotate(15deg) translate(4px,-6px); } 100% { transform: rotate(-10deg) translate(0,0); } }
@keyframes gb-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes gb-flame { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.3) translateY(-2px); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }

.scn-equivocal-strictures { background: radial-gradient(circle at 50% 30%, #3a2818 0%, #1a1008 100%), linear-gradient(180deg, #2a1a0e, #0e0702); }
.scn-equivocal-strictures .background-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a0e, #1a0e05); }
.scn-equivocal-strictures .book { position: absolute; bottom: 30%; left: 20%; width: 30%; height: 20%; background: linear-gradient(135deg, #6a5030 0%, #4a3018 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: es-book 8s ease-in-out infinite; transform-origin: bottom left; }
.scn-equivocal-strictures .book::before { content:''; position:absolute; top:5%; left:5%; width:90%; height:90%; background: linear-gradient(135deg, #c8b090 0%, #a88870 100%); border-radius: 8% 8% 15% 15%; box-shadow: inset 0 0 8px rgba(0,0,0,0.3); }
.scn-equivocal-strictures .pointing-hand { position: absolute; bottom: 40%; left: 55%; width: 20px; height: 30px; background: linear-gradient(180deg, #4a3018 0%, #2a1408 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: es-hand 3s ease-in-out infinite; transform-origin: bottom center; }
.scn-equivocal-strictures .pointing-hand::after { content:''; position:absolute; top: -5px; left: 50%; width: 4px; height: 10px; background: #2a1408; border-radius: 50%; transform: translateX(-50%); }
.scn-equivocal-strictures .crevice { position: absolute; top: 10%; left: 60%; width: 8%; height: 20%; background: #0e0702; border-radius: 10px; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); animation: es-crevice 5s ease-in-out infinite; }
.scn-equivocal-strictures .candle { position: absolute; bottom: 60%; left: 80%; width: 6px; height: 20px; background: linear-gradient(180deg, #c09050 0%, #a07030 100%); border-radius: 2px; box-shadow: 0 0 15px 5px #c09050; }
.scn-equivocal-strictures .candle::after { content:''; position:absolute; top:-8px; left:50%; width:10px; height:10px; margin-left:-5px; background: radial-gradient(circle, #ffd080 0%, #c09050 100%); border-radius:50%; animation: es-flame 2s ease-in-out infinite; }
.scn-equivocal-strictures .shadow { position: absolute; bottom: 0; left: 0; width: 100%; height: 40%; background: linear-gradient(180deg, transparent 0%, rgba(14,7,2,0.6) 100%); animation: es-shadow 6s ease-in-out infinite; }
@keyframes es-book { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes es-hand { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes es-crevice { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(1); } }
@keyframes es-shadow { 0% { opacity:0.7; } 50% { opacity:0.5; } 100% { opacity:0.7; } }
@keyframes es-flame { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.3) translateY(-2px); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }

.scn-nose-defined { background: radial-gradient(circle at 50% 50%, #3a2818 0%, #1a1008 100%), linear-gradient(180deg, #2a1a0e, #0e0702); }
.scn-nose-defined .background-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a0e, #1a0e05); }
.scn-nose-defined .figure-grandfather { position: absolute; bottom: 10%; left: 25%; width: 15%; height: 35%; background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%); border-radius: 50% 40% 30% 30% / 50% 50% 30% 30%; animation: nd-figure 8s ease-in-out infinite; transform-origin: bottom center; }
.scn-nose-defined .figure-grandfather::after { content:''; position:absolute; top: -8%; left: 30%; width: 20%; height: 15%; background: #1a1008; border-radius: 50% 50% 0 0; transform: rotate(-10deg); } /* nose shape */
.scn-nose-defined .hand { position: absolute; bottom: 45%; left: 28%; width: 12px; height: 18px; background: linear-gradient(180deg, #2a1408 0%, #0e0502 100%); border-radius: 40% 40% 30% 30%; animation: nd-hand 3s ease-in-out infinite; transform-origin: bottom center; }
.scn-nose-defined .figure-grandmother { position: absolute; bottom: 10%; right: 25%; width: 12%; height: 32%; background: linear-gradient(180deg, #2a1a0e 0%, #0e0702 100%); border-radius: 50% 40% 30% 30% / 50% 50% 30% 30%; animation: nd-figure 9s ease-in-out infinite; transform-origin: bottom center; }
.scn-nose-defined .nose-accent { position: absolute; top: 45%; left: 28%; width: 8px; height: 12px; background: #1a1008; border-radius: 50% 50% 0 0; transform: rotate(-5deg); animation: nd-nose 2s ease-in-out infinite; }
.scn-nose-defined .candle { position: absolute; bottom: 65%; left: 50%; width: 6px; height: 20px; background: linear-gradient(180deg, #c09050 0%, #a07030 100%); border-radius: 2px; box-shadow: 0 0 15px 5px #c09050; }
.scn-nose-defined .candle::after { content:''; position:absolute; top:-8px; left:50%; width:10px; height:10px; margin-left:-5px; background: radial-gradient(circle, #ffd080 0%, #c09050 100%); border-radius:50%; animation: nd-flame 2s ease-in-out infinite; }
@keyframes nd-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nd-hand { 0% { transform: translate(-10px,0) rotate(-20deg); } 50% { transform: translate(5px, -5px) rotate(10deg); } 100% { transform: translate(-10px,0) rotate(-20deg); } }
@keyframes nd-nose { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(10deg) scale(1.2); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes nd-flame { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.3) translateY(-2px); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }

.scn-bulls-character {
  background: linear-gradient(180deg, #2a1f0a 0%, #4a3520 60%, #6b4a2a 100%), radial-gradient(ellipse at 50% 100%, #4a3520 60%, transparent 100%);
}
.scn-bulls-character .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, transparent 0%, #3a2510 20%, #4a3020 50%, #3a2510 80%, transparent 100%); opacity:0.4; }
.scn-bulls-character .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%); }
.scn-bulls-character .table { position:absolute; bottom:15%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #6b4a2a 0%, #4a3020 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-bulls-character .lantern { position:absolute; top:5%; left:55%; width:12px; height:20px; background: radial-gradient(circle, #ffd060 0%, #b08040 70%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,208,96,0.4); animation: bull-swing 3s ease-in-out infinite; transform-origin: top center; }
.scn-bulls-character .bull { position:absolute; bottom:20%; right:35%; width:40px; height:50px; background: linear-gradient(180deg, #1a1208 0%, #0d0803 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bull-nod 4s ease-in-out infinite; transform-origin: bottom center; }
.scn-bulls-character .shadow { position:absolute; bottom:13%; right:33%; width:50px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%); animation: bull-sway 4s ease-in-out infinite; }
.scn-bulls-character .motes-a, .scn-bulls-character .motes-b { position:absolute; width:4px; height:4px; background: rgba(255,200,150,0.3); border-radius:50%; }
.scn-bulls-character .motes-a { top:30%; left:20%; animation: bull-drift 8s linear infinite; }
.scn-bulls-character .motes-b { top:40%; left:70%; animation: bull-drift 10s linear infinite 2s; }

@keyframes bull-swing {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes bull-nod {
  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 bull-sway {
  0% { transform: translateX(-2px); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(-2px); }
}
@keyframes bull-drift {
  0% { transform: translateY(0) translateX(0) scale(1); opacity:0.3; }
  50% { transform: translateY(-40px) translateX(10px) scale(1.2); opacity:0.6; }
  100% { transform: translateY(-80px) translateX(20px) scale(1); opacity:0.3; }
}

.scn-end-of-volume-four {
  background: linear-gradient(180deg, #1a1210 0%, #2c2018 50%, #3a2a20 100%), radial-gradient(ellipse at 60% 70%, #5a4030 0%, transparent 60%);
}
.scn-end-of-volume-four .wall-bg { position:absolute; inset:0; background: linear-gradient(90deg, #0f0a08 0%, #1c1410 30%, #2a1e18 70%, #0f0a08 100%); opacity:0.6; }
.scn-end-of-volume-four .bookshelf { position:absolute; left:5%; top:10%; width:20%; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius:2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); }
.scn-end-of-volume-four .bookshelf::before { content:''; position:absolute; inset:10% 5% 10% 5%; background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 4px, #5a4a3a 4px, #5a4a3a 8px); }
.scn-end-of-volume-four .desk { position:absolute; bottom:15%; right:5%; width:55%; height:15%; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius:4px 4px 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,0.5); }
.scn-end-of-volume-four .lamp { position:absolute; bottom:30%; right:30%; width:14px; height:18px; background: radial-gradient(circle, #ffd060 0%, #b08040 60%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 40px 14px rgba(255,208,96,0.5); animation: eov-pulse 4s ease-in-out infinite; }
.scn-end-of-volume-four .book { position:absolute; bottom:18%; right:15%; width:50px; height:34px; background: linear-gradient(180deg, #6b4a2a 0%, #4a3020 100%); border-radius:2px; transform:rotate(-5deg); animation: eov-rock 8s ease-in-out infinite; }
.scn-end-of-volume-four .book::before { content:''; position:absolute; top:10%; left:10%; width:80%; height:80%; background: linear-gradient(135deg, #c8b090 0%, #a08060 100%); border-radius:1px; }
.scn-end-of-volume-four .quill { position:absolute; bottom:22%; right:8%; width:3px; height:40px; background: #d4c4a0; border-radius:1px; transform:rotate(15deg); animation: eov-quill-sway 6s ease-in-out infinite; transform-origin: bottom center; }
.scn-end-of-volume-four .quill::after { content:''; position:absolute; top:-8px; left:-6px; width:14px; height:10px; background: #a08060; border-radius:50% 50% 0 0; transform: rotate(-20deg); }
.scn-end-of-volume-four .mote-1, .scn-end-of-volume-four .mote-2 { position:absolute; width:3px; height:3px; background: rgba(255,220,180,0.4); border-radius:50%; }
.scn-end-of-volume-four .mote-1 { top:40%; left:30%; animation: eov-drift 12s linear infinite; }
.scn-end-of-volume-four .mote-2 { top:60%; left:70%; animation: eov-drift 14s linear infinite 5s; }

@keyframes eov-pulse {
  0% { box-shadow: 0 0 30px 10px rgba(255,208,96,0.4); opacity:0.9; }
  50% { box-shadow: 0 0 50px 20px rgba(255,208,96,0.7); opacity:1; }
  100% { box-shadow: 0 0 30px 10px rgba(255,208,96,0.4); opacity:0.9; }
}
@keyframes eov-rock {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes eov-quill-sway {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(10deg); }
}
@keyframes eov-drift {
  0% { transform: translate(0, 0) scale(1); opacity:0.2; }
  50% { transform: translate(10px, -30px) scale(1.5); opacity:0.7; }
  100% { transform: translate(20px, -60px) scale(1); opacity:0.2; }
}

.scn-le-fevers-ring {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%),
    radial-gradient(ellipse at 50% 70%, rgba(200,150,80,0.15) 0%, transparent 70%);
}
.scn-le-fevers-ring .room-wall { position:absolute; inset:0 0 30% 0; background: repeating-linear-gradient(0deg, #2a1a0a 0px, #2a1a0a 2px, #1a0a00 2px, #1a0a00 4px); opacity:0.6; }
.scn-le-fevers-ring .bed { position:absolute; bottom:10%; left:20%; right:20%; height:35%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); }
.scn-le-fevers-ring .lieutenant { position:absolute; bottom:20%; left:35%; width:40%; height:30%; background: radial-gradient(ellipse 70% 40% at 50% 30%, #5a4030 0%, #3a2a1a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: lfr1-breath 4s ease-in-out infinite; }
.scn-le-fevers-ring .handkerchief { position:absolute; bottom:45%; left:45%; width:12%; height:6%; background: radial-gradient(ellipse, #f0e8d0 0%, #d0c8b0 100%); border-radius: 50%; filter: blur(2px); animation: lfr1-drift 6s ease-in-out infinite alternate; }
.scn-le-fevers-ring .youth { position:absolute; bottom:18%; left:15%; width:20%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lfr1-stoop 5s ease-in-out infinite; }
.scn-le-fevers-ring .cushion { position:absolute; bottom:38%; left:40%; width:15%; height:10%; background: radial-gradient(ellipse, #6a5040 0%, #3a2a1a 100%); border-radius: 20%; box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: lfr1-settle 8s ease-in-out infinite alternate; }
.scn-le-fevers-ring .candle { position:absolute; bottom:35%; right:25%; width:3%; height:15%; background: linear-gradient(180deg, #d0a070 0%, #a07850 100%); border-radius: 10%; animation: lfr1-flicker 2s ease-in-out infinite; }
@keyframes lfr1-breath { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes lfr1-drift { 0% { transform: translateX(0) rotate(0deg); opacity:0.7; } 50% { transform: translateX(8px) rotate(10deg); opacity:1; } 100% { transform: translateX(-4px) rotate(-5deg); opacity:0.8; } }
@keyframes lfr1-stoop { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(6px) rotate(8deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lfr1-settle { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(0.95) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes lfr1-flicker { 0% { opacity:0.8; box-shadow: 0 0 8px 2px #d0a070; } 50% { opacity:1; box-shadow: 0 0 16px 4px #e0b080; } 100% { opacity:0.9; box-shadow: 0 0 12px 3px #c09060; } }

.scn-le-fever-remembers {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%),
    radial-gradient(ellipse at 50% 80%, rgba(180,130,70,0.12) 0%, transparent 60%);
}
.scn-le-fever-remembers .wall-bg { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(255,255,255,0.03) 40px, rgba(255,255,255,0.03) 42px); }
.scn-le-fever-remembers .table { position:absolute; bottom:10%; left:25%; right:25%; height:20%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-le-fever-remembers .captain { position:absolute; bottom:25%; left:30%; width:20%; height:35%; background: radial-gradient(ellipse 60% 50% at 30% 20%, #5a4030 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lfr2-nod 6s ease-in-out infinite; }
.scn-le-fever-remembers .servant { position:absolute; bottom:15%; right:30%; width:18%; height:45%; background: radial-gradient(ellipse 50% 40% at 50% 20%, #4a3a2a 0%, #2a1a10 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; animation: lfr2-shift 7s ease-in-out infinite; }
.scn-le-fever-remembers .candle { position:absolute; bottom:28%; left:48%; width:3%; height:12%; background: linear-gradient(180deg, #d0a070 0%, #a07850 100%); border-radius: 10%; animation: lfr2-flicker 2.5s ease-in-out infinite; }
.scn-le-fever-remembers .map { position:absolute; bottom:18%; left:35%; width:25%; height:8%; background: linear-gradient(135deg, #c8b090 0%, #a08870 100%); border-radius: 2%; transform-origin: left center; animation: lfr2-unroll 12s ease-in-out infinite; }
.scn-le-fever-remembers .mug { position:absolute; bottom:20%; left:55%; width:6%; height:10%; background: radial-gradient(ellipse, #6a5040 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; animation: lfr2-sway 5s ease-in-out infinite alternate; }
@keyframes lfr2-nod { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(2px) rotate(3deg); } 60% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lfr2-shift { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(4px) translateY(-3px); } 100% { transform: translateX(-2px) translateY(0); } }
@keyframes lfr2-flicker { 0% { opacity:0.8; box-shadow: 0 0 8px 2px #d0a070; } 50% { opacity:1; box-shadow: 0 0 16px 4px #e0b080; } 100% { opacity:0.9; box-shadow: 0 0 12px 3px #c09060; } }
@keyframes lfr2-unroll { 0% { transform: scaleX(0.3); opacity:0.5; } 50% { transform: scaleX(1); opacity:1; } 100% { transform: scaleX(0.3); opacity:0.5; } }
@keyframes lfr2-sway { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(5deg) translateY(2px); } }

.scn-le-fevers-fate {
  background:
    linear-gradient(180deg, #1a0a1a 0%, #0a000a 100%),
    radial-gradient(ellipse at 50% 50%, rgba(80,30,60,0.3) 0%, transparent 70%);
}
.scn-le-fevers-fate .dark-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, rgba(60,20,30,0.4) 0%, transparent 60%); }
.scn-le-fevers-fate .figure-silhouette { position:absolute; bottom:10%; left:20%; width:30%; height:50%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; filter: drop-shadow(0 0 20px rgba(180,100,60,0.2)); animation: lff3-rock 8s ease-in-out infinite; }
.scn-le-fevers-fate .hand-letter { position:absolute; bottom:30%; left:45%; width:20%; height:25%; background: radial-gradient(ellipse 60% 40% at 30% 50%, #5a3a2a 0%, #2a1a10 100%); border-radius: 40% 50% 30% 40% / 50% 60% 40% 50%; transform-origin: 70% 80%; animation: lff3-tremble 3s ease-in-out infinite; }
.scn-le-fevers-fate .hand-letter::after { content:''; position:absolute; top:10%; left:10%; width:80%; height:70%; background: linear-gradient(135deg, #c8b090 0%, #a08870 100%); border-radius: 5%; opacity:0.6; }
.scn-le-fevers-fate .candle-glow { position:absolute; bottom:20%; right:20%; width:8%; height:25%; background: radial-gradient(ellipse at 50% 80%, #d0a070 0%, #402010 100%); border-radius: 10%; box-shadow: 0 0 40px 20px rgba(180,100,60,0.3); animation: lff3-pulse 4s ease-in-out infinite; }
.scn-le-fevers-fate .night-window { position:absolute; top:5%; right:10%; width:15%; height:20%; background: linear-gradient(135deg, #1a2030 0%, #0a1020 100%); border-radius: 5%; border: 2px solid #2a1a0a; box-shadow: inset 0 0 20px rgba(100,140,200,0.1); animation: lff3-moon 15s ease-in-out infinite alternate; }
@keyframes lff3-rock { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(1px); } }
@keyframes lff3-tremble { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(4deg) scale(1.02); } 75% { transform: rotate(-3deg) scale(0.98); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes lff3-pulse { 0% { box-shadow: 0 0 30px 10px rgba(180,100,60,0.2); opacity:0.7; } 50% { box-shadow: 0 0 60px 30px rgba(200,120,80,0.4); opacity:1; } 100% { box-shadow: 0 0 30px 10px rgba(180,100,60,0.2); opacity:0.8; } }
@keyframes lff3-moon { 0% { transform: translateX(0) scale(1); box-shadow: inset 0 0 10px rgba(100,140,200,0.05); } 100% { transform: translateX(10px) scale(1.1); box-shadow: inset 0 0 30px rgba(150,180,220,0.2); } }

.scn-toby-resolves {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%),
    radial-gradient(ellipse at 50% 70%, rgba(180,130,70,0.2) 0%, transparent 70%);
}
.scn-toby-resolves .room { position:absolute; inset:0; background: repeating-conic-gradient(#2a1a0a 0% 25%, #1a0a00 0% 50%) 0 0 / 100px 100px; opacity:0.3; }
.scn-toby-resolves .table { position:absolute; bottom:15%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-toby-resolves .uncle-toby { position:absolute; bottom:25%; left:25%; width:22%; height:40%; background: radial-gradient(ellipse 60% 50% at 40% 30%, #5a4030 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tbr4-gesture 8s ease-in-out infinite; }
.scn-toby-resolves .trim { position:absolute; bottom:20%; right:25%; width:18%; height:48%; background: radial-gradient(ellipse 50% 45% at 50% 20%, #4a3a2a 0%, #2a1a10 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; animation: tbr4-bow 6s ease-in-out infinite; }
.scn-toby-resolves .purse { position:absolute; bottom:28%; left:52%; width:6%; height:8%; background: radial-gradient(ellipse, #6a5040 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 8px rgba(200,150,80,0.3); animation: tbr4-shine 4s ease-in-out infinite alternate; }
.scn-toby-resolves .candle { position:absolute; bottom:32%; left:48%; width:3%; height:14%; background: linear-gradient(180deg, #d0a070 0%, #a07850 100%); border-radius: 10%; animation: tbr4-flicker 2.8s ease-in-out infinite; }
.scn-toby-resolves .chair { position:absolute; bottom:20%; left:32%; width:12%; height:30%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 5% 5% 10% 10% / 20% 20% 40% 40%; transform: skewX(-8deg); animation: tbr4-creak 10s ease-in-out infinite; }
@keyframes tbr4-gesture { 0% { transform: translateY(0) rotate(0deg) scale(1); } 40% { transform: translateY(-3px) rotate(5deg) scale(1.03); } 70% { transform: translateY(-1px) rotate(-2deg) scale(0.98); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes tbr4-bow { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(5px) rotate(10deg); } 60% { transform: translateY(2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tbr4-shine { 0% { box-shadow: 0 0 8px 2px rgba(200,150,80,0.1); transform: scale(1); } 100% { box-shadow: 0 0 20px 6px rgba(220,170,100,0.4); transform: scale(1.1); } }
@keyframes tbr4-flicker { 0% { opacity:0.8; box-shadow: 0 0 8px 2px #d0a070; } 50% { opacity:1; box-shadow: 0 0 16px 4px #e0b080; } 100% { opacity:0.9; box-shadow: 0 0 12px 3px #c09060; } }
@keyframes tbr4-creak { 0% { transform: skewX(-8deg) translateY(0); } 50% { transform: skewX(-6deg) translateY(2px); } 100% { transform: skewX(-8deg) translateY(0); } }

.scn-reward-for-humanity {
  background:
    linear-gradient(180deg, #2a1e0e 0%, #4a2e18 40%, #8a5a30 70%, #c08040 100%),
    radial-gradient(ellipse at 20% 60%, #d4a854 0%, transparent 50%),
    radial-gradient(ellipse at 80% 40%, #a06830 0%, transparent 60%);
}
.scn-reward-for-humanity .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1e0e 0%, #4a3320 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.5);
  animation: rh-wall 12s ease-in-out infinite alternate;
}
.scn-reward-for-humanity .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #5a3a1e 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-reward-for-humanity .table {
  position: absolute; bottom:22%; left:35%; width:120px; height:12px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a623a 50%, #6a4a2a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6);
  transform: perspective(300px) rotateX(10deg);
  animation: rh-table 8s ease-in-out infinite alternate;
}
.scn-reward-for-humanity .crown {
  position: absolute; bottom:24%; left:38%; width:40px; height:30px;
  background:
    radial-gradient(ellipse at 50% 70%, #c8963e 0%, #8a6020 60%),
    linear-gradient(180deg, #d4a854 0%, #a06830 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 4px rgba(200,150,62,.4);
  clip-path: polygon(0% 100%, 20% 0%, 50% 30%, 80% 0%, 100% 100%);
  animation: rh-crown 5s ease-in-out infinite alternate;
}
.scn-reward-for-humanity .figure-trim {
  position: absolute; bottom:24%; left:20%; width:28px; height:50px;
  background: linear-gradient(180deg, #2a1e0e 0%, #1a1208 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rh-walk 4s ease-in-out infinite;
}
.scn-reward-for-humanity .figure-child {
  position: absolute; bottom:20%; right:25%; width:18px; height:30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rh-child 6s ease-in-out infinite alternate;
}
.scn-reward-for-humanity .lantern {
  position: absolute; bottom:30%; left:55%; width:12px; height:18px;
  background: radial-gradient(circle at 50% 40%, #ffd080 0%, #c08040 60%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,208,128,.6);
  animation: rh-lantern 3s ease-in-out infinite alternate;
}
.scn-reward-for-humanity .glow-warm {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 55% 30%, rgba(255,200,100,.15) 0%, transparent 60%);
  pointer-events: none;
  animation: rh-glow 7s ease-in-out infinite alternate;
}
@keyframes rh-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes rh-table { 0% { transform: perspective(300px) rotateX(10deg) translateY(0) } 50% { transform: perspective(300px) rotateX(10deg) translateY(-2px) } 100% { transform: perspective(300px) rotateX(10deg) translateY(0) } }
@keyframes rh-crown { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rh-walk { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes rh-child { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes rh-lantern { 0% { box-shadow: 0 0 20px 6px rgba(255,208,128,.4); opacity:.8 } 50% { box-shadow: 0 0 40px 14px rgba(255,208,128,.7); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(255,208,128,.5); opacity:.9 } }
@keyframes rh-glow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.4 } }

.scn-inquisition-torture {
  background:
    linear-gradient(180deg, #120a0a 0%, #2a1010 30%, #3a2010 60%, #1a0a0a 100%),
    radial-gradient(ellipse at 30% 60%, #2a1010 0%, transparent 70%);
}
.scn-inquisition-torture .cell-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a0a0a 0%, #2a1010 50%, #1a0a0a 100%);
  animation: iqt-wall 15s ease-in-out infinite alternate;
}
.scn-inquisition-torture .cell-floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1010 0%, #0a0505 100%);
  border-radius: 20% 20% 0 0;
}
.scn-inquisition-torture .bars {
  position: absolute; inset: 5% 10% 35% 10%;
  background:
    linear-gradient(90deg, transparent 10%, #332020 12%, transparent 14%, #332020 28%, transparent 30%, #332020 44%, transparent 46%, #332020 60%, transparent 62%, #332020 76%, transparent 78%, #332020 88%, transparent 90%);
  opacity: .6; animation: iqt-bars 4s ease-in-out infinite alternate;
}
.scn-inquisition-torture .figure-chained {
  position: absolute; bottom:25%; left:40%; width:30px; height:55px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: iqt-chained 5s ease-in-out infinite alternate;
}
.scn-inquisition-torture .book-sermon {
  position: absolute; bottom:15%; left:45%; width:40px; height:30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 2px 6px rgba(0,0,0,.7);
  transform: rotate(-10deg); animation: iqt-book 8s ease-in-out infinite;
}
.scn-inquisition-torture .candle {
  position: absolute; bottom:35%; left:30%; width:8px; height:35px;
  background: linear-gradient(180deg, #e8c8a0 0%, #c89870 60%, #5a3a20 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 8px rgba(200,150,60,.3);
  animation: iqt-candle 3s ease-in-out infinite alternate;
}
.scn-inquisition-torture .shadow-moan {
  position: absolute; bottom:10%; left:20%; width:40px; height:20px;
  background: rgba(10,5,5,.7); border-radius: 50%; filter: blur(8px);
  animation: iqt-moan 6s ease-in-out infinite alternate;
}
.scn-inquisition-torture .light-shaft {
  position: absolute; top:5%; left:35%; width:80px; height:70%;
  background: linear-gradient(180deg, rgba(200,150,60,.15) 0%, transparent 100%);
  transform: skewX(-10deg); filter: blur(4px);
  animation: iqt-shaft 10s ease-in-out infinite alternate;
}
@keyframes iqt-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes iqt-bars { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes iqt-chained { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes iqt-book { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes iqt-candle { 0% { box-shadow: 0 0 15px 4px rgba(200,150,60,.2); height:35px } 50% { box-shadow: 0 0 30px 10px rgba(200,150,60,.5); height:36px } 100% { box-shadow: 0 0 20px 6px rgba(200,150,60,.3); height:35px } }
@keyframes iqt-moan { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.2) } 100% { opacity:.4; transform: scaleX(1) } }
@keyframes iqt-shaft { 0% { opacity:.3; transform: skewX(-10deg) translateX(0) } 50% { opacity:.6; transform: skewX(-8deg) translateX(5px) } 100% { opacity:.4; transform: skewX(-10deg) translateX(0) } }

.scn-trims-grief {
  background:
    linear-gradient(180deg, #1a1010 0%, #2a1a1a 30%, #3a2020 60%, #1a1010 100%),
    radial-gradient(ellipse at 50% 50%, #4a2a2a 0%, transparent 70%);
}
.scn-trims-grief .room-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 100%);
  box-shadow: inset 0 -30px 50px rgba(0,0,0,.6);
  animation: tg-wall 14s ease-in-out infinite alternate;
}
.scn-trims-grief .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 15% 15% 0 0;
}
.scn-trims-grief .table {
  position: absolute; bottom:22%; left:25%; width:100px; height:10px;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.7);
  animation: tg-table 12s ease-in-out infinite alternate;
}
.scn-trims-grief .book-sermon {
  position: absolute; bottom:18%; left:28%; width:50px; height:36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.8);
  transform: rotate(12deg) scale(1); transform-origin: bottom left;
  animation: tg-book 6s ease-in-out infinite alternate;
}
.scn-trims-grief .figure-trim {
  position: absolute; bottom:20%; left:40%; width:30px; height:50px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tg-trim 4s ease-in-out infinite;
}
.scn-trims-grief .chair-tipped {
  position: absolute; bottom:16%; left:60%; width:40px; height:50px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 20% 20% 10% 10%; transform: rotate(30deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: tg-chair 8s ease-in-out infinite alternate;
}
.scn-trims-grief .candle {
  position: absolute; bottom:30%; left:20%; width:6px; height:25px;
  background: linear-gradient(180deg, #c8a070 0%, #a06840 60%, #3a2010 100%);
  border-radius: 3px; box-shadow: 0 0 15px 5px rgba(160,104,64,.3);
  animation: tg-candle 5s ease-in-out infinite alternate;
}
.scn-trims-grief .shadow-despair {
  position: absolute; bottom:5%; left:30%; width:80px; height:30px;
  background: rgba(10,5,5,.8); border-radius: 50%; filter: blur(10px);
  animation: tg-shadow 9s ease-in-out infinite alternate;
}
@keyframes tg-wall { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes tg-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tg-book { 0% { transform: rotate(12deg) scale(1) } 50% { transform: rotate(10deg) scale(0.98) } 100% { transform: rotate(13deg) scale(1) } }
@keyframes tg-trim { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(-4px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tg-chair { 0% { transform: rotate(30deg) scale(1) } 50% { transform: rotate(28deg) scale(1.02) } 100% { transform: rotate(31deg) scale(1) } }
@keyframes tg-candle { 0% { box-shadow: 0 0 10px 3px rgba(160,104,64,.2); height:25px } 50% { box-shadow: 0 0 25px 8px rgba(160,104,64,.5); height:26px } 100% { box-shadow: 0 0 15px 5px rgba(160,104,64,.3); height:25px } }
@keyframes tg-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.3) } 100% { opacity:.4; transform: scaleX(1) } }

.scn-trim-consoled {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2030 30%, #3a2a3a 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 60% 50%, #3a2a3a 0%, transparent 70%);
}
.scn-trim-consoled .room-tense {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2030 100%);
  box-shadow: inset 0 -40px 60px rgba(0,0,0,.6);
  animation: tc-wall 16s ease-in-out infinite alternate;
}
.scn-trim-consoled .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a2030 0%, #0a0a14 100%);
  border-radius: 20% 20% 0 0;
}
.scn-trim-consoled .table {
  position: absolute; bottom:22%; left:30%; width:110px; height:10px;
  background: linear-gradient(90deg, #3a2a3a 0%, #5a4a5a 50%, #3a2a3a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.7);
  animation: tc-table 10s ease-in-out infinite alternate;
}
.scn-trim-consoled .book-open {
  position: absolute; bottom:18%; left:34%; width:50px; height:32px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.8);
  transform: rotate(-5deg); transform-origin: bottom left;
  animation: tc-book 7s ease-in-out infinite alternate;
}
.scn-trim-consoled .figure-trim {
  position: absolute; bottom:20%; left:25%; width:28px; height:48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-trim 3s ease-in-out infinite;
}
.scn-trim-consoled .figure-father {
  position: absolute; bottom:22%; left:55%; width:32px; height:52px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-father 5s ease-in-out infinite alternate;
}
.scn-trim-consoled .candle {
  position: absolute; bottom:30%; left:50%; width:8px; height:30px;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 60%, #4a3020 100%);
  border-radius: 4px; box-shadow: 0 0 20px 6px rgba(160,128,96,.4);
  animation: tc-candle 2s ease-in-out infinite alternate;
}
.scn-trim-consoled .shadow-flicker {
  position: absolute; bottom:5%; left:20%; width:100px; height:40px;
  background: rgba(10,10,20,.7); border-radius: 50%; filter: blur(12px);
  animation: tc-shadow 5s ease-in-out infinite alternate;
}
@keyframes tc-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes tc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tc-book { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes tc-trim { 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 tc-father { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes tc-candle { 0% { box-shadow: 0 0 15px 4px rgba(160,128,96,.3); height:30px } 50% { box-shadow: 0 0 35px 12px rgba(160,128,96,.6); height:31px } 100% { box-shadow: 0 0 20px 6px rgba(160,128,96,.4); height:30px } }
@keyframes tc-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.2) } 100% { opacity:.4; transform: scaleX(1) } }

.scn-conditional-baptism {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2c1a12 50%, #0e0806 100%),
    radial-gradient(ellipse at 50% 60%, #3a2218 0%, transparent 70%);
}
.scn-conditional-baptism .glow {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 50% 70%, #d68a4a 0%, transparent 60%);
  animation: si-cb-glow 6s ease-in-out infinite alternate;
}
.scn-conditional-baptism .table {
  position: absolute; bottom: 8%; left: 15%; width: 70%; height: 16%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-conditional-baptism .candle {
  position: absolute; bottom: 24%; left: 50%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e8d5b0 0%, #b8956a 100%);
  border-radius: 2px 2px 0 0; transform: translateX(-50%);
  box-shadow: 0 0 20px 6px #d68a4a, 0 0 40px 12px rgba(214,138,74,0.3);
  animation: si-cb-candle 3s ease-in-out infinite;
}
.scn-conditional-baptism .candle::after {
  content: ''; position: absolute; top: -12px; left: -4px; width: 16px; height: 18px;
  background: radial-gradient(circle, #f0c87a 0%, #d68a4a 60%, transparent 80%);
  border-radius: 50%;
  animation: si-cb-flame 2s ease-in-out infinite alternate;
}
@keyframes si-cb-candle {
  0%,100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
}
@keyframes si-cb-flame {
  0% { transform: scale(1); opacity:0.9; }
  50% { transform: scale(1.15) translateY(-2px); opacity:1; }
  100% { transform: scale(0.95) translateY(1px); opacity:0.8; }
}
.scn-conditional-baptism .font {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #6a4a32 0%, #4a2a1a 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: inset 0 2px 4px rgba(255,255,255,0.1);
  animation: si-cb-font 8s ease-in-out infinite;
}
@keyframes si-cb-font {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
}
.scn-conditional-baptism .midwife {
  position: absolute; bottom: 18%; left: 20%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-cb-midwife 6s ease-in-out infinite;
}
@keyframes si-cb-midwife {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-conditional-baptism .baby {
  position: absolute; bottom: 22%; left: 28%; width: 14px; height: 18px;
  background: radial-gradient(ellipse, #c8a87a 0%, #8a6a4a 100%);
  border-radius: 50%; box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: si-cb-baby 4s ease-in-out infinite;
}
@keyframes si-cb-baby {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
.scn-conditional-baptism .book {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 22px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: si-cb-book 10s ease-in-out infinite;
}
@keyframes si-cb-book {
  0%,100% { transform: rotate(-5deg); }
  50% { transform: rotate(-3deg) translateY(-1px); }
}

.scn-sorbonne-decision {
  background:
    linear-gradient(180deg, #120d0a 0%, #2c1a12 40%, #0e0806 100%),
    radial-gradient(ellipse at 50% 60%, #3a2218 0%, transparent 70%);
}
.scn-sorbonne-decision .table {
  position: absolute; bottom: 6%; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%);
  border-radius: 6px; box-shadow: 0 -6px 18px rgba(0,0,0,0.7);
}
.scn-sorbonne-decision .candle-l {
  position: absolute; bottom: 24%; left: 20%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e8d5b0 0%, #b8956a 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px #d68a4a;
  animation: si-sd-candle 3s ease-in-out infinite;
}
.scn-sorbonne-decision .candle-l::after {
  content: ''; position: absolute; top: -10px; left: -3px; width: 12px; height: 14px;
  background: radial-gradient(circle, #f0c87a 0%, #d68a4a 60%, transparent 80%);
  border-radius: 50%;
  animation: si-sd-flame 2s ease-in-out infinite alternate;
}
.scn-sorbonne-decision .candle-r {
  position: absolute; bottom: 24%; right: 20%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e8d5b0 0%, #b8956a 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px #d68a4a;
  animation: si-sd-candle 3s ease-in-out infinite 1.5s;
}
.scn-sorbonne-decision .candle-r::after {
  content: ''; position: absolute; top: -10px; left: -3px; width: 12px; height: 14px;
  background: radial-gradient(circle, #f0c87a 0%, #d68a4a 60%, transparent 80%);
  border-radius: 50%;
  animation: si-sd-flame 2s ease-in-out infinite alternate 0.7s;
}
@keyframes si-sd-candle {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
}
@keyframes si-sd-flame {
  0% { transform: scale(1); opacity:0.9; }
  50% { transform: scale(1.2) translateY(-3px); opacity:1; }
  100% { transform: scale(1) translateY(1px); opacity:0.8; }
}
.scn-sorbonne-decision .document {
  position: absolute; bottom: 14%; left: 30%; width: 40%; height: 14%;
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a080 100%);
  border-radius: 2px; box-shadow: 2px 2px 8px rgba(0,0,0,0.4);
  transform: rotate(1deg);
  animation: si-sd-doc 12s ease-in-out infinite;
}
@keyframes si-sd-doc {
  0%,100% { transform: rotate(1deg); opacity:0.9; }
  50% { transform: rotate(2deg) translateY(-2px); opacity:1; }
}
.scn-sorbonne-decision .doctor-l {
  position: absolute; bottom: 16%; left: 8%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a1a0e 0%, #120d0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-sd-doc-l 8s ease-in-out infinite;
}
@keyframes si-sd-doc-l {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-sorbonne-decision .doctor-r {
  position: absolute; bottom: 16%; right: 8%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a1a0e 0%, #120d0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-sd-doc-r 8s ease-in-out infinite;
}
@keyframes si-sd-doc-r {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-sorbonne-decision .quill {
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8a080 0%, #8a6a4a 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: translateX(-50%) rotate(15deg);
  animation: si-sd-quill 5s ease-in-out infinite;
}
@keyframes si-sd-quill {
  0%,100% { transform: translateX(-50%) rotate(15deg); }
  50% { transform: translateX(-50%) rotate(20deg) translateY(-3px); }
}

.scn-tristrams-compliment {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2c1a12 40%, #0e0806 100%),
    radial-gradient(ellipse at 50% 80%, #3a2218 0%, transparent 70%);
}
.scn-tristrams-compliment .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%);
  border-radius: 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-tristrams-compliment .candle {
  position: absolute; bottom: 28%; left: 12%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e8d5b0 0%, #b8956a 100%);
  border-radius: 2px; box-shadow: 0 0 16px 6px #d68a4a;
  animation: si-tc-candle 3s ease-in-out infinite;
}
.scn-tristrams-compliment .candle::after {
  content: ''; position: absolute; top: -10px; left: -3px; width: 12px; height: 14px;
  background: radial-gradient(circle, #f0c87a 0%, #d68a4a 60%, transparent 80%);
  border-radius: 50%;
  animation: si-tc-flame 2s ease-in-out infinite alternate;
}
@keyframes si-tc-candle {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.04); }
}
@keyframes si-tc-flame {
  0% { transform: scale(1); opacity:0.9; }
  50% { transform: scale(1.25) translateY(-4px); opacity:1; }
  100% { transform: scale(0.9) translateY(1px); opacity:0.7; }
}
.scn-tristrams-compliment .figure {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: si-tc-figure 4s ease-in-out infinite;
}
@keyframes si-tc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(8px) rotate(8deg); }
  40% { transform: translateX(-5px) rotate(-4deg); }
  60% { transform: translateX(12px) rotate(6deg); }
  80% { transform: translateX(-8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-tristrams-compliment .hat {
  position: absolute; bottom: 60%; left: 33%; width: 28px; height: 30px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: rotate(-5deg);
  animation: si-tc-hat 4s ease-in-out infinite;
}
@keyframes si-tc-hat {
  0%,100% { transform: rotate(-5deg); }
  50% { transform: rotate(8deg) translateY(-4px); }
}
.scn-tristrams-compliment .letter {
  position: absolute; bottom: 18%; left: 60%; width: 24px; height: 16px;
  background: linear-gradient(180deg, #d8c8a0 0%, #c0a888 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: si-tc-letter 7s ease-in-out infinite;
}
@keyframes si-tc-letter {
  0%,100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-3px); }
}
.scn-tristrams-compliment .seal {
  position: absolute; bottom: 19%; left: 68%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50%; box-shadow: 0 0 4px rgba(200,85,61,0.4);
  animation: si-tc-seal 5s ease-in-out infinite;
}
@keyframes si-tc-seal {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.2); }
}
.scn-tristrams-compliment .chair {
  position: absolute; bottom: 6%; left: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
/* chair has no animation */

.scn-aquinas-refuted {
  background:
    linear-gradient(180deg, #120d0a 0%, #2c1a12 40%, #0e0806 100%),
    radial-gradient(ellipse at 50% 70%, #3a2218 0%, transparent 70%);
}
.scn-aquinas-refuted .table {
  position: absolute; bottom: 6%; left: 5%; width: 90%; height: 16%;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%);
  border-radius: 6px; box-shadow: 0 -6px 18px rgba(0,0,0,0.7);
}
.scn-aquinas-refuted .candle {
  position: absolute; bottom: 22%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e8d5b0 0%, #b8956a 100%);
  border-radius: 2px; box-shadow: 0 0 16px 6px #d68a4a;
  transform: translateX(-50%);
  animation: si-ar-candle 3s ease-in-out infinite;
}
.scn-aquinas-refuted .candle::after {
  content: ''; position: absolute; top: -10px; left: -3px; width: 12px; height: 14px;
  background: radial-gradient(circle, #f0c87a 0%, #d68a4a 60%, transparent 80%);
  border-radius: 50%;
  animation: si-ar-flame 2s ease-in-out infinite alternate;
}
@keyframes si-ar-candle {
  0%,100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.03); }
}
@keyframes si-ar-flame {
  0% { transform: scale(1); opacity:0.9; }
  50% { transform: scale(1.2) translateY(-3px); opacity:1; }
  100% { transform: scale(0.95) translateY(1px); opacity:0.8; }
}
.scn-aquinas-refuted .book {
  position: absolute; bottom: 14%; left: 40%; width: 40px; height: 28px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%);
  border-radius: 2px; box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
  transform: rotate(-3deg);
  animation: si-ar-book 8s ease-in-out infinite;
}
@keyframes si-ar-book {
  0%,100% { transform: rotate(-3deg); }
  50% { transform: rotate(2deg) translateY(-2px); }
}
.scn-aquinas-refuted .doctor {
  position: absolute; bottom: 14%; right: 12%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1a0e 0%, #120d0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-ar-doctor 7s ease-in-out infinite;
}
@keyframes si-ar-doctor {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(-3px) rotate(-3deg); }
  40% { transform: translateX(2px) rotate(2deg); }
  60% { transform: translateX(-4px) rotate(-1deg); }
  80% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-aquinas-refuted .midwife {
  position: absolute; bottom: 14%; left: 12%; width: 20px; height: 56px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: si-ar-midwife 6s ease-in-out infinite 1s;
}
@keyframes si-ar-midwife {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-aquinas-refuted .baby {
  position: absolute; bottom: 18%; left: 18%; width: 12px; height: 16px;
  background: radial-gradient(ellipse, #c8a87a 0%, #8a6a4a 100%);
  border-radius: 50%; box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: si-ar-baby 5s ease-in-out infinite;
}
@keyframes si-ar-baby {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
.scn-aquinas-refuted .shelf {
  position: absolute; top: 10%; left: 5%; width: 90%; height: 8px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: si-ar-shelf 15s ease-in-out infinite;
}
@keyframes si-ar-shelf {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
}

/* town-perfect – warm sunlit street scene */
.scn-town-perfect {
  background: linear-gradient(180deg, #f9e4b7 0%, #eac584 60%, #d4a55a 100%),
              radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 70%);
}
.scn-town-perfect .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8d4f0 0%, #d9eaff 100%); animation: tp-sky 20s ease-in-out infinite alternate; }
.scn-town-perfect .sun { position:absolute; top:10%; left:65%; width:60px; height:60px; background: radial-gradient(circle, #ffeaa3 0%, #ffcc66 60%, #ffaa33 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,200,60,0.4); animation: tp-sun 6s ease-in-out infinite alternate; }
.scn-town-perfect .building-left { position:absolute; bottom:25%; left:5%; width:35%; height:55%; background: linear-gradient(180deg, #c4956a 0%, #8b5e3c 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.2); animation: tp-houses 8s ease-in-out infinite; }
.scn-town-perfect .building-right { position:absolute; bottom:25%; right:5%; width:30%; height:48%; background: linear-gradient(180deg, #b8864b 0%, #7a4d2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.2); animation: tp-houses 8s ease-in-out infinite 1s; }
.scn-town-perfect .window { position:absolute; bottom:48%; left:48%; width:20px; height:24px; background: radial-gradient(circle, #f0d68a 0%, #c49a4a 70%); border-radius: 2px; box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(200,150,50,0.3); animation: tp-window 4s ease-in-out infinite alternate; }
.scn-town-perfect .door { position:absolute; bottom:25%; left:30%; width:28px; height:42px; background: linear-gradient(180deg, #4a2e1a 0%, #2a160a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 -6px 12px rgba(0,0,0,0.6); animation: tp-door 3s ease-in-out infinite; }
.scn-town-perfect .street { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #b08968 0%, #7a5a3a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: tp-street 12s ease-in-out infinite alternate; }
@keyframes tp-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes tp-sun { 0% { transform: scale(1) rotate(0deg); box-shadow:0 0 60px 20px rgba(255,200,60,0.3); } 50% { transform: scale(1.05) rotate(5deg); box-shadow:0 0 100px 40px rgba(255,220,80,0.5); } 100% { transform: scale(0.95) rotate(-3deg); box-shadow:0 0 80px 30px rgba(255,200,60,0.4); } }
@keyframes tp-houses { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tp-window { 0% { opacity:0.7; box-shadow:0 0 12px 4px #c49a4a, 0 0 30px 8px rgba(200,150,50,0.2); } 50% { opacity:1; box-shadow:0 0 30px 10px #f0c060, 0 0 60px 18px rgba(255,200,80,0.4); } 100% { opacity:0.8; box-shadow:0 0 20px 6px #c49a4a, 0 0 40px 12px rgba(200,150,50,0.3); } }
@keyframes tp-door { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes tp-street { 0% { background-position:0% 0%; } 50% { background-position:50% 0%; } 100% { background-position:0% 0%; } }

/* church-and-cannon – funny sunlit village with church and cannon */
.scn-church-and-cannon {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d8f0 50%, #cce0ff 100%),
              radial-gradient(ellipse at 50% 100%, #fff 0%, transparent 70%);
}
.scn-church-and-cannon .sky-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b6d8f0 0%, #d6ecff 100%); animation: cc-sky 15s ease-in-out infinite alternate; }
.scn-church-and-cannon .church-body { position:absolute; bottom:30%; left:35%; width:25%; height:45%; background: linear-gradient(180deg, #d4c4a0 0%, #b8a880 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,0.1); animation: cc-church 8s ease-in-out infinite; }
.scn-church-and-cannon .steeple { position:absolute; bottom:65%; left:42%; width:11%; height:25%; background: linear-gradient(180deg, #d4c4a0 0%, #c0b098 100%); clip-path: polygon(50% 100%, 0 0, 100% 0); animation: cc-steeple 4s ease-in-out infinite; }
.scn-church-and-cannon .cross { position:absolute; bottom:90%; left:47%; width:6%; height:8%; background: linear-gradient(180deg, #c8a050 0%, #a07830 100%); border-radius: 2px; box-shadow: 0 0 6px 2px rgba(200,160,80,0.6); animation: cc-cross 6s ease-in-out infinite; }
.scn-church-and-cannon .cannon { position:absolute; bottom:18%; left:55%; width:20%; height:8%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: left center; animation: cc-cannon 2s ease-in-out infinite; }
.scn-church-and-cannon .cannon-wheel { position:absolute; bottom:10%; left:62%; width:12%; height:12%; background: radial-gradient(circle, #6a5a3a 0%, #3a2a0a 80%); border-radius: 50%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5); animation: cc-wheel 3s ease-in-out infinite; }
.scn-church-and-cannon .smoke-puff { position:absolute; bottom:22%; left:68%; width:10%; height:10%; background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, rgba(200,200,200,0.1) 100%); border-radius: 50%; filter: blur(4px); animation: cc-smoke 4s ease-in-out infinite; }
@keyframes cc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cc-church { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes cc-steeple { 0% { transform: rotate(-1deg) scaleY(1); } 25% { transform: rotate(0deg) scaleY(1.02); } 50% { transform: rotate(1deg) scaleY(0.98); } 75% { transform: rotate(-0.5deg) scaleY(1.01); } 100% { transform: rotate(-1deg) scaleY(1); } }
@keyframes cc-cross { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); box-shadow:0 0 12px 4px #c8a050; } 100% { opacity:0.8; transform: scale(1); } }
@keyframes cc-cannon { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-8px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cc-wheel { 0% { transform: rotate(0deg); } 25% { transform: rotate(-10deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes cc-smoke { 0% { transform: translate(0,0) scale(0.5); opacity:0.8; } 50% { transform: translate(-10px,-20px) scale(1.2); opacity:0.3; } 100% { transform: translate(-20px,-40px) scale(0.6); opacity:0; } }

/* turkish-pipes – dim interior, smoking pipe & imagination */
.scn-turkish-pipes {
  background: linear-gradient(180deg, #3d2b1f 0%, #2a1a0e 50%, #1a0e00 100%),
              radial-gradient(ellipse at 30% 50%, #5c4033 0%, transparent 70%);
}
.scn-turkish-pipes .wall { position:absolute; inset:0; background: radial-gradient(circle at 30% 50%, #4a3828 0%, #1a0e00 100%); animation: tpi-wall 20s ease-in-out infinite alternate; }
.scn-turkish-pipes .table-edge { position:absolute; bottom:15%; left:5%; right:5%; height:5%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.6); }
.scn-turkish-pipes .pipe-bowl { position:absolute; bottom:20%; left:35%; width:18%; height:15%; background: radial-gradient(circle at 30% 30%, #8a5a2a 0%, #4a2a0a 80%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset -4px -4px 12px rgba(0,0,0,0.5), 0 0 16px 4px #c07030; animation: tpi-bowl 5s ease-in-out infinite; }
.scn-turkish-pipes .pipe-stem { position:absolute; bottom:28%; left:48%; width:30%; height:3%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20% 20% 20% 20% / 50% 50% 50% 50%; transform: rotate(-15deg); transform-origin: left center; animation: tpi-stem 4s ease-in-out infinite; }
.scn-turkish-pipes .smoke-1 { position:absolute; bottom:40%; left:38%; width:10%; height:10%; background: radial-gradient(circle, rgba(200,180,150,0.6) 0%, rgba(100,80,60,0) 100%); border-radius: 50%; filter: blur(6px); animation: tpi-smoke 6s ease-in-out infinite; }
.scn-turkish-pipes .smoke-2 { position:absolute; bottom:45%; left:42%; width:12%; height:12%; background: radial-gradient(circle, rgba(200,180,150,0.5) 0%, rgba(100,80,60,0) 100%); border-radius: 50%; filter: blur(8px); animation: tpi-smoke 7s ease-in-out infinite 2s; }
@keyframes tpi-wall { 0% { opacity:0.9; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes tpi-bowl { 0% { transform: scale(1) translateY(0); box-shadow: inset -4px -4px 12px rgba(0,0,0,0.5), 0 0 16px 4px #c07030; } 50% { transform: scale(1.02) translateY(-1px); box-shadow: inset -4px -4px 12px rgba(0,0,0,0.5), 0 0 24px 6px #e09040; } 100% { transform: scale(1) translateY(0); box-shadow: inset -4px -4px 12px rgba(0,0,0,0.5), 0 0 16px 4px #c07030; } }
@keyframes tpi-stem { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-12deg); } 100% { transform: rotate(-15deg); } }
@keyframes tpi-smoke { 0% { transform: translate(0,0) scale(0.6); opacity:0.7; } 50% { transform: translate(-10px,-30px) scale(1.3); opacity:0.4; } 100% { transform: translate(-20px,-60px) scale(2); opacity:0; } }

/* montero-cap – dim interior, a fur-trimmed scarlet cap on stand */
.scn-montero-cap {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 50%, #0a0500 100%),
              radial-gradient(ellipse at 50% 60%, #5a3a20 0%, transparent 70%);
}
.scn-montero-cap .bg-dark { position:absolute; inset:0; background: radial-gradient(circle at 50% 40%, #3d2b1a 0%, #0a0500 100%); animation: mc-bg 15s ease-in-out infinite alternate; }
.scn-montero-cap .stand { position:absolute; bottom:20%; left:40%; width:20%; height:25%; background: linear-gradient(180deg, #6a4a2a 0%, #3a1a00 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 -10px 30px rgba(0,0,0,0.7); animation: mc-stand 8s ease-in-out infinite; }
.scn-montero-cap .cap-body { position:absolute; bottom:40%; left:36%; width:28%; height:20%; background: radial-gradient(ellipse at 50% 40%, #c8553d 0%, #8b3a2a 70%, #5e1a1d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset -6px -6px 20px rgba(0,0,0,0.6), 0 0 20px 8px rgba(200,80,50,0.3); animation: mc-cap 6s ease-in-out infinite; }
.scn-montero-cap .cap-brim { position:absolute; bottom:45%; left:32%; width:36%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); transform-origin: center; animation: mc-brim 5s ease-in-out infinite; }
.scn-montero-cap .fur-trim { position:absolute; bottom:43%; left:34%; width:32%; height:4%; background: linear-gradient(180deg, #b8a888 0%, #8a7a6a 50%, #6a5a4a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; filter: blur(1px); animation: mc-fur 7s ease-in-out infinite; }
.scn-montero-cap .shadow { position:absolute; bottom:18%; left:35%; width:30%; height:4%; background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: mc-shadow 10s ease-in-out infinite alternate; }
@keyframes mc-bg { 0% { opacity:0.9; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes mc-stand { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes mc-cap { 0% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.02) rotate(1deg); } 50% { transform: scale(0.98) rotate(-1deg); } 75% { transform: scale(1.01) rotate(0.5deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes mc-brim { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.03); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes mc-fur { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes mc-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:0.6; } 50% { transform: scaleX(1.1) scaleY(0.9); opacity:0.8; } 100% { transform: scaleX(1) scaleY(1); opacity:0.6; } }

.scn-papist-inference {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #1f1510 50%, #140d0a 100%),
    radial-gradient(ellipse at 50% 30%, #4a2e1e 0%, transparent 60%);
}
.scn-papist-inference .room-bg    { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e14 0%, #1a120e 100%); }
.scn-papist-inference .lamp      { position:absolute; top:22%; left:30%; width:24px; height:36px; background: linear-gradient(180deg, #b8865a 0%, #7a5335 100%); border-radius:50% 50% 30% 30%; transform:rotate(-5deg); animation: pi-lamp-sway 6s ease-in-out infinite; }
.scn-papist-inference .lamp-glow { position:absolute; top:18%; left:28%; width:60px; height:60px; background: radial-gradient(circle, #d4a76a 0%, #c08a4a 40%, transparent 70%); filter: blur(8px); animation: pi-glow-pulse 3s ease-in-out infinite alternate; }
.scn-papist-inference .father    { position:absolute; bottom:26%; left:30%; width:28px; height:44px; background: linear-gradient(180deg, #3a2a1e 0%, #221610 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pi-father-point 4s ease-in-out infinite; }
.scn-papist-inference .mother    { position:absolute; bottom:25%; left:48%; width:24px; height:40px; background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pi-mother-lean 5s ease-in-out infinite; }
.scn-papist-inference .book      { position:absolute; bottom:18%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #8a7350 0%, #5a4a30 100%); border-radius:4px; transform:rotate(-2deg); box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: pi-book-bob 8s ease-in-out infinite; }
.scn-papist-inference .table     { position:absolute; bottom:14%; left:25%; right:25%; height:12px; background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%); border-radius:4px; box-shadow: 0 6px 10px rgba(0,0,0,0.5); }
.scn-papist-inference .spark     { position:absolute; top:28%; left:42%; width:6px; height:6px; background:#e8b86a; border-radius:50%; box-shadow: 0 0 12px 6px rgba(232,184,106,0.6); animation: pi-spark-pop 2s ease-in-out infinite; }

@keyframes pi-lamp-sway { 0% { transform:rotate(-5deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-5deg); } }
@keyframes pi-glow-pulse { 0% { opacity:0.8; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.85; transform:scale(0.98); } }
@keyframes pi-father-point { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(4px) rotate(0deg); } 50% { transform:translateX(8px) rotate(2deg); } 75% { transform:translateX(4px) rotate(0deg); } 100% { transform:translateX(0) rotate(-2deg); } }
@keyframes pi-mother-lean { 0% { transform:translateX(0) rotate(1deg); } 50% { transform:translateX(-3px) rotate(-2deg); } 100% { transform:translateX(0) rotate(1deg); } }
@keyframes pi-book-bob { 0% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(1deg) translateY(-2px); } 100% { transform:rotate(-2deg) translateY(0); } }
@keyframes pi-spark-pop { 0% { opacity:0; transform:scale(0.5); } 50% { opacity:1; transform:scale(1.5); } 100% { opacity:0; transform:scale(0.5); } }

.scn-subtle-hints-lost {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #1a100e 40%, #0d0806 100%),
    radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 50%);
}
.scn-subtle-hints-lost .bg-deep    { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e14 0%, #0d0806 100%); }
.scn-subtle-hints-lost .desk       { position:absolute; bottom:18%; left:20%; right:20%; height:20px; background: linear-gradient(180deg, #6a4e3a 0%, #3a281a 100%); border-radius:6px; box-shadow: 0 8px 14px rgba(0,0,0,0.4); }
.scn-subtle-hints-lost .ink-horn   { position:absolute; bottom:28%; left:35%; width:12px; height:20px; background: linear-gradient(180deg, #5a4030 0%, #2a1a10 100%); border-radius:40% 40% 50% 50%; transform:rotate(5deg); animation: sh-horn-tilt 7s ease-in-out infinite; }
.scn-subtle-hints-lost .spirit-a   { position:absolute; top:12%; left:40%; width:20px; height:30px; background: radial-gradient(ellipse, rgba(200,160,100,0.4) 0%, transparent 70%); filter: blur(6px); animation: sh-spirit-rise 10s ease-in-out infinite; }
.scn-subtle-hints-lost .spirit-b   { position:absolute; top:22%; left:50%; width:16px; height:26px; background: radial-gradient(ellipse, rgba(200,160,100,0.3) 0%, transparent 70%); filter: blur(5px); animation: sh-spirit-rise 14s ease-in-out infinite 2s; }
.scn-subtle-hints-lost .male-reader   { position:absolute; bottom:20%; left:28%; width:26px; height:42px; background: linear-gradient(180deg, #3a2a1e 0%, #1f1510 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-reader-nod 4s ease-in-out infinite; }
.scn-subtle-hints-lost .female-reader { position:absolute; bottom:21%; left:48%; width:24px; height:38px; background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-reader-nod 6s ease-in-out infinite 3s; }
.scn-subtle-hints-lost .book-open  { position:absolute; bottom:14%; left:40%; width:44px; height:32px; background: linear-gradient(180deg, #8a7350 0%, #5a4a30 100%); border-radius:2px; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); transform:rotate(-3deg); animation: sh-book-flutter 8s ease-in-out infinite; }

@keyframes sh-horn-tilt { 0% { transform:rotate(5deg); } 50% { transform:rotate(-2deg); } 100% { transform:rotate(5deg); } }
@keyframes sh-spirit-rise { 0% { transform:translateY(0) scale(1); opacity:0.6; } 50% { transform:translateY(-20px) scale(1.2); opacity:0.2; } 100% { transform:translateY(-40px) scale(0.8); opacity:0; } }
@keyframes sh-reader-nod { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes sh-book-flutter { 0% { transform:rotate(-3deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-1px); } 100% { transform:rotate(-3deg) translateY(0); } }

.scn-sorbonne-consultation {
  background: 
    linear-gradient(180deg, #1e1a1c 0%, #141012 50%, #0a080a 100%),
    radial-gradient(ellipse at 50% 40%, #4a3a34 0%, transparent 50%);
}
.scn-sorbonne-consultation .bg-dim       { position:absolute; inset:0; background: linear-gradient(180deg, #1e1a1c 0%, #0a080a 100%); }
.scn-sorbonne-consultation .table        { position:absolute; bottom:22%; left:20%; right:20%; height:10px; background: linear-gradient(180deg, #5a4a42 0%, #3a2a24 100%); border-radius:4px; box-shadow: 0 6px 10px rgba(0,0,0,0.5); }
.scn-sorbonne-consultation .surgeon      { position:absolute; bottom:24%; left:28%; width:28px; height:44px; background: linear-gradient(180deg, #3a2a24 0%, #1f1510 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-gesture 5s ease-in-out infinite; }
.scn-sorbonne-consultation .doctor-left  { position:absolute; bottom:24%; left:15%; width:26px; height:42px; background: linear-gradient(180deg, #2a1e1a 0%, #141010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-listening 7s ease-in-out infinite; }
.scn-sorbonne-consultation .doctor-right { position:absolute; bottom:23%; left:55%; width:26px; height:42px; background: linear-gradient(180deg, #2a1e1a 0%, #141010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-listening 7s ease-in-out infinite 3s; }
.scn-sorbonne-consultation .candle       { position:absolute; top:20%; left:40%; width:8px; height:24px; background: linear-gradient(180deg, #c8a06a 0%, #8a6a40 100%); border-radius:4px; transform:rotate(-2deg); }
.scn-sorbonne-consultation .candle-glow  { position:absolute; top:14%; left:36%; width:40px; height:40px; background: radial-gradient(circle, #e8c080 0%, #c8a060 40%, transparent 70%); filter: blur(10px); animation: sc-candle-flicker 3s ease-in-out infinite alternate; }
.scn-sorbonne-consultation .scroll       { position:absolute; bottom:28%; left:35%; width:30px; height:16px; background: linear-gradient(180deg, #c8b890 0%, #a08860 100%); border-radius:2px; transform:rotate(10deg); animation: sc-scroll-unroll 12s ease-in-out infinite; }

@keyframes sc-gesture { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(6px) rotate(5deg); } 60% { transform:translateX(12px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes sc-listening { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes sc-candle-flicker { 0% { opacity:0.8; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.85; transform:scale(0.98); } }
@keyframes sc-scroll-unroll { 0%,100% { transform:rotate(10deg) scaleX(1); } 50% { transform:rotate(5deg) scaleX(1.1); } }

.scn-theological-difficulty {
  background: 
    linear-gradient(135deg, #12121e 0%, #1a1a2e 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 50%);
}
.scn-theological-difficulty .bg-tense        { position:absolute; inset:0; background: linear-gradient(180deg, #12121e 0%, #0e0e1a 100%); }
.scn-theological-difficulty .pulpit          { position:absolute; bottom:20%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #4a4030 0%, #2a2018 100%); border-radius:6px; box-shadow: 0 8px 12px rgba(0,0,0,0.6); }
.scn-theological-difficulty .theologian      { position:absolute; bottom:24%; left:42%; width:28px; height:46px; background: linear-gradient(180deg, #2a2228 0%, #141016 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: td-theologian-pace 4s ease-in-out infinite; }
.scn-theological-difficulty .child-abstract  { position:absolute; bottom:34%; left:48%; width:14px; height:18px; background: radial-gradient(circle, #a87a4a 0%, #7a5a30 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 10px 4px rgba(168,122,74,0.4); animation: td-child-glow 3s ease-in-out infinite alternate; }
.scn-theological-difficulty .book            { position:absolute; bottom:18%; left:38%; width:36px; height:28px; background: linear-gradient(180deg, #6a5a48 0%, #3a2a1e 100%); border-radius:2px; transform:rotate(-4deg); animation: td-book-tremble 2s ease-in-out infinite; }
.scn-theological-difficulty .cross           { position:absolute; top:15%; left:50%; width:4px; height:30px; background:#5a4028; transform:translateX(-50%); }
.scn-theological-difficulty .light-beam      { position:absolute; top:0%; left:48%; width:20px; height:100%; background: linear-gradient(180deg, rgba(255,200,120,0.15) 0%, rgba(255,200,120,0.05) 40%, transparent 100%); transform:skewX(-2deg); animation: td-beam-pulse 5s ease-in-out infinite alternate; }
.scn-theological-difficulty .shadows         { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 60%); animation: td-shadow-shift 8s ease-in-out infinite; }

@keyframes td-theologian-pace { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(6px) rotate(3deg); } 50% { transform:translateX(12px) rotate(0deg); } 75% { transform:translateX(6px) rotate(-3deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes td-child-glow { 0% { opacity:0.6; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.7; transform:scale(0.95); } }
@keyframes td-book-tremble { 0% { transform:rotate(-4deg) translateX(0); } 25% { transform:rotate(-2deg) translateX(1px); } 50% { transform:rotate(-5deg) translateX(-1px); } 75% { transform:rotate(-3deg) translateX(1px); } 100% { transform:rotate(-4deg) translateX(0); } }
@keyframes td-beam-pulse { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes td-shadow-shift { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* family-affliction */
.scn-family-affliction {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2030 40%, #1e1820 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a3a 0%, transparent 70%);
}
.scn-family-affliction .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2030 0%, #3a2a3a 50%, #1a1a2e 100%);
  animation: fa-wall 12s ease-in-out infinite alternate;
}
.scn-family-affliction .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.5);
}
.scn-family-affliction .window {
  position: absolute; top: 12%; left: 15%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: inset 0 0 20px #2a2a4a;
  border: 2px solid #3a2a2a;
  animation: fa-window 8s ease-in-out infinite alternate;
}
.scn-family-affliction .table {
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 4%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-family-affliction .chair-left {
  position: absolute; bottom: 24%; left: 22%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: fa-chair 6s ease-in-out infinite;
}
.scn-family-affliction .chair-right {
  position: absolute; bottom: 24%; right: 22%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: fa-chair 6s ease-in-out infinite reverse;
}
.scn-family-affliction .figure-left {
  position: absolute; bottom: 24%; left: 28%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fa-figure 9s ease-in-out infinite;
}
.scn-family-affliction .figure-right {
  position: absolute; bottom: 24%; right: 28%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fa-figure 9s ease-in-out infinite reverse;
}
.scn-family-affliction .candle-glow {
  position: absolute; bottom: 32%; left: 50%; width: 8%; height: 12%;
  background: radial-gradient(ellipse, #ffd080 0%, #b08040 60%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 40px 20px #b08040, 0 0 80px 40px rgba(176,128,64,0.4);
  animation: fa-glow 3s ease-in-out infinite alternate;
}
@keyframes fa-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes fa-window {
  0% { transform: scaleY(1); box-shadow: inset 0 0 20px #2a2a4a; }
  50% { transform: scaleY(0.98); box-shadow: inset 0 0 30px #1a1a3a; }
  100% { transform: scaleY(1); box-shadow: inset 0 0 20px #2a2a4a; }
}
@keyframes fa-chair {
  0% { transform: rotate(0deg) scaleX(1); }
  25% { transform: rotate(2deg) scaleX(0.98); }
  50% { transform: rotate(0deg) scaleX(1); }
  75% { transform: rotate(-2deg) scaleX(0.98); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes fa-figure {
  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 fa-glow {
  0% { box-shadow: 0 0 30px 15px #b08040, 0 0 60px 30px rgba(176,128,64,0.3); opacity: 0.85; }
  50% { box-shadow: 0 0 50px 25px #d0a060, 0 0 100px 50px rgba(208,160,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 35px 18px #b08040, 0 0 70px 35px rgba(176,128,64,0.35); opacity: 0.9; }
}

/* namur-wound */
.scn-namur-wound {
  background: 
    linear-gradient(180deg, #1a1820 0%, #2a2028 40%, #18101a 100%),
    radial-gradient(ellipse at 40% 50%, #3a2830 0%, transparent 70%);
}
.scn-namur-wound .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1820 0%, #2a2028 50%, #18101a 100%);
}
.scn-namur-wound .bed {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 40%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: nw-bed 15s ease-in-out infinite alternate;
}
.scn-namur-wound .blanket {
  position: absolute; bottom: 15%; left: 18%; width: 64%; height: 20%;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: nw-blanket 12s ease-in-out infinite alternate;
}
.scn-namur-wound .figure-wounded {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.5);
  animation: nw-figure 8s ease-in-out infinite;
}
.scn-namur-wound .bandage {
  position: absolute; bottom: 30%; left: 45%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(15deg);
  animation: nw-bandage 4s ease-in-out infinite alternate;
}
.scn-namur-wound .stone {
  position: absolute; bottom: 32%; left: 48%; width: 6%; height: 5%;
  background: radial-gradient(circle, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: nw-stone 3s ease-in-out infinite;
}
.scn-namur-wound .lamp {
  position: absolute; top: 10%; right: 15%; width: 10%; height: 15%;
  background: radial-gradient(ellipse, #d0a060 0%, #b08040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 50px 25px #b08040, 0 0 100px 50px rgba(176,128,64,0.5);
  animation: nw-lamp 5s ease-in-out infinite alternate;
}
.scn-namur-wound .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #0a0a0a 100%);
}
@keyframes nw-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes nw-blanket {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes nw-figure {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(2px, -1px) rotate(2deg); }
  50% { transform: translate(0, 0) rotate(0deg); }
  75% { transform: translate(-2px, -1px) rotate(-2deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes nw-bandage {
  0% { transform: rotate(15deg) scaleX(1); }
  50% { transform: rotate(20deg) scaleX(0.95); }
  100% { transform: rotate(15deg) scaleX(1); }
}
@keyframes nw-stone {
  0% { transform: scale(1) rotate(0deg); }
  25% { transform: scale(1.05) rotate(10deg); }
  50% { transform: scale(1) rotate(0deg); }
  75% { transform: scale(0.95) rotate(-10deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes nw-lamp {
  0% { box-shadow: 0 0 40px 20px #b08040, 0 0 80px 40px rgba(176,128,64,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 60px 30px #d0a060, 0 0 120px 60px rgba(208,160,96,0.6); opacity: 1; }
  100% { box-shadow: 0 0 45px 22px #b08040, 0 0 90px 45px rgba(176,128,64,0.45); opacity: 0.85; }
}

/* philosophical-contrariety */
.scn-philosophical-contrariety {
  background: 
    linear-gradient(180deg, #2a2018 0%, #3a2a1a 40%, #1a1810 100%),
    radial-gradient(ellipse at 60% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-philosophical-contrariety .bg-study {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2018 0%, #3a2a1a 50%, #1a1810 100%);
}
.scn-philosophical-contrariety .bookshelf {
  position: absolute; top: 8%; left: 5%; width: 15%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-philosophical-contrariety .desk {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: pc-desk 10s ease-in-out infinite alternate;
}
.scn-philosophical-contrariety .figure-speaker {
  position: absolute; bottom: 25%; left: 25%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-speaker 6s ease-in-out infinite;
}
.scn-philosophical-contrariety .figure-listener {
  position: absolute; bottom: 25%; right: 25%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-listener 6s ease-in-out infinite reverse;
}
.scn-philosophical-contrariety .quill {
  position: absolute; bottom: 30%; left: 40%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(-20deg);
  animation: pc-quill 2s ease-in-out infinite alternate;
}
.scn-philosophical-contrariety .inkwell {
  position: absolute; bottom: 25%; left: 38%; width: 6%; height: 8%;
  background: radial-gradient(circle, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: pc-inkwell 4s ease-in-out infinite;
}
.scn-philosophical-contrariety .candle {
  position: absolute; bottom: 32%; left: 55%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #d0a060 0%, #b08040 60%, transparent 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 20px 10px #b08040, 0 0 40px 20px rgba(176,128,64,0.4);
  animation: pc-candle 3s ease-in-out infinite alternate;
}
.scn-philosophical-contrariety .speech-bubble {
  position: absolute; top: 10%; left: 30%; width: 30%; height: 20%;
  background: linear-gradient(135deg, rgba(255,255,240,0.3) 0%, rgba(240,230,200,0.1) 100%);
  border-radius: 50% 50% 50% 20%;
  border: 1px solid rgba(200,180,150,0.3);
  animation: pc-bubble 8s ease-in-out infinite alternate;
}
@keyframes pc-desk {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
  100% { transform: scaleY(1); }
}
@keyframes pc-speaker {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(8deg) translateY(-3px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes pc-listener {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-5deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes pc-quill {
  0% { transform: rotate(-20deg) scaleY(1); }
  50% { transform: rotate(-15deg) scaleY(1.02); }
  100% { transform: rotate(-20deg) scaleY(1); }
}
@keyframes pc-inkwell {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}
@keyframes pc-candle {
  0% { box-shadow: 0 0 15px 8px #b08040, 0 0 30px 15px rgba(176,128,64,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 25px 12px #d0a060, 0 0 50px 25px rgba(208,160,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 9px #b08040, 0 0 36px 18px rgba(176,128,64,0.35); opacity: 0.9; }
}
@keyframes pc-bubble {
  0% { transform: scale(1) rotate(0deg); opacity: 0.6; }
  50% { transform: scale(1.1) rotate(3deg); opacity: 0.8; }
  100% { transform: scale(1) rotate(0deg); opacity: 0.6; }
}

/* argumentum-fistulatorium */
.scn-argumentum-fistulatorium {
  background: 
    linear-gradient(180deg, #2a2010 0%, #3a2a1a 40%, #1a1810 100%),
    radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-argumentum-fistulatorium .bg-parlor {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2010 0%, #3a2a1a 50%, #1a1810 100%);
}
.scn-argumentum-fistulatorium .chair-walnut {
  position: absolute; bottom: 20%; left: 20%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: af-chair 8s ease-in-out infinite alternate;
}
.scn-argumentum-fistulatorium .figure-whistler {
  position: absolute; bottom: 20%; left: 22%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: af-whistler 4s ease-in-out infinite;
}
.scn-argumentum-fistulatorium .pipe {
  position: absolute; bottom: 30%; left: 28%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4a3a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(30deg);
  animation: af-pipe 2s ease-in-out infinite alternate;
}
.scn-argumentum-fistulatorium .wavy-lines {
  position: absolute; top: 20%; left: 25%; width: 20%; height: 10%;
  background: linear-gradient(90deg, transparent 0%, #d0c0a0 20%, transparent 40%, #d0c0a0 60%, transparent 80%);
  background-size: 200% 100%;
  border-radius: 50%;
  filter: blur(3px);
  opacity: 0.5;
  animation: af-waves 3s linear infinite;
}
.scn-argumentum-fistulatorium .figure-cover-ears {
  position: absolute; bottom: 20%; right: 20%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: af-cover 6s ease-in-out infinite reverse;
}
.scn-argumentum-fistulatorium .table-small {
  position: absolute; bottom: 18%; right: 15%; width: 18%; height: 4%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-argumentum-fistulatorium .lamp-desk {
  position: absolute; bottom: 22%; right: 17%; width: 6%; height: 12%;
  background: radial-gradient(ellipse, #d0a060 0%, #b08040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 15px #b08040, 0 0 60px 30px rgba(176,128,64,0.4);
  animation: af-lamp 5s ease-in-out infinite alternate;
}
@keyframes af-chair {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes af-whistler {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  25% { transform: translateY(-3px) rotate(5deg) scaleX(0.95); }
  50% { transform: translateY(0) rotate(0deg) scaleX(1); }
  75% { transform: translateY(-3px) rotate(-5deg) scaleX(0.95); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes af-pipe {
  0% { transform: rotate(30deg) scaleY(1); }
  50% { transform: rotate(35deg) scaleY(1.1); }
  100% { transform: rotate(30deg) scaleY(1); }
}
@keyframes af-waves {
  0% { background-position: 0% 0%; }
  100% { background-position: -200% 0%; }
}
@keyframes af-cover {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  25% { transform: translateY(-2px) rotate(-3deg) scaleX(1.02); }
  50% { transform: translateY(0) rotate(0deg) scaleX(1); }
  75% { transform: translateY(-2px) rotate(3deg) scaleX(0.98); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes af-lamp {
  0% { box-shadow: 0 0 20px 10px #b08040, 0 0 40px 20px rgba(176,128,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 20px #d0a060, 0 0 80px 40px rgba(208,160,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 12px #b08040, 0 0 50px 25px rgba(176,128,64,0.35); opacity: 0.85; }
}

.scn-volume-two-ends { 
  background: 
    linear-gradient(135deg, #2a1f1a 0%, #3d2c24 50%, #4a352b 100%), 
    radial-gradient(ellipse at 50% 100%, #6b4c3b 0%, transparent 70%);
}
.scn-volume-two-ends .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #3d2c24 0%, #2a1f1a 80%, #1a1210 100%);
  animation: v2e-wall 20s ease-in-out infinite alternate;
}
.scn-volume-two-ends .fireplace {
  position: absolute; bottom: 28%; left: 50%; width: 120px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4035 0%, #3a2820 100%);
  border-radius: 10px 10px 6px 6px;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-volume-two-ends .fire {
  position: absolute; bottom: 32%; left: 50%; width: 50px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8a040 0%, #c07020 40%, #a05010 70%, transparent 100%);
  border-radius: 50%;
  animation: v2e-fire 2s ease-in-out infinite alternate;
}
.scn-volume-two-ends .mantle {
  position: absolute; bottom: 42%; left: 50%; width: 130px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6b4c3b 0%, #4a352b 100%);
  border-radius: 2px;
}
.scn-volume-two-ends .figure {
  position: absolute; bottom: 30%; left: 38%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0908 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: v2e-figure 6s ease-in-out infinite;
}
.scn-volume-two-ends .candle {
  position: absolute; bottom: 44%; left: 44%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 2px;
}
.scn-volume-two-ends .book {
  position: absolute; bottom: 43%; left: 53%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #8b6b4b 0%, #5a4035 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: v2e-book 12s ease-in-out infinite;
}
@keyframes v2e-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes v2e-fire { 0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: .8; } 50% { transform: translateX(-50%) scale(1.05) rotate(2deg); opacity: 1; } 100% { transform: translateX(-50%) scale(.95) rotate(-2deg); opacity: .7; } }
@keyframes v2e-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(2px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes v2e-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }

.scn-volume-three-begins { 
  background: 
    linear-gradient(180deg, #1e1e2e 0%, #2a2a40 50%, #3a3a52 100%), 
    radial-gradient(ellipse at 50% 100%, #3a3a52 0%, transparent 70%);
}
.scn-volume-three-begins .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a40 0%, #1e1e2e 80%, #141420 100%);
  animation: v3b-wall 15s ease-in-out infinite alternate;
}
.scn-volume-three-begins .bookshelf {
  position: absolute; left: 5%; top: 10%; width: 20%; height: 80%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-volume-three-begins .desk {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-volume-three-begins .figure {
  position: absolute; bottom: 25%; 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: v3b-figure 8s ease-in-out infinite;
}
.scn-volume-three-begins .lamp {
  position: absolute; left: 35%; bottom: 40%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: v3b-lamp 5s ease-in-out infinite alternate;
}
.scn-volume-three-begins .book {
  position: absolute; left: 42%; bottom: 22%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #6b5b4b 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(2deg);
  animation: v3b-book 10s ease-in-out infinite;
}
.scn-volume-three-begins .motes {
  position: absolute; left: 20%; top: 30%; width: 60%; height: 40%;
  background: radial-gradient(circle, rgba(255,255,200,0.06) 0%, transparent 100%);
  filter: blur(8px);
  animation: v3b-motes 20s linear infinite;
}
@keyframes v3b-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes v3b-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes v3b-lamp { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes v3b-book { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes v3b-motes { 0% { transform: translateY(0) scale(1); opacity: .3; } 50% { transform: translateY(-20px) scale(1.1); opacity: .6; } 100% { transform: translateY(0) scale(1); opacity: .3; } }

.scn-chaise-resolution { 
  background: 
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 100%), 
    radial-gradient(ellipse at 50% 0%, #f0e68c 0%, transparent 60%);
}
.scn-chaise-resolution .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 80%, transparent 100%);
  animation: cr-sky 25s ease-in-out infinite alternate;
}
.scn-chaise-resolution .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b3e 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-chaise-resolution .carriage {
  position: absolute; bottom: 20%; left: 20%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #8b4513 0%, #5a2e0a 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: cr-carriage 4s ease-in-out infinite;
}
.scn-chaise-resolution .horse-a {
  position: absolute; bottom: 18%; left: 12%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #c09970 0%, #8b7355 100%);
  border-radius: 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: cr-horse 1s ease-in-out infinite alternate;
}
.scn-chaise-resolution .horse-b {
  position: absolute; bottom: 18%; left: 5%; width: 28px; height: 18px;
  background: linear-gradient(135deg, #c09970 0%, #8b7355 100%);
  border-radius: 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: cr-horse 1s ease-in-out infinite alternate-reverse;
}
.scn-chaise-resolution .postillion {
  position: absolute; bottom: 24%; left: 8%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0804 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cr-post 1.5s ease-in-out infinite;
}
.scn-chaise-resolution .arm {
  position: absolute; bottom: 34%; left: 24%; width: 20px; height: 6px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0908 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: cr-arm 2s ease-in-out infinite alternate;
}
.scn-chaise-resolution .dust {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse, rgba(200,180,140,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: cr-dust 6s linear infinite;
}
@keyframes cr-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes cr-carriage { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cr-horse { 0% { transform: scaleX(-1) translateX(0) rotate(0deg); } 50% { transform: scaleX(-1) translateX(4px) rotate(3deg); } 100% { transform: scaleX(-1) translateX(0) rotate(0deg); } }
@keyframes cr-post { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cr-arm { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(0deg) translateX(2px); } 100% { transform: rotate(-30deg) translateX(0); } }
@keyframes cr-dust { 0% { transform: translateY(0) scale(1); opacity: .3; } 50% { transform: translateY(-10px) scale(1.2); opacity: .6; } 100% { transform: translateY(0) scale(1); opacity: .3; } }

.scn-against-imitation { 
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 50%, #3a3a3a 100%), 
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-against-imitation .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 80%, #0f0f0f 100%);
  animation: ai-wall 12s ease-in-out infinite alternate;
}
.scn-against-imitation .desk {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.5);
}
.scn-against-imitation .papers {
  position: absolute; left: 25%; bottom: 25%; width: 30%; height: 8%;
  background: linear-gradient(135deg, #c8b89a 0%, #a09070 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ai-papers 6s ease-in-out infinite;
}
.scn-against-imitation .figure {
  position: absolute; bottom: 20%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ai-figure 5s ease-in-out infinite;
}
.scn-against-imitation .lamp {
  position: absolute; left: 55%; bottom: 40%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ai-lamp 3s ease-in-out infinite alternate;
}
.scn-against-imitation .flask {
  position: absolute; left: 30%; bottom: 28%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #8b6b4b 0%, #5a4035 100%);
  border-radius: 4px 4px 6px 6px;
  animation: ai-flask 4s ease-in-out infinite;
}
.scn-against-imitation .books {
  position: absolute; left: 60%; bottom: 18%; width: 40px; height: 40px;
  background: linear-gradient(135deg, #6b5b4b 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 0 #3a2a1a;
  animation: ai-books 10s ease-in-out infinite;
}
@keyframes ai-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes ai-papers { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes ai-figure { 0% { transform: translateX(0) rotate(-2deg) scaleY(1); } 50% { transform: translateX(2px) rotate(3deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(-2deg) scaleY(1); } }
@keyframes ai-lamp { 0% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-3deg); } }
@keyframes ai-flask { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ai-books { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }

/* barefaced-villain – dark dim interior, silhouette villain */
.scn-barefaced-villain {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0f0a 30%, #0d0d15 70%, #050508 100%),
              radial-gradient(ellipse at 30% 60%, #2a1a0a 0%, transparent 60%);
}
.scn-barefaced-villain .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(10,5,5,0.9) 0%, transparent 100%);
  animation: bv-bg 12s ease-in-out infinite alternate;
}
.scn-barefaced-villain .fg-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%);
  border-radius: 30% 20% 0 0 / 50% 40% 0 0;
  animation: bv-wall 8s ease-in-out infinite alternate;
}
.scn-barefaced-villain .figure {
  position: absolute; bottom: 22%; left: 25%; width: 60px; height: 150px;
  background: linear-gradient(135deg, #1a1010 0%, #050303 100%);
  border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bv-figure 5s ease-in-out infinite;
}
.scn-barefaced-villain .eye {
  position: absolute; bottom: 65%; left: 30%; width: 10px; height: 6px;
  background: radial-gradient(circle, #d4a060 0%, #b07030 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 8px rgba(180,112,48,0.6);
  animation: bv-eye 1.5s ease-in-out infinite alternate;
}
.scn-barefaced-villain .knife {
  position: absolute; bottom: 25%; left: 20%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #808080 0%, #c0c0c0 40%, #e0e0e0 50%, #c0c0c0 60%, #808080 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  transform: rotate(-15deg);
  transform-origin: 50% 100%;
  animation: bv-knife 4s ease-in-out infinite;
}
.scn-barefaced-villain .shadow {
  position: absolute; bottom: 15%; left: 20%; width: 100px; height: 20px;
  background: rgba(0,0,0,0.8); border-radius: 50%; filter: blur(8px);
  animation: bv-shadow 5s ease-in-out infinite alternate;
}
.scn-barefaced-villain .particle {
  position: absolute; width: 4px; height: 4px; background: rgba(200,160,100,0.4);
  border-radius: 50%; filter: blur(3px);
}
.scn-barefaced-villain .p1 {
  top: 30%; left: 10%;
  animation: bv-particle1 10s linear infinite;
}
.scn-barefaced-villain .p2 {
  top: 50%; left: 70%;
  animation: bv-particle2 14s linear infinite;
}
@keyframes bv-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes bv-wall {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(1px) scaleY(0.98); }
}
@keyframes bv-figure {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(3px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bv-eye {
  0% { opacity: 0.6; box-shadow: 0 0 15px 4px rgba(180,112,48,0.4); }
  50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(200,130,60,0.8); }
  100% { opacity: 0.7; box-shadow: 0 0 18px 5px rgba(180,112,48,0.5); }
}
@keyframes bv-knife {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  100% { transform: rotate(-18deg) translateY(0); }
}
@keyframes bv-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.8; }
  50% { transform: scaleX(1.05) scaleY(0.95); opacity: 0.6; }
  100% { transform: scaleX(0.95) scaleY(1.05); opacity: 0.9; }
}
@keyframes bv-particle1 {
  0% { transform: translate(-20px, -10px) scale(0.5); opacity: 0; }
  20% { opacity: 0.6; }
  80% { opacity: 0.6; }
  100% { transform: translate(80px, 60px) scale(1); opacity: 0; }
}
@keyframes bv-particle2 {
  0% { transform: translate(10px, 5px) scale(0.8); opacity: 0; }
  30% { opacity: 0.5; }
  70% { opacity: 0.5; }
  100% { transform: translate(-60px, 80px) scale(0.3); opacity: 0; }
}

/* self-deception-common – calm dim interior, desk and mirror shadow */
.scn-self-deception-common {
  background: linear-gradient(180deg, #1a150e 0%, #2a1f14 35%, #1a1410 70%, #0f0b07 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-self-deception-common .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(40,30,20,0.4) 0%, transparent 100%);
  animation: sd-bg 15s ease-in-out infinite alternate;
}
.scn-self-deception-common .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.5);
}
.scn-self-deception-common .book {
  position: absolute; bottom: 30%; left: 35%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 8% 8% / 10% 10% 12% 12%;
  transform: rotate(-5deg);
  animation: sd-book 6s ease-in-out infinite;
}
.scn-self-deception-common .hand {
  position: absolute; bottom: 32%; left: 45%; width: 25px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: sd-hand 4s ease-in-out infinite;
}
.scn-self-deception-common .candle {
  position: absolute; bottom: 28%; left: 42%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #8a6a40 0%, #4a3a20 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-self-deception-common .flame-glow {
  position: absolute; bottom: 41%; left: 42.5%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #f0a040 40%, transparent 70%);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 0 30px 15px rgba(240,160,64,0.3), 0 0 60px 30px rgba(200,120,40,0.15);
  animation: sd-flame 2s ease-in-out infinite alternate;
}
.scn-self-deception-common .shadow-self {
  position: absolute; bottom: 20%; right: 20%; width: 70px; height: 140px;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.3) 100%);
  border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  filter: blur(4px);
  animation: sd-shadow 8s ease-in-out infinite alternate;
}
@keyframes sd-bg {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.65; }
}
@keyframes sd-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-6deg) translateY(1px); }
}
@keyframes sd-hand {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(2deg); }
  70% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sd-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.9; }
  50% { transform: scaleY(1.15) scaleX(0.9); opacity: 1; box-shadow: 0 0 40px 20px rgba(240,160,64,0.4), 0 0 80px 40px rgba(200,120,40,0.2); }
  100% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.8; }
}
@keyframes sd-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.4; }
  50% { transform: scaleX(1.08) translateX(-3px); opacity: 0.6; }
  100% { transform: scaleX(0.95) translateX(2px); opacity: 0.5; }
}

/* conscience-failure – tense dim interior, judge shadow and accused */
.scn-conscience-failure {
  background: linear-gradient(180deg, #0a0a1a 0%, #12102a 40%, #1a1520 70%, #0a080f 100%),
              radial-gradient(ellipse at 60% 50%, #2a2040 0%, transparent 60%);
}
.scn-conscience-failure .bg-cool {
  position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,10,30,0.5) 0%, transparent 100%);
  animation: cf-bg 10s ease-in-out infinite alternate;
}
.scn-conscience-failure .gavel {
  position: absolute; top: 10%; left: 70%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: cf-gavel 3s ease-in-out infinite;
}
.scn-conscience-failure .figure-accused {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 120px;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 35% 35% 20% 20% / 50% 50% 30% 30%;
  animation: cf-accused 2s ease-in-out infinite;
}
.scn-conscience-failure .shadow-judge {
  position: absolute; top: 5%; right: 10%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(20,10,30,0.8) 0%, rgba(0,0,0,0.6) 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  filter: blur(5px);
  animation: cf-judge 7s ease-in-out infinite alternate;
}
.scn-conscience-failure .chain {
  position: absolute; bottom: 35%; left: 25%; width: 60px; height: 6px;
  background: repeating-linear-gradient(90deg, #6a6a7a 0px, #8a8a9a 4px, #6a6a7a 8px);
  border-radius: 3px;
  transform: rotate(10deg);
  animation: cf-chain 4s ease-in-out infinite;
}
.scn-conscience-failure .scale {
  position: absolute; bottom: 25%; right: 20%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  box-shadow: 0 0 10px rgba(100,100,120,0.3);
  animation: cf-scale 5s ease-in-out infinite;
}
.scn-conscience-failure .verdict {
  position: absolute; bottom: 28%; left: 15%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 10% 10% 20% 20%;
  opacity: 0.4;
  animation: cf-verdict 8s ease-in-out infinite alternate;
}
@keyframes cf-bg {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.55; }
}
@keyframes cf-gavel {
  0% { transform: rotate(20deg) translateY(0); }
  30% { transform: rotate(30deg) translateY(-5px); }
  50% { transform: rotate(0deg) translateY(0); }
  70% { transform: rotate(-15deg) translateY(3px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes cf-accused {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cf-judge {
  0% { transform: scaleY(1) translateY(0); opacity: 0.6; }
  50% { transform: scaleY(1.15) translateY(-5px); opacity: 0.9; }
  100% { transform: scaleY(0.9) translateY(3px); opacity: 0.7; }
}
@keyframes cf-chain {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(2px); }
  100% { transform: rotate(5deg) translateX(-2px); }
}
@keyframes cf-scale {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(0.95); }
  100% { transform: rotate(-3deg) scaleY(1.02); }
}
@keyframes cf-verdict {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
  100% { transform: scaleX(0.9); opacity: 0.4; }
}

/* sermon-conclusion – calm dim interior, peaceful figure with light */
.scn-sermon-conclusion {
  background: linear-gradient(180deg, #1a1410 0%, #2a1f14 25%, #1a1410 60%, #0f0b07 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-sermon-conclusion .bg-soft {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(40,30,20,0.3) 0%, transparent 100%);
  animation: sc-bg 18s ease-in-out infinite alternate;
}
.scn-sermon-conclusion .figure-peace {
  position: absolute; bottom: 15%; left: 35%; width: 60px; height: 140px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 35% 25% 25% / 55% 45% 30% 30%;
  transform-origin: bottom center;
  animation: sc-figure 7s ease-in-out infinite;
}
.scn-sermon-conclusion .light-ray {
  position: absolute; top: 0; left: 30%; right: 30%; bottom: 50%;
  background: linear-gradient(180deg, rgba(255,220,160,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: sc-ray 6s ease-in-out infinite alternate;
}
.scn-sermon-conclusion .book-open {
  position: absolute; bottom: 25%; left: 25%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 10% 10% / 10% 10% 20% 20%;
  transform: rotate(-5deg);
  animation: sc-book 10s ease-in-out infinite;
}
.scn-sermon-conclusion .halo {
  position: absolute; top: 20%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,120,0.5) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,200,120,0.2);
  animation: sc-halo 8s ease-in-out infinite alternate;
}
.scn-sermon-conclusion .dove {
  position: absolute; top: 30%; right: 30%; width: 20px; height: 14px;
  background: radial-gradient(ellipse at 30% 50%, #b8b8a0 0%, #8a8a70 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%;
  transform: rotate(-10deg);
  animation: sc-dove 12s ease-in-out infinite;
}
.scn-sermon-conclusion .ash {
  position: absolute; bottom: 35%; left: 55%; width: 5px; height: 5px;
  background: rgba(200,180,150,0.4);
  border-radius: 50%;
  filter: blur(2px);
  animation: sc-ash 9s linear infinite;
}
@keyframes sc-bg {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.55; }
}
@keyframes sc-figure {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-2px) rotate(1deg); }
  66% { transform: translateY(1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sc-ray {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.05); }
  100% { opacity: 0.4; transform: scaleY(0.95); }
}
@keyframes sc-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(-6deg) translateY(1px); }
}
@keyframes sc-halo {
  0% { transform: scale(0.9); opacity: 0.5; }
  50% { transform: scale(1.1); opacity: 0.8; }
  100% { transform: scale(1); opacity: 0.6; }
}
@keyframes sc-dove {
  0% { transform: rotate(-10deg) translateX(0) translateY(0); }
  25% { transform: rotate(-5deg) translateX(5px) translateY(-3px); }
  50% { transform: rotate(5deg) translateX(10px) translateY(0); }
  75% { transform: rotate(0deg) translateX(5px) translateY(2px); }
  100% { transform: rotate(-10deg) translateX(0) translateY(0); }
}
@keyframes sc-ash {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.4; }
  50% { transform: translateY(-20px) rotate(180deg); opacity: 0.1; }
  100% { transform: translateY(-40px) rotate(360deg); opacity: 0; }
}

/* ——— Scene: summersets-disdained ——— */
.scn-summersets-disdained {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a120a 60%),
    radial-gradient(ellipse at 30% 40%, #6a4a2a 0%, transparent 70%);
}
.scn-summersets-disdained .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: ssd-wall 20s ease-in-out infinite alternate;
}
.scn-summersets-disdained .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%);
}
.scn-summersets-disdained .horse {
  position: absolute; bottom: 28%; left: 20%; width: 55%; height: 42%;
  background: radial-gradient(ellipse 60% 50% at 50% 60%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 40% 20% 20% / 40% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ssd-horse 6s ease-in-out infinite;
}
.scn-summersets-disdained .saddle {
  position: absolute; bottom: 55%; left: 35%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 8px #1a0f05;
}
.scn-summersets-disdained .rider {
  position: absolute; bottom: 58%; left: 32%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: ssd-rider 2s ease-in-out infinite;
}
.scn-summersets-disdained .beam {
  position: absolute; top: 8%; left: 10%; right: 10%; height: 4%;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
}
.scn-summersets-disdained .glow {
  position: absolute; bottom: 30%; left: 45%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 20%, #c08040 0%, transparent 70%);
  opacity: 0.6;
  animation: ssd-glow 4s ease-in-out infinite alternate;
}
.scn-summersets-disdained .shadow {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 6%;
  background: radial-gradient(ellipse at 50% 0%, #0a0502 0%, transparent 100%);
  opacity: 0.5;
  animation: ssd-shadow 6s ease-in-out infinite;
}
@keyframes ssd-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ssd-horse { 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 ssd-rider {
  0% { transform: translateY(0) rotate(-10deg) scale(1); }
  30% { transform: translateY(-8px) rotate(180deg) scale(1.1); }
  60% { transform: translateY(-6px) rotate(360deg) scale(1.05); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes ssd-glow { 0% { opacity: 0.4; transform: scale(0.9); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes ssd-shadow { 0% { transform: scaleX(0.9) translateY(0); } 50% { transform: scaleX(1.1) translateY(2px); } 100% { transform: scaleX(0.9) translateY(0); } }

/* ——— Scene: trims-judgment ——— */
.scn-trims-judgment {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a120a 60%),
    radial-gradient(ellipse at 70% 50%, #5a3a2a 0%, transparent 70%);
}
.scn-trims-judgment .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: tj-wall 30s ease-in-out infinite alternate;
}
.scn-trims-judgment .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%);
}
.scn-trims-judgment .figure {
  position: absolute; bottom: 35%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: 50% 100%;
  animation: tj-figure 1s linear infinite;
}
.scn-trims-judgment .shadow {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 8%;
  background: radial-gradient(ellipse at 50% 0%, #0a0502 0%, transparent 100%);
  opacity: 0.6;
  animation: tj-shadow 1s ease-in-out infinite;
}
.scn-trims-judgment .candle {
  position: absolute; bottom: 20%; right: 15%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-trims-judgment .light {
  position: absolute; bottom: 22%; right: 15%; width: 8%; height: 12%;
  background: radial-gradient(ellipse at 50% 20%, #e8b860 0%, transparent 70%);
  animation: tj-light 3s ease-in-out infinite alternate;
}
.scn-trims-judgment .smoke {
  position: absolute; bottom: 40%; right: 15%; width: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,150,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: tj-smoke 6s linear infinite;
}
.scn-trims-judgment .sparkle {
  position: absolute; bottom: 50%; left: 30%; width: 6%; height: 6%;
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  animation: tj-sparkle 0.8s ease-in-out infinite;
}
@keyframes tj-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes tj-figure { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(90deg) scale(1.05); } 50% { transform: rotate(180deg) scale(1); } 75% { transform: rotate(270deg) scale(0.95); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes tj-shadow { 0% { transform: scaleX(0.8) translateY(0); } 25% { transform: scaleX(1) translateY(2px); } 50% { transform: scaleX(0.9) translateY(3px); } 75% { transform: scaleX(1.1) translateY(1px); } 100% { transform: scaleX(0.8) translateY(0); } }
@keyframes tj-light { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes tj-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-20px) scale(2); opacity: 0.2; } 100% { transform: translateY(-40px) scale(3); opacity: 0; } }
@keyframes tj-sparkle { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0; transform: scale(0.5); } }

/* ——— Scene: tristra-paedia-reading ——— */
.scn-tristra-paedia-reading {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #1a120a 70%),
    radial-gradient(ellipse at 50% 40%, #6a4a2a 0%, transparent 60%);
}
.scn-tristra-paedia-reading .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-tristra-paedia-reading .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%);
}
.scn-tristra-paedia-reading .fireplace {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #1a0f05 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 30px #c08040;
}
.scn-tristra-paedia-reading .table {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4%;
  box-shadow: 0 8px 16px #0a0502;
}
.scn-tristra-paedia-reading .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  animation: tp-reading-fig 10s ease-in-out infinite alternate;
}
.scn-tristra-paedia-reading .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  animation: tp-reading-fig 10s ease-in-out infinite alternate-reverse;
}
.scn-tristra-paedia-reading .figure-center {
  position: absolute; bottom: 25%; left: 44%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: tp-reading-fig 12s ease-in-out infinite alternate;
}
.scn-tristra-paedia-reading .book {
  position: absolute; bottom: 22%; left: 45%; width: 10%; height: 6%;
  background: linear-gradient(135deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 10%;
  transform: rotate(-5deg);
}
.scn-tristra-paedia-reading .candle {
  position: absolute; bottom: 22%; left: 38%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #a08050 0%, #5a3a1a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-tristra-paedia-reading .fire-glow {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #d09050 0%, transparent 70%);
  opacity: 0.5;
  animation: tp-fire 5s ease-in-out infinite alternate;
}
@keyframes tp-reading-fig { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes tp-fire { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(1); } }

/* ——— Scene: reading-commences ——— */
.scn-reading-commences {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #1a120a 70%),
    radial-gradient(ellipse at 40% 50%, #6a4a2a 0%, transparent 60%);
}
.scn-reading-commences .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: rc-wall 25s ease-in-out infinite alternate;
}
.scn-reading-commences .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%);
}
.scn-reading-commences .fireplace {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 55%;
  background: linear-gradient(180deg, #5a3a2a 0%, #1a0f05 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: inset 0 10px 30px #0a0502;
}
.scn-reading-commences .chair-left {
  position: absolute; bottom: 16%; left: 15%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: rc-chair 8s ease-in-out infinite alternate;
}
.scn-reading-commences .chair-right {
  position: absolute; bottom: 16%; right: 15%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: rc-chair 8s ease-in-out infinite alternate-reverse;
}
.scn-reading-commences .table {
  position: absolute; bottom: 15%; left: 28%; width: 44%; height: 14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4%;
  box-shadow: 0 6px 12px #0a0502;
}
.scn-reading-commences .pipe {
  position: absolute; bottom: 20%; left: 30%; width: 12%; height: 6%;
  background: linear-gradient(90deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 50% 20% 20% 50%;
  transform: rotate(15deg);
  animation: rc-pipe 3s ease-in-out infinite;
}
.scn-reading-commences .candle {
  position: absolute; bottom: 18%; left: 48%; width: 3%; height: 14%;
  background: linear-gradient(180deg, #a08050 0%, #5a3a1a 100%);
  border-radius: 10% 10% 0 0;
  animation: rc-candle 4s ease-in-out infinite alternate;
}
.scn-reading-commences .smoke {
  position: absolute; bottom: 25%; left: 32%; width: 8%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,150,0.4) 0%, transparent 100%);
  filter: blur(3px);
  animation: rc-smoke 5s linear infinite;
}
@keyframes rc-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rc-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes rc-pipe { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(20deg) scale(1.05); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes rc-candle { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.05); } 100% { opacity: 0.6; transform: scaleY(0.95); } }
@keyframes rc-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-15px) scale(1.5); opacity: 0.2; } 100% { transform: translateY(-30px) scale(2); opacity: 0; } }

.scn-homunculus-rights {
  background:
    radial-gradient(ellipse 70% 60% at 50% 60%, #3a2a1a 0%, #1a120a 70%),
    linear-gradient(180deg, #2d1f0f 0%, #1a120a 100%);
}
.scn-homunculus-rights .bg-chamber { position:absolute; inset:0; background:inherit; }
.scn-homunculus-rights .table { position:absolute; bottom:10%; left:10%; width:80%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:12% 12% 0 0; box-shadow:0 -8px 16px rgba(0,0,0,.5); }
.scn-homunculus-rights .flask { position:absolute; bottom:30%; left:50%; width:70px; height:90px; transform:translateX(-50%); background: radial-gradient(ellipse 60% 80% at 50% 50%, rgba(180,140,80,.15) 0%, rgba(100,70,40,.05) 100%); border:2px solid rgba(180,140,80,.3); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow:inset 0 0 20px rgba(180,140,80,.1); animation: hr-flask 8s ease-in-out infinite; }
.scn-homunculus-rights .homunculus { position:absolute; bottom:35%; left:50%; width:16px; height:22px; transform:translateX(-50%); background: radial-gradient(ellipse at 30% 30%, #c8a060 0%, #a07040 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 6px 2px rgba(200,160,96,.3); animation: hr-homunculus 4s ease-in-out infinite; }
.scn-homunculus-rights .glow { position:absolute; inset:0; background: radial-gradient(ellipse 40% 30% at 50% 45%, rgba(255,200,100,.15) 0%, transparent 70%); animation: hr-glow 3s ease-in-out infinite alternate; }
.scn-homunculus-rights .candle { position:absolute; bottom:28%; left:38%; width:6px; height:18px; background: linear-gradient(180deg, #f0d080 0%, #8a6a4a 100%); border-radius:2px 2px 3px 3px; box-shadow:0 0 12px 6px rgba(240,208,128,.4); animation: hr-candle 2s ease-in-out infinite; }
@keyframes hr-flask { 0%,100% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.02); } }
@keyframes hr-homunculus { 0%,100% { transform:translateX(-50%) rotate(0deg) translateY(0); } 30% { transform:translateX(-50%) rotate(2deg) translateY(-2px); } 70% { transform:translateX(-50%) rotate(-2deg) translateY(1px); } }
@keyframes hr-glow { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes hr-candle { 0%,100% { transform:scaleY(1); } 30% { transform:scaleY(1.05) scaleX(0.95); } 60% { transform:scaleY(0.95) scaleX(1.02); } }

.scn-homunculus-journey {
  background:
    linear-gradient(180deg, #1f1c2e 0%, #2a1e30 30%, #1a1420 100%),
    radial-gradient(ellipse at 50% 80%, #302040 0%, transparent 70%);
}
.scn-homunculus-journey .bg-hall { position:absolute; inset:0; background: inherit; }
.scn-homunculus-journey .floor { position:absolute; bottom:0; left:5%; width:90%; height:15%; background: linear-gradient(180deg, #2a222e 0%, #1a121e 100%); border-radius:30% 30% 0 0 / 100% 100% 0 0; transform:perspective(300px) rotateX(30deg); }
.scn-homunculus-journey .wall-left { position:absolute; top:15%; left:0; bottom:15%; width:20%; background: linear-gradient(135deg, #3a2a3e 0%, #1a1220 100%); transform:skewY(5deg); transform-origin:top left; box-shadow:4px 0 8px rgba(0,0,0,.4); animation: hj-walls 6s ease-in-out infinite; }
.scn-homunculus-journey .wall-right { position:absolute; top:15%; right:0; bottom:15%; width:20%; background: linear-gradient(225deg, #3a2a3e 0%, #1a1220 100%); transform:skewY(-5deg); transform-origin:top right; box-shadow:-4px 0 8px rgba(0,0,0,.4); animation: hj-walls 6s ease-in-out infinite alternate; }
.scn-homunculus-journey .figure-traveller { position:absolute; bottom:18%; left:45%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 30%, #2a1e30 0%, #0a0610 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: hj-walk 3.5s steps(4) infinite; }
.scn-homunculus-journey .light-distant { position:absolute; top:25%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #a080c0 0%, rgba(160,128,192,.1) 70%); border-radius:50%; box-shadow:0 0 40px 20px rgba(160,128,192,.3); animation: hj-light 2s ease-in-out infinite alternate; }
.scn-homunculus-journey .shadow-figure { position:absolute; bottom:14%; left:43%; width:26px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); transform:rotate(10deg); animation: hj-shadow 3.5s steps(4) infinite; }
@keyframes hj-walls { 0%,100% { opacity:.8; transform:skewY(5deg); } 50% { opacity:1; transform:skewY(6deg); } }
@keyframes hj-walk { 0% { transform:translateX(-5px) rotate(-3deg); } 25% { transform:translateX(0px) rotate(0deg); } 50% { transform:translateX(5px) rotate(3deg); } 75% { transform:translateX(0px) rotate(-1deg); } 100% { transform:translateX(-5px) rotate(-3deg); } }
@keyframes hj-light { 0% { opacity:.5; box-shadow:0 0 30px 10px rgba(160,128,192,.2); } 100% { opacity:1; box-shadow:0 0 50px 25px rgba(160,128,192,.4); } }
@keyframes hj-shadow { 0% { width:26px; opacity:.3; } 50% { width:30px; opacity:.5; } 100% { width:24px; opacity:.2; } }

.scn-uncle-toby-anecdote {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 30% 60%, #5a4030 0%, transparent 70%);
}
.scn-uncle-toby-anecdote .bg-parlour { position:absolute; inset:0; background:inherit; }
.scn-uncle-toby-anecdote .chair { position:absolute; bottom:12%; left:30%; width:120px; height:110px; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius:20% 20% 30% 30% / 40% 40% 30% 30%; box-shadow:inset 0 -10px 20px rgba(0,0,0,.4), 0 8px 16px rgba(0,0,0,.5); transform:rotate(-2deg); animation: ut-chair 12s ease-in-out infinite; }
.scn-uncle-toby-anecdote .figure-uncle { position:absolute; bottom:20%; left:33%; width:22px; height:50px; background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(4deg); transform-origin:bottom center; animation: ut-figure 9s ease-in-out infinite; }
.scn-uncle-toby-anecdote .window-arch { position:absolute; top:15%; right:10%; width:80px; height:120px; background: radial-gradient(ellipse 70% 80% at 50% 40%, #b8a080 0%, #4a3a2a 100%); border-radius:50% 50% 10% 10% / 40% 40% 10% 10%; box-shadow:inset 0 0 30px rgba(200,180,160,.3); animation: ut-window 15s ease-in-out infinite; }
.scn-uncle-toby-anecdote .curtain-l { position:absolute; top:5%; left:5%; width:18%; height:90%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius:0 30% 30% 0 / 0 20% 20% 0; transform:scaleX(0.9); animation: ut-curtain 20s ease-in-out infinite; }
.scn-uncle-toby-anecdote .curtain-r { position:absolute; top:5%; right:5%; width:18%; height:90%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius:30% 0 0 30% / 20% 0 0 20%; transform:scaleX(0.9); animation: ut-curtain 20s ease-in-out infinite reverse; }
.scn-uncle-toby-anecdote .table-pipe { position:absolute; bottom:15%; right:20%; width:60px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 30% 30% / 20% 20% 30% 30%; box-shadow:0 4px 8px rgba(0,0,0,.4); transform:rotate(5deg); animation: ut-table 18s ease-in-out infinite; }
@keyframes ut-chair { 0%,100% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(-1deg) translateY(-2px); } }
@keyframes ut-figure { 0%,100% { transform:rotate(4deg); } 50% { transform:rotate(3deg) translateY(1px); } }
@keyframes ut-window { 0% { opacity:.6; box-shadow:inset 0 0 20px rgba(200,180,160,.2); } 50% { opacity:.9; box-shadow:inset 0 0 40px rgba(200,180,160,.4); } 100% { opacity:.7; box-shadow:inset 0 0 25px rgba(200,180,160,.3); } }
@keyframes ut-curtain { 0%,100% { transform:scaleX(0.9) translateX(0); } 50% { transform:scaleX(1) translateX(3px); } }
@keyframes ut-table { 0%,100% { transform:rotate(5deg) scale(1); } 50% { transform:rotate(4deg) scale(1.02); } }

.scn-fathers-prophecy {
  background:
    linear-gradient(180deg, #1a1218 0%, #0a0608 40%, #000000 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a30 0%, transparent 80%);
}
.scn-fathers-prophecy .bg-night { position:absolute; inset:0; background:inherit; }
.scn-fathers-prophecy .figure-father { position:absolute; bottom:8%; left:45%; width:40px; height:80px; background: radial-gradient(ellipse at 50% 20%, #2a1a1e 0%, #0a0608 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(-5deg); transform-origin:bottom center; animation: fp-figure 12s ease-in-out infinite; }
.scn-fathers-prophecy .hand-sorrow { position:absolute; bottom:30%; left:40%; width:14px; height:20px; background: radial-gradient(ellipse at 50% 50%, #3a2a2e 0%, #1a1218 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform:rotate(15deg) translate(5px,5px); transform-origin:bottom left; animation: fp-hand 6s ease-in-out infinite; }
.scn-fathers-prophecy .tear-drop { position:absolute; bottom:38%; left:42%; width:4px; height:8px; background: radial-gradient(circle, #806060 0%, #403030 100%); border-radius:40% 40% 50% 50% / 30% 30% 70% 70%; animation: fp-tear 8s ease-in-out infinite; }
.scn-fathers-prophecy .table-dim { position:absolute; bottom:5%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #2a1a1e 0%, #1a1218 100%); border-radius:10% 10% 0 0; box-shadow:0 -6px 12px rgba(0,0,0,.5); }
.scn-fathers-prophecy .candle-glimmer { position:absolute; bottom:12%; left:50%; width:6px; height:20px; background: linear-gradient(180deg, #f0c080 0%, #8a6a4a 100%); border-radius:2px; box-shadow:0 0 18px 8px rgba(240,192,128,.2); animation: fp-candle 3s ease-in-out infinite; }
@keyframes fp-figure { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-6deg) translateY(2px); } }
@keyframes fp-hand { 0%,100% { transform:rotate(15deg) translate(5px,5px); } 30% { transform:rotate(10deg) translate(8px,3px); } 70% { transform:rotate(20deg) translate(2px,7px); } }
@keyframes fp-tear { 0% { opacity:0; transform:translateY(0) scale(0.8); } 20% { opacity:1; transform:translateY(2px) scale(1); } 80% { opacity:1; transform:translateY(12px) scale(0.9); } 100% { opacity:0; transform:translateY(18px) scale(0.5); } }
@keyframes fp-candle { 0%,100% { transform:scaleY(1) scaleX(1); } 30% { transform:scaleY(1.06) scaleX(0.94); } 60% { transform:scaleY(0.96) scaleX(1.03); } }

/* Scene 1: horoscope-latin (hs1) – calm, dim study */
.scn-horoscope-latin {
  background: 
    linear-gradient(180deg, #2a2218 0%, #3a2e20 40%, #1e1610 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-horoscope-latin .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, rgba(30,22,16,0.4) 0%, transparent 50%);
  animation: hs1-dim 6s ease-in-out infinite alternate;
}
.scn-horoscope-latin .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e20 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
  animation: hs1-settle 15s ease-in-out infinite;
}
.scn-horoscope-latin .book {
  position: absolute; bottom: 22%; left: 30%; width: 100px; height: 70px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: 2px 4px 12px rgba(0,0,0,0.6);
  transform: rotate(-2deg); animation: hs1-book 20s ease-in-out infinite;
}
.scn-horoscope-latin .candle {
  position: absolute; bottom: 24%; left: 50%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c0a080 0%, #806050 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px rgba(192,160,128,0.3);
  animation: hs1-candle 8s ease-in-out infinite;
}
.scn-horoscope-latin .flame {
  position: absolute; bottom: 34%; left: 50%; width: 10px; height: 16px;
  background: radial-gradient(circle at 50% 40%, #ffe080 0%, #b08040 60%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translate(-50%, 0);
  box-shadow: 0 0 20px 8px rgba(255,224,128,0.4), 0 0 40px 16px rgba(192,128,64,0.2);
  animation: hs1-flame 2s ease-in-out infinite alternate;
}
.scn-horoscope-latin .astrolabe {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 50px;
  border: 3px solid #8a7a6a; border-radius: 50%;
  background: radial-gradient(circle, #4a3e30 0%, #2a2218 70%);
  box-shadow: 0 0 10px rgba(138,122,106,0.3);
  animation: hs1-astrolabe 30s linear infinite;
}
.scn-horoscope-latin .shelf {
  position: absolute; bottom: 55%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
.scn-horoscope-latin .dust {
  position: absolute; top: 30%; left: 40%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(200,180,160,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: hs1-drift 25s linear infinite;
}
@keyframes hs1-dim { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes hs1-settle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hs1-book { 0%,100% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.01); } }
@keyframes hs1-candle { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes hs1-flame { 0% { transform: translate(-50%,0) scale(1); opacity: 0.9; } 50% { transform: translate(-50%,-2px) scale(1.1); opacity: 1; } 100% { transform: translate(-50%,0) scale(0.95); opacity: 0.85; } }
@keyframes hs1-astrolabe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes hs1-drift { 0% { transform: translate(0,0) scale(1); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translate(120px, -30px) scale(0.5); opacity: 0; } }

/* Scene 2: luther-damnation (ld2) – dark, ominous */
.scn-luther-damnation {
  background: 
    linear-gradient(180deg, #0e0814 0%, #1a0e2a 40%, #0a0610 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a3e 0%, transparent 70%);
}
.scn-luther-damnation .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #1a1030 0%, transparent 80%);
  animation: ld2-pulse 8s ease-in-out infinite alternate;
}
.scn-luther-damnation .planet1 {
  position: absolute; top: 15%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #6a5a8a 0%, #3a2a5a 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 20px rgba(106,90,138,0.5);
  animation: ld2-orbit1 40s linear infinite;
}
.scn-luther-damnation .planet2 {
  position: absolute; top: 25%; right: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle at 30% 30%, #8a7a6a 0%, #5a4a3a 60%);
  border-radius: 50%; box-shadow: 0 0 15px rgba(138,122,106,0.4);
  animation: ld2-orbit2 55s linear infinite reverse;
}
.scn-luther-damnation .figure {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1220 0%, #0a0610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ld2-figure 6s ease-in-out infinite alternate;
}
.scn-luther-damnation .halo {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(100,80,150,0.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: ld2-halo 4s ease-in-out infinite alternate;
}
.scn-luther-damnation .chains {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 4px;
  background: linear-gradient(90deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px; filter: blur(1px);
  animation: ld2-chains 10s ease-in-out infinite;
}
.scn-luther-damnation .shadow {
  position: absolute; inset: auto 0 0 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,6,16,0.8) 100%);
  animation: ld2-shadow 12s ease-in-out infinite alternate;
}
@keyframes ld2-pulse { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ld2-orbit1 { 0% { transform: rotate(0deg) translateX(60px) rotate(0deg); } 100% { transform: rotate(360deg) translateX(60px) rotate(-360deg); } }
@keyframes ld2-orbit2 { 0% { transform: rotate(0deg) translateX(80px) rotate(0deg); } 100% { transform: rotate(360deg) translateX(80px) rotate(-360deg); } }
@keyframes ld2-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-5px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes ld2-halo { 0% { transform: translateX(-50%) scale(1); opacity: 0.6; } 50% { transform: translateX(-50%) scale(1.2); opacity: 1; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.5; } }
@keyframes ld2-chains { 0%,100% { transform: translateX(0); } 50% { transform: translateX(10px); } }
@keyframes ld2-shadow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* Scene 3: fathers-shock (fs3) – dark, comedic shock */
.scn-fathers-shock {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a20 0%, transparent 70%);
}
.scn-fathers-shock .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(26,20,16,0.5) 0%, transparent 60%);
  animation: fs3-fade 10s ease-in-out infinite alternate;
}
.scn-fathers-shock .bed {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 20% 20% 10% 10%;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-fathers-shock .figure {
  position: absolute; bottom: 28%; left: 35%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: fs3-twitch 3s ease-in-out infinite;
}
.scn-fathers-shock .painting {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 50px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border: 4px solid #8a7a6a; border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: fs3-swing 8s ease-in-out infinite alternate;
}
.scn-fathers-shock .candle {
  position: absolute; bottom: 25%; right: 30%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #b0a090 0%, #706050 100%);
  border-radius: 10% 10% 5% 5%;
  animation: fs3-candle 6s ease-in-out infinite;
}
.scn-fathers-shock .flame {
  position: absolute; bottom: 40%; right: 30%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 40%, #ffe080 0%, #c08040 60%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translate(0, -100%);
  box-shadow: 0 0 12px 4px rgba(255,224,128,0.4);
  animation: fs3-flame 1.5s ease-in-out infinite alternate;
}
.scn-fathers-shock .shadow {
  position: absolute; inset: auto 0 0 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(14,10,8,0.7) 100%);
  animation: fs3-shadow 12s ease-in-out infinite alternate;
}
@keyframes fs3-fade { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes fs3-twitch { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(-8deg) translateY(-2px); } 50% { transform: rotate(-12deg) translateY(1px); } 75% { transform: rotate(-7deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes fs3-swing { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes fs3-candle { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } }
@keyframes fs3-flame { 0% { transform: translate(0,-100%) scale(1); opacity:0.9; } 50% { transform: translate(0,-102%) scale(1.15); opacity:1; } 100% { transform: translate(0,-100%) scale(0.9); opacity:0.8; } }
@keyframes fs3-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

/* Scene 4: concluding-tale (ct4) – warm, closing book */
.scn-concluding-tale {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #4a3520 40%, #1a120c 100%),
    radial-gradient(ellipse at 50% 70%, #6a4a2a 0%, transparent 70%);
}
.scn-concluding-tale .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(42,30,20,0.5) 0%, transparent 50%);
  animation: ct4-ambient 12s ease-in-out infinite alternate;
}
.scn-concluding-tale .book-cover {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 50%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: 0 -8px 30px rgba(0,0,0,0.6);
  animation: ct4-cover 20s ease-in-out infinite;
}
.scn-concluding-tale .page {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 30%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 2%; box-shadow: 0 0 10px rgba(0,0,0,0.3);
  transform-origin: right center;
  animation: ct4-page 6s ease-in-out infinite alternate;
}
.scn-concluding-tale .hand {
  position: absolute; bottom: 25%; left: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(20deg);
  animation: ct4-hand 8s ease-in-out infinite alternate;
}
.scn-concluding-tale .candle {
  position: absolute; bottom: 30%; right: 35%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #b0a090 0%, #706050 100%);
  border-radius: 10% 10% 5% 5%;
  animation: ct4-candle 7s ease-in-out infinite;
}
.scn-concluding-tale .flame {
  position: absolute; bottom: 50%; right: 35%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 40%, #ffe080 0%, #c08040 60%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translate(0, -100%);
  box-shadow: 0 0 16px 6px rgba(255,224,128,0.4);
  animation: ct4-flame 2s ease-in-out infinite alternate;
}
.scn-concluding-tale .glow {
  position: absolute; bottom: 30%; right: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(192,128,64,0.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: ct4-glow 4s ease-in-out infinite alternate;
}
@keyframes ct4-ambient { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes ct4-cover { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ct4-page { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(-30deg); } }
@keyframes ct4-hand { 0% { transform: rotate(20deg) translate(0,0); } 50% { transform: rotate(15deg) translate(5px,-5px); } 100% { transform: rotate(20deg) translate(0,0); } }
@keyframes ct4-candle { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.04); } }
@keyframes ct4-flame { 0% { transform: translate(0,-100%) scale(1); opacity:0.9; } 50% { transform: translate(0,-102%) scale(1.1); opacity:1; } 100% { transform: translate(0,-100%) scale(0.95); opacity:0.85; } }
@keyframes ct4-glow { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; } }

/* parson-ridicule – sunlit outdoor, funny */
.scn-parson-ridicule {
  background: linear-gradient(180deg, #c8e0f0 0%, #f0e8c0 40%, #e8d090 100%), radial-gradient(ellipse at 80% 20%, #fff8e0 0%, transparent 60%);
}
.scn-parson-ridicule .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d8f0 0%, #e0f0ff 60%, transparent 100%);
  animation: pr-sky 20s ease-in-out infinite alternate;
}
.scn-parson-ridicule .sun {
  position: absolute; top: 8%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8c0 0%, #f8d870 40%, #e8b040 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(248,216,112,0.5), 0 0 160px 60px rgba(248,216,112,0.2);
  animation: pr-sun 8s ease-in-out infinite alternate;
}
.scn-parson-ridicule .cloud {
  position: absolute; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(200,220,240,0.4) 100%);
  border-radius: 50%; filter: blur(5px);
}
.scn-parson-ridicule .cloud-a { top: 12%; left: 10%; width: 100px; animation: pr-drift-a 40s linear infinite; }
.scn-parson-ridicule .cloud-b { top: 22%; right: 5%; width: 70px; animation: pr-drift-b 55s linear infinite; }
.scn-parson-ridicule .village {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c8b080 0%, #a89060 50%, #8a7a50 100%);
  clip-path: polygon(0% 100%, 0% 40%, 10% 20%, 20% 40%, 25% 10%, 35% 30%, 45% 5%, 55% 25%, 65% 15%, 75% 35%, 85% 10%, 90% 30%, 100% 40%, 100% 100%);
  animation: pr-village 12s ease-in-out infinite alternate;
}
.scn-parson-ridicule .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b0a060 0%, #8a7a40 40%, #6a5a30 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: pr-ground 8s ease-in-out infinite alternate;
}
.scn-parson-ridicule .rider {
  position: absolute; bottom: 22%; left: 35%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pr-rider 3s ease-in-out infinite;
}
.scn-parson-ridicule .villager {
  position: absolute; bottom: 24%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-parson-ridicule .villager-a { left: 60%; animation: pr-villager-a 4s ease-in-out infinite; }
.scn-parson-ridicule .villager-b { left: 70%; animation: pr-villager-b 5s ease-in-out infinite; }

@keyframes pr-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes pr-sun { 0% { transform: scale(0.9) rotate(-5deg); opacity: 0.9 } 50% { transform: scale(1.05) rotate(3deg); opacity: 1 } 100% { transform: scale(0.92) rotate(-2deg); opacity: 0.92 } }
@keyframes pr-drift-a { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes pr-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes pr-village { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pr-ground { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes pr-rider { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-3px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-3px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0deg) } }
@keyframes pr-villager-a { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pr-villager-b { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(4deg) } 60% { transform: translateY(0) rotate(0deg) } 80% { transform: translateY(-1px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* parsons-fifty-reasons – dim interior, funny */
.scn-parsons-fifty-reasons {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #4a4a5a 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-parsons-fifty-reasons .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #3a3a4a 0%, #4a4a5a 30%, #3a3a4a 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  animation: pfr-wall 15s ease-in-out infinite alternate;
}
.scn-parsons-fifty-reasons .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-parsons-fifty-reasons .window {
  position: absolute; top: 20%; right: 15%; width: 40px; height: 50px;
  background: radial-gradient(circle, #6a8aaa 0%, #3a5a7a 70%);
  border: 4px solid #2a2a3a;
  box-shadow: inset 0 0 20px 5px #6a8aaa, 0 0 30px 10px rgba(106,138,170,0.3);
  animation: pfr-window 6s ease-in-out infinite alternate;
}
.scn-parsons-fifty-reasons .chair {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pfr-chair 8s ease-in-out infinite;
}
.scn-parsons-fifty-reasons .parson {
  position: absolute; bottom: 28%; left: 28%; width: 28px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pfr-parson 5s ease-in-out infinite;
}
.scn-parsons-fifty-reasons .thought {
  position: absolute; background: radial-gradient(circle, rgba(200,200,220,0.6) 0%, transparent 70%);
  border-radius: 50%;
}
.scn-parsons-fifty-reasons .thought-a { top: 22%; left: 18%; width: 40px; height: 40px; animation: pfr-thought-a 4s ease-in-out infinite; }
.scn-parsons-fifty-reasons .thought-b { top: 30%; left: 12%; width: 25px; height: 25px; animation: pfr-thought-b 6s ease-in-out infinite; }
.scn-parsons-fifty-reasons .horse-outside {
  position: absolute; bottom: 20%; right: 8%; width: 35px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: pfr-horse 10s ease-in-out infinite alternate;
}

@keyframes pfr-wall { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } 100% { transform: scaleX(0.99) } }
@keyframes pfr-window { 0% { box-shadow: inset 0 0 15px 3px #6a8aaa, 0 0 20px 5px rgba(106,138,170,0.2); opacity: 0.8 } 50% { box-shadow: inset 0 0 30px 8px #8aaaca, 0 0 40px 12px rgba(106,138,170,0.5); opacity: 1 } 100% { box-shadow: inset 0 0 18px 4px #6a8aaa, 0 0 24px 6px rgba(106,138,170,0.3); opacity: 0.85 } }
@keyframes pfr-chair { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pfr-parson { 0% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-2px) rotate(2deg) } 40% { transform: translateY(0) rotate(-1deg) } 60% { transform: translateY(-3px) rotate(1deg) } 80% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-1px) rotate(0deg) } }
@keyframes pfr-thought-a { 0% { transform: scale(0.8); opacity: 0.5 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(0.9); opacity: 0.7 } }
@keyframes pfr-thought-b { 0% { transform: scale(1); opacity: 0.6 } 40% { transform: scale(0.7); opacity: 0.3 } 80% { transform: scale(1.3); opacity: 0.9 } 100% { transform: scale(1); opacity: 0.6 } }
@keyframes pfr-horse { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-3px) translateY(-1px) } 100% { transform: translateX(2px) translateY(0) } }

/* horse-charity-dilemma – dim interior, warm */
.scn-horse-charity-dilemma {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #5a4a3a 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-horse-charity-dilemma .bg-warm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.4);
  animation: hcd-bg 20s ease-in-out infinite alternate;
}
.scn-horse-charity-dilemma .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-horse-charity-dilemma .post {
  position: absolute; bottom: 22%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-horse-charity-dilemma .post-left { left: 20%; animation: hcd-post 6s ease-in-out infinite alternate; }
.scn-horse-charity-dilemma .post-right { right: 20%; animation: hcd-post 6s ease-in-out infinite alternate-reverse; }
.scn-horse-charity-dilemma .horse-profile {
  position: absolute; bottom: 24%; left: 28%; width: 45px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 50% 40% 30% / 40% 60% 40% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: hcd-horse 8s ease-in-out infinite alternate;
}
.scn-horse-charity-dilemma .parson-standing {
  position: absolute; bottom: 22%; left: 42%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hcd-parson 5s ease-in-out infinite;
}
.scn-horse-charity-dilemma .scale {
  position: absolute; bottom: 26%; left: 58%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #c8b080 0%, #a89060 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: hcd-scale 10s ease-in-out infinite;
}
.scn-horse-charity-dilemma .coin {
  position: absolute; bottom: 30%; left: 62%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0d060 0%, #c8a040 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(240,208,96,0.5);
  animation: hcd-coin 4s ease-in-out infinite;
}
@keyframes hcd-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hcd-post { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hcd-horse { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(1px) rotate(1deg) } }
@keyframes hcd-parson { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(0deg) } }
@keyframes hcd-scale { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-8deg) translateY(2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(5deg) translateY(1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes hcd-coin { 0% { transform: scale(1) translateY(0); opacity: 0.8 } 50% { transform: scale(1.3) translateY(-3px); opacity: 1 } 100% { transform: scale(0.9) translateY(0); opacity: 0.7 } }

/* parsons-resolution – dim interior, warm (departure through archway) */
.scn-parsons-resolution {
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 40%, #2a1a1a 100%), radial-gradient(ellipse at 30% 50%, #6a4a3a 0%, transparent 60%);
}
.scn-parsons-resolution .bg-dim {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #1a0a0a 0%, #2a1a1a 50%, #3a2a2a 100%);
  animation: prs-bg 20s ease-in-out infinite alternate;
}
.scn-parsons-resolution .archway {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: ellipse(50% 60% at 50% 70%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: prs-arch 15s ease-in-out infinite alternate;
}
.scn-parsons-resolution .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-parsons-resolution .rider-depart {
  position: absolute; bottom: 18%; left: 40%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: prs-rider 6s ease-in-out infinite;
}
.scn-parsons-resolution .light-beam {
  position: absolute; bottom: 20%; left: 25%; width: 100px; height: 80px;
  background: linear-gradient(135deg, rgba(240,200,120,0.3) 0%, transparent 70%);
  clip-path: polygon(0% 0%, 100% 30%, 100% 100%, 0% 100%);
  filter: blur(8px);
  animation: prs-light 8s ease-in-out infinite alternate;
}
.scn-parsons-resolution .onlooker {
  position: absolute; bottom: 20%; width: 15px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-parsons-resolution .onlooker-a { left: 60%; animation: prs-look-a 5s ease-in-out infinite; }
.scn-parsons-resolution .onlooker-b { left: 70%; animation: prs-look-b 7s ease-in-out infinite; }

@keyframes prs-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes prs-arch { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes prs-rider { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 20% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 40% { transform: translateX(8px) translateY(0) rotate(0deg) } 60% { transform: translateX(12px) translateY(-3px) rotate(3deg) } 80% { transform: translateX(16px) translateY(0) rotate(-1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0deg) } }
@keyframes prs-light { 0% { transform: rotate(-5deg) scaleX(0.8); opacity: 0.4 } 50% { transform: rotate(2deg) scaleX(1); opacity: 0.7 } 100% { transform: rotate(-3deg) scaleX(0.9); opacity: 0.5 } }
@keyframes prs-look-a { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(-5deg) } 60% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-1px) rotate(3deg) } }
@keyframes prs-look-b { 0% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-1px) rotate(4deg) } 50% { transform: translateY(0) rotate(0deg) } 80% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* gothic-council */
.scn-gothic-council {
  background: linear-gradient(180deg, #2a1e0e 0%, #1a1208 50%, #0f0a04 100%), radial-gradient(ellipse at 50% 50%, #3a2a18 0%, transparent 70%);
}
.scn-gothic-council .floor { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #3a2a18 0%, #1a1208 100%); }
.scn-gothic-council .table { position:absolute; top:50%; left:50%; width:55%; height:55%; transform:translate(-50%,-50%); background: radial-gradient(circle, #5a4020 0%, #3a2810 100%); border-radius:50%; box-shadow: inset 0 -4px 8px #1a1008; }
.scn-gothic-council .candle { position:absolute; top:50%; left:50%; width:6%; height:6%; transform:translate(-50%,-50%); background: radial-gradient(circle, #f5c060 0%, #d09040 70%); border-radius:50%; box-shadow: 0 0 12px #d09040; animation: gc-candle 3s ease-in-out infinite; }
.scn-gothic-council .candle-glow { position:absolute; top:50%; left:50%; width:20%; height:20%; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(220,160,80,0.4) 0%, transparent 70%); border-radius:50%; animation: gc-glow 4s ease-in-out infinite alternate; }
.scn-gothic-council .figure { position:absolute; width:8%; height:12%; background: radial-gradient(ellipse at 50% 60%, #2a1e0e 0%, #0a0604 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center bottom; animation: gc-figure 6s ease-in-out infinite; }
.scn-gothic-council .figure-a { top:22%; left:46%; animation-delay:0s; }
.scn-gothic-council .figure-b { top:46%; right:22%; animation-delay:1.5s; }
.scn-gothic-council .figure-c { bottom:22%; left:46%; animation-delay:3s; }
.scn-gothic-council .figure-d { bottom:46%; left:22%; animation-delay:4.5s; }
@keyframes gc-candle { 0% { transform:translate(-50%,-50%) scale(1); box-shadow:0 0 12px #d09040; } 50% { transform:translate(-50%,-50%) scale(1.1); box-shadow:0 0 20px #e0a050; } 100% { transform:translate(-50%,-50%) scale(0.95); box-shadow:0 0 8px #c08030; } }
@keyframes gc-glow { 0% { opacity:0.6; transform:translate(-50%,-50%) scale(1); } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.2); } 100% { opacity:0.7; transform:translate(-50%,-50%) scale(0.9); } }
@keyframes gc-figure { 0% { transform:rotate(0deg) translateY(0); } 25% { transform:rotate(8deg) translateY(-2px); } 50% { transform:rotate(0deg) translateY(0); } 75% { transform:rotate(-8deg) translateY(-2px); } 100% { transform:rotate(0deg) translateY(0); } }

/* writing-methods */
.scn-writing-methods {
  background: linear-gradient(180deg, #3a2818 0%, #1e1410 50%, #0e0a06 100%), radial-gradient(ellipse at 50% 30%, #4a3420 0%, transparent 70%);
}
.scn-writing-methods .desk { position:absolute; bottom:0; left:5%; right:5%; height:45%; background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 4px 6px #1a1008; }
.scn-writing-methods .paper { position:absolute; bottom:22%; left:25%; width:35%; height:28%; background: linear-gradient(135deg, #f5ecd8 0%, #e8dcc8 100%); border-radius:2%; box-shadow: 0 2px 4px #1a1008; transform: rotate(-4deg); animation: wm-paper 8s ease-in-out infinite; }
.scn-writing-methods .hand { position:absolute; bottom:25%; left:40%; width:12%; height:18%; background: radial-gradient(ellipse at 50% 40%, #6a5040 0%, #2a1e0e 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; transform-origin: 80% 80%; animation: wm-hand 2s ease-in-out infinite; }
.scn-writing-methods .inkwell { position:absolute; bottom:15%; right:30%; width:8%; height:12%; background: linear-gradient(180deg, #4a3020 0%, #1a1008 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 -2px 4px #0a0604; }
.scn-writing-methods .candle { position:absolute; top:20%; right:15%; width:6%; height:12%; background: linear-gradient(180deg, #f5c060 0%, #c09040 100%); border-radius: 10%; box-shadow: 0 0 16px #d09040; animation: wm-candle 3s ease-in-out infinite; }
.scn-writing-methods .shadow { position:absolute; bottom:22%; left:38%; width:20%; height:10%; background: rgba(0,0,0,0.3); filter: blur(4px); transform: rotate(10deg); animation: wm-shadow 2s ease-in-out infinite; }
.scn-writing-methods .book { position:absolute; bottom:10%; left:10%; width:18%; height:24%; background: linear-gradient(135deg, #6a4a2a 0%, #3a2a18 100%); border-radius: 4%; box-shadow: inset 0 0 0 1px #1a1008; }
@keyframes wm-paper { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes wm-hand { 0% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes wm-candle { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1) rotate(-2deg); opacity:1; } 100% { transform: scale(0.95) rotate(1deg); opacity:0.8; } }
@keyframes wm-shadow { 0% { opacity:0.3; transform: rotate(10deg) scaleX(1); } 50% { opacity:0.5; transform: rotate(10deg) scaleX(1.2); } 100% { opacity:0.3; transform: rotate(10deg) scaleX(1); } }

/* breeches-debate */
.scn-breeches-debate {
  background: linear-gradient(180deg, #2a1e12 0%, #1a120a 50%, #0e0a06 100%), radial-gradient(ellipse at 50% 70%, #3a2a18 0%, transparent 70%);
}
.scn-breeches-debate .bed-frame { position:absolute; bottom:5%; left:10%; right:10%; height:55%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px #1a1008; }
.scn-breeches-debate .mattress { position:absolute; bottom:10%; left:12%; right:12%; height:40%; background: linear-gradient(180deg, #6a5040 0%, #3a2818 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 2px 6px #1a1008; }
.scn-breeches-debate .pillow { position:absolute; width:14%; height:12%; background: radial-gradient(ellipse at 50% 50%, #c0a080 0%, #8a6840 100%); border-radius: 50%; }
.scn-breeches-debate .pillow-l { bottom:35%; left:18%; animation: bd-pillow 6s ease-in-out infinite; }
.scn-breeches-debate .pillow-r { bottom:35%; right:18%; animation: bd-pillow 6s ease-in-out infinite reverse; }
.scn-breeches-debate .figure { position:absolute; width:15%; height:30%; background: radial-gradient(ellipse at 50% 60%, #2a1e12 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-breeches-debate .figure-father { bottom:12%; left:25%; animation: bd-father 4s ease-in-out infinite; }
.scn-breeches-debate .figure-mother { bottom:12%; right:25%; animation: bd-mother 5s ease-in-out infinite; }
.scn-breeches-debate .blanket { position:absolute; bottom:15%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -4px 6px #1a1008; animation: bd-blanket 8s ease-in-out infinite; }
.scn-breeches-debate .window { position:absolute; top:10%; right:10%; width:20%; height:30%; background: linear-gradient(135deg, #1a2a3a 0%, #0a1a2a 100%); border: 2px solid #2a1e12; border-radius: 4%; box-shadow: inset 0 0 8px #3a5a6a; animation: bd-window 10s ease-in-out infinite alternate; }
@keyframes bd-pillow { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes bd-father { 0% { transform: rotate(0deg); } 25% { transform: rotate(10deg) translateY(-2px); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes bd-mother { 0% { transform: rotate(0deg); } 30% { transform: rotate(-6deg); } 60% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes bd-blanket { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes bd-window { 0% { opacity:0.6; box-shadow: inset 0 0 8px #3a5a6a; } 50% { opacity:0.9; box-shadow: inset 0 0 16px #5a7a8a; } 100% { opacity:0.7; box-shadow: inset 0 0 8px #3a5a6a; } }

/* breeches-dialogue */
.scn-breeches-dialogue {
  background: linear-gradient(180deg, #2a1e12 0%, #1a120a 50%, #0e0a06 100%), radial-gradient(ellipse at 50% 50%, #3a2a18 0%, transparent 70%);
}
.scn-breeches-dialogue .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a18 0%, #1a1208 100%); border-radius: 0 0 10% 10%; }
.scn-breeches-dialogue .wall-bg { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #1e140c 0%, #2a1e12 100%); box-shadow: inset 0 0 20px #0a0604; }
.scn-breeches-dialogue .window { position:absolute; top:15%; left:10%; width:20%; height:35%; background: linear-gradient(135deg, #1a2a3a 0%, #0a1a2a 100%); border: 2px solid #2a1e12; border-radius: 4%; box-shadow: inset 0 0 8px #3a5a6a; animation: bdl-window 12s ease-in-out infinite alternate; }
.scn-breeches-dialogue .figure { position:absolute; width:18%; height:40%; background: radial-gradient(ellipse at 50% 60%, #2a1e12 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-breeches-dialogue .figure-father { bottom:15%; left:22%; animation: bdl-father 4s ease-in-out infinite; }
.scn-breeches-dialogue .figure-mother { bottom:15%; right:22%; animation: bdl-mother 5s ease-in-out infinite; }
.scn-breeches-dialogue .chair { position:absolute; bottom:18%; left:10%; width:14%; height:25%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -2px 4px #1a1008; animation: bdl-chair 6s ease-in-out infinite; }
.scn-breeches-dialogue .candle { position:absolute; top:35%; right:12%; width:4%; height:10%; background: linear-gradient(180deg, #f5c060 0%, #c09040 100%); border-radius: 10%; box-shadow: 0 0 16px #d09040; animation: bdl-candle 3s ease-in-out infinite; }
@keyframes bdl-window { 0% { opacity:0.5; box-shadow: inset 0 0 8px #3a5a6a; } 50% { opacity:0.8; box-shadow: inset 0 0 20px #5a7a8a; } 100% { opacity:0.6; box-shadow: inset 0 0 8px #3a5a6a; } }
@keyframes bdl-father { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(6deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-4deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes bdl-mother { 0% { transform: rotate(0deg); } 30% { transform: rotate(-5deg); } 60% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes bdl-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes bdl-candle { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1) rotate(-3deg); opacity:1; } 100% { transform: scale(0.95) rotate(2deg); opacity:0.8; } }

/* ───── noise-above-stairs (nas) ───── */
.scn-noise-above-stairs {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1a14 40%, #1a0a08 100%),
    radial-gradient(ellipse at 50% 65%, #3a2018 0%, transparent 60%);
}
.scn-noise-above-stairs .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a14 0%, transparent 100%);
  animation: nas-wall 18s ease-in-out infinite alternate;
}
.scn-noise-above-stairs .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0a08 0%, #2a1a14 50%, #1a1410 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: nas-floor 12s ease-in-out infinite alternate;
}
.scn-noise-above-stairs .fireplace {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 140px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0a08 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
}
.scn-noise-above-stairs .fire {
  position: absolute; bottom: 34%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #ff8010 0%, #c06020 40%, #6a2010 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #c06020, 0 0 60px 20px rgba(192,96,32,.4);
  animation: nas-fire 1.2s ease-in-out infinite alternate;
}
.scn-noise-above-stairs .figure-father {
  position: absolute; bottom: 32%; left: 38%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nas-father 4s ease-in-out infinite;
}
.scn-noise-above-stairs .figure-toby {
  position: absolute; bottom: 32%; right: 38%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nas-toby 5s ease-in-out infinite;
}
.scn-noise-above-stairs .shadow-stairs {
  position: absolute; top: 10%; right: 5%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 20% 20% 0 0;
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 20% 100%);
  animation: nas-shadow 8s ease-in-out infinite alternate;
}
@keyframes nas-wall {
  0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; }
}
@keyframes nas-floor {
  0% { background-position: 0 0; } 100% { background-position: 10px 0; }
}
@keyframes nas-fire {
  0% { transform: translateX(-50%) scaleY(1); opacity: .9; }
  25% { transform: translateX(-48%) scaleY(1.05); }
  50% { transform: translateX(-52%) scaleY(.95); opacity: 1; }
  75% { transform: translateX(-49%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(1); opacity: .85; }
}
@keyframes nas-father {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes nas-toby {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-3px) rotate(-1deg); }
  60% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes nas-shadow {
  0% { opacity: .3; transform: scaleY(1) translateY(0); }
  50% { opacity: .5; transform: scaleY(1.1) translateY(-5px); }
  100% { opacity: .2; transform: scaleY(1) translateY(0); }
}

/* ───── climate-character (cc) ───── */
.scn-climate-character {
  background:
    linear-gradient(180deg, #1a1020 0%, #2a1828 40%, #1a0a18 100%),
    radial-gradient(ellipse at 50% 40%, #3a2038 0%, transparent 60%);
}
.scn-climate-character .bg-room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1828 0%, transparent 100%);
  animation: cc-room 20s ease-in-out infinite alternate;
}
.scn-climate-character .window {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 140px;
  background: linear-gradient(180deg, #4a3a5a 0%, #3a2a4a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px rgba(255,255,255,.1);
  animation: cc-window 15s ease-in-out infinite alternate;
}
.scn-climate-character .desk {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 20px;
  background: linear-gradient(0deg, #1a0a08 0%, #2a1a18 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-climate-character .figure {
  position: absolute; bottom: 20%; left: 45%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #1a1018 0%, #0a060a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cc-figure 6s ease-in-out infinite;
}
.scn-climate-character .book {
  position: absolute; bottom: 22%; left: 52%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #4a3020 0%, #3a2010 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: cc-book 8s ease-in-out infinite alternate;
}
.scn-climate-character .candle {
  position: absolute; bottom: 22%; left: 48%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #c0a070 0%, #8a6a3a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 12px 4px #d0b080;
  animation: cc-candle 3s ease-in-out infinite alternate;
}
.scn-climate-character .glow {
  position: absolute; bottom: 25%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e0c090 0%, transparent 70%);
  filter: blur(8px);
  animation: cc-glow 4s ease-in-out infinite alternate;
}
@keyframes cc-room {
  0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; }
}
@keyframes cc-window {
  0% { box-shadow: inset 0 0 20px rgba(255,255,255,.05); }
  50% { box-shadow: inset 0 0 30px rgba(255,255,255,.15); }
  100% { box-shadow: inset 0 0 20px rgba(255,255,255,.08); }
}
@keyframes cc-figure {
  0% { transform: translateX(0) rotate(0); }
  33% { transform: translateX(-2px) rotate(-1deg); }
  66% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cc-book {
  0% { transform: rotate(-5deg) translateY(0); }
  100% { transform: rotate(-4deg) translateY(-2px); }
}
@keyframes cc-candle {
  0% { transform: scaleY(1) translateY(0); opacity: .8; }
  50% { transform: scaleY(1.05) translateY(-1px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: .85; }
}
@keyframes cc-glow {
  0% { opacity: .4; transform: scale(1); }
  50% { opacity: .6; transform: scale(1.1); }
  100% { opacity: .5; transform: scale(1); }
}

/* ───── dryden-addison-discovery (dad) ───── */
.scn-dryden-addison-discovery {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1a14 40%, #1a0a08 100%),
    radial-gradient(ellipse at 50% 30%, #3a2010 0%, transparent 60%);
}
.scn-dryden-addison-discovery .bg-shelves {
  position: absolute; inset: 0 0 40% 0;
  background:
    repeating-linear-gradient(90deg, transparent 0px, transparent 18px, #1a0e08 18px, #1a0e08 20px);
}
.scn-dryden-addison-discovery .desk {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 150px; height: 18px;
  background: linear-gradient(0deg, #1a0a08 0%, #2a1a18 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-dryden-addison-discovery .figure {
  position: absolute; bottom: 20%; left: 44%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dad-figure 7s ease-in-out infinite;
}
.scn-dryden-addison-discovery .book {
  position: absolute; bottom: 22%; left: 52%; width: 36px; height: 24px;
  background: linear-gradient(135deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 2px;
  transform: rotate(2deg);
  animation: dad-book 10s ease-in-out infinite alternate;
}
.scn-dryden-addison-discovery .candle {
  position: absolute; bottom: 22%; left: 48%; width: 6px; height: 22px;
  background: linear-gradient(180deg, #c0a070 0%, #8a6a3a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 12px 4px #d0b080;
  animation: dad-candle 2.8s ease-in-out infinite alternate;
}
.scn-dryden-addison-discovery .glow {
  position: absolute; bottom: 25%; left: 48%; width: 32px; height: 32px;
  background: radial-gradient(circle, #e0c090 0%, transparent 70%);
  filter: blur(10px);
  animation: dad-glow 5s ease-in-out infinite alternate;
}
.scn-dryden-addison-discovery .shadow {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 100%);
  animation: dad-shadow 9s ease-in-out infinite alternate;
}
@keyframes dad-figure {
  0% { transform: translateX(0) rotate(0); }
  40% { transform: translateX(-2px) rotate(-1deg); }
  80% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes dad-book {
  0% { transform: rotate(2deg) translateY(0); }
  100% { transform: rotate(4deg) translateY(-3px); }
}
@keyframes dad-candle {
  0% { transform: scaleY(1) translateY(0); opacity: .8; }
  50% { transform: scaleY(1.05) translateY(-1px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: .85; }
}
@keyframes dad-glow {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .6; transform: scale(1.1); }
  100% { opacity: .4; transform: scale(1); }
}
@keyframes dad-shadow {
  0% { opacity: .2; transform: translateX(-50%) scaleY(1); }
  50% { opacity: .4; transform: translateX(-50%) scaleY(1.2); }
  100% { opacity: .25; transform: translateX(-50%) scaleY(1); }
}

/* ───── gradual-knowledge (gk) ───── */
.scn-gradual-knowledge {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1a14 40%, #1a0a08 100%),
    radial-gradient(ellipse at 50% 50%, #3a2010 0%, transparent 60%);
}
.scn-gradual-knowledge .bg-wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a1a14 0%, transparent 100%);
  animation: gk-wall 16s ease-in-out infinite alternate;
}
.scn-gradual-knowledge .desk {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 16px;
  background: linear-gradient(0deg, #1a0a08 0%, #2a1a18 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-gradual-knowledge .lamp {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 40%, #d0b080 0%, #8a6a3a 60%, #1a0a08 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px #c0a070, 0 0 40px 12px rgba(192,160,112,.3);
  animation: gk-lamp 4s ease-in-out infinite alternate;
}
.scn-gradual-knowledge .papers {
  position: absolute; bottom: 22%; left: 46%; width: 70px; height: 20px;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 1px;
  transform: rotate(3deg);
  animation: gk-papers 12s ease-in-out infinite alternate;
}
.scn-gradual-knowledge .glow {
  position: absolute; bottom: 20%; left: 38%; width: 60px; height: 60px;
  background: radial-gradient(circle, #e0c090 0%, transparent 70%);
  filter: blur(12px);
  animation: gk-glow 6s ease-in-out infinite alternate;
}
.scn-gradual-knowledge .hand {
  position: absolute; bottom: 21%; left: 44%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #c0a880 0%, #a08060 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: gk-hand 4s ease-in-out infinite;
}
.scn-gradual-knowledge .inkwell {
  position: absolute; bottom: 22%; left: 54%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: gk-ink 20s ease-in-out infinite alternate;
}
@keyframes gk-wall {
  0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; }
}
@keyframes gk-lamp {
  0% { transform: scaleY(1); opacity: .8; }
  50% { transform: scaleY(1.08); opacity: 1; }
  100% { transform: scaleY(1); opacity: .85; }
}
@keyframes gk-papers {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes gk-glow {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .6; transform: scale(1.15); }
  100% { opacity: .4; transform: scale(1); }
}
@keyframes gk-hand {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-10px) rotate(-2deg); }
  60% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes gk-ink {
  0% { opacity: .6; transform: translateY(0); }
  100% { opacity: .8; transform: translateY(-3px); }
}

/* wilderness-reviewed */
.scn-wilderness-reviewed {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 50%, #1e140e 100%),
              radial-gradient(ellipse at 30% 20%, #4a3a2a 0%, transparent 70%);
}
.scn-wilderness-reviewed .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e140e 0%, #2a1e14 50%, #140e0a 100%);
  animation: wr-bg 12s ease-in-out infinite alternate;
}
.scn-wilderness-reviewed .bookshelf {
  position: absolute; top: 5%; left: 60%; width: 120px; height: 75%;
  background: linear-gradient(90deg, #4a2e1a 0%, #3a2212 50%, #2e1a0e 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 8px 12px rgba(0,0,0,.5);
  overflow: hidden;
  animation: wr-shelf 20s ease-in-out infinite;
}
.scn-wilderness-reviewed .armchair {
  position: absolute; bottom: 8%; left: 18%; width: 110px; height: 80px;
  background: linear-gradient(180deg, #6a3e2a 0%, #4a2818 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 -8px 20px rgba(0,0,0,.5), inset 0 12px 20px rgba(0,0,0,.3);
  animation: wr-chair 3s ease-in-out infinite alternate;
}
.scn-wilderness-reviewed .candle {
  position: absolute; bottom: 15%; left: 52%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #c8a06a 0%, #a08050 60%, #8a6a3a 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 10px rgba(200,160,100,.6), 0 0 60px 20px rgba(200,160,100,.3);
  animation: wr-candle 2.5s ease-in-out infinite alternate;
}
.scn-wilderness-reviewed .donkey-painting {
  position: absolute; top: 8%; left: 8%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%);
  border: 4px solid #2a1a0e; border-radius: 4px;
  box-shadow: 0 4px 15px rgba(0,0,0,.6);
  animation: wr-paint 5s ease-in-out infinite alternate;
}
.scn-wilderness-reviewed .reading-figure {
  position: absolute; bottom: 10%; left: 22%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr-figure 4s ease-in-out infinite;
}
.scn-wilderness-reviewed .book-page {
  position: absolute; bottom: 14%; left: 29%; width: 30px; height: 22px;
  background: linear-gradient(180deg, #c8b080 0%, #a09060 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: wr-page 6s ease-in-out infinite alternate;
}
@keyframes wr-bg {
  0% { opacity: .85; filter: brightness(0.8); }
  50% { opacity: 1; filter: brightness(1); }
  100% { opacity: .9; filter: brightness(0.9); }
}
@keyframes wr-shelf {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes wr-chair {
  0% { transform: rotate(-1deg) scaleY(1); }
  50% { transform: rotate(1deg) scaleY(1.02); }
  100% { transform: rotate(0) scaleY(0.98); }
}
@keyframes wr-candle {
  0% { box-shadow: 0 0 15px 5px rgba(200,160,100,.4), 0 0 40px 15px rgba(200,160,100,.2); height: 28px; }
  50% { box-shadow: 0 0 35px 15px rgba(200,160,100,.7), 0 0 70px 25px rgba(200,160,100,.4); height: 32px; }
  100% { box-shadow: 0 0 20px 8px rgba(200,160,100,.5), 0 0 50px 18px rgba(200,160,100,.3); height: 30px; }
}
@keyframes wr-paint {
  0% { transform: rotate(-3deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.05); }
  100% { transform: rotate(-1deg) scale(0.95); }
}
@keyframes wr-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(4px) rotate(1deg); }
  60% { transform: translateX(8px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes wr-page {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(-20deg); }
  100% { transform: rotateY(10deg); }
}

/* braying-world */
.scn-braying-world {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #1e140e 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-braying-world .bg {
  position: absolute; inset:0; background: linear-gradient(180deg, #1e1410 0%, #140e0a 100%);
  animation: bw-bg 15s ease-in-out infinite alternate;
}
.scn-braying-world .shelf {
  position: absolute; bottom: 35%; left: 5%; right: 5%; height: 12px;
  background: linear-gradient(180deg, #4a3222 0%, #2e1e12 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-braying-world .donkey-a {
  position: absolute; bottom: 38%; left: 10%; width: 25px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%; clip-path: polygon(0% 0%, 100% 0%, 100% 60%, 80% 100%, 20% 100%, 0% 60%);
  animation: bw-donkey 4s ease-in-out infinite;
}
.scn-braying-world .donkey-b {
  position: absolute; bottom: 38%; left: 40%; width: 25px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%; clip-path: polygon(0% 0%, 100% 0%, 100% 60%, 80% 100%, 20% 100%, 0% 60%);
  animation: bw-donkey 4.5s ease-in-out infinite 0.5s;
}
.scn-braying-world .donkey-c {
  position: absolute; bottom: 38%; right: 10%; width: 25px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%; clip-path: polygon(0% 0%, 100% 0%, 100% 60%, 80% 100%, 20% 100%, 0% 60%);
  animation: bw-donkey 3.8s ease-in-out infinite 1s;
}
.scn-braying-world .bray-wave {
  position: absolute; bottom: 43%; left: 50%; width: 18px; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,120,.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: bw-wave 1.5s ease-in-out infinite alternate;
}
.scn-braying-world .toy-ball {
  position: absolute; bottom: 30%; left: 70%; width: 16px; height: 16px;
  background: radial-gradient(circle at 30% 30%, #c8553d 0%, #a0461a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
  animation: bw-ball 2s ease-in-out infinite;
}
@keyframes bw-bg {
  0% { opacity: .8; filter: brightness(0.7); }
  50% { opacity: 1; filter: brightness(0.9); }
  100% { opacity: .9; filter: brightness(0.8); }
}
@keyframes bw-donkey {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-3px) rotate(5deg); }
  40% { transform: translateY(0) rotate(-3deg); }
  60% { transform: translateY(-2px) rotate(4deg); }
  80% { transform: translateY(1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes bw-wave {
  0% { transform: scaleX(1) scaleY(1); opacity: .3; }
  100% { transform: scaleX(1.5) scaleY(0.5); opacity: .7; }
}
@keyframes bw-ball {
  0% { transform: translateY(0) scale(1); }
  40% { transform: translateY(-40px) scale(1.1); }
  60% { transform: translateY(-10px) scale(0.9); }
  100% { transform: translateY(0) scale(1); }
}

/* vincent-quirino */
.scn-vincent-quirino {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 50%, #1e140e 100%),
              radial-gradient(ellipse at 50% 80%, #3a221a 0%, transparent 70%);
}
.scn-vincent-quirino .bg {
  position: absolute; inset:0; background: linear-gradient(180deg, #1e1410 0%, #0e0a08 100%);
  animation: vq-bg 10s ease-in-out infinite alternate;
}
.scn-vincent-quirino .fireplace {
  position: absolute; bottom: 5%; left: 50%; width: 140px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a221a 0%, #1e120e 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.7), 0 0 30px rgba(200,100,40,.2);
  overflow: hidden;
  animation: vq-fireplace 8s ease-in-out infinite;
}
.scn-vincent-quirino .uncle-toby {
  position: absolute; bottom: 20%; left: 32%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2e22 0%, #1e140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vq-toby 3s ease-in-out infinite;
}
.scn-vincent-quirino .clay-pot {
  position: absolute; bottom: 35%; left: 45%; width: 35px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: vq-pot 2s ease-in-out infinite 0.5s;
}
.scn-vincent-quirino .splinter-1 {
  position: absolute; bottom: 46%; left: 50%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2212 100%);
  border-radius: 2px;
  animation: vq-splinter 1.5s ease-out infinite;
}
.scn-vincent-quirino .splinter-2 {
  position: absolute; bottom: 46%; left: 50%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2212 100%);
  border-radius: 2px;
  animation: vq-splinter 1.8s ease-out infinite 0.3s;
}
.scn-vincent-quirino .splinter-3 {
  position: absolute; bottom: 46%; left: 50%; width: 5px; height: 15px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2212 100%);
  border-radius: 2px;
  animation: vq-splinter 2s ease-out infinite 0.6s;
}
.scn-vincent-quirino .smoke {
  position: absolute; bottom: 60%; left: 50%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,150,.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: vq-smoke 4s ease-out infinite;
}
@keyframes vq-bg {
  0% { opacity: .75; filter: brightness(0.6); }
  50% { opacity: .9; filter: brightness(0.8); }
  100% { opacity: .8; filter: brightness(0.7); }
}
@keyframes vq-fireplace {
  0% { transform: translateX(-50%) scaleY(1); box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 0 20px rgba(200,100,40,.1); }
  50% { transform: translateX(-50%) scaleY(1.02); box-shadow: inset 0 0 60px rgba(0,0,0,.8), 0 0 40px rgba(200,100,40,.3); }
  100% { transform: translateX(-50%) scaleY(0.98); box-shadow: inset 0 0 40px rgba(0,0,0,.7), 0 0 25px rgba(200,100,40,.15); }
}
@keyframes vq-toby {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(10px) rotate(-1deg); }
  75% { transform: translateX(15px) rotate(2deg); }
  100% { transform: translateX(20px) rotate(0); }
}
@keyframes vq-pot {
  0% { transform: scale(1) translateY(0); }
  30% { transform: scale(1.1) translateY(-5px); }
  50% { transform: scale(0.95) translateY(2px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes vq-splinter {
  0% { transform: translate(0,0) rotate(0deg) scale(1); opacity: 1; }
  50% { transform: translate(-20px, -30px) rotate(60deg) scale(0.8); opacity: .7; }
  100% { transform: translate(-50px, -80px) rotate(120deg) scale(0.3); opacity: 0; }
}
@keyframes vq-smoke {
  0% { transform: translate(-50%, 0) scale(0.5); opacity: .4; }
  50% { transform: translate(-50%, -20px) scale(1.2); opacity: .2; }
  100% { transform: translate(-50%, -60px) scale(2); opacity: 0; }
}

/* alphonsus-tostatus */
.scn-alphonsus-tostatus {
  background: linear-gradient(180deg, #1e1814 0%, #2c221c 50%, #1a1410 100%),
              radial-gradient(ellipse at 30% 20%, #3a2e22 0%, transparent 70%);
}
.scn-alphonsus-tostatus .bg {
  position: absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  animation: at-bg 14s ease-in-out infinite alternate;
}
.scn-alphonsus-tostatus .crib {
  position: absolute; bottom: 5%; left: 30%; width: 90px; height: 50px;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2212 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.5), inset 0 0 20px rgba(0,0,0,.3);
  animation: at-crib 6s ease-in-out infinite;
}
.scn-alphonsus-tostatus .baby {
  position: absolute; bottom: 10%; left: 38%; width: 20px; height: 22px;
  background: linear-gradient(180deg, #c8a88a 0%, #a0886a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: at-baby 4s ease-in-out infinite alternate;
}
.scn-alphonsus-tostatus .book-stack {
  position: absolute; bottom: 15%; left: 60%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 8px rgba(0,0,0,.4);
  animation: at-books 8s ease-in-out infinite;
}
.scn-alphonsus-tostatus .lamp {
  position: absolute; top: 10%; right: 20%; width: 15px; height: 25px;
  background: linear-gradient(180deg, #c8a06a 0%, #8a6a3a 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 8px rgba(200,160,100,.5), 0 0 60px 16px rgba(200,160,100,.2);
  animation: at-lamp 3s ease-in-out infinite alternate;
}
.scn-alphonsus-tostatus .scholar-cap {
  position: absolute; bottom: 14%; left: 36%; width: 18px; height: 10px;
  background: linear-gradient(180deg, #4a3222 0%, #2a1a12 100%);
  border-radius: 50% 50% 0 0; transform: rotate(-10deg);
  animation: at-cap 5s ease-in-out infinite alternate;
}
.scn-alphonsus-tostatus .glowing-block {
  position: absolute; top: 40%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #c8b060 0%, transparent 100%);
  border-radius: 2px; box-shadow: 0 0 20px 6px rgba(200,176,96,.6);
  animation: at-glow 2s ease-in-out infinite alternate;
}
@keyframes at-bg {
  0% { opacity: .7; filter: brightness(0.6); }
  50% { opacity: .9; filter: brightness(0.85); }
  100% { opacity: .8; filter: brightness(0.75); }
}
@keyframes at-crib {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(1px); }
}
@keyframes at-baby {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-4px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes at-books {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05) translateY(-2px); }
  100% { transform: scaleY(0.95); }
}
@keyframes at-lamp {
  0% { box-shadow: 0 0 15px 4px rgba(200,160,100,.3), 0 0 40px 12px rgba(200,160,100,.1); }
  50% { box-shadow: 0 0 35px 12px rgba(200,160,100,.6), 0 0 70px 20px rgba(200,160,100,.3); }
  100% { box-shadow: 0 0 20px 6px rgba(200,160,100,.4), 0 0 50px 15px rgba(200,160,100,.15); }
}
@keyframes at-cap {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes at-glow {
  0% { transform: scale(0.5); opacity: .3; }
  50% { transform: scale(1.5); opacity: .8; }
  100% { transform: scale(0.8); opacity: .6; }
}

/* stranger-journeys – moonlit + warm mood */
.scn-stranger-journeys {
  background: linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 50%, #3a4a6a 100%),
              radial-gradient(ellipse at 50% 0%, #4a6a8a 0%, transparent 70%);
}
.scn-stranger-journeys .moon {
  position: absolute; top: 8%; left: 65%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,220,240,0.4);
  animation: sj-moon-glow 6s ease-in-out infinite alternate;
}
.scn-stranger-journeys .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, rgba(20,30,60,0.6) 0%, transparent 100%);
  animation: sj-sky-pulse 12s ease-in-out infinite alternate;
}
.scn-stranger-journeys .road {
  position: absolute; bottom: 0; left: -10%; right: -10%; height: 40%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: sj-road-shift 18s ease-in-out infinite;
}
.scn-stranger-journeys .rider {
  position: absolute; bottom: 32%; left: 40%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sj-rider-bob 4s ease-in-out infinite;
}
.scn-stranger-journeys .mule {
  position: absolute; bottom: 28%; left: 36%; width: 40px; height: 22px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 50% 30% 20% / 60% 50% 40% 40%;
  transform-origin: center bottom;
  animation: sj-mule-walk 4s ease-in-out infinite;
}
.scn-stranger-journeys .lantern {
  position: absolute; bottom: 38%; left: 42%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #e0a040, 0 0 24px 8px rgba(224,160,64,0.5);
  animation: sj-lantern-sway 3s ease-in-out infinite;
}
.scn-stranger-journeys .stars {
  position: absolute; top: 5%; left: 10%; width: 2px; height: 2px;
  background: #d0d8e0;
  border-radius: 50%;
  box-shadow: 30px 20px 0 0 #d0d8e0, 60px 40px 0 0 #c0c8d0, 90px 10px 0 0 #e0e8f0, 120px 50px 0 0 #b0b8c0, 40px 60px 0 0 #d0d8e0;
  animation: sj-twinkle 4s ease-in-out infinite alternate;
}
@keyframes sj-moon-glow {
  0% { box-shadow: 0 0 20px 6px rgba(200,220,240,0.3); transform: scale(1); }
  50% { box-shadow: 0 0 40px 12px rgba(200,220,240,0.6); transform: scale(1.03); }
  100% { box-shadow: 0 0 25px 8px rgba(200,220,240,0.4); transform: scale(0.98); }
}
@keyframes sj-sky-pulse {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes sj-road-shift {
  0% { transform: translateX(0); }
  50% { transform: translateX(-3px); }
  100% { transform: translateX(0); }
}
@keyframes sj-rider-bob {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes sj-mule-walk {
  0%,100% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes sj-lantern-sway {
  0%,100% { transform: translate(0,0) rotate(-2deg); }
  50% { transform: translate(1px,-1px) rotate(2deg); }
}
@keyframes sj-twinkle {
  0% { opacity: 0.3; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}

/* stranger-laments – dark moonlit */
.scn-stranger-laments {
  background: linear-gradient(180deg, #0e1420 0%, #1a1e30 50%, #24283a 100%),
              radial-gradient(ellipse at 50% 100%, #2a3050 0%, transparent 70%);
}
.scn-stranger-laments .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(20,25,40,0.7) 0%, transparent 100%);
  animation: sl-sky-fade 15s ease-in-out infinite alternate;
}
.scn-stranger-laments .road {
  position: absolute; bottom: 0; left: -5%; right: -5%; height: 38%;
  background: linear-gradient(180deg, #2e2a24 0%, #1e1a14 100%);
  clip-path: polygon(15% 0%, 85% 0%, 100% 100%, 0% 100%);
  animation: sl-road-move 20s ease-in-out infinite;
}
.scn-stranger-laments .rider {
  position: absolute; bottom: 30%; left: 45%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #101018 0%, #08080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sl-rider-sway 5s ease-in-out infinite;
}
.scn-stranger-laments .mule {
  position: absolute; bottom: 26%; left: 42%; width: 38px; height: 20px;
  background: linear-gradient(180deg, #1a1a24 0%, #0e0e18 100%);
  border-radius: 30% 50% 30% 20% / 60% 50% 40% 40%;
  animation: sl-mule-step 5s ease-in-out infinite;
}
.scn-stranger-laments .cloak {
  position: absolute; bottom: 34%; left: 48%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #0a0a14 0%, #04040a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: top center;
  animation: sl-cloak-flap 3s ease-in-out infinite;
}
.scn-stranger-laments .cloud-a {
  position: absolute; top: 10%; left: 15%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(180,190,200,0.3) 0%, rgba(180,190,200,0.05) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: sl-drift-a 45s linear infinite;
}
.scn-stranger-laments .cloud-b {
  position: absolute; top: 20%; right: 10%; width: 60px; height: 12px;
  background: linear-gradient(180deg, rgba(180,190,200,0.2) 0%, rgba(180,190,200,0.02) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: sl-drift-b 55s linear infinite reverse;
}
.scn-stranger-laments .distant-light {
  position: absolute; bottom: 38%; left: 70%; width: 4px; height: 4px;
  background: radial-gradient(circle, #b0a080 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(176,160,128,0.6);
  animation: sl-light-flicker 4s ease-in-out infinite alternate;
}
@keyframes sl-sky-fade {
  0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.6; }
}
@keyframes sl-road-move {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes sl-rider-sway {
  0%,100% { transform: translateY(0) rotate(0) scaleX(1); }
  50% { transform: translateY(-1px) rotate(2deg) scaleX(0.95); }
}
@keyframes sl-mule-step {
  0%,100% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-1px) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes sl-cloak-flap {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
}
@keyframes sl-drift-a {
  0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); }
}
@keyframes sl-drift-b {
  0% { transform: translateX(0); } 100% { transform: translateX(-100vw); }
}
@keyframes sl-light-flicker {
  0% { opacity: 0.3; box-shadow: 0 0 5px 1px rgba(176,160,128,0.3); }
  50% { opacity: 1; box-shadow: 0 0 15px 4px rgba(176,160,128,0.8); }
  100% { opacity: 0.5; box-shadow: 0 0 8px 2px rgba(176,160,128,0.5); }
}

/* queen-mab-dreams – funny dark dreamscape */
.scn-queen-mab-dreams {
  background: linear-gradient(135deg, #1a1028 0%, #2a2040 50%, #3a3050 100%),
              radial-gradient(circle at 30% 20%, #4a3a6a 0%, transparent 60%);
}
.scn-queen-mab-dreams .stranger-sleeping {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qm-sleep 8s ease-in-out infinite;
}
.scn-queen-mab-dreams .queen-mab {
  position: absolute; top: 15%; right: 25%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #c0b0e0 0%, #9080b0 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  clip-path: polygon(0% 20%, 100% 20%, 80% 100%, 20% 100%);
  animation: qm-fly 6s ease-in-out infinite;
}
.scn-queen-mab-dreams .nose-1 {
  position: absolute; top: 40%; left: 20%; width: 10px; height: 16px;
  background: radial-gradient(circle, #d0a070 0%, #a08050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: qm-nose-bob 4s ease-in-out infinite;
}
.scn-queen-mab-dreams .nose-2 {
  position: absolute; top: 45%; left: 50%; width: 12px; height: 18px;
  background: radial-gradient(circle, #c09060 0%, #907040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: qm-nose-bob 5s ease-in-out infinite 0.5s;
}
.scn-queen-mab-dreams .nose-3 {
  position: absolute; bottom: 35%; right: 20%; width: 8px; height: 14px;
  background: radial-gradient(circle, #b08050 0%, #806030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: qm-nose-bob 3.5s ease-in-out infinite 1s;
}
.scn-queen-mab-dreams .sparkles {
  position: absolute; top: 10%; left: 5%; width: 3px; height: 3px;
  background: #e0d0f0;
  border-radius: 50%;
  box-shadow: 40px 30px 0 0 #e0d0f0, 80px 60px 0 0 #d0c0e0, 120px 20px 0 0 #f0e0ff, 60px 80px 0 0 #d0c0e0;
  animation: qm-sparkle 2s ease-in-out infinite alternate;
}
.scn-queen-mab-dreams .moon-slice {
  position: absolute; top: 5%; left: 10%; width: 30px; height: 30px;
  background: radial-gradient(circle at 65% 50%, #e0e8f0 0%, transparent 100%);
  border-radius: 50%;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: qm-moon-grin 10s ease-in-out infinite;
}
@keyframes qm-sleep {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes qm-fly {
  0%,100% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-10px) rotate(5deg); }
  50% { transform: translateY(-5px) rotate(-3deg); }
  75% { transform: translateY(-12px) rotate(2deg); }
}
@keyframes qm-nose-bob {
  0%,100% { transform: translateY(0) rotate(15deg); }
  50% { transform: translateY(-3px) rotate(20deg); }
}
@keyframes qm-sparkle {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes qm-moon-grin {
  0% { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); }
  50% { clip-path: polygon(10% 30%, 90% 20%, 80% 80%, 20% 70%); }
  100% { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); }
}

/* nuns-and-buns – funny dark interior */
.scn-nuns-and-buns {
  background: linear-gradient(180deg, #1a1418 0%, #2a2024 50%, #3a2a30 100%),
              radial-gradient(circle at 30% 50%, #4a3038 0%, transparent 70%);
}
.scn-nuns-and-buns .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2226 0%, #1a1216 100%);
  border-bottom: 4px solid #3a2a30;
  animation: nb-wall-shimmer 20s ease-in-out infinite;
}
.scn-nuns-and-buns .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1216 0%, #100a0e 100%);
}
.scn-nuns-and-buns .bed-left {
  position: absolute; bottom: 22%; left: 10%; width: 35%; height: 18%;
  background: linear-gradient(180deg, #4a3a3e 0%, #2a1a1e 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%;
  animation: nb-bed-tilt 6s ease-in-out infinite;
}
.scn-nuns-and-buns .bed-right {
  position: absolute; bottom: 22%; right: 10%; width: 35%; height: 18%;
  background: linear-gradient(180deg, #4a3a3e 0%, #2a1a1e 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%;
  animation: nb-bed-tilt 7s ease-in-out infinite 0.5s;
}
.scn-nuns-and-buns .nun-a {
  position: absolute; bottom: 28%; left: 20%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #2a2024 0%, #1a1014 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nb-toss 3s ease-in-out infinite;
}
.scn-nuns-and-buns .nun-b {
  position: absolute; bottom: 28%; right: 22%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #2a2024 0%, #1a1014 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nb-toss 3.5s ease-in-out infinite 0.8s;
}
.scn-nuns-and-buns .fire {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 25px;
  background: radial-gradient(circle at 50% 60%, #c8553d 0%, #a0461a 50%, transparent 80%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(200,85,61,0.5);
  animation: nb-fire-dance 2s ease-in-out infinite infinite;
}
.scn-nuns-and-buns .window {
  position: absolute; top: 15%; left: 40%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 50%, #2a3a5a 0%, #1a2a3a 100%);
  border: 3px solid #3a2a30;
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: inset 0 0 10px 2px rgba(40,60,80,0.6);
  animation: nb-window-glow 8s ease-in-out infinite alternate;
}
@keyframes nb-wall-shimmer {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.75; }
}
@keyframes nb-bed-tilt {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes nb-toss {
  0%,100% { transform: translateY(0) rotate(0) scaleY(1); }
  25% { transform: translateY(-3px) rotate(5deg) scaleY(1.1); }
  75% { transform: translateY(-2px) rotate(-3deg) scaleY(0.9); }
}
@keyframes nb-fire-dance {
  0%,100% { transform: scale(1) rotate(0); filter: brightness(0.8); }
  25% { transform: scale(1.05) rotate(2deg); filter: brightness(1.1); }
  50% { transform: scale(0.95) rotate(-1deg); filter: brightness(0.9); }
  75% { transform: scale(1.02) rotate(3deg); filter: brightness(1); }
}
@keyframes nb-window-glow {
  0% { box-shadow: inset 0 0 10px 2px rgba(40,60,80,0.6); }
  50% { box-shadow: inset 0 0 20px 4px rgba(60,80,100,0.8); }
  100% { box-shadow: inset 0 0 10px 2px rgba(40,60,80,0.6); }
}

.scn-attack-begun { background: linear-gradient(180deg, #6fa8dc 0%, #e6b85c 50%, #d4883a 100%), radial-gradient(ellipse at 50% 0%, #e6b85c 0%, transparent 60%); }
.scn-attack-begun .sky   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #7ab8e0 0%, transparent 100%); animation: atk-sky 15s ease-in-out infinite alternate; }
.scn-attack-begun .sun   { position:absolute; top:8%; left:70%; width:70px; height:70px; background: radial-gradient(circle, #ffe066 0%, #e6b85c 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(230,184,92,.5); animation: atk-sun 12s ease-in-out infinite alternate; }
.scn-attack-begun .fort-wall { position:absolute; bottom:30%; left:10%; width:60%; height:40%; background: linear-gradient(180deg, #b0884a 0%, #7a5a30 100%); border-radius: 0 0 8% 8% / 0 0 12% 12%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: atk-wall 18s ease-in-out infinite; }
.scn-attack-begun .ground { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(180deg, #8a6a30 0%, #5a4a20 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-attack-begun .soldier-1 { position:absolute; bottom:28%; left:25%; width:16px; height:40px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atk-soldier1 4s ease-in-out infinite; }
.scn-attack-begun .soldier-2 { position:absolute; bottom:30%; left:40%; width:14px; height:36px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atk-soldier2 3.5s ease-in-out infinite 0.5s; }
.scn-attack-begun .cannon { position:absolute; bottom:31%; left:20%; width:40px; height:16px; background: linear-gradient(90deg, #4a3a20 0%, #8a6a40 50%, #4a3a20 100%); border-radius: 40% 20% 20% 40% / 60% 40% 40% 60%; transform-origin: 20% center; animation: atk-cannon 6s ease-in-out infinite; }
.scn-attack-begun .flag  { position:absolute; bottom:55%; left:48%; width:4px; height:50px; background: #6a4a20; animation: atk-flag 8s ease-in-out infinite; }
.scn-attack-begun .flag::before { content:''; position:absolute; top:0; left:4px; width:24px; height:14px; background: #c07030; border-radius:0 50% 50% 0; }
@keyframes atk-sky     { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes atk-sun     { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(.95); opacity:.85 } }
@keyframes atk-wall    { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes atk-soldier1{ 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(10px) translateY(-3px) rotate(2deg) } 60% { transform: translateX(20px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(30px) translateY(0) rotate(0) } }
@keyframes atk-soldier2{ 0% { transform: translateX(0) translateY(0) rotate(1deg) } 40% { transform: translateX(-8px) translateY(-2px) rotate(-2deg) } 70% { transform: translateX(-16px) translateY(0) rotate(1deg) } 100% { transform: translateX(-24px) translateY(0) rotate(0) } }
@keyframes atk-cannon  { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(-5px) } 100% { transform: rotate(4deg) translateX(2px) } }
@keyframes atk-flag    { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

.scn-corporal-firing { background: linear-gradient(180deg, #8fc4e0 0%, #f0d080 50%, #d4a040 100%), radial-gradient(ellipse at 60% 20%, #ffe080 0%, transparent 50%); }
.scn-corporal-firing .sky   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #a0d4f0 0%, transparent 100%); animation: cf-sky 20s ease-in-out infinite alternate; }
.scn-corporal-firing .sun   { position:absolute; top:5%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #ffe680 0%, #f0b040 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(240,176,64,.4); animation: cf-sun 10s ease-in-out infinite alternate; }
.scn-corporal-firing .ground{ position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #9a7a40 0%, #5a4a20 100%); border-radius: 40% 60% 0 0 / 30% 50% 0 0; }
.scn-corporal-firing .corporal { position:absolute; bottom:28%; left:35%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cf-corporal 2s ease-in-out infinite; }
.scn-corporal-firing .cannon { position:absolute; bottom:30%; left:60%; width:50px; height:20px; background: linear-gradient(90deg, #5a3a1a 0%, #8a6a40 50%, #5a3a1a 100%); border-radius: 40% 20% 20% 40% / 60% 40% 40% 60%; transform-origin: 20% center; animation: cf-cannon 1.5s ease-in-out infinite; }
.scn-corporal-firing .smoke-puff { position:absolute; bottom:40%; left:65%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,255,240,0.8) 0%, rgba(200,200,180,0.3) 70%, transparent 100%); border-radius:50%; animation: cf-smoke 3s ease-out infinite; }
.scn-corporal-firing .hat   { position:absolute; bottom:50%; left:25%; width:20px; height:12px; background: #8a6a40; border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: cf-hat 2.5s ease-in-out infinite; }
@keyframes cf-sky      { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes cf-sun      { 0% { transform: scale(.95); opacity:.8 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(1); opacity:.9 } }
@keyframes cf-corporal { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-6px) rotate(4deg) } 60% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cf-cannon   { 0% { transform: rotate(0deg) scaleX(1) } 25% { transform: rotate(-10deg) scaleX(1.1) } 50% { transform: rotate(5deg) scaleX(1) } 75% { transform: rotate(-5deg) scaleX(0.9) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes cf-smoke    { 0% { transform: scale(.2); opacity:1 } 40% { transform: scale(1.5); opacity:.6 } 100% { transform: scale(2.5); opacity:0 } }
@keyframes cf-hat      { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(20deg) translateY(-12px) } 60% { transform: rotate(-15deg) translateY(-6px) } 100% { transform: rotate(0deg) translateY(0) } }

.scn-tobacco-cannons { background: linear-gradient(180deg, #6fa8dc 0%, #e6c070 50%, #c89040 100%), radial-gradient(ellipse at 50% 100%, #e6c070 0%, transparent 70%); }
.scn-tobacco-cannons .sky    { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #9ac0e0 0%, transparent 100%); animation: tc-sky 18s ease-in-out infinite alternate; }
.scn-tobacco-cannons .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a6a30 0%, #4a3a10 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-tobacco-cannons .cannon-1, .cannon-2, .cannon-3 { position:absolute; bottom:22%; width:40px; height:18px; background: linear-gradient(90deg, #5a3a1a 0%, #9a7a40 50%, #5a3a1a 100%); border-radius: 40% 20% 20% 40% / 60% 40% 40% 60%; }
.scn-tobacco-cannons .cannon-1 { left:15%; animation: tc-cannon1 4s ease-in-out infinite; }
.scn-tobacco-cannons .cannon-2 { left:40%; animation: tc-cannon2 4.5s ease-in-out infinite 0.3s; }
.scn-tobacco-cannons .cannon-3 { left:65%; animation: tc-cannon3 5s ease-in-out infinite 0.6s; }
.scn-tobacco-cannons .pipe-1, .pipe-2 { position:absolute; bottom:24%; width:6px; height:50px; background: #6a4a20; border-radius: 20% 20% 50% 50% / 10% 10% 60% 60%; transform-origin: bottom center; }
.scn-tobacco-cannons .pipe-1 { left:20%; transform: rotate(30deg); animation: tc-pipe1 3s ease-in-out infinite; }
.scn-tobacco-cannons .pipe-2 { left:50%; transform: rotate(-20deg); animation: tc-pipe2 3.5s ease-in-out infinite 0.5s; }
.scn-tobacco-cannons .smoke-1, .smoke-2 { position:absolute; bottom:50%; width:50px; height:50px; background: radial-gradient(circle, rgba(255,255,230,0.7) 0%, rgba(200,200,180,0.3) 70%, transparent 100%); border-radius:50%; }
.scn-tobacco-cannons .smoke-1 { left:25%; animation: tc-smoke1 8s ease-out infinite; }
.scn-tobacco-cannons .smoke-2 { left:55%; animation: tc-smoke2 9s ease-out infinite 1s; }
@keyframes tc-sky     { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tc-cannon1 { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(5deg) translateY(-3px) } 60% { transform: rotate(-3deg) translateY(0) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes tc-cannon2 { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(-4deg) translateY(-2px) } 60% { transform: rotate(2deg) translateY(0) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes tc-cannon3 { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(6deg) translateY(-4px) } 60% { transform: rotate(-2deg) translateY(0) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes tc-pipe1   { 0% { transform: rotate(30deg) scaleY(1) } 50% { transform: rotate(35deg) scaleY(1.05) } 100% { transform: rotate(25deg) scaleY(1) } }
@keyframes tc-pipe2   { 0% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-25deg) scaleY(1.05) } 100% { transform: rotate(-15deg) scaleY(1) } }
@keyframes tc-smoke1  { 0% { transform: scale(.3) translateY(0); opacity:1 } 40% { transform: scale(1.5) translateY(-20px); opacity:.5 } 100% { transform: scale(3) translateY(-50px); opacity:0 } }
@keyframes tc-smoke2  { 0% { transform: scale(.3) translateY(0); opacity:1 } 40% { transform: scale(1.5) translateY(-25px); opacity:.5 } 100% { transform: scale(3) translateY(-55px); opacity:0 } }

.scn-corporal-vs-sentry-box { background: linear-gradient(180deg, #8fc4e0 0%, #f0d080 40%, #d4a040 100%), radial-gradient(ellipse at 70% 30%, #ffe080 0%, transparent 50%); }
.scn-corporal-vs-sentry-box .sky   { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #a0d4f0 0%, transparent 100%); animation: cvb-sky 22s ease-in-out infinite alternate; }
.scn-corporal-vs-sentry-box .sun   { position:absolute; top:8%; left:75%; width:55px; height:55px; background: radial-gradient(circle, #ffe680 0%, #f0b040 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 12px rgba(240,176,64,.4); animation: cvb-sun 11s ease-in-out infinite alternate; }
.scn-corporal-vs-sentry-box .ground{ position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a6a30 0%, #4a3a10 100%); border-radius: 20% 80% 0 0 / 30% 50% 0 0; }
.scn-corporal-vs-sentry-box .cannon { position:absolute; bottom:18%; left:20%; width:45px; height:18px; background: linear-gradient(90deg, #5a3a1a 0%, #9a7a40 50%, #5a3a1a 100%); border-radius: 40% 20% 20% 40% / 60% 40% 40% 60%; transform-origin: 15% center; animation: cvb-cannon 3s ease-in-out infinite; }
.scn-corporal-vs-sentry-box .corporal { position:absolute; bottom:16%; left:10%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cvb-corporal 2s ease-in-out infinite; }
.scn-corporal-vs-sentry-box .sentry-box { position:absolute; bottom:16%; right:25%; width:30px; height:50px; background: linear-gradient(180deg, #c0a070 0%, #8a6a40 100%); border-radius: 10% 10% 5% 5% / 15% 15% 5% 5%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.3); animation: cvb-sentry 6s ease-in-out infinite; }
.scn-corporal-vs-sentry-box .sentry-box::after { content:''; position:absolute; top:10%; left:10%; width:80%; height:60%; background: linear-gradient(180deg, #5a4a20 0%, #3a2a10 100%); border-radius: 5%; }
.scn-corporal-vs-sentry-box .smoke-puff { position:absolute; bottom:30%; left:30%; width:35px; height:35px; background: radial-gradient(circle, rgba(255,255,240,0.8) 0%, rgba(200,200,180,0.3) 70%, transparent 100%); border-radius:50%; animation: cvb-smoke 2.5s ease-out infinite; }
.scn-corporal-vs-sentry-box .target-flag { position:absolute; bottom:40%; right:20%; width:3px; height:45px; background: #7a5a30; animation: cvb-flag 5s ease-in-out infinite; }
.scn-corporal-vs-sentry-box .target-flag::before { content:''; position:absolute; top:0; right:3px; width:20px; height:12px; background: #a07040; border-radius:0 50% 50% 0; }
@keyframes cvb-sky     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes cvb-sun     { 0% { transform: scale(1); opacity:.85 } 50% { transform: scale(1.04); opacity:1 } 100% { transform: scale(.97); opacity:.9 } }
@keyframes cvb-cannon  { 0% { transform: rotate(0deg) translateX(0) scaleX(1) } 30% { transform: rotate(6deg) translateX(-3px) scaleX(1.05) } 60% { transform: rotate(-4deg) translateX(2px) scaleX(.95) } 100% { transform: rotate(0deg) translateX(0) scaleX(1) } }
@keyframes cvb-corporal{ 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-5px) rotate(3deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 75% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cvb-sentry  { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cvb-smoke   { 0% { transform: scale(.2); opacity:1 } 30% { transform: scale(1.2); opacity:.6 } 100% { transform: scale(2); opacity:0 } }
@keyframes cvb-flag    { 0% { transform: rotate(-4deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-4deg) } }

/* Scene: date-chosen */
.scn-date-chosen { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 70%, #1a1a0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 80%); }
.scn-date-chosen .bg-wall  { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-date-chosen .table    { position:absolute; bottom:20%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-date-chosen .candle   { position:absolute; bottom:40%; left:35%; width:12px; height:40px; background: linear-gradient(180deg, #d4a050 0%, #a07030 100%); border-radius: 4px 4px 2px 2px; }
.scn-date-chosen .candle-flame { position:absolute; bottom:78%; left:35%; width:8px; height:18px; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ff8020 40%, #601000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 24px 8px #ff8020, 0 0 48px 16px rgba(255,128,32,.3); animation: dc-flame 2.5s ease-in-out infinite alternate; }
.scn-date-chosen .inkwell  { position:absolute; bottom:28%; left:25%; width:20px; height:18px; background: radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30%; animation: dc-ink 8s ease-in-out infinite; }
.scn-date-chosen .quill    { position:absolute; bottom:32%; left:30%; width:30px; height:6px; background: linear-gradient(180deg, #c0a070 0%, #806040 100%); border-radius: 0 80% 80% 0; transform-origin: left center; animation: dc-quill 4s ease-in-out infinite; }
.scn-date-chosen .dust-a, .scn-date-chosen .dust-b { position:absolute; width:4px; height:4px; background: rgba(255,200,100,.15); border-radius:50%; filter: blur(2px); }
.scn-date-chosen .dust-a  { top:30%; left:50%; animation: dc-dust 22s linear infinite; }
.scn-date-chosen .dust-b  { top:60%; left:20%; animation: dc-dust 28s linear infinite 5s; }
@keyframes dc-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.3) translateY(-3px); opacity:1 } 100% { transform: scaleY(.9) translateY(1px); opacity:.8 } }
@keyframes dc-ink   { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.05) } }
@keyframes dc-quill { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes dc-dust  { 0% { transform: translate(0, 0); opacity:0 } 10% { opacity:.5 } 90% { opacity:.5 } 100% { transform: translate(150vw, -40vh); opacity:0 } }

/* Scene: geography-chronology */
.scn-geography-chronology { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a1a0a 100%), radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%); }
.scn-geography-chronology .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-geography-chronology .table   { position:absolute; bottom:18%; left:10%; right:10%; height:22%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-geography-chronology .map     { position:absolute; bottom:25%; left:30%; width:45%; height:30%; background: linear-gradient(135deg, #b09060 0%, #907040 100%); border: 2px solid #604020; border-radius: 4px; animation: gc-map 12s ease-in-out infinite alternate; }
.scn-geography-chronology .figure-toby { position:absolute; bottom:20%; left:20%; width:28px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-figbob 3s ease-in-out infinite; }
.scn-geography-chronology .figure-trim { position:absolute; bottom:20%; left:55%; width:30px; height:58px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-figbob 3.5s ease-in-out infinite 0.5s; }
.scn-geography-chronology .candle   { position:absolute; bottom:40%; left:50%; width:12px; height:40px; background: linear-gradient(180deg, #d4a050 0%, #a07030 100%); border-radius: 4px 4px 2px 2px; transform: translateX(-50%); }
.scn-geography-chronology .candle-flame { position:absolute; bottom:78%; left:50%; width:8px; height:18px; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ff8020 40%, #601000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); box-shadow: 0 0 24px 8px #ff8020, 0 0 48px 16px rgba(255,128,32,.3); animation: gc-flame 2.8s ease-in-out infinite alternate; }
.scn-geography-chronology .shadow   { position:absolute; bottom:16%; left:15%; right:15%; height:6px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 100%); animation: gc-shadow 4s ease-in-out infinite; }
@keyframes gc-map { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(1deg) scale(1.02) } 100% { transform: rotate(0) scale(1) } }
@keyframes gc-figbob { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes gc-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.25) translateY(-2px); opacity:1 } 100% { transform: scaleY(.9) translateY(1px); opacity:.8 } }
@keyframes gc-shadow { 0%,100% { opacity:.5; transform: scaleX(1) } 50% { opacity:.8; transform: scaleX(1.2) } }

/* Scene: soldier-knowledge (warm mood) */
.scn-soldier-knowledge { background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 40%, #2a0a00 100%), radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 70%); }
.scn-soldier-knowledge .bg-wall   { position:absolute; inset:0; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%); }
.scn-soldier-knowledge .table     { position:absolute; bottom:15%; left:5%; right:5%; height:25%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 12px; box-shadow: 0 -4px 16px rgba(0,0,0,.7); }
.scn-soldier-knowledge .map-sheet { position:absolute; bottom:28%; left:20%; right:20%; height:25%; background: linear-gradient(135deg, #c0a060 0%, #a08040 100%); border: 2px solid #604020; border-radius: 2px; animation: sk-maps 15s ease-in-out infinite; }
.scn-soldier-knowledge .fig-toby  { position:absolute; bottom:20%; left:15%; width:30px; 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: sk-figbob 4s ease-in-out infinite; }
.scn-soldier-knowledge .fig-trim  { position:absolute; bottom:20%; right:15%; width:28px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sk-figbob 4.5s ease-in-out infinite 1s; }
.scn-soldier-knowledge .candle    { position:absolute; bottom:40%; left:8%; width:14px; height:45px; background: linear-gradient(180deg, #e0b060 0%, #b08040 100%); border-radius: 4px 4px 2px 2px; }
.scn-soldier-knowledge .candle-flame { position:absolute; bottom:88%; left:8%; width:10px; height:22px; background: radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, #ff9020 40%, #601000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 28px 10px #ff9020, 0 0 56px 20px rgba(255,144,32,.3); animation: sk-flame 2.2s ease-in-out infinite alternate; }
.scn-soldier-knowledge .compass   { position:absolute; bottom:32%; left:42%; width:24px; height:24px; background: radial-gradient(circle, #806040 0%, #403020 80%); border-radius:50%; border: 2px solid #a08050; animation: sk-compass 10s linear infinite; }
.scn-soldier-knowledge .road-a, .scn-soldier-knowledge .road-b { position:absolute; height:3px; background: linear-gradient(90deg, transparent, #604020, transparent); }
.scn-soldier-knowledge .road-a    { bottom:40%; left:25%; right:35%; animation: sk-road 6s ease-in-out infinite; }
.scn-soldier-knowledge .road-b    { bottom:48%; left:30%; right:30%; animation: sk-road 8s ease-in-out infinite 2s; }
@keyframes sk-maps { 0% { transform: rotate(-1deg) scale(1) } 50% { transform: rotate(2deg) scale(1.03) } 100% { transform: rotate(0) scale(1) } }
@keyframes sk-figbob { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes sk-flame { 0% { transform: scaleY(1) translateY(0); opacity:.85 } 50% { transform: scaleY(1.4) translateY(-4px); opacity:1 } 100% { transform: scaleY(.8) translateY(2px); opacity:.75 } }
@keyframes sk-compass { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes sk-road { 0% { opacity:.2; transform: scaleX(.8) } 50% { opacity:.5; transform: scaleX(1.1) } 100% { opacity:.2; transform: scaleX(.8) } }

/* Scene: chinese-boast (funny) */
.scn-chinese-boast { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a1a0a 100%), radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%); }
.scn-chinese-boast .bg-wall    { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-chinese-boast .table      { position:absolute; bottom:15%; left:8%; right:8%; height:25%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 12px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-chinese-boast .castle-wall  { position:absolute; bottom:28%; left:30%; width:15%; height:28%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 4px 4px 0 0; animation: cb-shake 3s ease-in-out infinite; }
.scn-chinese-boast .castle-tower { position:absolute; bottom:38%; left:34%; width:8%; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 4px 4px 0 0; animation: cb-shake 3.5s ease-in-out infinite 0.5s; }
.scn-chinese-boast .fosse      { position:absolute; bottom:25%; left:28%; width:20%; height:3px; background: #1a1a0a; box-shadow: 0 0 4px rgba(0,0,0,.5); animation: cb-fosse 4s ease-in-out infinite; }
.scn-chinese-boast .corporal-fig { position:absolute; bottom:20%; left:15%; width:30px; 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: cb-point 5s ease-in-out infinite; }
.scn-chinese-boast .candle     { position:absolute; bottom:40%; left:5%; width:12px; height:40px; background: linear-gradient(180deg, #d4a050 0%, #a07030 100%); border-radius: 4px 4px 2px 2px; }
.scn-chinese-boast .candle-flame { position:absolute; bottom:78%; left:5%; width:8px; height:18px; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ff8020 40%, #601000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 24px 8px #ff8020, 0 0 48px 16px rgba(255,128,32,.3); animation: cb-flame 2.8s ease-in-out infinite alternate; }
.scn-chinese-boast .flag       { position:absolute; bottom:50%; left:38%; width:10px; height:12px; background: linear-gradient(180deg, #a0461a 0%, #702a10 100%); clip-path: polygon(0 0, 100% 50%, 0 100%); animation: cb-flag 2s ease-in-out infinite; }
@keyframes cb-shake { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(1px) rotate(1deg) } }
@keyframes cb-fosse { 0%,100% { transform: scaleX(1); opacity:.6 } 50% { transform: scaleX(1.1); opacity:.9 } }
@keyframes cb-point { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(5deg) } 75% { transform: translateY(-1px) rotate(-3deg) } }
@keyframes cb-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.3) translateY(-3px); opacity:1 } 100% { transform: scaleY(.9) translateY(1px); opacity:.8 } }
@keyframes cb-flag  { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.3) } }

/* Scene: tobys-array */
.scn-tobys-array {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 50%, #d4b888 100%),
              radial-gradient(ellipse at 30% 80%, #ffe9c0 0%, transparent 60%);
}
.scn-tobys-array .bg-warm {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #faf0dc 0%, #f0d8a0 100%);
  animation: ta-warm 8s ease-in-out infinite alternate;
}
.scn-tobys-array .bg-cool {
  position:absolute; inset:50% 0 0 0;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a480 100%);
  animation: ta-cool 10s ease-in-out infinite alternate;
}
.scn-tobys-array .trunk {
  position:absolute; bottom:15%; left:10%; width:45%; height:50%;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4), inset 0 3px 6px rgba(255,200,150,0.3);
  animation: ta-trunk 4s ease-in-out infinite;
}
.scn-tobys-array .wig-base {
  position:absolute; bottom:48%; left:40%; width:35%; height:20%;
  background: linear-gradient(180deg, #c4a472 0%, #a08050 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: ta-wigbase 6s ease-in-out infinite;
}
.scn-tobys-array .wig-curls {
  position:absolute; bottom:58%; left:35%; width:45%; height:25%;
  background: radial-gradient(ellipse at 30% 50%, #d4b888 0%, #b09060 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ta-curls 7s ease-in-out infinite alternate;
}
.scn-tobys-array .wig-frizz {
  position:absolute; bottom:62%; left:30%; width:50%; height:18%;
  background: radial-gradient(circle at 60% 40%, #e0c898 0%, transparent 60%);
  border-radius: 40% 60% 50% 50%;
  animation: ta-frizz 5s ease-in-out infinite;
}
.scn-tobys-array .pipe {
  position:absolute; bottom:30%; left:55%; width:8%; height:40%;
  background: linear-gradient(90deg, #8a6a3a 0%, #6a4a2a 50%, #8a6a3a 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(15deg);
  animation: ta-pipe 3s ease-in-out infinite;
}
.scn-tobys-array .pipe-shadow {
  position:absolute; bottom:28%; left:56%; width:6%; height:8%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: ta-pipeshad 3s ease-in-out infinite alternate;
}
@keyframes ta-warm { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ta-cool { 0% { opacity: 0.9; } 50% { opacity: 0.6; } 100% { opacity: 0.8; } }
@keyframes ta-trunk { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } }
@keyframes ta-wigbase { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(3deg); } }
@keyframes ta-curls { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-8px) scaleY(1.1); } 100% { transform: translateX(4px) scaleY(0.95); } }
@keyframes ta-frizz { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.05); } }
@keyframes ta-pipe { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(20deg) translateY(2px); } }
@keyframes ta-pipeshad { 0%,100% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.2); } }

/* Scene: trim-arrayed */
.scn-trim-arrayed {
  background: linear-gradient(180deg, #87cefa 0%, #b0d4f0 50%, #e6f2ff 100%),
              radial-gradient(ellipse at 50% 90%, #fff8e0 0%, transparent 70%);
}
.scn-trim-arrayed .sky-blue {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #b0d8f0 0%, #d4e8ff 100%);
  animation: tr-sky 12s ease-in-out infinite alternate;
}
.scn-trim-arrayed .ground-warm {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #c8b080 0%, #a08860 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: tr-ground 6s ease-in-out infinite;
}
.scn-trim-arrayed .figure-body {
  position:absolute; bottom:20%; left:45%; width:14%; height:45%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-body 5s ease-in-out infinite;
}
.scn-trim-arrayed .figure-legs {
  position:absolute; bottom:5%; left:46%; width:8%; height:18%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 20% 20% 40% 40%;
  animation: tr-legs 5s ease-in-out infinite;
}
.scn-trim-arrayed .breeches {
  position:absolute; bottom:18%; left:44%; width:16%; height:16%;
  background: linear-gradient(180deg, #c8553d 0%, #a04030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: tr-breeches 4s ease-in-out infinite alternate;
}
.scn-trim-arrayed .lace-cravat {
  position:absolute; bottom:62%; left:48%; width:6%; height:4%;
  background: linear-gradient(180deg, #f0e8e0 0%, #d0c8c0 100%);
  border-radius: 40% 40% 30% 30%;
  animation: tr-cravat 3s ease-in-out infinite;
}
.scn-trim-arrayed .shadow-stripe {
  position:absolute; bottom:5%; left:30%; width:40%; height:2%;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: tr-shadow 6s ease-in-out infinite alternate;
}
@keyframes tr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes tr-ground { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } }
@keyframes tr-body { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(1deg); } }
@keyframes tr-legs { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(-1deg); } }
@keyframes tr-breeches { 0% { transform: scaleY(1); opacity: 0.9; } 100% { transform: scaleY(1.1); opacity: 1; box-shadow: inset 0 6px 12px rgba(0,0,0,0.4); } }
@keyframes tr-cravat { 0%,100% { transform: translateX(0) scale(1); } 50% { transform: translateX(3px) scale(1.1); } }
@keyframes tr-shadow { 0% { opacity: 0.2; transform: scaleX(1); } 100% { opacity: 0.4; transform: scaleX(1.3); } }

/* Scene: toby-fears */
.scn-toby-fears {
  background: linear-gradient(180deg, #f0c870 0%, #e0b060 50%, #c8a050 100%),
              radial-gradient(ellipse at 50% 50%, #ffd080 0%, transparent 60%);
}
.scn-toby-fears .bg-uneasy {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #f0d488 0%, #d8b870 100%);
  animation: tf-bg 10s ease-in-out infinite alternate;
}
.scn-toby-fears .eye-white {
  position:absolute; top:15%; left:35%; width:20%; height:18%;
  background: radial-gradient(ellipse, #fefefe 0%, #f0f0f0 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,255,255,0.3);
  animation: tf-eye 8s ease-in-out infinite;
}
.scn-toby-fears .eye-iris {
  position:absolute; top:18%; left:38%; width:12%; height:12%;
  background: radial-gradient(circle, #6a8a3a 0%, #4a6a2a 70%);
  border-radius: 50%;
  animation: tf-iris 7s ease-in-out infinite;
}
.scn-toby-fears .eye-pupil {
  position:absolute; top:20%; left:40%; width:6%; height:6%;
  background: #1a1a2a;
  border-radius: 50%;
  animation: tf-pupil 5s ease-in-out infinite;
}
.scn-toby-fears .figure-man {
  position:absolute; bottom:15%; left:20%; width:12%; height:45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tf-man 6s ease-in-out infinite;
}
.scn-toby-fears .figure-woman {
  position:absolute; bottom:15%; right:25%; width:14%; height:48%;
  background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tf-woman 6s ease-in-out infinite;
}
.scn-toby-fears .shadow-drape {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.3) 100%);
  animation: tf-shadow 9s ease-in-out infinite alternate;
}
@keyframes tf-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes tf-eye { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } }
@keyframes tf-iris { 0%,100% { transform: translateX(0); } 50% { transform: translateX(3px); } }
@keyframes tf-pupil { 0%,100% { transform: scale(1); } 50% { transform: scale(1.15); } }
@keyframes tf-man { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(2deg); } }
@keyframes tf-woman { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(-2deg); } }
@keyframes tf-shadow { 0% { opacity: 0.3; } 100% { opacity: 0.6; } }

/* Scene: liberty-vs-confinement */
.scn-liberty-vs-confinement {
  background: linear-gradient(180deg, #f5b85a 0%, #e0a040 50%, #c08030 100%),
              radial-gradient(ellipse at 50% 100%, #ffcc80 0%, transparent 70%);
}
.scn-liberty-vs-confinement .sky-bright {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #f5c070 0%, #e8b060 100%);
  animation: lc-sky 14s ease-in-out infinite alternate;
}
.scn-liberty-vs-confinement .ground-dark {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  animation: lc-ground 8s ease-in-out infinite;
}
.scn-liberty-vs-confinement .house-body {
  position:absolute; bottom:20%; left:35%; width:30%; height:40%;
  background: linear-gradient(135deg, #8a6050 0%, #6a4838 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 6px 6px 20px rgba(0,0,0,0.5), inset 0 4px 8px rgba(255,200,150,0.2);
  animation: lc-house 12s ease-in-out infinite;
}
.scn-liberty-vs-confinement .house-roof {
  position:absolute; bottom:50%; left:33%; width:34%; height:10%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0;
  transform: skewX(-5deg);
  animation: lc-roof 5s ease-in-out infinite alternate;
}
.scn-liberty-vs-confinement .window-bars {
  position:absolute; bottom:30%; left:42%; width:16%; height:18%;
  background: 
    linear-gradient(90deg, transparent 0%, transparent 40%, #3a2a1a 40%, #3a2a1a 45%, transparent 45%, transparent 55%, #3a2a1a 55%, #3a2a1a 60%, transparent 60%, transparent 100%),
    linear-gradient(180deg, transparent 0%, transparent 30%, #3a2a1a 30%, #3a2a1a 35%, transparent 35%, transparent 65%, #3a2a1a 65%, #3a2a1a 70%, transparent 70%, transparent 100%);
  border: 3px solid #3a2a1a;
  border-radius: 4px;
  animation: lc-bars 6s ease-in-out infinite alternate;
}
.scn-liberty-vs-confinement .figure-toby {
  position:absolute; bottom:20%; left:20%; width:10%; height:35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lc-toby 7s ease-in-out infinite;
}
.scn-liberty-vs-confinement .figure-shadow {
  position:absolute; bottom:10%; left:18%; width:15%; height:4%;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(5px);
  animation: lc-shad 7s ease-in-out infinite;
}
@keyframes lc-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lc-ground { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(0.98); } }
@keyframes lc-house { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(0.5deg); } }
@keyframes lc-roof { 0% { transform: skewX(-5deg) translateY(0); } 100% { transform: skewX(-3deg) translateY(-2px); } }
@keyframes lc-bars { 0% { opacity: 0.8; transform: scaleX(1); } 100% { opacity: 1; transform: scaleX(1.05); } }
@keyframes lc-toby { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(1deg); } }
@keyframes lc-shad { 0%,100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.3) translateX(3px); } }

.scn-dietary-advice {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 30%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 60%, #4a2a14 0%, transparent 60%);
}
.scn-dietary-advice .da2-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); animation: da2-wall 8s ease-in-out infinite alternate; }
.scn-dietary-advice .da2-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%); border-radius: 20% 20% 0 0; }
.scn-dietary-advice .da2-desk { position:absolute; bottom:18%; left:15%; width:45%; height:12%; background: linear-gradient(135deg, #5e3e22 0%, #3a2212 50%, #2a1a0e 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: da2-desk 12s ease-in-out infinite alternate; }
.scn-dietary-advice .da2-candle { position:absolute; bottom:40%; left:28%; width:4px; height:14px; background: linear-gradient(180deg, #a08040 0%, #6a5020 100%); border-radius: 20%; box-shadow: 0 0 16px 6px #c0a060, 0 0 32px 12px rgba(192,160,96,.3); animation: da2-candle 3s ease-in-out infinite alternate; }
.scn-dietary-advice .da2-figure-walter { position:absolute; bottom:18%; left:22%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da2-walter 5s ease-in-out infinite; }
.scn-dietary-advice .da2-figure-toby { position:absolute; bottom:18%; left:45%; width:22px; height:36px; background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da2-toby 6s ease-in-out infinite; }
.scn-dietary-advice .da2-bottle { position:absolute; bottom:24%; left:14%; width:8px; height:18px; background: linear-gradient(135deg, #4a6030 0%, #2a3a1a 50%, #1a2a0e 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: da2-bottle 7s ease-in-out infinite; }
.scn-dietary-advice .da2-shadow { position:absolute; bottom:0; left:10%; width:70%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%); animation: da2-shadow 10s ease-in-out infinite alternate; }
@keyframes da2-wall    { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes da2-desk    { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes da2-candle  { 0% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 14px 4px #c0a060, 0 0 28px 8px rgba(192,160,96,.3) } 50% { transform: scale(1.05) rotate(2deg); box-shadow: 0 0 22px 8px #d0b070, 0 0 40px 14px rgba(208,176,112,.4) } 100% { transform: scale(.98) rotate(-1deg); box-shadow: 0 0 16px 5px #b09050, 0 0 30px 10px rgba(176,144,80,.3) } }
@keyframes da2-walter  { 0% { transform: translateX(0) rotate(-2deg) scale(1) } 30% { transform: translateX(8px) rotate(3deg) scale(1.02) } 50% { transform: translateX(12px) rotate(-1deg) scale(1) } 80% { transform: translateX(4px) rotate(2deg) scale(.98) } 100% { transform: translateX(0) rotate(-2deg) scale(1) } }
@keyframes da2-toby    { 0% { transform: translateX(0) rotate(0) scale(1) } 40% { transform: translateX(-4px) rotate(-3deg) scale(.98) } 60% { transform: translateX(-2px) rotate(1deg) scale(1.02) } 100% { transform: translateX(0) rotate(0) scale(1) } }
@keyframes da2-bottle  { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(-4px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(4deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes da2-shadow  { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-march-to-battle {
  background:
    linear-gradient(180deg, #87aac0 0%, #c0d8e0 30%, #a0b8c8 70%, #8090a0 100%),
    radial-gradient(ellipse at 50% 0%, #e0f0ff 0%, transparent 60%);
}
.scn-march-to-battle .mb-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #90b8d0 0%, #b0d0e0 40%, #c8e0ee 100%); animation: mb-sky 15s ease-in-out infinite alternate; }
.scn-march-to-battle .mb-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a8a50 0%, #4a6a30 50%, #2a4a1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; animation: mb-ground 18s ease-in-out infinite alternate; }
.scn-march-to-battle .mb-sun { position:absolute; top:8%; right:12%; width:30px; height:30px; background: radial-gradient(circle, #ffe080 0%, #f0c040 50%, #d0a020 100%); border-radius: 50%; box-shadow: 0 0 40px 20px #f0c040, 0 0 80px 40px rgba(240,192,64,.4); animation: mb-sun 8s ease-in-out infinite alternate; }
.scn-march-to-battle .mb-figure-walter { position:absolute; bottom:24%; left:20%; width:18px; height:38px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-march-w 4s ease-in-out infinite; }
.scn-march-to-battle .mb-figure-toby { position:absolute; bottom:24%; left:32%; width:20px; height:36px; background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-march-t 4.5s ease-in-out infinite; animation-delay: .15s; }
.scn-march-to-battle .mb-figure-trim { position:absolute; bottom:24%; left:44%; width:18px; height:34px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-march-tr 5s ease-in-out infinite; animation-delay: .3s; }
.scn-march-to-battle .mb-drum { position:absolute; bottom:20%; left:38%; width:12px; height:10px; background: linear-gradient(135deg, #c08040 0%, #a06030 50%, #804020 100%); border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: mb-drum 4s ease-in-out infinite; }
.scn-march-to-battle .mb-flag { position:absolute; bottom:30%; left:30%; width:3px; height:24px; background: #4a3a2a; transform-origin: bottom center; animation: mb-flag 5s ease-in-out infinite; }
.scn-march-to-battle .mb-flag::after { content: ''; position:absolute; top:0; left:3px; width:16px; height:12px; background: linear-gradient(135deg, #6a6a8a 0%, #4a4a6a 50%, #3a3a4a 100%); border-radius: 0 40% 40% 0; animation: mb-flag-cloth 5s ease-in-out infinite; }
.scn-march-to-battle .mb-cloud { position:absolute; top:12%; left:8%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(220,230,240,.3) 100%); border-radius: 50%; filter: blur(5px); animation: mb-cloud 30s linear infinite; }
@keyframes mb-sky   { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mb-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mb-sun   { 0% { transform: scale(1); box-shadow: 0 0 36px 18px #f0c040, 0 0 72px 36px rgba(240,192,64,.3) } 50% { transform: scale(1.08); box-shadow: 0 0 50px 28px #ffd860, 0 0 90px 50px rgba(255,216,96,.5) } 100% { transform: scale(.96); box-shadow: 0 0 32px 14px #e0b030, 0 0 60px 28px rgba(224,176,48,.3) } }
@keyframes mb-march-w { 0% { transform: translateX(0) translateY(0) rotate(-2deg) scale(1) } 20% { transform: translateX(6px) translateY(-2px) rotate(1deg) scale(1.02) } 40% { transform: translateX(12px) translateY(0) rotate(-1deg) scale(1) } 60% { transform: translateX(18px) translateY(-2px) rotate(2deg) scale(1.02) } 80% { transform: translateX(24px) translateY(0) rotate(-2deg) scale(1) } 100% { transform: translateX(30px) translateY(0) rotate(-1deg) scale(1) } }
@keyframes mb-march-t { 0% { transform: translateX(0) translateY(0) rotate(1deg) scale(1) } 20% { transform: translateX(6px) translateY(-2px) rotate(-2deg) scale(.98) } 40% { transform: translateX(12px) translateY(0) rotate(0) scale(1) } 60% { transform: translateX(18px) translateY(-2px) rotate(2deg) scale(.98) } 80% { transform: translateX(24px) translateY(0) rotate(-1deg) scale(1) } 100% { transform: translateX(30px) translateY(0) rotate(1deg) scale(1) } }
@keyframes mb-march-tr { 0% { transform: translateX(0) translateY(0) rotate(-1deg) scale(1) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) scale(1.02) } 50% { transform: translateX(16px) translateY(0) rotate(-2deg) scale(1) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) scale(1.02) } 100% { transform: translateX(32px) translateY(0) rotate(-1deg) scale(1) } }
@keyframes mb-drum { 0% { transform: translateY(0) scale(1) } 30% { transform: translateY(-3px) scale(1.05) } 60% { transform: translateY(-1px) scale(.98) } 100% { transform: translateY(0) scale(1) } }
@keyframes mb-flag { 0% { transform: rotate(-3deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-2deg) } }
@keyframes mb-flag-cloth { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(3deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes mb-cloud { 0% { transform: translateX(-40px) } 100% { transform: translateX(110vw) } }

.scn-keyhole-scruple {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #1a0e0a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a22 0%, transparent 60%);
}
.scn-keyhole-scruple .kh-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #2a1e1a 0%, #1a0e0a 100%); animation: kh-wall 10s ease-in-out infinite alternate; }
.scn-keyhole-scruple .kh-floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%); border-radius: 30% 30% 0 0; }
.scn-keyhole-scruple .kh-door { position:absolute; bottom:5%; left:45%; width:120px; height:80%; background: linear-gradient(135deg, #3a2a22 0%, #2a1a14 50%, #1a0e0a 100%); border-radius: 2% 2% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.4); border: 2px solid #4a3a32; animation: kh-door 12s ease-in-out infinite alternate; }
.scn-keyhole-scruple .kh-keyhole { position:absolute; bottom:40%; left:50%; width:7px; height:14px; margin-left: -3.5px; background: radial-gradient(ellipse at 50% 50%, #f0d080 0%, #c09050 50%, #a07030 100%); border-radius: 40% 40% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 0 20px 8px #c09050, 0 0 40px 16px rgba(192,144,80,.3); animation: kh-keyhole 3s ease-in-out infinite alternate; }
.scn-keyhole-scruple .kh-eye { position:absolute; bottom:40%; left:50.5%; width:8px; height:6px; margin-left: 1px; margin-bottom: 8px; background: radial-gradient(ellipse, #f0e8d0 0%, #a08860 50%, #2a1a10 100%); border-radius: 60% 60% 30% 30%; box-shadow: 0 0 6px 2px rgba(240,232,208,.2); animation: kh-eye 4s ease-in-out infinite; }
.scn-keyhole-scruple .kh-shadow { position:absolute; bottom:0; left:35%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 70%); animation: kh-shadow 8s ease-in-out infinite alternate; }
@keyframes kh-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes kh-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(1) } }
@keyframes kh-keyhole { 0% { box-shadow: 0 0 16px 6px #c09050, 0 0 32px 12px rgba(192,144,80,.3); opacity:.85 } 50% { box-shadow: 0 0 28px 12px #d0a060, 0 0 50px 24px rgba(208,160,96,.5); opacity:1 } 100% { box-shadow: 0 0 18px 7px #b08040, 0 0 36px 14px rgba(176,128,64,.3); opacity:.9 } }
@keyframes kh-eye { 0% { transform: translateX(0) translateY(0) scale(1) } 25% { transform: translateX(1px) translateY(-1px) scale(1.05) } 50% { transform: translateX(-1px) translateY(0) scale(.95) } 75% { transform: translateX(2px) translateY(1px) scale(1.02) } 100% { transform: translateX(0) translateY(0) scale(1) } }
@keyframes kh-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-mothers-purity {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 60%, #5e4030 0%, transparent 60%);
}
.scn-mothers-purity .mp-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); animation: mp-wall 12s ease-in-out infinite alternate; }
.scn-mothers-purity .mp-fireplace { position:absolute; bottom:10%; left:10%; width:30%; height:50%; background: linear-gradient(135deg, #5e3e2e 0%, #3a2a1a 50%, #1a0e06 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); }
.scn-mothers-purity .mp-fire { position:absolute; bottom:20%; left:18%; width:14%; height:20%; background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #d07020 40%, #8a4010 70%, transparent 100%); border-radius: 40%; opacity:.8; animation: mp-fire 2.5s ease-in-out infinite alternate; }
.scn-mothers-purity .mp-chair { position:absolute; bottom:10%; left:50%; width:22%; height:40%; background: linear-gradient(135deg, #6a5040 0%, #4a3628 50%, #2a1a10 100%); border-radius: 20% 20% 5% 5% / 40% 40% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: mp-chair 9s ease-in-out infinite alternate; }
.scn-mothers-purity .mp-figure { position:absolute; bottom:12%; left:54%; width:10%; height:32%; background: linear-gradient(180deg, #6a4070 0%, #4a2a50 40%, #2a1a30 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp-figure 7s ease-in-out infinite; }
.scn-mothers-purity .mp-books { position:absolute; bottom:8%; left:42%; width:8%; height:6%; background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 50%, #2a1a0e 100%); border-radius: 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: mp-books 14s ease-in-out infinite; }
.scn-mothers-purity .mp-slippers { position:absolute; bottom:6%; left:56%; width:6%; height:4%; background: radial-gradient(ellipse at 50% 50%, #d0b040 0%, #a08020 60%, #705010 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; box-shadow: 0 1px 3px rgba(0,0,0,.3); animation: mp-slippers 8s ease-in-out infinite; }
.scn-mothers-purity .mp-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, rgba(200,120,40,.08) 0%, transparent 60%); animation: mp-glow 4s ease-in-out infinite alternate; }
@keyframes mp-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mp-fire { 0% { transform: scale(1) rotate(-2deg); opacity:.7 } 50% { transform: scale(1.08) rotate(2deg); opacity:.9 } 100% { transform: scale(.95) rotate(-1deg); opacity:.75 } }
@keyframes mp-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mp-figure { 0% { transform: translateX(0) rotate(-1deg) scale(1) } 30% { transform: translateX(1px) rotate(1deg) scale(1.01) } 60% { transform: translateX(-1px) rotate(-1deg) scale(.99) } 100% { transform: translateX(0) rotate(0) scale(1) } }
@keyframes mp-books { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mp-slippers { 0% { transform: translateX(0) rotate(-3deg) scale(1) } 40% { transform: translateX(2px) rotate(2deg) scale(1.03) } 70% { transform: translateX(-1px) rotate(-2deg) scale(.97) } 100% { transform: translateX(0) rotate(0) scale(1) } }
@keyframes mp-glow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

/* trims-wisdom – dark dim interior */
.scn-trims-wisdom {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a2a2a 100%), radial-gradient(circle at 60% 70%, #3a3a4e 0%, transparent 60%);
}
.scn-trims-wisdom .bg-wall {
  position: absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); animation: tw-bg 20s ease-in-out infinite alternate;
}
.scn-trims-wisdom .bg-shade {
  position: absolute; inset:0; background: radial-gradient(ellipse at 60% 70%, transparent 30%, #0a0a1a 70%); animation: tw-shade 15s ease-in-out infinite;
}
.scn-trims-wisdom .figure-trim {
  position: absolute; bottom:20%; left:35%; width:50px; height:120px; background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tw-fig-trim 8s ease-in-out infinite;
}
.scn-trims-wisdom .figure-susannah {
  position: absolute; bottom:25%; right:35%; width:45px; height:100px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: top center; animation: tw-fig-sus 12s ease-in-out infinite;
}
.scn-trims-wisdom .table {
  position: absolute; bottom:10%; left:45%; width:80px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: tw-table 10s ease-in-out infinite;
}
.scn-trims-wisdom .candle {
  position: absolute; bottom:40%; left:50%; width:6px; height:20px; background: linear-gradient(180deg, #d0a070 0%, #806040 100%); border-radius: 2px; transform: translateX(-50%); animation: tw-candle 3s ease-in-out infinite alternate;
}
.scn-trims-wisdom .glow {
  position: absolute; bottom:40%; left:50%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,150,.6) 0%, transparent 70%); transform: translate(-50%, -50%); animation: tw-glow 4s ease-in-out infinite alternate;
}
@keyframes tw-bg { 0%{opacity:.8}50%{opacity:1}100%{opacity:.7} }
@keyframes tw-shade { 0%{opacity:.6}50%{opacity:.9}100%{opacity:.5} }
@keyframes tw-fig-trim { 0%,100%{transform:translateX(0) translateY(0) rotate(0)} 25%{transform:translateX(3px) translateY(-2px) rotate(2deg)} 75%{transform:translateX(-2px) translateY(-1px) rotate(-1deg)} }
@keyframes tw-fig-sus { 0%,100%{transform:translateX(0) translateY(0) rotate(0)} 50%{transform:translateX(5px) translateY(-3px) rotate(3deg)} }
@keyframes tw-table { 0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)} }
@keyframes tw-candle { 0%{transform:translateX(-50%) scaleY(1)}50%{transform:translateX(-50%) scaleY(1.05)}100%{transform:translateX(-50%) scaleY(0.95)} }
@keyframes tw-glow { 0%{opacity:.5;transform:translate(-50%,-50%) scale(.8)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}100%{opacity:.6;transform:translate(-50%,-50%) scale(.9)} }

/* death-in-field – warm dim interior with firelight */
.scn-death-in-field {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%), radial-gradient(circle at 50% 80%, #5a3a1a 0%, transparent 70%);
}
.scn-death-in-field .bg-wall {
  position: absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); animation: df-bg 25s ease-in-out infinite alternate;
}
.scn-death-in-field .fireplace {
  position: absolute; bottom:10%; left:25%; width:120px; height:150px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 8% 8%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); animation: df-fireplace 15s ease-in-out infinite;
}
.scn-death-in-field .fire {
  position: absolute; bottom:12%; left:30%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, #ff8c40 0%, #ff4400 60%, transparent 80%); border-radius: 50%; animation: df-fire 2s ease-in-out infinite alternate;
}
.scn-death-in-field .figure-corporal {
  position: absolute; bottom:20%; right:30%; width:55px; height:130px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: df-fig 10s ease-in-out infinite;
}
.scn-death-in-field .hand-snapping {
  position: absolute; bottom:50%; right:35%; width:15px; height:8px; background: #5a3a1a; border-radius: 50%; transform-origin: right center; animation: df-hand 4s ease-in-out infinite alternate;
}
.scn-death-in-field .table {
  position: absolute; bottom:8%; left:50%; width:100px; height:35px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; transform: translateX(-50%); animation: df-table 12s ease-in-out infinite;
}
.scn-death-in-field .glow {
  position: absolute; bottom:15%; left:33%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,140,64,.5) 0%, transparent 70%); transform: translate(-50%, -50%); animation: df-glow 3s ease-in-out infinite alternate;
}
@keyframes df-bg { 0%{opacity:.7}50%{opacity:1}100%{opacity:.8} }
@keyframes df-fireplace { 0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)} }
@keyframes df-fire { 0%{transform:scaleY(1) translateY(0)}50%{transform:scaleY(1.1) translateY(-5px)}100%{transform:scaleY(0.9) translateY(2px)} }
@keyframes df-fig { 0%,100%{transform:translateX(0) rotate(0)} 50%{transform:translateX(-4px) rotate(2deg)} }
@keyframes df-hand { 0%{transform:scale(1) rotate(0)} 50%{transform:scale(1.2) rotate(10deg)} 100%{transform:scale(0.9) rotate(-5deg)} }
@keyframes df-table { 0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-2px)} }
@keyframes df-glow { 0%{opacity:.6;transform:translate(-50%,-50%) scale(.9)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}100%{opacity:.7;transform:translate(-50%,-50%) scale(1)} }

/* death-in-house – dark dim bedroom */
.scn-death-in-house {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a1a 50%, #0a0000 100%), radial-gradient(circle at 40% 50%, #2a1a2a 0%, transparent 60%);
}
.scn-death-in-house .bg-wall {
  position: absolute; inset:0; background: linear-gradient(180deg, #1a0a1a 0%, #0a0a0a 100%); animation: dh-bg 20s ease-in-out infinite alternate;
}
.scn-death-in-house .bed {
  position: absolute; bottom:5%; left:30%; width:160px; height:100px; background: linear-gradient(180deg, #2a1a2a 0%, #0a000a 100%); border-radius: 20% 20% 8% 8%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.8); animation: dh-bed 15s ease-in-out infinite;
}
.scn-death-in-house .figure-in-bed {
  position: absolute; bottom:12%; left:38%; width:40px; height:50px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dh-fig-bed 10s ease-in-out infinite;
}
.scn-death-in-house .figure-death {
  position: absolute; bottom:20%; right:25%; width:60px; height:140px; background: linear-gradient(180deg, #0a0a0a 0%, #000 100%); border-radius: 30% 30% 40% 40% / 50% 50% 50% 50%; animation: dh-fig-death 12s ease-in-out infinite alternate;
}
.scn-death-in-house .candle {
  position: absolute; bottom:35%; left:60%; width:5px; height:18px; background: linear-gradient(180deg, #d0a070 0%, #706050 100%); border-radius: 2px; animation: dh-candle 3s ease-in-out infinite alternate;
}
.scn-death-in-house .glow {
  position: absolute; bottom:35%; left:60%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,180,120,.4) 0%, transparent 70%); transform: translate(-50%, -50%); animation: dh-glow 4s ease-in-out infinite alternate;
}
.scn-death-in-house .bedside {
  position: absolute; bottom:10%; left:60%; width:50px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 4px; animation: dh-bedside 20s ease-in-out infinite;
}
@keyframes dh-bg { 0%{opacity:.8}50%{opacity:1}100%{opacity:.7} }
@keyframes dh-bed { 0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)} }
@keyframes dh-fig-bed { 0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(3deg)} }
@keyframes dh-fig-death { 0%{transform:translateX(0) scaleY(1)}50%{transform:translateX(-5px) scaleY(1.05)}100%{transform:translateX(5px) scaleY(0.95)} }
@keyframes dh-candle { 0%{transform:scaleY(1)}50%{transform:scaleY(1.08)}100%{transform:scaleY(0.9)} }
@keyframes dh-glow { 0%{opacity:.4;transform:translate(-50%,-50%) scale(.8)}50%{opacity:.7;transform:translate(-50%,-50%) scale(1.1)}100%{opacity:.5;transform:translate(-50%,-50%) scale(.9)} }
@keyframes dh-bedside { 0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)} }

/* le-fever-remembered – warm dim interior with two figures */
.scn-le-fever-remembered {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%), radial-gradient(circle at 50% 70%, #4a3a2a 0%, transparent 70%);
}
.scn-le-fever-remembered .bg-room {
  position: absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); animation: lf-bg 18s ease-in-out infinite alternate;
}
.scn-le-fever-remembered .master {
  position: absolute; bottom:15%; left:20%; width:60px; height:140px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lf-master 12s ease-in-out infinite;
}
.scn-le-fever-remembered .trim {
  position: absolute; bottom:18%; right:25%; width:55px; height:130px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lf-trim 10s ease-in-out infinite;
}
.scn-le-fever-remembered .table {
  position: absolute; bottom:5%; left:40%; width:90px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: lf-table 14s ease-in-out infinite;
}
.scn-le-fever-remembered .candle {
  position: absolute; bottom:35%; left:50%; width:6px; height:22px; background: linear-gradient(180deg, #d0a070 0%, #806040 100%); border-radius: 2px; transform: translateX(-50%); animation: lf-candle 3s ease-in-out infinite alternate;
}
.scn-le-fever-remembered .glow {
  position: absolute; bottom:35%; left:50%; width:90px; height:90px; background: radial-gradient(circle, rgba(255,200,150,.5) 0%, transparent 70%); transform: translate(-50%, -50%); animation: lf-glow 4s ease-in-out infinite alternate;
}
.scn-le-fever-remembered .chair-vignette {
  position: absolute; bottom:5%; left:10%; width:50px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 20% 20% 10% 10%; animation: lf-chair 20s ease-in-out infinite;
}
@keyframes lf-bg { 0%{opacity:.7}50%{opacity:1}100%{opacity:.8} }
@keyframes lf-master { 0%,100%{transform:translateX(0) rotate(0)} 50%{transform:translateX(3px) rotate(-2deg)} }
@keyframes lf-trim { 0%,100%{transform:translateX(0) translateY(0)} 25%{transform:translateX(-2px) translateY(-3px) rotate(1deg)} 75%{transform:translateX(2px) translateY(-1px) rotate(-1deg)} }
@keyframes lf-table { 0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)} }
@keyframes lf-candle { 0%{transform:translateX(-50%) scaleY(1)}50%{transform:translateX(-50%) scaleY(1.06)}100%{transform:translateX(-50%) scaleY(0.94)} }
@keyframes lf-glow { 0%{opacity:.5;transform:translate(-50%,-50%) scale(.9)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}100%{opacity:.6;transform:translate(-50%,-50%) scale(1)} }
@keyframes lf-chair { 0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)} }

.scn-dedication-for-sale {
  background: linear-gradient(180deg, #2a1f1a 0%, #4a3a2a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, transparent 70%);
}
.scn-dedication-for-sale .back-wall {
  position:absolute; inset:0; z-index:0;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1f1a 100%);
  animation: dfs-wall 10s ease-in-out infinite alternate;
}
.scn-dedication-for-sale .auction-block {
  position:absolute; bottom:30%; left:20%; width:60%; height:40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius:5%; transform-origin:bottom;
  animation: dfs-block 4s ease-in-out infinite;
}
.scn-dedication-for-sale .podium {
  position:absolute; bottom:28%; left:25%; width:50%; height:10%;
  background: linear-gradient(90deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius:3%;
}
.scn-dedication-for-sale .book-pile {
  position:absolute; bottom:34%; left:35%; width:15%; height:8%;
  background: linear-gradient(180deg, #a08060 0%, #604030 100%);
  border-radius:5%;
  animation: dfs-books 6s ease-in-out infinite;
}
.scn-dedication-for-sale .signage {
  position:absolute; bottom:45%; left:45%; width:10%; height:6%;
  background: #c8a878; border-radius:10%;
  box-shadow: 0 0 8px #b09060;
  animation: dfs-sign 3s ease-in-out infinite alternate;
}
.scn-dedication-for-sale .hammer {
  position:absolute; bottom:26%; left:40%; width:4%; height:12%;
  background: linear-gradient(180deg, #888 0%, #444 100%);
  border-radius:40%; transform-origin:bottom left;
  animation: dfs-hammer 2s ease-in-out infinite;
}
@keyframes dfs-wall    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dfs-block   { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) rotate(-1deg) } 100% { transform:translateY(0) } }
@keyframes dfs-books   { 0% { transform:scaleY(1) } 50% { transform:scaleY(.95) } 100% { transform:scaleY(1) } }
@keyframes dfs-sign    { 0% { transform:rotate(-5deg); opacity:.8 } 50% { transform:rotate(5deg); opacity:1 } 100% { transform:rotate(-5deg); opacity:.8 } }
@keyframes dfs-hammer  { 0% { transform:rotate(-30deg) } 50% { transform:rotate(15deg) } 100% { transform:rotate(-30deg) } }

.scn-dedication-quality {
  background: linear-gradient(180deg, #1f1f2a 0%, #3a2a2a 50%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, transparent 70%);
}
.scn-dedication-quality .studio-wall {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #3a2a2a 0%, #1f1f2a 100%);
  animation: dqu-wall 8s ease-in-out infinite alternate;
}
.scn-dedication-quality .easel {
  position:absolute; bottom:25%; left:30%; width:40%; height:45%;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius:3%; transform-origin:bottom;
  animation: dqu-easel 6s ease-in-out infinite;
}
.scn-dedication-quality .painting {
  position:absolute; bottom:30%; left:35%; width:30%; height:35%;
  background: linear-gradient(45deg, #8a7a6a 0%, #6a5a4a 30%, #8a7a6a 70%, #6a5a4a 100%);
  border:3px solid #5a4a3a; border-radius:2%;
  animation: dqu-paint 10s ease-in-out infinite;
}
.scn-dedication-quality .artist-figure {
  position:absolute; bottom:20%; left:15%; width:12%; height:30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dqu-fig 4s ease-in-out infinite;
}
.scn-dedication-quality .brush {
  position:absolute; bottom:30%; left:18%; width:2%; height:20%;
  background: linear-gradient(180deg, #a08060 0%, #604030 100%);
  border-radius:20%; transform-origin:bottom;
  animation: dqu-brush 2s ease-in-out infinite;
}
.scn-dedication-quality .palette {
  position:absolute; bottom:28%; left:22%; width:10%; height:6%;
  background: #8a7a6a; border-radius:50%;
  box-shadow: inset 0 0 8px #6a5a4a;
  animation: dqu-pal 3s linear infinite;
}
@keyframes dqu-wall   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dqu-easel  { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) rotate(.5deg) } 100% { transform:translateY(0) } }
@keyframes dqu-paint  { 0% { filter:brightness(1) } 50% { filter:brightness(1.1) } 100% { filter:brightness(1) } }
@keyframes dqu-fig    { 0% { transform:translateY(0) } 25% { transform:translateY(-2px) rotate(-1deg) } 50% { transform:translateY(0) rotate(1deg) } 75% { transform:translateY(-1px) rotate(-.5deg) } 100% { transform:translateY(0) } }
@keyframes dqu-brush  { 0% { transform:rotate(-10deg) } 50% { transform:rotate(10deg) } 100% { transform:rotate(-10deg) } }
@keyframes dqu-pal    { 0% { transform:translateX(0) } 25% { transform:translateX(5px) } 50% { transform:translateX(0) } 75% { transform:translateX(-5px) } 100% { transform:translateX(0) } }

.scn-parsons-benignity {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 100%, #7a4a2a 0%, transparent 70%);
}
.scn-parsons-benignity .parson-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%);
  animation: pbe-bg 12s ease-in-out infinite alternate;
}
.scn-parsons-benignity .parson-figure {
  position:absolute; bottom:28%; left:40%; width:12%; height:35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pbe-parson 5s ease-in-out infinite;
}
.scn-parsons-benignity .midwife {
  position:absolute; bottom:28%; left:55%; width:10%; height:32%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pbe-midwife 5s ease-in-out infinite 1s;
}
.scn-parsons-benignity .coin-glow {
  position:absolute; bottom:38%; left:48%; width:4%; height:4%;
  background: radial-gradient(circle, #ffd680 0%, #c08040 70%);
  border-radius:50%;
  box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,.5);
  animation: pbe-coin 3s ease-in-out infinite alternate;
}
.scn-parsons-benignity .cloak {
  position:absolute; bottom:28%; left:42%; width:10%; height:20%;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  border-radius:20% 20% 0 0 / 50% 50% 0 0;
  transform-origin:top;
  animation: pbe-cloak 4s ease-in-out infinite;
}
.scn-parsons-benignity .window-light {
  position:absolute; top:15%; right:20%; width:20%; height:40%;
  background: linear-gradient(135deg, rgba(255,214,128,.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: pbe-window 8s ease-in-out infinite alternate;
}
@keyframes pbe-bg      { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pbe-parson  { 0% { transform:translateY(0) rotate(0) } 25% { transform:translateY(-2px) rotate(2deg) } 50% { transform:translateY(0) rotate(0) } 75% { transform:translateY(-1px) rotate(-2deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes pbe-midwife { 0% { transform:translateY(0) } 25% { transform:translateY(-2px) } 50% { transform:translateY(0) } 75% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes pbe-coin    { 0% { transform:translateY(0) scale(1); opacity:.8 } 50% { transform:translateY(-4px) scale(1.2); opacity:1 } 100% { transform:translateY(0) scale(1); opacity:.8 } }
@keyframes pbe-cloak   { 0% { transform:rotate(0) } 50% { transform:rotate(5deg) } 100% { transform:rotate(0) } }
@keyframes pbe-window  { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

.scn-rosinante-comparison {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #FFD700 100%),
              radial-gradient(ellipse at 50% 100%, #90EE90 0%, transparent 70%);
}
.scn-rosinante-comparison .sky-sun {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #FFD700 100%);
  animation: rco-sky 15s ease-in-out infinite alternate;
}
.scn-rosinante-comparison .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #7CFC00 0%, #228B22 100%);
  border-radius:50% 50% 0 0 / 20% 20% 0 0;
  animation: rco-ground 10s ease-in-out infinite;
}
.scn-rosinante-comparison .horse-left {
  position:absolute; bottom:24%; left:20%; width:18%; height:30%;
  background: linear-gradient(180deg, #8B4513 0%, #5C3A1E 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom;
  animation: rco-horse1 4s ease-in-out infinite;
}
.scn-rosinante-comparison .horse-right {
  position:absolute; bottom:24%; right:20%; width:16%; height:28%;
  background: linear-gradient(180deg, #A0522D 0%, #6B3A2A 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom;
  animation: rco-horse2 4s ease-in-out infinite 1s;
}
.scn-rosinante-comparison .haybale {
  position:absolute; bottom:15%; left:42%; width:8%; height:6%;
  background: #D2B48C; border-radius:30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: rco-hay 6s ease-in-out infinite;
}
.scn-rosinante-comparison .dust {
  position:absolute; bottom:20%; left:25%; width:100%; height:10%;
  background: rgba(255,255,200,.3); filter: blur(4px);
  animation: rco-dust 8s linear infinite;
}
@keyframes rco-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes rco-ground { 0% { transform:skewX(0) } 50% { transform:skewX(2deg) } 100% { transform:skewX(0) } }
@keyframes rco-horse1 { 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 rco-horse2 { 0% { transform:translateY(0) rotate(0) } 25% { transform:translateY(-2px) rotate(2deg) } 50% { transform:translateY(0) rotate(0) } 75% { transform:translateY(-3px) rotate(-2deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes rco-hay    { 0% { transform:scale(1) } 50% { transform:scale(1.05) } 100% { transform:scale(1) } }
@keyframes rco-dust   { 0% { transform:translateX(0) } 100% { transform:translateX(-100%) } }

/* time-passage – dim interior, warm, stairs with figures */
.scn-time-passage {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #6a4a3a 0%, transparent 70%);
}
.scn-time-passage .rail {
  position: absolute; bottom: 20%; left: 30%; width: 8px; height: 140px;
  background: linear-gradient(90deg, #5a3a2a 30%, #7a5a4a 70%, #5a3a2a 100%);
  border-radius: 4px; transform-origin: bottom; animation: tp-rail 18s ease-in-out infinite;
}
.scn-time-passage .step {
  position: absolute; left: 25%; width: 120px; height: 16px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: tp-step-hover 14s ease-in-out infinite;
}
.scn-time-passage .step1 { bottom: 30%; }
.scn-time-passage .step2 { bottom: 25%; left: 22%; }
.scn-time-passage .figure {
  position: absolute; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-time-passage .father { bottom: 31%; left: 30%; animation: tp-walk 8s ease-in-out infinite; }
.scn-time-passage .uncle { bottom: 26%; left: 27%; animation: tp-walk 10s ease-in-out infinite 1s; }
.scn-time-passage .chairman { bottom: 21%; left: 24%; animation: tp-walk 12s ease-in-out infinite 2s; }
.scn-time-passage .lamp {
  position: absolute; top: 25%; left: 65%; width: 14px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #b06020 100%);
  border-radius: 50%; box-shadow: 0 0 24px 6px #ffb040, 0 0 48px 12px rgba(255,176,64,0.4);
  animation: tp-lamp 3s ease-in-out infinite alternate;
}
.scn-time-passage .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 30%, rgba(255,200,100,0.08) 0%, transparent 70%);
  animation: tp-glow 6s ease-in-out infinite alternate;
}
@keyframes tp-rail { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes tp-step-hover { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes tp-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(2deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes tp-lamp { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; } }
@keyframes tp-glow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* overtaking-self – close-up of writer, funny bouncy */
.scn-overtaking-self {
  background: linear-gradient(180deg, #2a2018 0%, #3a2a20 50%, #2a2018 100%), radial-gradient(ellipse at 50% 80%, #4a3a30 0%, transparent 60%);
}
.scn-overtaking-self .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: os-desk 6s ease-in-out infinite;
}
.scn-overtaking-self .candle {
  position: absolute; bottom: 45%; left: 40%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #c0a070, #806040);
  border-radius: 4px; animation: os-candle 3s ease-in-out infinite alternate;
}
.scn-overtaking-self .flame {
  position: absolute; bottom: 72%; left: 41%; width: 8px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #ff8040 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 4px #ff8040;
  animation: os-flame 0.8s ease-in-out infinite alternate;
}
.scn-overtaking-self .paper {
  position: absolute; bottom: 32%; left: 30%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  transform: rotate(-5deg); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: os-paper 10s ease-in-out infinite;
}
.scn-overtaking-self .quill {
  position: absolute; bottom: 35%; left: 32%; width: 3px; height: 30px;
  background: linear-gradient(180deg, #806040, #402010);
  transform-origin: bottom; border-radius: 1px;
  animation: os-quill 2s ease-in-out infinite;
}
.scn-overtaking-self .hand {
  position: absolute; bottom: 30%; left: 28%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom; animation: os-hand 2.5s ease-in-out infinite;
}
.scn-overtaking-self .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 20px;
  background: rgba(0,0,0,0.4); filter: blur(6px);
  animation: os-shadow 8s ease-in-out infinite;
}
@keyframes os-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes os-candle { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes os-flame { 0% { transform: scaleY(1) skewX(0deg); } 50% { transform: scaleY(1.2) skewX(5deg); } 100% { transform: scaleY(0.9) skewX(-3deg); } }
@keyframes os-paper { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes os-quill { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(8deg) translateY(-4px); } 60% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes os-hand { 0% { transform: rotate(0deg) translateY(0); } 40% { transform: rotate(10deg) translateY(-3px); } 70% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes os-shadow { 0%,100% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.1); } }

/* breeches-urgency – tense, sharp contrasts, fast jerky */
.scn-breeches-urgency {
  background: linear-gradient(180deg, #1a1510 0%, #2a2018 30%, #1a1510 70%), radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, transparent 60%);
}
.scn-breeches-urgency .wall {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(0,0,0,0.2) 40px, rgba(0,0,0,0.2) 41px);
  background-size: 60px 100%; background-position: 0 0; animation: bu-wall 4s linear infinite;
}
.scn-breeches-urgency .chair {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a, #3a2a1a);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: bu-chair 0.6s ease-in-out infinite alternate;
}
.scn-breeches-urgency .breeches {
  position: absolute; bottom: 32%; left: 38%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 6px 6px 2px 2px; transform-origin: top;
  animation: bu-breeches 0.4s ease-in-out infinite alternate;
}
.scn-breeches-urgency .father-hand {
  position: absolute; bottom: 33%; left: 35%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: bu-hand 0.2s steps(2) infinite;
}
.scn-breeches-urgency .susannah {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a1510, #0a0500);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom;
  animation: bu-figure 1s ease-in-out infinite;
}
.scn-breeches-urgency .child {
  position: absolute; bottom: 40%; left: 55%; width: 18px; height: 20px;
  background: #0a0500; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bu-child 0.5s ease-in-out infinite alternate;
}
.scn-breeches-urgency .curate {
  position: absolute; bottom: 35%; left: 65%; width: 22px; height: 54px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bu-figure 1.2s ease-in-out infinite 0.3s;
}
.scn-breeches-urgency .candle-light {
  position: absolute; top: 20%; left: 30%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ff8040 0%, #b05020 100%);
  border-radius: 50%; box-shadow: 0 0 30px 8px #b05020, 0 0 60px 16px rgba(176,80,32,0.3);
  animation: bu-light 0.1s steps(2) infinite;
}
@keyframes bu-wall { 0% { background-position: 0 0; } 100% { background-position: -60px 0; } }
@keyframes bu-chair { 0% { transform: rotate(0deg) translateY(0); } 100% { transform: rotate(3deg) translateY(-2px); } }
@keyframes bu-breeches { 0% { transform: rotate(0deg) translateY(0); } 100% { transform: rotate(5deg) translateY(-1px); } }
@keyframes bu-hand { 0% { transform: translateX(0); } 100% { transform: translateX(3px); } }
@keyframes bu-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bu-child { 0% { transform: scaleY(1); } 100% { transform: scaleY(0.9); } }
@keyframes bu-light { 0% { opacity: 1; } 100% { opacity: 0.6; } }

/* tristram-named – bouncy gallery, funny bright accents */
.scn-tristram-named {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, transparent 50%);
}
.scn-tristram-named .arch {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: tn-arch 12s ease-in-out infinite;
}
.scn-tristram-named .susannah {
  position: absolute; bottom: 28%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom;
  animation: tn-run 1.5s cubic-bezier(0.45, 1.45, 0.55, 1) infinite;
}
.scn-tristram-named .father {
  position: absolute; bottom: 25%; left: 40%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom;
  animation: tn-quick 2s ease-in-out infinite 0.5s;
}
.scn-tristram-named .curate {
  position: absolute; bottom: 30%; right: 25%; width: 22px; height: 54px;
  background: linear-gradient(180deg, #2a1a0a, #0a0500);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tn-bob 2.5s ease-in-out infinite 1s;
}
.scn-tristram-named .name-card {
  position: absolute; bottom: 45%; left: 50%; width: 80px; height: 24px;
  background: linear-gradient(135deg, #e0c090, #c0a070);
  transform: translateX(-50%) rotate(-10deg); border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: tn-card 3s ease-in-out infinite;
}
.scn-tristram-named .sconce {
  position: absolute; top: 15%; left: 10%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #806040, #402010);
  border-radius: 2px; animation: tn-sconce 4s ease-in-out infinite alternate;
}
.scn-tristram-named .flicker {
  position: absolute; top: 10%; left: 10%; width: 16px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #b06020 100%);
  border-radius: 50%; box-shadow: 0 0 30px 8px #b06020;
  animation: tn-flame 0.6s ease-in-out infinite alternate;
}
@keyframes tn-arch { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes tn-run { 0% { transform: translateX(0) rotate(-5deg); } 20% { transform: translateX(12px) rotate(5deg); } 40% { transform: translateX(24px) rotate(-3deg); } 60% { transform: translateX(36px) rotate(4deg); } 80% { transform: translateX(48px) rotate(-2deg); } 100% { transform: translateX(60px) rotate(0deg); } }
@keyframes tn-quick { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(3deg); } 50% { transform: translateX(16px) rotate(-2deg); } 75% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tn-bob { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tn-card { 0% { transform: translateX(-50%) rotate(-10deg) scale(1); } 50% { transform: translateX(-50%) rotate(-8deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-12deg) scale(0.98); } }
@keyframes tn-sconce { 0% { transform: rotate(0deg); } 100% { transform: rotate(3deg); } }
@keyframes tn-flame { 0% { transform: scaleY(1) skewX(0deg); } 50% { transform: scaleY(1.15) skewX(8deg); } 100% { transform: scaleY(0.9) skewX(-5deg); } }

/* strangers-vow - tense dusk */
.scn-strangers-vow { background: linear-gradient(180deg, #2a1a3a 0%, #5a3a4a 50%, #8a5a3a 100%), radial-gradient(ellipse at 50% 0%, #c07040 0%, transparent 70%); }
.scn-strangers-vow .sky-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a3a 0%, transparent 100%); animation: sv-sky 12s ease-in-out infinite alternate; }
.scn-strangers-vow .horizon { position:absolute; bottom:38%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%); border-radius: 0 0 40% 40%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: sv-horizon 18s ease-in-out infinite alternate; }
.scn-strangers-vow .moon { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #e0c080 0%, #b09060 70%); border-radius:50%; box-shadow: 0 0 30px 10px #b09060, 0 0 60px 20px rgba(176,144,96,.3); animation: sv-moon 6s ease-in-out infinite alternate; }
.scn-strangers-vow .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: sv-ground 20s ease-in-out infinite alternate; }
.scn-strangers-vow .figure { position:absolute; bottom:20%; left:45%; width:20px; height:60px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sv-figure 4s ease-in-out infinite; }
.scn-strangers-vow .cloak { position:absolute; bottom:28%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 60% 40% 20% 80% / 50% 70% 30% 50%; filter: blur(1px); animation: sv-cloak 4s ease-in-out infinite; }
.scn-strangers-vow .cloud { position:absolute; top:20%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(6px); animation: sv-cloud 30s linear infinite; }
@keyframes sv-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes sv-horizon { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sv-moon { 0% { box-shadow: 0 0 20px 6px #b09060, 0 0 40px 12px rgba(176,144,96,.2); opacity:.9 } 50% { box-shadow: 0 0 40px 14px #c0a070, 0 0 80px 28px rgba(192,160,112,.4); opacity:1 } 100% { box-shadow: 0 0 25px 8px #b09060, 0 0 50px 16px rgba(176,144,96,.25); opacity:.85 } }
@keyframes sv-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sv-cloak { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sv-ground { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sv-cloud { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }

/* inn-dispute - funny dim interior */
.scn-inn-dispute { background: linear-gradient(180deg, #1a1a1a 0%, #3a2a1a 40%, #5a3a2a 100%), radial-gradient(ellipse at 60% 20%, #7a5a3a 0%, transparent 70%); }
.scn-inn-dispute .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 100%); border-radius: 0 0 30% 30%; animation: id-wall 8s ease-in-out infinite; }
.scn-inn-dispute .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); animation: id-floor 12s ease-in-out infinite alternate; }
.scn-inn-dispute .candle { position:absolute; top:12%; left:50%; width:6px; height:20px; background: linear-gradient(180deg, #f0c060 0%, #b08040 100%); border-radius: 10%; box-shadow: 0 0 20px 10px #b08040, 0 0 40px 20px rgba(176,128,64,.3); animation: id-candle 3s ease-in-out infinite alternate; }
.scn-inn-dispute .figure { position:absolute; bottom:20%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: id-figure 4s ease-in-out infinite; }
.scn-inn-dispute .breeches { position:absolute; bottom:18%; left:28%; width:30px; height:20px; background: linear-gradient(180deg, #c8553d 0%, #a03420 100%); border-radius: 30% 60% 20% 40%; transform: rotate(5deg); animation: id-breeches 2s ease-in-out infinite alternate; }
.scn-inn-dispute .scymetar { position:absolute; bottom:30%; right:25%; width:40px; height:4px; background: linear-gradient(90deg, #8a8a8a 0%, #c0c0c0 100%); border-radius: 0 30% 30% 0; transform: rotate(30deg); animation: id-scymetar 3s ease-in-out infinite; }
.scn-inn-dispute .shadow { position:absolute; bottom:0; left:20%; width:60px; height:30px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(8px); animation: id-shadow 4s ease-in-out infinite; }
@keyframes id-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes id-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes id-candle { 0% { box-shadow: 0 0 15px 6px #b08040, 0 0 30px 12px rgba(176,128,64,.2); opacity:.9 } 50% { box-shadow: 0 0 30px 12px #d09050, 0 0 60px 24px rgba(208,144,80,.4); opacity:1 } 100% { box-shadow: 0 0 20px 8px #b08040, 0 0 40px 16px rgba(176,128,64,.25); opacity:.85 } }
@keyframes id-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes id-breeches { 0% { transform: rotate(3deg) scale(1) } 50% { transform: rotate(7deg) scale(1.05) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes id-scymetar { 0% { transform: rotate(25deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(28deg) } }
@keyframes id-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.5 } }

/* nose-debate-continues - funny dim interior */
.scn-nose-debate-continues { background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 40%, #3a2a2a 100%), radial-gradient(ellipse at 50% 30%, #4a3a3a 0%, transparent 60%); }
.scn-nose-debate-continues .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 100%); border-radius: 0 0 20% 20%; animation: nd-wall 10s ease-in-out infinite alternate; }
.scn-nose-debate-continues .lantern { position:absolute; top:10%; left:50%; width:10px; height:20px; background: linear-gradient(180deg, #f0c060 0%, #b08040 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 25px 12px #b08040, 0 0 50px 24px rgba(176,128,64,.2); animation: nd-lantern 4s ease-in-out infinite alternate; }
.scn-nose-debate-continues .figure-stranger { position:absolute; bottom:20%; left:25%; width:20px; height:45px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: nd-stranger 4s ease-in-out infinite; }
.scn-nose-debate-continues .nose { position:absolute; bottom:48%; left:30%; width:14px; height:10px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 60% 40% 30% 50%; transform: rotate(-10deg); animation: nd-nose 2s ease-in-out infinite alternate; }
.scn-nose-debate-continues .figure-wife { position:absolute; bottom:20%; right:20%; width:18px; height:42px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: nd-wife 4s ease-in-out infinite; }
.scn-nose-debate-continues .shadow { position:absolute; bottom:0; left:10%; width:80px; height:20px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(8px); animation: nd-shadow 6s ease-in-out infinite; }
.scn-nose-debate-continues .table { position:absolute; bottom:15%; left:35%; width:60px; height:6px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10%; animation: nd-table 8s ease-in-out infinite alternate; }
@keyframes nd-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes nd-lantern { 0% { box-shadow: 0 0 20px 8px #b08040, 0 0 40px 16px rgba(176,128,64,.15); } 50% { box-shadow: 0 0 35px 14px #d09050, 0 0 70px 28px rgba(208,144,80,.3); } 100% { box-shadow: 0 0 25px 10px #b08040, 0 0 50px 20px rgba(176,128,64,.2); } }
@keyframes nd-stranger { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nd-nose { 0% { transform: rotate(-12deg) scale(1) } 50% { transform: rotate(-8deg) scale(1.1) } 100% { transform: rotate(-10deg) scale(1.05) } }
@keyframes nd-wife { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nd-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.6 } }
@keyframes nd-table { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }

/* stranger-departs - tense dim interior */
.scn-stranger-departs { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 100%), radial-gradient(ellipse at 40% 40%, #3a3a4a 0%, transparent 70%); }
.scn-stranger-departs .background { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 0 0 30% 30%; animation: sd-bg 10s ease-in-out infinite alternate; }
.scn-stranger-departs .light { position:absolute; top:10%; left:30%; width:100px; height:200px; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,.2) 0%, transparent 70%); filter: blur(20px); animation: sd-light 6s ease-in-out infinite; }
.scn-stranger-departs .figure-stranger { position:absolute; bottom:20%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sd-stranger 3s ease-in-out infinite; }
.scn-stranger-departs .nose { position:absolute; bottom:50%; left:35%; width:16px; height:12px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 60% 40% 30% 50%; transform: rotate(-5deg); animation: sd-nose 2s ease-in-out infinite alternate; }
.scn-stranger-departs .figure-woman { position:absolute; bottom:20%; right:25%; width:18px; height:44px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sd-woman 4s ease-in-out infinite; }
.scn-stranger-departs .hand { position:absolute; bottom:38%; right:20%; width:6px; height:14px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-20deg); animation: sd-hand 2.5s ease-in-out infinite alternate; }
.scn-stranger-departs .shadow { position:absolute; bottom:0; left:15%; width:70px; height:20px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(10px); animation: sd-shadow 5s ease-in-out infinite; }
@keyframes sd-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sd-light { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes sd-stranger { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sd-nose { 0% { transform: rotate(-7deg) scale(1) } 50% { transform: rotate(-3deg) scale(1.08) } 100% { transform: rotate(-5deg) scale(1.02) } }
@keyframes sd-woman { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sd-hand { 0% { transform: rotate(-25deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(2px) } 100% { transform: rotate(-20deg) translateX(0) } }
@keyframes sd-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.6 } }

/* Scene: common-prayer */
.scn-common-prayer {
  background: linear-gradient(180deg, #1a110b 0%, #2b1e16 40%, #1a110b 100%), radial-gradient(ellipse at 50% 70%, #4a3424 0%, transparent 70%);
}
.scn-common-prayer .cp-wall {
  position: absolute; inset: 0 0 30% 0;
  background: repeating-linear-gradient(90deg, #3a281c 0px, #4a3424 4px, #3a281c 8px);
  opacity: 0.6;
  animation: cp-wall-shimmer 12s ease-in-out infinite alternate;
}
.scn-common-prayer .cp-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1e140e 0%, #0f0a07 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-common-prayer .cp-fireplace {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0f08 0%, #0d0704 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6), 0 0 80px 30px rgba(200, 120, 60, 0.3);
}
.scn-common-prayer .cp-fireplace::after {
  content: ''; position: absolute; bottom: 10%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #ff9a50 0%, #c8553d 40%, transparent 70%);
  border-radius: 50%;
  animation: cp-fire-glow 2.5s ease-in-out infinite alternate;
}
.scn-common-prayer .cp-figure-left {
  position: absolute; bottom: 30%; left: 15%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #1a110b 0%, #0a0704 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-sway-left 5s ease-in-out infinite;
}
.scn-common-prayer .cp-figure-right {
  position: absolute; bottom: 30%; right: 15%; width: 70px; height: 115px;
  background: linear-gradient(180deg, #1a110b 0%, #0a0704 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-sway-right 5.5s ease-in-out infinite;
}
.scn-common-prayer .cp-clock-pendulum {
  position: absolute; top: 8%; left: 50%; width: 4px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: cp-pendulum 3.5s ease-in-out infinite;
}
.scn-common-prayer .cp-light-flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, rgba(200, 120, 60, 0.15) 0%, transparent 60%);
  animation: cp-ambient-flicker 4s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes cp-wall-shimmer { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes cp-fire-glow { 0% { transform: scaleY(0.9); opacity: 0.8; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.85; } }
@keyframes cp-sway-left { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(4px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes cp-sway-right { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(-4px); } 100% { transform: rotate(1deg) translateX(0); } }
@keyframes cp-pendulum { 0% { transform: translateX(-50%) rotate(-15deg); } 50% { transform: translateX(-50%) rotate(15deg); } 100% { transform: translateX(-50%) rotate(-15deg); } }
@keyframes cp-ambient-flicker { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene: fiddlestick */
.scn-fiddlestick {
  background: radial-gradient(circle at 40% 60%, #4a3020 0%, #1a110b 100%), linear-gradient(180deg, #0d0805 0%, #1a110b 50%, #0d0805 100%);
}
.scn-fiddlestick .fs-curtain-left,
.scn-fiddlestick .fs-curtain-right {
  position: absolute; top: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #3a2215 0%, #1a0f08 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  animation: fs-curtain-sway 8s ease-in-out infinite alternate;
}
.scn-fiddlestick .fs-curtain-right {
  right: 0;
  border-radius: 60% 0 0 60% / 40% 0 0 40%;
  animation-delay: -4s;
}
.scn-fiddlestick .fs-figure {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 85%;
  background: linear-gradient(180deg, #0f0a07 0%, #050302 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: fs-breathe 6s ease-in-out infinite;
}
.scn-fiddlestick .fs-blush {
  position: absolute; bottom: 45%; left: 38%; width: 40px; height: 24px;
  background: radial-gradient(ellipse, #c8553d 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.6;
  animation: fs-blush-pulse 4s ease-in-out infinite alternate;
}
.scn-fiddlestick .fs-fiddlestick {
  position: absolute; bottom: 30%; left: 45%; width: 70px; height: 6px;
  background: linear-gradient(90deg, #6a4a3a 0%, #3a2a1a 50%, #6a4a3a 100%);
  border-radius: 3px;
  transform-origin: right center;
  animation: fs-tremble 1.5s steps(3) infinite;
}
.scn-fiddlestick .fs-hand {
  position: absolute; bottom: 28%; left: 44%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a110b 0%, #0a0704 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fs-hand-twitch 2s ease-in-out infinite;
}
.scn-fiddlestick .fs-glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(180, 100, 50, 0.2) 0%, transparent 60%);
  animation: fs-glow-pulse 5s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes fs-curtain-sway { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes fs-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-4px); } 100% { transform: scaleY(1); } }
@keyframes fs-blush-pulse { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes fs-tremble { 0% { transform: rotate(-3deg); } 33% { transform: rotate(2deg); } 66% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes fs-hand-twitch { 0% { transform: rotate(0deg); } 30% { transform: rotate(5deg); } 60% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes fs-glow-pulse { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* Scene: anatomy-studied */
.scn-anatomy-studied {
  background: linear-gradient(180deg, #120c08 0%, #1f1812 40%, #0d0906 100%), radial-gradient(ellipse at 50% 50%, #3a2a1d 0%, transparent 70%);
}
.scn-anatomy-studied .as-desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2b1d12 0%, #140c06 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
}
.scn-anatomy-studied .as-book-left,
.scn-anatomy-studied .as-book-right {
  position: absolute; bottom: 35%; width: 35%; height: 40%;
  background: linear-gradient(135deg, #4a3828 0%, #2b1d12 100%);
  border-radius: 4% 60% 4% 4% / 4% 80% 4% 4%;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.4);
}
.scn-anatomy-studied .as-book-left {
  left: 10%;
  transform-origin: right center;
  animation: as-book-open 10s ease-in-out infinite alternate;
}
.scn-anatomy-studied .as-book-right {
  right: 10%;
  background: linear-gradient(225deg, #4a3828 0%, #2b1d12 100%);
  border-radius: 60% 4% 4% 4% / 80% 4% 4% 4%;
  box-shadow: inset 4px 0 10px rgba(0,0,0,0.4);
  transform-origin: left center;
  animation: as-book-open 10s ease-in-out infinite alternate-reverse;
}
.scn-anatomy-studied .as-diagram {
  position: absolute; bottom: 40%; left: 50%; width: 40%; height: 25%;
  transform: translateX(-50%);
  background: radial-gradient(circle at 30% 40%, #6a4a3a 2px, transparent 2px),
              radial-gradient(circle at 70% 60%, #6a4a3a 3px, transparent 3px),
              linear-gradient(90deg, #6a4a3a 1px, transparent 1px);
  background-size: 40px 40px, 40px 40px, 20px 100%;
  opacity: 0.3;
  animation: as-diagram-pulse 6s ease-in-out infinite alternate;
}
.scn-anatomy-studied .as-candle {
  position: absolute; bottom: 40%; left: 50%; width: 14px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8c0 0%, #b8a080 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 8px rgba(200, 150, 80, 0.4);
}
.scn-anatomy-studied .as-flame {
  position: absolute; bottom: 76%; left: 50%; width: 12px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #c8553d 60%, transparent 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: as-flame-flicker 1.2s ease-in-out infinite alternate;
}
.scn-anatomy-studied .as-peep-left,
.scn-anatomy-studied .as-peep-right {
  position: absolute; bottom: 50%; width: 16px; height: 20px;
  background: #e8d8c0;
  border-radius: 50%;
  animation: as-peep-blink 4s ease-in-out infinite;
}
.scn-anatomy-studied .as-peep-left { left: 30%; }
.scn-anatomy-studied .as-peep-right { right: 30%; animation-delay: 0.15s; }
.scn-anatomy-studied .as-peep-left::after,
.scn-anatomy-studied .as-peep-right::after {
  content: ''; position: absolute; bottom: 5px; left: 4px; width: 8px; height: 8px;
  background: #0d0906;
  border-radius: 50%;
  animation: as-eye-dart 3s ease-in-out infinite alternate;
}
.scn-anatomy-studied .as-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 30%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
  animation: as-shadow-deepen 8s ease-in-out infinite alternate;
}
@keyframes as-book-open { 0% { transform: perspective(800px) rotateY(0deg); } 50% { transform: perspective(800px) rotateY(5deg); } 100% { transform: perspective(800px) rotateY(-2deg); } }
@keyframes as-diagram-pulse { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }
@keyframes as-flame-flicker { 0% { transform: translateX(-50%) scaleY(0.9) scaleX(1); } 50% { transform: translateX(-50%) scaleY(1.1) scaleX(0.8); } 100% { transform: translateX(-50%) scaleY(0.95) scaleX(1.05); } }
@keyframes as-peep-blink { 0%, 90%, 100% { transform: scaleY(1); } 95% { transform: scaleY(0.1); } }
@keyframes as-eye-dart { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }
@keyframes as-shadow-deepen { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

/* Scene: tender-enquiry */
.scn-tender-enquiry {
  background: linear-gradient(180deg, #0a1118 0%, #182a3a 40%, #0a1118 100%), radial-gradient(ellipse at 50% 30%, #2a4a6a 0%, transparent 70%);
}
.scn-tender-enquiry .te-window-frame {
  position: absolute; inset: 0;
  border: 12px solid #1a1510;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
  background: transparent;
}
.scn-tender-enquiry .te-foliage-left,
.scn-tender-enquiry .te-foliage-right {
  position: absolute; top: 50%; width: 30%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #0a1a10 0%, transparent 70%);
  border-radius: 50%;
  animation: te-foliage-rustle 15s ease-in-out infinite alternate;
}
.scn-tender-enquiry .te-foliage-left { left: -5%; }
.scn-tender-enquiry .te-foliage-right { right: -5%; animation-delay: -7s; }
.scn-tender-enquiry .te-figure {
  position: absolute; bottom: 10%; left: 50%; width: 80px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a1215 0%, #04080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(0,0,0,0.4);
  animation: te-figure-breathe 7s ease-in-out infinite;
}
.scn-tender-enquiry .te-moon {
  position: absolute; top: 12%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle at 40% 40%, #e8e0c0 0%, #a09870 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200, 200, 160, 0.3), 0 0 80px 20px rgba(200, 200, 160, 0.1);
  animation: te-moon-glow 8s ease-in-out infinite alternate;
}
.scn-tender-enquiry .te-snake-path {
  position: absolute; bottom: 8%; left: 25%; width: 50%; height: 20px;
  background: linear-gradient(90deg, transparent 0%, #0a1510 20%, #0a1510 80%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  opacity: 0.4;
  animation: te-snake-slither 6s ease-in-out infinite alternate;
}
.scn-tender-enquiry .te-light-shaft {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(200, 200, 160, 0.1) 0%, transparent 80%);
  transform-origin: top center;
  animation: te-shaft-sway 12s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes te-foliage-rustle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-10px); } 100% { transform: scaleY(0.95) translateY(5px); } }
@keyframes te-figure-breathe { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-5px); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes te-moon-glow { 0% { box-shadow: 0 0 40px 10px rgba(200, 200, 160, 0.2), 0 0 80px 20px rgba(200, 200, 160, 0.05); } 50% { box-shadow: 0 0 60px 15px rgba(200, 200, 160, 0.4), 0 0 120px 30px rgba(200, 200, 160, 0.1); } 100% { box-shadow: 0 0 30px 8px rgba(200, 200, 160, 0.15), 0 0 60px 15px rgba(200, 200, 160, 0.05); } }
@keyframes te-snake-slither { 0% { transform: scaleX(0.9) translateX(-10px); opacity: 0.3; } 50% { transform: scaleX(1.1) translateX(10px); opacity: 0.5; } 100% { transform: scaleX(0.95) translateX(-5px); opacity: 0.4; } }
@keyframes te-shaft-sway { 0% { transform: skewX(-2deg) scaleX(0.95); opacity: 0.5; } 50% { transform: skewX(2deg) scaleX(1.05); opacity: 0.8; } 100% { transform: skewX(-1deg) scaleX(0.98); opacity: 0.6; } }

.scn-pamphagus-cocles {
  background: linear-gradient(180deg, #2c1e0e 0%, #1a1208 50%, #0d0904 100%), radial-gradient(circle at 50% 30%, #4a3018 0%, transparent 70%);
}
.scn-pamphagus-cocles .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2814 0%, #2a1a0a 100%);
}
.scn-pamphagus-cocles .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1408 0%, #0a0602 100%);
}
.scn-pamphagus-cocles .character-a {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pc-walk 3s ease-in-out infinite;
}
.scn-pamphagus-cocles .character-b {
  position: absolute; bottom: 30%; left: 55%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #2a1a0e 0%, #120a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pc-walk 3.5s ease-in-out infinite 0.5s;
}
.scn-pamphagus-cocles .nose {
  position: absolute; bottom: 68%; left: 33%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  transform-origin: top center;
  animation: pc-nose 4s ease-in-out infinite;
}
.scn-pamphagus-cocles .candle {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c8944a 0%, #8a5c24 100%);
  border-radius: 2px 2px 10% 10%;
  transform: translateX(-50%);
}
.scn-pamphagus-cocles .candle-glow {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 30%, transparent 70%);
  transform: translate(-50%, -30%);
  border-radius: 50%;
  animation: pc-glow 4s ease-in-out infinite alternate;
}
@keyframes pc-walk {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes pc-nose {
  0% { transform: scaleY(1) rotate(-5deg); }
  50% { transform: scaleY(1.2) rotate(5deg); }
  100% { transform: scaleY(1) rotate(-5deg); }
}
@keyframes pc-glow {
  0% { opacity: 0.7; box-shadow: 0 0 20px 5px #c08030; }
  100% { opacity: 1; box-shadow: 0 0 40px 15px #f0c060; }
}

.scn-erasmus-studied {
  background: linear-gradient(180deg, #2a1e0e 0%, #1a1208 50%, #0d0904 100%), radial-gradient(circle at 50% 40%, #3a2814 0%, transparent 70%);
}
.scn-erasmus-studied .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2814 0%, #2a1a0a 100%);
}
.scn-erasmus-studied .desk {
  position: absolute; bottom: 25%; left: 25%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-erasmus-studied .father {
  position: absolute; bottom: 28%; left: 38%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0e 0%, #120a04 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: es-read 3s ease-in-out infinite;
}
.scn-erasmus-studied .book {
  position: absolute; bottom: 30%; left: 46%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  transform-origin: left center;
  animation: es-pages 8s ease-in-out infinite;
}
.scn-erasmus-studied .candle {
  position: absolute; bottom: 28%; left: 55%; width: 6px; height: 35px;
  background: linear-gradient(180deg, #c8944a 0%, #8a5c24 100%);
  border-radius: 2px 2px 10% 10%;
}
.scn-erasmus-studied .candle-glow {
  position: absolute; bottom: 30%; left: 55%; width: 50px; height: 50px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 30%, transparent 70%);
  transform: translate(-50%, -30%);
  border-radius: 50%;
  animation: es-glow 3s ease-in-out infinite alternate;
}
.scn-erasmus-studied .spectacles {
  position: absolute; bottom: 75%; left: 42%; width: 12px; height: 6px;
  border: 2px solid #a08060;
  border-radius: 50%;
  background: transparent;
  animation: es-spectacle 4s ease-in-out infinite;
}
@keyframes es-read {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes es-pages {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(-8deg) scaleX(1.05); }
  100% { transform: rotate(-10deg) scaleX(1); }
}
@keyframes es-glow {
  0% { opacity: 0.8; box-shadow: 0 0 15px 4px #c08030; }
  100% { opacity: 1; box-shadow: 0 0 30px 10px #f0c060; }
}
@keyframes es-spectacle {
  0% { transform: translateY(0) rotate(0); }
  33% { transform: translateY(-1px) rotate(5deg); }
  66% { transform: translateY(1px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0); }
}

.scn-slawkenbergius-inspiration {
  background: linear-gradient(180deg, #3a2814 0%, #1e1408 50%, #0d0904 100%), radial-gradient(circle at 50% 40%, #5a3a1a 0%, transparent 70%);
}
.scn-slawkenbergius-inspiration .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%);
}
.scn-slawkenbergius-inspiration .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-slawkenbergius-inspiration .folio {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  transform-origin: left center;
  animation: si-folio 12s ease-in-out infinite;
}
.scn-slawkenbergius-inspiration .quill {
  position: absolute; bottom: 45%; left: 60%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #d0a070 0%, #806040 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: si-quill 6s ease-in-out infinite;
}
.scn-slawkenbergius-inspiration .ink {
  position: absolute; bottom: 25%; left: 65%; width: 15px; height: 20px;
  background: radial-gradient(circle, #1a0a04 0%, #0a0402 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.8);
  animation: si-ink 8s ease-in-out infinite;
}
.scn-slawkenbergius-inspiration .ghost {
  position: absolute; bottom: 60%; left: 40%; width: 50px; height: 80px;
  background: radial-gradient(circle at 50% 30%, rgba(255,230,180,0.3) 0%, rgba(255,200,150,0.1) 50%, transparent 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: si-ghost 10s ease-in-out infinite alternate;
}
.scn-slawkenbergius-inspiration .light-beam {
  position: absolute; top: 0; left: 40%; right: 40%; bottom: 50%;
  background: linear-gradient(180deg, rgba(255,230,150,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: si-beam 15s ease-in-out infinite;
}
@keyframes si-folio {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-3deg) scale(1.02); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes si-quill {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-5px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes si-ink {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes si-ghost {
  0% { transform: translateY(0) rotate(-2deg); opacity: 0.5; }
  100% { transform: translateY(-10px) rotate(2deg); opacity: 0.8; }
}
@keyframes si-beam {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(1); }
}

.scn-nose-controversies {
  background: linear-gradient(180deg, #2c1e0e 0%, #1a1208 50%, #0d0904 100%), radial-gradient(circle at 50% 50%, #3a2814 0%, transparent 70%);
}
.scn-nose-controversies .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2814 0%, #2a1a0a 100%);
}
.scn-nose-controversies .bookshelf {
  position: absolute; bottom: 10%; left: 10%; right: 10%; top: 20%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%);
  border-radius: 4%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: nc-shelf 20s ease-in-out infinite;
}
.scn-nose-controversies .book-1 {
  position: absolute; bottom: 45%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: nc-book1 4s ease-in-out infinite;
}
.scn-nose-controversies .book-2 {
  position: absolute; bottom: 50%; left: 35%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #7a5a2a 0%, #4a3010 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  animation: nc-book2 5s ease-in-out infinite 0.5s;
}
.scn-nose-controversies .book-3 {
  position: absolute; bottom: 40%; left: 55%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #9a7a4a 0%, #6a4a1a 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  animation: nc-book3 6s ease-in-out infinite 1s;
}
.scn-nose-controversies .nose-statue {
  position: absolute; bottom: 35%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  transform-origin: top center;
  animation: nc-nose 3s ease-in-out infinite;
}
.scn-nose-controversies .shadow {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: nc-shadow 4s ease-in-out infinite alternate;
}
@keyframes nc-shelf {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes nc-book1 {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes nc-book2 {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-1px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes nc-book3 {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-3px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes nc-nose {
  0% { transform: scaleY(1) rotate(-10deg); }
  50% { transform: scaleY(1.3) rotate(10deg); }
  100% { transform: scaleY(1) rotate(-10deg); }
}
@keyframes nc-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  100% { opacity: 0.7; transform: scaleX(1.2); }
}

/* one block per scene id. Append to style.css. */
.scn-midwife-trust { background: linear-gradient(180deg, #2c1e16 0%, #4a362a 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 70%, #5c4230 0%, transparent 70%); }
.scn-midwife-trust .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #3a2518 0%, #2a1a0e 50%, #1c1008 100%); }
.scn-midwife-trust .window-glow { position:absolute; top:10%; right:15%; width:60px; height:80px; background: radial-gradient(ellipse, #d4a060 0%, transparent 70%); border-radius:10%; opacity:0.6; animation: mt-glint 6s ease-in-out infinite alternate; }
.scn-midwife-trust .bed { position:absolute; bottom:20%; left:10%; width:70%; height:30%; background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 -10px 20px rgba(0,0,0,0.5); animation: mt-settle 12s ease-in-out infinite; }
.scn-midwife-trust .figure-midwife { position:absolute; bottom:25%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mt-bend 8s ease-in-out infinite; }
.scn-midwife-trust .candle { position:absolute; bottom:40%; left:25%; width:6px; height:20px; background: linear-gradient(180deg, #d4a060 0%, #a07030 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 12px 4px #ffcc80; animation: mt-flicker 2s ease-in-out infinite; }
.scn-midwife-trust .light-halo { position:absolute; bottom:30%; left:20%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,200,120,0.4) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: mt-pulse 4s ease-in-out infinite; }
@keyframes mt-glint { 0% { opacity:0.4; transform:scale(1); } 50% { opacity:0.8; transform:scale(1.05); } 100% { opacity:0.5; transform:scale(0.95); } }
@keyframes mt-settle { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(1px); } }
@keyframes mt-bend { 0% { transform:rotate(-2deg); } 25% { transform:rotate(2deg) translateY(-1px); } 50% { transform:rotate(-1deg); } 75% { transform:rotate(3deg); } 100% { transform:rotate(-2deg); } }
@keyframes mt-flicker { 0% { opacity:0.8; box-shadow:0 0 8px 2px #ffcc80; } 50% { opacity:1; box-shadow:0 0 20px 6px #ffdd90; } 100% { opacity:0.9; box-shadow:0 0 10px 3px #ffcc80; } }
@keyframes mt-pulse { 0% { transform:scale(1); opacity:0.3; } 50% { transform:scale(1.2); opacity:0.5; } 100% { transform:scale(0.9); opacity:0.35; } }

.scn-public-opinion-fear { background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 40%, #1a0a0a 100%), radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, transparent 80%); }
.scn-public-opinion-fear .bg-dark { position:absolute; inset:0; background: linear-gradient(45deg, #0e0808 0%, #1c1010 50%, #140c0c 100%); }
.scn-public-opinion-fear .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a12 0%, #1c0c04 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.8); }
.scn-public-opinion-fear .figure-kneeling { position:absolute; bottom:20%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #120808 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: pf-shake 0.5s ease-in-out infinite; }
.scn-public-opinion-fear .arms { position:absolute; bottom:25%; left:40%; width:40px; height:10px; background: linear-gradient(90deg, #2a1a1a 0%, transparent 100%); border-radius:50%; transform:rotate(-20deg); animation: pf-plead 1.2s ease-in-out infinite alternate; }
.scn-public-opinion-fear .shadow { position:absolute; bottom:15%; left:45%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%); filter: blur(3px); animation: pf-loom 4s ease-in-out infinite; }
.scn-public-opinion-fear .candle-fear { position:absolute; top:30%; left:30%; width:4px; height:15px; background: linear-gradient(180deg, #c08040 0%, #a06020 100%); border-radius:10%; box-shadow: 0 0 10px 2px #c08040; animation: pf-flickerfast 0.3s ease-in-out infinite; }
@keyframes pf-shake { 0% { transform:translateX(-50%) translateY(0); } 25% { transform:translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform:translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform:translateX(-50%) translateY(2px) rotate(1deg); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes pf-plead { 0% { transform:rotate(-25deg) translateY(0); } 100% { transform:rotate(10deg) translateY(-3px); } }
@keyframes pf-loom { 0% { transform:scale(1); opacity:0.6; } 50% { transform:scale(1.3); opacity:1; } 100% { transform:scale(0.8); opacity:0.5; } }
@keyframes pf-flickerfast { 0% { opacity:0.7; box-shadow:0 0 5px 1px #c08040; } 50% { opacity:1; box-shadow:0 0 15px 4px #ffa050; } 100% { opacity:0.8; box-shadow:0 0 8px 2px #c08040; } }

.scn-metropolitan-danger { background: linear-gradient(180deg, #1a0a0a 0%, #2a0e0e 40%, #1a0505 100%), radial-gradient(ellipse at 50% 10%, #3a1212 0%, transparent 70%); }
.scn-metropolitan-danger .bg-city { position:absolute; inset:0; background: linear-gradient(0deg, #0a0505 70%, transparent 100%), repeating-linear-gradient(45deg, #2a0e0e 0%, transparent 2% 8%, #2a0e0e 12% 18%); opacity:0.5; }
.scn-metropolitan-danger .head-silhouette { position:absolute; top:10%; left:30%; width:40%; height:35%; background: radial-gradient(ellipse at 50% 60%, #4a1a1a 0%, #1a0505 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: md-throb 4s ease-in-out infinite; }
.scn-metropolitan-danger .spirits-up { position:absolute; top:20%; left:40%; width:10px; height:10px; background: radial-gradient(circle, #a04040 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 8px 2px #802020; animation: md-rise 6s ease-in-out infinite; }
.scn-metropolitan-danger .vessel-lines { position:absolute; bottom:30%; left:30%; width:40%; height:2px; background: linear-gradient(90deg, transparent 0%, #803030 30%, #a04040 50%, #803030 70%, transparent 100%); animation: md-pulse-line 3s ease-in-out infinite; }
.scn-metropolitan-danger .drops { position:absolute; top:35%; left:45%; width:3px; height:8px; background: #a04040; border-radius:50%; animation: md-drop 2s ease-in-out infinite; }
@keyframes md-throb { 0% { transform:scale(1); opacity:0.8; } 50% { transform:scale(1.05) translateY(-5px); opacity:1; } 100% { transform:scale(0.95) translateY(0); opacity:0.9; } }
@keyframes md-rise { 0% { transform:translateY(0) scale(1); opacity:0.5; } 50% { transform:translateY(-20px) scale(1.5); opacity:1; } 100% { transform:translateY(0) scale(1); opacity:0.5; } }
@keyframes md-pulse-line { 0% { opacity:0.3; transform:scaleX(1); } 50% { opacity:0.8; transform:scaleX(1.2); } 100% { opacity:0.4; transform:scaleX(0.9); } }
@keyframes md-drop { 0% { transform:translateY(0) rotate(0); opacity:0.7; } 30% { transform:translateY(-5px) rotate(-10deg); opacity:1; } 60% { transform:translateY(10px) rotate(10deg); opacity:0.3; } 100% { transform:translateY(0) rotate(0); opacity:0.7; } }

.scn-absolute-prince-fancy { background: linear-gradient(180deg, #4a3020 0%, #6a4a30 40%, #3a2a18 100%), radial-gradient(ellipse at 50% 90%, #7a5a40 0%, transparent 80%); }
.scn-absolute-prince-fancy .bg-throne { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 50%, #1c1008 100%); }
.scn-absolute-prince-fancy .prince { position:absolute; bottom:30%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #6a3a2a 0%, #4a2218 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ap-bounce 3s ease-in-out infinite; }
.scn-absolute-prince-fancy .crown { position:absolute; bottom:58%; left:50%; width:24px; height:14px; transform:translateX(-50%); background: linear-gradient(180deg, #f0c040 0%, #c89020 100%); clip-path: polygon(0% 100%, 20% 0%, 40% 30%, 50% 0%, 60% 30%, 80% 0%, 100% 100%); animation: ap-wobble 2s ease-in-out infinite; }
.scn-absolute-prince-fancy .judge-left { position:absolute; bottom:25%; left:15%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:30% 30% 10% 10%; transform:rotate(5deg); animation: ap-nod-left 2.5s ease-in-out infinite; }
.scn-absolute-prince-fancy .judge-right { position:absolute; bottom:25%; right:15%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:30% 30% 10% 10%; transform:rotate(-5deg); animation: ap-nod-right 2.5s ease-in-out infinite 1s; }
.scn-absolute-prince-fancy .fool { position:absolute; bottom:20%; left:40%; width:12px; height:20px; background: linear-gradient(180deg, #8a6040 0%, #5a3820 100%); border-radius:50% 50% 30% 30%; animation: ap-scamper 4s ease-in-out infinite; }
.scn-absolute-prince-fancy .gate { position:absolute; bottom:10%; left:10%; width:80%; height:15%; background: linear-gradient(90deg, #5a3820 0%, #7a5030 30%, #5a3820 60%, #7a5030 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 5px 10px rgba(0,0,0,0.5); animation: ap-gate 6s ease-in-out infinite; }
@keyframes ap-bounce { 0%,100% { transform:translateX(-50%) translateY(0); } 30% { transform:translateX(-50%) translateY(-5px); } 60% { transform:translateX(-50%) translateY(-2px); } }
@keyframes ap-wobble { 0% { transform:translateX(-50%) rotate(0); } 25% { transform:translateX(-50%) rotate(-5deg); } 50% { transform:translateX(-50%) rotate(5deg); } 75% { transform:translateX(-50%) rotate(-3deg); } 100% { transform:translateX(-50%) rotate(0); } }
@keyframes ap-nod-left { 0% { transform:rotate(5deg); } 50% { transform:rotate(-5deg) translateY(-2px); } 100% { transform:rotate(5deg); } }
@keyframes ap-nod-right { 0% { transform:rotate(-5deg); } 50% { transform:rotate(5deg) translateY(-2px); } 100% { transform:rotate(-5deg); } }
@keyframes ap-scamper { 0% { transform:translateX(0); } 25% { transform:translateX(10px) rotate(10deg); } 50% { transform:translateX(20px) rotate(-10deg); } 75% { transform:translateX(10px) rotate(5deg); } 100% { transform:translateX(0); } }
@keyframes ap-gate { 0% { transform:scaleY(1); } 50% { transform:scaleY(0.8) translateY(5px); } 100% { transform:scaleY(1); } }

/* scene: cataplasm-battle */
.scn-cataplasm-battle { background: linear-gradient(180deg, #3a2a1a 0%, #1a110a 100%), radial-gradient(circle at 50% 60%, #4a3a2a, #1a110a); }
.scn-cataplasm-battle .bg { position: absolute; inset: 0; background: linear-gradient(90deg, #2a1a0a 0%, #4a3222 50%, #2a1a0a 100%); }
.scn-cataplasm-battle .table { position: absolute; bottom: 20%; left: 30%; right: 30%; height: 8%; background: linear-gradient(180deg, #5a3a1a 0%, #3a220a 100%); border-radius: 20px; box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
.scn-cataplasm-battle .candle { position: absolute; bottom: 28%; left: 50%; width: 8px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #e0c080 0%, #8a6a3a 100%); border-radius: 2px; }
.scn-cataplasm-battle .glow { position: absolute; bottom: 30%; left: 50%; width: 120px; height: 120px; transform: translate(-50%, 50%); background: radial-gradient(circle, #ffd080 0%, #b08040 30%, transparent 70%); animation: cb-flicker 2s ease-in-out infinite alternate; }
.scn-cataplasm-battle .slop { position: absolute; bottom: 20%; left: 15%; width: 80px; height: 160px; background: linear-gradient(90deg, #1a110a 0%, #2a1a0a 100%); border-radius: 50% 30% 40% 40% / 60% 40% 50% 40%; transform-origin: bottom center; box-shadow: -10px 0 20px rgba(0,0,0,0.5); animation: cb-jab 3s ease-in-out infinite; }
.scn-cataplasm-battle .susannah { position: absolute; bottom: 20%; right: 15%; width: 60px; height: 150px; background: linear-gradient(90deg, #2a1a0a 0%, #1a110a 100%); border-radius: 30% 50% 40% 40% / 40% 60% 50% 40%; transform-origin: bottom center; animation: cb-dodge 3.5s ease-in-out infinite; }
.scn-cataplasm-battle .cataplasm { position: absolute; bottom: 40%; left: 30%; width: 50px; height: 40px; background: radial-gradient(circle, #c87858 0%, #a04828 100%); border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: cb-throw 4s ease-in-out infinite; }
@keyframes cb-flicker { 0% { opacity: 0.8; transform: translate(-50%, 50%) scale(0.95); } 50% { opacity: 1; transform: translate(-50%, 50%) scale(1.05); } 100% { opacity: 0.7; transform: translate(-50%, 50%) scale(0.9); } }
@keyframes cb-jab { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(-5deg); } 50% { transform: translateX(-5px) rotate(5deg); } 75% { transform: translateX(15px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cb-dodge { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-15px) rotate(10deg); } 60% { transform: translateX(-5px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cb-throw { 0% { left: 30%; bottom: 40%; transform: rotate(0deg) scale(1); } 20% { left: 35%; bottom: 50%; transform: rotate(-90deg) scale(1.1); } 40% { left: 55%; bottom: 55%; transform: rotate(-180deg) scale(0.9); } 60% { left: 65%; bottom: 45%; transform: rotate(-270deg) scale(1.2); } 100% { left: 30%; bottom: 40%; transform: rotate(-360deg) scale(1); } }

/* scene: wig-on-fire */
.scn-wig-on-fire { background: linear-gradient(180deg, #4a2a1a 0%, #2a150a 100%), radial-gradient(circle at 60% 40%, #5a3a2a, #1a0a00); }
.scn-wig-on-fire .bg { position: absolute; inset: 0; background: linear-gradient(90deg, #1a0a00 0%, #3a1a0a 50%, #1a0a00 100%); }
.scn-wig-on-fire .slop-arm { position: absolute; bottom: 30%; left: 10%; width: 120px; height: 40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 20% 40% 20%; transform-origin: right center; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: wf-throw 2.5s ease-in-out infinite; }
.scn-wig-on-fire .cataplasm { position: absolute; bottom: 50%; left: 35%; width: 90px; height: 70px; background: radial-gradient(circle, #d08868 0%, #a05030 100%); border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%; box-shadow: 0 8px 20px rgba(160,80,48,0.5); animation: wf-splat 3s ease-in-out infinite; }
.scn-wig-on-fire .susannah-head { position: absolute; bottom: 25%; right: 20%; width: 60px; height: 80px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wf-turn 2s ease-in-out infinite; }
.scn-wig-on-fire .wig { position: absolute; bottom: 60%; right: 25%; width: 70px; height: 50px; background: radial-gradient(circle at 50% 30%, #4a3a2a 0%, #1a110a 100%); border-radius: 50% 50% 50% 50% / 80% 80% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: wf-fly 3.5s ease-in-out infinite; }
.scn-wig-on-fire .splatter { position: absolute; bottom: 45%; left: 45%; width: 30px; height: 30px; background: #b87858; border-radius: 50% 20% 50% 30%; animation: wf-drip 2.5s ease-in-out infinite; }
.scn-wig-on-fire .shadow { position: absolute; bottom: 10%; right: 10%; width: 160px; height: 200px; background: rgba(0,0,0,0.4); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; filter: blur(10px); animation: wf-shake 3s ease-in-out infinite; }
@keyframes wf-throw { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(20px) rotate(-20deg); } 50% { transform: translateX(-10px) rotate(15deg); } 75% { transform: translateX(30px) rotate(-30deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wf-splat { 0% { transform: scale(1) rotate(0deg); opacity: 1; } 40% { transform: scale(1.3) rotate(20deg); opacity: 0.9; } 70% { transform: scale(0.9) rotate(-10deg); opacity: 0.8; } 100% { transform: scale(1) rotate(0deg); opacity: 1; } }
@keyframes wf-turn { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-15px) rotate(15deg); } 60% { transform: translateX(5px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wf-fly { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-30px) rotate(45deg); } 50% { transform: translateY(-10px) rotate(90deg); } 75% { transform: translateY(-40px) rotate(135deg); } 100% { transform: translateY(0) rotate(180deg); } }
@keyframes wf-drip { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(10px, -20px) scale(1.5); } 100% { transform: translate(0, 0) scale(1); } }
@keyframes wf-shake { 0% { transform: scale(1) translateX(0); } 25% { transform: scale(1.05) translateX(10px); } 50% { transform: scale(0.95) translateX(-10px); } 75% { transform: scale(1.02) translateX(15px); } 100% { transform: scale(1) translateX(0); } }

/* scene: governor-required */
.scn-governor-required { background: linear-gradient(180deg, #5a3a1a 0%, #3a220a 100%), radial-gradient(circle at 50% 80%, #7a5a3a, #2a1a0a); }
.scn-governor-required .bg { position: absolute; inset: 0; background: linear-gradient(180deg, #4a2a0a 0%, #2a1a0a 50%, #1a0a00 100%); }
.scn-governor-required .fireplace { position: absolute; bottom: 15%; left: 50%; width: 200px; height: 160px; transform: translateX(-50%); background: linear-gradient(180deg, #1a0a00 0%, #000 100%); border-radius: 40px 40px 0 0; border: 6px solid #3a2212; box-shadow: inset 0 0 40px rgba(0,0,0,0.8); }
.scn-governor-required .fire-glow { position: absolute; bottom: 15%; left: 50%; width: 160px; height: 120px; transform: translateX(-50%); background: radial-gradient(circle, #ff8c00 0%, #ff5500 40%, transparent 70%); animation: gr-blaze 4s ease-in-out infinite alternate; }
.scn-governor-required .father { position: absolute; bottom: 20%; left: 22%; width: 60px; height: 150px; background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 100%); border-radius: 40% 30% 30% 40% / 60% 40% 40% 60%; transform-origin: bottom center; box-shadow: -5px 0 15px rgba(0,0,0,0.4); animation: gr-lecture 5s ease-in-out infinite; }
.scn-governor-required .toby { position: absolute; bottom: 20%; left: 40%; width: 70px; height: 110px; background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 40% 40% 50% / 50% 50% 50% 50%; transform-origin: bottom center; animation: gr-nod 6s ease-in-out infinite; }
.scn-governor-required .yorick { position: absolute; bottom: 20%; right: 20%; width: 40px; height: 140px; background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 100%); border-radius: 20% 40% 30% 20% / 50% 50% 50% 50%; transform-origin: bottom center; animation: gr-listen 7s ease-in-out infinite; }
.scn-governor-required .baby { position: absolute; bottom: 25%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: gr-rock 3s ease-in-out infinite; }
@keyframes gr-blaze { 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); } }
@keyframes gr-lecture { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(5px) rotate(-5deg); } 60% { transform: translateX(-5px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gr-nod { 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 gr-listen { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(3px) rotate(2deg); } 80% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gr-rock { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(-5deg); } 60% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }

/* scene: mirror-governor */
.scn-mirror-governor { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%), radial-gradient(circle at 50% 30%, #4a4a5a, #1a1a2a); }
.scn-mirror-governor .bg { position: absolute; inset: 0; background: linear-gradient(90deg, #1a1a2a 0%, #3a3a4a 50%, #1a1a2a 100%); }
.scn-mirror-governor .mirror-frame { position: absolute; top: 10%; left: 50%; width: 180px; height: 240px; transform: translateX(-50%); background: linear-gradient(135deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 20px; border: 12px solid #4a3a2a; box-shadow: 0 0 40px rgba(0,0,0,0.6), inset 0 0 20px rgba(0,0,0,0.4); }
.scn-mirror-governor .reflection { position: absolute; top: 12%; left: 50%; width: 156px; height: 216px; transform: translateX(-50%); background: linear-gradient(135deg, #6a6a8a 0%, #8a8aaa 40%, #4a4a6a 100%); border-radius: 10px; box-shadow: inset 0 0 30px rgba(255,255,255,0.2); animation: mg-shimmer 8s ease-in-out infinite alternate; }
.scn-mirror-governor .father { position: absolute; bottom: 15%; left: 12%; width: 50px; height: 130px; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 100%); border-radius: 30% 40% 30% 40% / 50% 50% 50% 50%; transform-origin: bottom center; box-shadow: -5px 0 15px rgba(0,0,0,0.4); animation: mg-point 4s ease-in-out infinite; }
.scn-mirror-governor .boy { position: absolute; bottom: 18%; left: 45%; width: 30px; height: 70px; background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 30% 30% 40% / 50% 50% 50% 50%; transform-origin: bottom center; animation: mg-admire 5s ease-in-out infinite; }
.scn-mirror-governor .governor { position: absolute; bottom: 18%; left: 50%; width: 40px; height: 100px; transform: translateX(-50%); background: linear-gradient(90deg, #3a3a5a 0%, #5a5a7a 100%); border-radius: 30% 40% 30% 40% / 50% 50% 50% 50%; box-shadow: 0 0 20px rgba(90,90,122,0.3); animation: mg-bow 6s ease-in-out infinite; }
.scn-mirror-governor .polish { position: absolute; top: 15%; left: 45%; width: 80px; height: 200px; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.1) 50%, rgba(255,255,255,0) 100%); transform: skewX(-20deg); animation: mg-gleam 5s linear infinite; }
@keyframes mg-shimmer { 0% { background-position: 0% 0%; } 50% { background-position: 100% 100%; } 100% { background-position: 0% 0%; } }
@keyframes mg-point { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-15deg); } 50% { transform: translateX(-5px) rotate(5deg); } 75% { transform: translateX(10px) rotate(-20deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mg-admire { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-5px) rotate(10deg); } 60% { transform: translateX(5px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mg-bow { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(-20deg); } 60% { transform: translateX(-50%) rotate(10deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes mg-gleam { 0% { transform: skewX(-20deg) translateX(-100px); } 100% { transform: skewX(-20deg) translateX(200px); } }

.scn-gravity-imposture {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #4a2a18 40%, #3a1f10 100%),
    radial-gradient(ellipse at 30% 20%, #5a3a1e 0%, transparent 70%);
}
.scn-gravity-imposture .stage {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 40% 30%, rgba(180,120,60,.15) 0%, transparent 70%);
}
.scn-gravity-imposture .pedestal {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 80px;
  height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a, #3a2510);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-gravity-imposture .figure {
  position: absolute;
  bottom: calc(20% + 40px);
  left: 50%;
  width: 28px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a10, #1a0e08 70%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: gim-fig 4s ease-in-out infinite;
}
.scn-gravity-imposture .wig {
  position: absolute;
  bottom: calc(20% + 100px);
  left: 50%;
  width: 48px;
  height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #b89670 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40%;
  filter: blur(0.5px);
  animation: gim-wig 3s ease-in-out infinite;
}
.scn-gravity-imposture .book {
  position: absolute;
  bottom: calc(20% + 40px);
  left: 54%;
  width: 14px;
  height: 18px;
  background: linear-gradient(180deg, #8a6a4a, #5a3a1a);
  border-radius: 4px;
  transform-origin: bottom left;
  animation: gim-book 5s ease-in-out infinite;
}
.scn-gravity-imposture .curtain-left {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 18%;
  background: linear-gradient(180deg, #3a2010, #1a0e08);
  border-radius: 0 30% 30% 0;
  animation: gim-curl 20s ease-in-out infinite alternate;
}
.scn-gravity-imposture .curtain-right {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 18%;
  background: linear-gradient(180deg, #3a2010, #1a0e08);
  border-radius: 30% 0 0 30%;
  animation: gim-curR 20s ease-in-out infinite alternate;
}
.scn-gravity-imposture .lamp {
  position: absolute;
  top: 12%;
  left: 22%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #d0a060 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,150,80,.6);
  animation: gim-lamp 3s ease-in-out infinite alternate;
}
@keyframes gim-fig {
  0%   { transform: translateX(-50%) rotate(-2deg) translateY(0); }
  50%  { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(-2deg) translateY(0); }
}
@keyframes gim-wig {
  0%   { transform: translateX(-50%) rotate(-5deg); }
  30%  { transform: translateX(-50%) rotate(3deg) scale(1.03); }
  70%  { transform: translateX(-50%) rotate(-4deg) scale(0.97); }
  100% { transform: translateX(-50%) rotate(-5deg); }
}
@keyframes gim-book {
  0%   { transform: rotate(0deg) translateY(0); }
  25%  { transform: rotate(-15deg) translateY(-4px); }
  50%  { transform: rotate(5deg) translateY(-2px); }
  75%  { transform: rotate(-10deg) translateY(-6px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes gim-curl {
  0%   { width: 18%; }
  100% { width: 12%; }
}
@keyframes gim-curR {
  0%   { width: 18%; }
  100% { width: 12%; }
}
@keyframes gim-lamp {
  0%   { opacity: .7; box-shadow: 0 0 12px 4px rgba(200,150,80,.4); }
  50%  { opacity: 1; box-shadow: 0 0 28px 8px rgba(200,150,80,.8); }
  100% { opacity: .8; box-shadow: 0 0 18px 6px rgba(200,150,80,.5); }
}

.scn-locke-deceived {
  background:
    linear-gradient(180deg, #1e1310 0%, #2c1e15 50%, #1a100c 100%),
    radial-gradient(ellipse at 50% 30%, #3a2518 0%, transparent 60%);
}
.scn-locke-deceived .desk {
  position: absolute;
  bottom: 15%;
  left: 20%;
  right: 20%;
  height: 10px;
  background: linear-gradient(180deg, #5a3a20, #3a2210);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-locke-deceived .figure {
  position: absolute;
  bottom: 15%;
  left: 35%;
  width: 30px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lkd-fig 6s ease-in-out infinite;
}
.scn-locke-deceived .candle {
  position: absolute;
  bottom: 15%;
  left: 55%;
  width: 6px;
  height: 20px;
  background: linear-gradient(180deg, #8a5a30, #4a2a10);
  border-radius: 2px;
  animation: lkd-candle 2.5s ease-in-out infinite alternate;
}
.scn-locke-deceived .bubble {
  position: absolute;
  bottom: 50%;
  left: 50%;
  width: 50px;
  height: 50px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 35% 30%, rgba(200,180,160,.3) 0%, rgba(180,160,140,.05) 100%);
  border-radius: 50%;
  border: 1px solid rgba(200,180,160,.2);
  animation: lkd-bubble 4s ease-in-out infinite;
}
.scn-locke-deceived .imp {
  position: absolute;
  bottom: 15%;
  left: 65%;
  width: 16px;
  height: 24px;
  background: linear-gradient(180deg, #251a12, #0e0804);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lkd-imp 3s ease-in-out infinite;
}
@keyframes lkd-fig {
  0%   { transform: translateX(-50%) rotate(0deg); }
  25%  { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
  50%  { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  75%  { transform: translateX(-50%) rotate(3deg) translateY(-4px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes lkd-candle {
  0%   { opacity: .8; box-shadow: 0 0 8px 2px rgba(200,150,80,.5); }
  50%  { opacity: 1; box-shadow: 0 0 14px 4px rgba(200,150,80,.7); }
  100% { opacity: .6; box-shadow: 0 0 6px 1px rgba(200,150,80,.3); }
}
@keyframes lkd-bubble {
  0%   { transform: translate(-50%, -50%) scale(1) rotate(0deg); }
  25%  { transform: translate(-48%, -52%) scale(1.02) rotate(5deg); }
  50%  { transform: translate(-50%, -50%) scale(0.98) rotate(-3deg); }
  75%  { transform: translate(-52%, -48%) scale(1.01) rotate(2deg); }
  100% { transform: translate(-50%, -50%) scale(1) rotate(0deg); }
}
@keyframes lkd-imp {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(8px) rotate(15deg) translateY(-2px); }
  100% { transform: translateX(0) rotate(0deg); }
}

.scn-door-hinge-moral {
  background:
    linear-gradient(135deg, #1a100c 0%, #2c1e14 50%, #0e0804 100%),
    radial-gradient(ellipse at 60% 40%, #3a2210 0%, transparent 70%);
}
.scn-door-hinge-moral .door-frame {
  position: absolute;
  left: 50%;
  top: 5%;
  bottom: 5%;
  width: 40%;
  transform: translateX(-50%);
  border: 6px solid #3a2a1a;
  background: transparent;
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px #2a1a0e;
}
.scn-door-hinge-moral .door {
  position: absolute;
  left: 50%;
  top: 5%;
  bottom: 5%;
  width: 35%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020, #2a1a0e);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-door-hinge-moral .hinge {
  position: absolute;
  left: 50%;
  top: 30%;
  width: 10px;
  height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #8a6a4a, #4a2a10);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: dhm-hinge 8s ease-in-out infinite;
}
.scn-door-hinge-moral .wig {
  position: absolute;
  left: calc(50% + 15px);
  top: 28%;
  width: 50px;
  height: 28px;
  background: radial-gradient(ellipse at 50% 30%, #b09070, #7a5a3a);
  border-radius: 50% 60% 50% 50% / 60% 50% 50% 60%;
  transform-origin: 0 50%;
  animation: dhm-wig 4s ease-in-out infinite alternate;
}
.scn-door-hinge-moral .beard {
  position: absolute;
  left: calc(50% + 20px);
  top: 35%;
  width: 12px;
  height: 40px;
  background: linear-gradient(180deg, #8a6a4a, #4a2a10);
  border-radius: 0 0 50% 50% / 0 0 60% 60%;
  transform-origin: top center;
  animation: dhm-beard 5s ease-in-out infinite alternate;
}
.scn-door-hinge-moral .quill {
  position: absolute;
  left: 35%;
  bottom: 10%;
  width: 4px;
  height: 30px;
  background: linear-gradient(180deg, #d0b090, #8a6a4a);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: dhm-quill 7s ease-in-out infinite;
}
@keyframes dhm-hinge {
  0%   { transform: translateX(-50%) scale(1) rotate(0deg); }
  30%  { transform: translateX(-50%) scale(1.1) rotate(10deg); }
  70%  { transform: translateX(-50%) scale(0.9) rotate(-5deg); }
  100% { transform: translateX(-50%) scale(1) rotate(0deg); }
}
@keyframes dhm-wig {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(25deg); }
}
@keyframes dhm-beard {
  0%   { transform: rotate(0deg); }
  50%  { transform: rotate(15deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes dhm-quill {
  0%   { transform: rotate(0deg) translateY(0); }
  25%  { transform: rotate(10deg) translateY(-3px); }
  50%  { transform: rotate(-5deg) translateY(0); }
  75%  { transform: rotate(12deg) translateY(-5px); }
  100% { transform: rotate(0deg) translateY(0); }
}

.scn-inconsistent-man {
  background:
    linear-gradient(135deg, #0a0806 0%, #1a1210 40%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 50%, #1a1210 0%, transparent 70%);
}
.scn-inconsistent-man .chair {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 60px;
  height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a10, #120a06);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,.7);
}
.scn-inconsistent-man .figure {
  position: absolute;
  bottom: calc(15% + 60px);
  left: 50%;
  width: 32px;
  height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a100c 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: icm-fig 10s ease-in-out infinite;
}
.scn-inconsistent-man .dagger {
  position: absolute;
  bottom: 45%;
  left: 48%;
  width: 4px;
  height: 40px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0e);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: icm-dagger 1.5s ease-in-out infinite;
}
.scn-inconsistent-man .flower {
  position: absolute;
  bottom: 40%;
  left: 52%;
  width: 14px;
  height: 14px;
  background: radial-gradient(circle, #702243 0%, #3a1120 60%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(112,34,67,.4);
  animation: icm-flower 8s ease-in-out infinite;
}
.scn-inconsistent-man .bandage {
  position: absolute;
  bottom: 70%;
  left: 55%;
  width: 20px;
  height: 6px;
  background: #e8dcc8;
  border-radius: 2px;
  transform: rotate(15deg);
  animation: icm-bandage 6s ease-in-out infinite;
}
.scn-inconsistent-man .candle {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 5px;
  height: 25px;
  background: linear-gradient(180deg, #7a5a3a, #3a2210);
  border-radius: 2px;
  animation: icm-candle 3s ease-in-out infinite alternate;
}
.scn-inconsistent-man .shadow {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 80px;
  height: 20px;
  transform: translateX(-50%) scaleX(1.2);
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: icm-shadow 12s ease-in-out infinite;
}
@keyframes icm-fig {
  0%   { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  30%  { transform: translateX(-50%) translateY(-4px) rotate(2deg); }
  60%  { transform: translateX(-50%) translateY(2px) rotate(-3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes icm-dagger {
  0%   { transform: rotate(10deg) translateY(0); }
  50%  { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes icm-flower {
  0%   { transform: scale(1) rotate(0deg); }
  25%  { transform: scale(0.85) rotate(-20deg); }
  50%  { transform: scale(0.7) rotate(-40deg); }
  75%  { transform: scale(0.9) rotate(-10deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes icm-bandage {
  0%   { transform: rotate(15deg) translateY(0); opacity: .8; }
  50%  { transform: rotate(10deg) translateY(-2px); opacity: 1; }
  100% { transform: rotate(15deg) translateY(0); opacity: .8; }
}
@keyframes icm-candle {
  0%   { opacity: 0.6; box-shadow: 0 0 6px 2px rgba(200,150,80,.3); }
  50%  { opacity: 1; box-shadow: 0 0 16px 4px rgba(200,150,80,.7); }
  100% { opacity: 0.7; box-shadow: 0 0 10px 3px rgba(200,150,80,.4); }
}
@keyframes icm-shadow {
  0%   { transform: translateX(-50%) scaleX(1.2) translateY(0); }
  50%  { transform: translateX(-50%) scaleX(1.4) translateY(2px); }
  100% { transform: translateX(-50%) scaleX(1.2) translateY(0); }
}

/* authors-life */
.scn-authors-life { background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%), radial-gradient(ellipse at 50% 40%, #c07030 0%, transparent 50%); }
.scn-authors-life .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-authors-life .desk { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6); }
.scn-authors-life .figure { position:absolute; bottom:30%; left:20%; width:20%; height:40%; background: #0a0a0a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: au-figure 3s ease-in-out infinite; }
.scn-authors-life .candle { position:absolute; bottom:40%; left:50%; width:2%; height:15%; background: linear-gradient(180deg, #f0d0a0 0%, #c08030 100%); border-radius: 10% 10% 40% 40%; box-shadow: 0 0 10px 5px rgba(255,200,100,0.6); }
.scn-authors-life .glow { position:absolute; bottom:42%; left:49%; width:4%; height:4%; background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%); border-radius: 50%; animation: au-glow 2s ease-in-out infinite alternate; }
.scn-authors-life .quill { position:absolute; bottom:45%; left:55%; width:1%; height:12%; background: #c0a080; border-radius: 0 0 50% 50%; transform: rotate(30deg); animation: au-quill 4s ease-in-out infinite; }
.scn-authors-life .shuttlecock { position:absolute; bottom:50%; left:30%; width:3%; height:3%; background: #d0b070; border-radius: 50%; box-shadow: 0 0 5px rgba(0,0,0,0.3); animation: au-shuttle 5s ease-in-out infinite; }

@keyframes au-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes au-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes au-quill { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-5px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes au-shuttle { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-10px) rotate(10deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-5px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* opinion-property */
.scn-opinion-property { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%), radial-gradient(ellipse at 40% 60%, #b07030 0%, transparent 60%); }
.scn-opinion-property .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-opinion-property .table { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-opinion-property .figure { position:absolute; bottom:15%; left:20%; width:15%; height:50%; background: #0a0a0a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: op-figure 4s ease-in-out infinite; }
.scn-opinion-property .apple { position:absolute; bottom:25%; left:40%; width:5%; height:6%; background: radial-gradient(circle, #c8553d 0%, #a0461a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: op-apple 3s ease-in-out infinite; }
.scn-opinion-property .apple-glow { position:absolute; bottom:25%; left:40%; width:5%; height:6%; background: radial-gradient(circle, rgba(255,200,150,0.3) 0%, transparent 60%); border-radius: 50%; animation: op-glow 2s ease-in-out infinite alternate; }
.scn-opinion-property .book { position:absolute; bottom:15%; left:55%; width:8%; height:12%; background: #5a3a2a; border-radius: 10%; transform: rotate(-10deg); box-shadow: 2px 2px 4px rgba(0,0,0,0.4); animation: op-book 6s ease-in-out infinite; }

@keyframes op-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes op-apple { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes op-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.3); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes op-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }

/* tribonius-defense */
.scn-tribonius-defense { background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #a06020 0%, transparent 60%); }
.scn-tribonius-defense .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-tribonius-defense .figure { position:absolute; bottom:20%; left:30%; width:20%; height:50%; background: #0a0a0a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: tr-figure 2s ease-in-out infinite; }
.scn-tribonius-defense .sweat-a { position:absolute; bottom:65%; left:35%; width:2%; height:2%; background: radial-gradient(circle, #80a0c0 0%, #406080 100%); border-radius: 50%; animation: tr-sweat 3s ease-in-out infinite; }
.scn-tribonius-defense .sweat-b { position:absolute; bottom:60%; left:40%; width:1.5%; height:1.5%; animation: tr-sweat 3.5s ease-in-out infinite 0.5s; }
.scn-tribonius-defense .sweat-c { position:absolute; bottom:55%; left:38%; width:1.8%; height:1.8%; animation: tr-sweat 4s ease-in-out infinite 1s; }
.scn-tribonius-defense .floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 20% 20% 0 0; }

@keyframes tr-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 70% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tr-sweat { 0% { transform: translateY(0) scale(1); opacity:1; } 25% { transform: translateY(15px) scale(0.9); opacity:0.9; } 50% { transform: translateY(0) scale(1); opacity:1; } 75% { transform: translateY(25px) scale(0.8); opacity:0.8; } 100% { transform: translateY(0) scale(1); opacity:1; } }

/* fathers-opinions-defended */
.scn-fathers-opinions-defended { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 60%, #c07030 0%, transparent 50%); }
.scn-fathers-opinions-defended .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-fathers-opinions-defended .hearth { position:absolute; bottom:8%; left:25%; width:50%; height:20%; background: #2a1a0a; border-radius: 50% 50% 0 0; box-shadow: inset 0 5px 15px #00000066; }
.scn-fathers-opinions-defended .pot { position:absolute; bottom:22%; left:38%; width:24%; height:12%; background: #4a3a2a; border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: fa-pot 5s ease-in-out infinite; }
.scn-fathers-opinions-defended .figure { position:absolute; bottom:15%; left:10%; width:12%; height:40%; background: #0a0a0a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: fa-figure 3s ease-in-out infinite; }
.scn-fathers-opinions-defended .fire-glow { position:absolute; bottom:10%; left:30%; width:40%; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(255,150,50,0.4) 0%, transparent 70%); animation: fa-fire 2s ease-in-out infinite alternate; }
.scn-fathers-opinions-defended .steam-a { position:absolute; bottom:32%; left:42%; width:6%; height:10%; background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 100%); border-radius: 50%; animation: fa-steam 4s ease-in-out infinite; }
.scn-fathers-opinions-defended .steam-b { position:absolute; bottom:30%; left:48%; width:5%; height:8%; background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, transparent 100%); border-radius: 50%; animation: fa-steam 5s ease-in-out infinite 0.5s; }

@keyframes fa-pot { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fa-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fa-fire { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes fa-steam { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-30px) scale(1.5); opacity:0.3; } 100% { transform: translateY(-60px) scale(2); opacity:0; } }

.scn-volume-three-ends {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2d1b0e 30%, #1a0f0a 60%, #0d0805 100%),
    radial-gradient(ellipse at 50% 70%, #3a2518 0%, transparent 60%);
}
.scn-volume-three-ends .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(30,20,15,0.6) 0%, transparent 100%);
  animation: vte-bg 12s ease-in-out infinite alternate;
}
.scn-volume-three-ends .shelf {
  position: absolute; bottom: 45%; left: 10%; right: 10%; height: 4px;
  background: linear-gradient(90deg, #4a2a1a, #3a1a0a, #4a2a1a);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: vte-shelf 8s ease-in-out infinite;
}
.scn-volume-three-ends .books {
  position: absolute; bottom: 48%; left: 12%; right: 12%; height: 30%;
  background: repeating-linear-gradient(90deg,
    #5a3a2a 0px, #6a4a3a 8px, #3a1a0a 16px, #4a2a1a 24px);
  border-radius: 2px 2px 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6);
  animation: vte-books 20s linear infinite;
}
.scn-volume-three-ends .desk {
  position: absolute; bottom: 28%; left: 25%; right: 25%; height: 18%;
  background: linear-gradient(180deg, #4a3020, #2a1a10);
  border-radius: 4px;
  transform: perspective(300px) rotateX(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-volume-three-ends .candle {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #e0c080 0%, #b08050 50%, #a07040 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: vte-candle 4s ease-in-out infinite;
}
.scn-volume-three-ends .glow {
  position: absolute; bottom: 38%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffcc60 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: vte-glow 3s ease-in-out infinite alternate;
}
.scn-volume-three-ends .book {
  position: absolute; bottom: 30%; left: 35%; width: 50px; height: 34px;
  background: linear-gradient(45deg, #6a4a3a, #4a2a1a, #3a1a0a);
  border-radius: 2px 2px 8px 2px;
  transform-origin: bottom left;
  animation: vte-book 6s ease-in-out infinite;
}
.scn-volume-three-ends .figure {
  position: absolute; bottom: 28%; left: 42%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vte-figure 5s ease-in-out infinite;
}
@keyframes vte-bg { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes vte-shelf { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes vte-books { 0% { background-position: 0 0; } 100% { background-position: 48px 0; } }
@keyframes vte-candle { 0%,100% { transform: translateX(-50%) scaleY(1) rotate(-0.5deg); } 25% { transform: translateX(-50%) scaleY(1.03) rotate(0.5deg); } 50% { transform: translateX(-50%) scaleY(0.97) rotate(-0.3deg); } 75% { transform: translateX(-50%) scaleY(1.01) rotate(0.2deg); } }
@keyframes vte-glow { 0% { opacity: 0.7; box-shadow: 0 0 20px 8px #ffaa40, 0 0 40px 16px rgba(255,170,64,0.3); } 50% { opacity: 1; box-shadow: 0 0 30px 12px #ffcc60, 0 0 60px 24px rgba(255,204,96,0.5); } 100% { opacity: 0.8; box-shadow: 0 0 22px 8px #ffaa40, 0 0 44px 16px rgba(255,170,64,0.35); } }
@keyframes vte-book { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes vte-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-0.5deg); } 75% { transform: translateY(-1px) rotate(1deg); } }

.scn-dedication-great-man {
  background:
    linear-gradient(135deg, #1f1410 0%, #2c1c12 40%, #1a0e0a 100%),
    radial-gradient(ellipse at 50% 90%, #3a2015 0%, transparent 50%);
}
.scn-dedication-great-man .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,5,3,0.5) 0%, transparent 100%);
  animation: dgm-bg 10s ease-in-out infinite alternate;
}
.scn-dedication-great-man .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(135deg, #3a2015, #2a150a);
  transform: perspective(200px) rotateX(10deg);
  transform-origin: bottom center;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-dedication-great-man .throne {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a, #3a2015);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-dedication-great-man .throne::before {
  content: '';
  position: absolute; top: -10px; left: -5px; right: -5px; height: 20px;
  background: radial-gradient(ellipse, #5a3a2a, #3a2015);
  border-radius: 50%;
}
.scn-dedication-great-man .crown {
  position: absolute; bottom: 76%; left: 50%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #c08040, #a06020);
  border-radius: 50% 50% 0 0;
  transform: translateX(-50%);
  animation: dgm-crown 3s ease-in-out infinite;
}
.scn-dedication-great-man .figure {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dgm-figure 2s ease-in-out infinite;
}
.scn-dedication-great-man .book {
  position: absolute; bottom: 20%; left: 34%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #6a4a3a, #4a2a1a);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: dgm-book 2s ease-in-out infinite;
}
.scn-dedication-great-man .curtain-l {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: repeating-linear-gradient(180deg, #4a2a1a, #2a150a 20px, #3a2015 40px);
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: dgm-curtain 6s ease-in-out infinite alternate;
}
.scn-dedication-great-man .curtain-r {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: repeating-linear-gradient(180deg, #4a2a1a, #2a150a 20px, #3a2015 40px);
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  animation: dgm-curtain 6s ease-in-out infinite alternate-reverse;
}
@keyframes dgm-bg { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes dgm-crown { 0%,100% { transform: translateX(-50%) rotate(-10deg) scale(0.95); } 50% { transform: translateX(-50%) rotate(10deg) scale(1.05); } }
@keyframes dgm-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(6px) rotate(10deg); } 50% { transform: translateY(10px) rotate(15deg); } 75% { transform: translateX(6px) rotate(12deg); } }
@keyframes dgm-book { 0%,100% { transform: rotate(15deg); } 25% { transform: rotate(22deg); } 50% { transform: rotate(10deg); } 75% { transform: rotate(18deg); } }
@keyframes dgm-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.06); } 100% { transform: scaleX(0.95); } }

.scn-dedication-shepherd {
  background:
    linear-gradient(180deg, #1f1410 0%, #2c1c12 30%, #1a0e0a 70%, #0f0805 100%),
    radial-gradient(ellipse at 50% 80%, #3a2518 0%, transparent 50%);
}
.scn-dedication-shepherd .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,12,8,0.6) 0%, transparent 100%);
  animation: dsh-bg 14s ease-in-out infinite alternate;
}
.scn-dedication-shepherd .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a, #1a1008);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
}
.scn-dedication-shepherd .stool {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a, #3a2015);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-dedication-shepherd .figure {
  position: absolute; bottom: 25%; left: 32%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dsh-figure 3s ease-in-out infinite;
}
.scn-dedication-shepherd .sheep {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, #6a5a4a, #4a3a2a);
  border-radius: 50%;
  animation: dsh-sheep 4s ease-in-out infinite;
}
.scn-dedication-shepherd .crook {
  position: absolute; bottom: 30%; left: 36%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a, #4a2a1a);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: dsh-crook 3s ease-in-out infinite;
}
.scn-dedication-shepherd .lantern {
  position: absolute; bottom: 35%; left: 60%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #c08050, #a06030);
  border-radius: 4px;
  box-shadow: 0 0 16px 4px #ffaa40;
  animation: dsh-lantern 4s ease-in-out infinite alternate;
}
.scn-dedication-shepherd .book {
  position: absolute; bottom: 20%; left: 38%; width: 16px; height: 22px;
  background: linear-gradient(135deg, #6a4a3a, #4a2a1a);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: dsh-book 5s ease-in-out infinite;
}
@keyframes dsh-bg { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes dsh-figure { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(4deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(1deg); } }
@keyframes dsh-sheep { 0%,100% { transform: scaleX(1) translateY(0); } 25% { transform: scaleX(1.08) translateY(-2px); } 50% { transform: scaleX(1) translateY(0); } 75% { transform: scaleX(0.95) translateY(-1px); } }
@keyframes dsh-crook { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes dsh-lantern { 0% { opacity: 0.8; box-shadow: 0 0 12px 3px #ffaa40; } 100% { opacity: 1; box-shadow: 0 0 24px 8px #ffcc60; } }
@keyframes dsh-book { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }

.scn-abbess-novice {
  background:
    linear-gradient(135deg, #1c100a 0%, #2a1810 40%, #1a0e08 100%),
    radial-gradient(ellipse at 40% 60%, #3a1a10 0%, transparent 50%);
}
.scn-abbess-novice .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,10,5,0.5) 0%, transparent 100%);
  animation: abn-bg 10s ease-in-out infinite alternate;
}
.scn-abbess-novice .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3020, #2a1a10);
  border-radius: 4px;
  transform: perspective(200px) rotateX(8deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-abbess-novice .candle {
  position: absolute; bottom: 25%; left: 35%; width: 5px; height: 35px;
  background: linear-gradient(180deg, #e0c080 0%, #b08050 50%, #a07040 100%);
  border-radius: 2px;
  animation: abn-candle 3s ease-in-out infinite;
}
.scn-abbess-novice .candle-glow {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffcc60 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: abn-candle-glow 2.5s ease-in-out infinite alternate;
}
.scn-abbess-novice .inkwell {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 16px;
  background: linear-gradient(180deg, #2a1a10, #1a0e08);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: abn-ink 6s ease-in-out infinite;
}
.scn-abbess-novice .quill {
  position: absolute; bottom: 38%; left: 52%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #e0d0c0 0%, #a09080 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: abn-quill 4s ease-in-out infinite;
}
.scn-abbess-novice .abbess {
  position: absolute; bottom: 22%; left: 25%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: abn-abbess 5s ease-in-out infinite;
}
.scn-abbess-novice .novice {
  position: absolute; bottom: 22%; right: 30%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: abn-novice 4s ease-in-out infinite;
}
.scn-abbess-novice .finger-glow {
  position: absolute; bottom: 32%; left: 38%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ff8840, #ff6620);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px #ff6620, 0 0 32px 12px rgba(255,102,32,0.4);
  animation: abn-finger 1.5s ease-in-out infinite alternate;
}
@keyframes abn-bg { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes abn-candle { 0%,100% { transform: scaleY(1) rotate(-0.5deg); } 25% { transform: scaleY(1.02) rotate(0.5deg); } 50% { transform: scaleY(0.98) rotate(-0.3deg); } 75% { transform: scaleY(1.01) rotate(0.2deg); } }
@keyframes abn-candle-glow { 0% { opacity: 0.6; box-shadow: 0 0 16px 4px #ffaa40, 0 0 32px 8px rgba(255,170,64,0.3); } 100% { opacity: 1; box-shadow: 0 0 28px 10px #ffcc60, 0 0 56px 20px rgba(255,204,96,0.5); } }
@keyframes abn-ink { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes abn-quill { 0%,100% { transform: rotate(20deg); } 25% { transform: rotate(25deg); } 50% { transform: rotate(15deg); } 75% { transform: rotate(22deg); } }
@keyframes abn-abbess { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } }
@keyframes abn-novice { 0%,100% { transform: rotate(5deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(2deg); } 75% { transform: rotate(8deg); } }
@keyframes abn-finger { 0% { opacity: 0.8; box-shadow: 0 0 12px 4px #ff6620, 0 0 24px 8px rgba(255,102,32,0.4); } 100% { opacity: 1; box-shadow: 0 0 24px 10px #ff8840, 0 0 48px 18px rgba(255,136,64,0.6); } }

/* bend-sinister */
.scn-bend-sinister { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-bend-sinister .coach-body { position:absolute; bottom:30%; left:20%; width:60%; height:40%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 10% 10% 15% 15%; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: bend-coach 6s ease-in-out infinite; }
.scn-bend-sinister .coach-window { position:absolute; bottom:40%; left:35%; width:12%; height:15%; background: radial-gradient(circle, #f0c060 0%, #b08040 70%); border-radius: 10%; box-shadow: 0 0 16px #c08040; animation: bend-window 2s ease-in-out infinite alternate; }
.scn-bend-sinister .wheel-back { position:absolute; bottom:25%; left:22%; width:15%; height:15%; background: linear-gradient(135deg, #1a1a2a, #0a0a1a); border-radius:50%; border: 2px solid #3a2a1a; animation: bend-wheel 4s linear infinite; }
.scn-bend-sinister .wheel-front { position:absolute; bottom:25%; right:22%; width:15%; height:15%; background: linear-gradient(135deg, #1a1a2a, #0a0a1a); border-radius:50%; border: 2px solid #3a2a1a; animation: bend-wheel 4s linear infinite reverse; }
.scn-bend-sinister .shield { position:absolute; bottom:40%; left:40%; width:18%; height:20%; clip-path: polygon(50% 0%, 100% 30%, 100% 70%, 50% 100%, 0% 70%, 0% 30%); background: linear-gradient(135deg, #6a4a3a 30%, #c8553d 30% 50%, #6a4a3a 50%); animation: bend-shield 3s ease-in-out infinite; }
.scn-bend-sinister .shadow { position:absolute; bottom:20%; left:18%; width:64%; height:10%; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(8px); animation: bend-shadow 6s ease-in-out infinite; }
@keyframes bend-coach { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) skewX(1deg) } 100% { transform: translateY(0) } }
@keyframes bend-window { 0% { opacity: 0.7; box-shadow: 0 0 12px #c08040 } 100% { opacity: 1; box-shadow: 0 0 24px #f0c060 } }
@keyframes bend-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes bend-shield { 0% { transform: scale(1) } 50% { transform: scale(1.02) rotate(2deg) } 100% { transform: scale(1) } }
@keyframes bend-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1) } }

/* cavalcade-description */
.scn-cavalcade-description { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #90EE90 100%), radial-gradient(ellipse at 50% 80%, #FFD700 0%, transparent 60%); }
.scn-cavalcade-description .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%); animation: cav-sky 12s ease-in-out infinite alternate; }
.scn-cavalcade-description .sun { position:absolute; top:10%; left:40%; width:12%; height:12%; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px #FFD700; animation: cav-sun 4s ease-in-out infinite; }
.scn-cavalcade-description .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #228B22 0%, #006400 100%); background-size: 200% 100%; border-radius: 50% 50% 0 0; animation: cav-hills 18s ease-in-out infinite; }
.scn-cavalcade-description .horseman-left { position:absolute; bottom:35%; left:20%; width:10%; height:15%; background: linear-gradient(180deg, #2c2c2c, #1a1a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cav-horseman 1.5s ease-in-out infinite; }
.scn-cavalcade-description .horseman-right { position:absolute; bottom:38%; right:25%; width:10%; height:15%; background: linear-gradient(180deg, #2c2c2c, #1a1a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cav-horseman 1.5s ease-in-out infinite 0.3s; }
.scn-cavalcade-description .coach-small { position:absolute; bottom:32%; left:50%; width:15%; height:10%; background: linear-gradient(135deg, #4a3a2a, #2a1a1a); border-radius: 5% 5% 10% 10%; transform: translateX(-50%); animation: cav-coach 6s ease-in-out infinite; }
@keyframes cav-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes cav-sun { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes cav-hills { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }
@keyframes cav-horseman { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cav-coach { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }

/* torn-chapter-defense */
.scn-torn-chapter-defense { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%); }
.scn-torn-chapter-defense .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-torn-chapter-defense .desk { position:absolute; bottom:20%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2% 2% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-torn-chapter-defense .manuscript { position:absolute; bottom:30%; left:20%; width:50%; height:20%; background: #f5e6c8; border: 1px solid #d4c4a0; transform: rotate(-2deg); animation: tcd-paper 8s ease-in-out infinite; }
.scn-torn-chapter-defense .inkwell { position:absolute; bottom:35%; left:15%; width:10%; height:10%; background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%); border-radius:50%; box-shadow: 0 0 8px rgba(0,0,0,0.8); }
.scn-torn-chapter-defense .pen { position:absolute; bottom:40%; left:22%; width:20%; height:2%; background: linear-gradient(90deg, #8b4513, #deb887); transform: rotate(30deg); transform-origin: left center; animation: tcd-pen 3s ease-in-out infinite; }
.scn-torn-chapter-defense .candle { position:absolute; bottom:30%; left:75%; width:6%; height:20%; background: linear-gradient(180deg, #f5deb3, #d2b48c); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 20px #ffd700; animation: tcd-candle 1.5s ease-in-out infinite alternate; }
.scn-torn-chapter-defense .torn-page { position:absolute; bottom:45%; right:10%; width:20%; height:15%; background: #f5e6c8; clip-path: polygon(0% 0%, 100% 0%, 100% 70%, 70% 100%, 50% 80%, 30% 100%, 0% 70%); animation: tcd-torn 5s ease-in-out infinite; }
@keyframes tcd-paper { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes tcd-pen { 0% { transform: rotate(30deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(30deg) } }
@keyframes tcd-candle { 0% { opacity: 0.8; box-shadow: 0 0 15px #ffd700 } 100% { opacity: 1; box-shadow: 0 0 30px #ffa500 } }
@keyframes tcd-torn { 0% { transform: scale(1) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(1) } }

/* dwarf-standard */
.scn-dwarf-standard { background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #3a2a2a 100%), radial-gradient(ellipse at 50% 20%, #4a3a3a 0%, transparent 70%); }
.scn-dwarf-standard .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); }
.scn-dwarf-standard .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a2a, #2a1a1a); border-radius: 30% 30% 0 0; }
.scn-dwarf-standard .dwarf { position:absolute; bottom:30%; left:30%; width:10%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dwf-dwarf 2s ease-in-out infinite; }
.scn-dwarf-standard .standard-pole { position:absolute; bottom:30%; left:45%; width:2%; height:40%; background: linear-gradient(180deg, #8b4513, #5a3a1a); transform-origin: bottom center; animation: dwf-pole 3s ease-in-out infinite; }
.scn-dwarf-standard .flag { position:absolute; top:20%; left:45%; width:15%; height:12%; background: linear-gradient(135deg, #c8553d 30%, #e0b080 30% 50%, #c8553d 50%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%); animation: dwf-flag 2s ease-in-out infinite alternate; }
.scn-dwarf-standard .light { position:absolute; top:10%; left:50%; width:10%; height:10%; background: radial-gradient(circle, #ffd700 0%, transparent 70%); border-radius:50%; animation: dwf-light 4s ease-in-out infinite alternate; }
@keyframes dwf-dwarf { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dwf-pole { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes dwf-flag { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.1) } }
@keyframes dwf-light { 0% { opacity: 0.3; transform: scale(0.8) } 100% { opacity: 1; transform: scale(1.2) } }

.scn-toby-praised-by-trim {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 50%, #3a1a0e 100%), radial-gradient(ellipse at 50% 0%, #8a4a2a 0%, transparent 70%);
}
.scn-toby-praised-by-trim .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%);
  animation: tb-wall 10s ease-in-out infinite alternate;
}
.scn-toby-praised-by-trim .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
}
.scn-toby-praised-by-trim .cannon {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5030 50%, #4a3a2a 100%);
  border-radius: 50% 50% 0 0; transform: rotate(-5deg);
  animation: tb-cannon 6s ease-in-out infinite;
}
.scn-toby-praised-by-trim .figure {
  position: absolute; bottom: 25%; left: 40%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tb-figure 4s ease-in-out infinite alternate;
}
.scn-toby-praised-by-trim .heart {
  position: absolute; bottom: 30%; left: 55%; width: 14px; height: 14px;
  background: radial-gradient(circle at 50% 50%, #c04a2a 0%, #8a2a1a 100%);
  clip-path: polygon(50% 0%, 100% 30%, 80% 100%, 50% 80%, 20% 100%, 0% 30%);
  animation: tb-heart 3s ease-in-out infinite;
}
.scn-toby-praised-by-trim .glow {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 100px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,100,50,0.4) 0%, transparent 70%);
  animation: tb-glow 5s ease-in-out infinite alternate;
}
.scn-toby-praised-by-trim .flame {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 12px;
  background: radial-gradient(ellipse at bottom, #ff8040 0%, #ff6020 50%, transparent 100%);
  border-radius: 50%;
  animation: tb-flame 2s ease-in-out infinite alternate;
}
@keyframes tb-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes tb-cannon { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) scale(1.02) } 100% { transform: rotate(-5deg) } }
@keyframes tb-figure { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes tb-heart { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(1) } }
@keyframes tb-glow { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes tb-flame { 0% { height:12px; opacity:.8 } 50% { height:16px; opacity:1 } 100% { height:10px; opacity:.7 } }

.scn-kitchen-council {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2210 40%, #1a0e05 100%), radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 70%);
}
.scn-kitchen-council .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  animation: kc-bg 12s ease-in-out infinite alternate;
}
.scn-kitchen-council .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: #1a0e05; box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-kitchen-council .fireplace {
  position: absolute; bottom: 30%; left: 10%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #3a2210 0%, #1a0e05 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(100,50,20,0.3);
}
.scn-kitchen-council .fire {
  position: absolute; bottom: 28%; left: 15%; width: 10%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6020 40%, transparent 70%);
  animation: kc-fire 3s ease-in-out infinite;
}
.scn-kitchen-council .trim {
  position: absolute; bottom: 25%; left: 30%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kc-figure 4s ease-in-out infinite;
}
.scn-kitchen-council .susannah {
  position: absolute; bottom: 25%; left: 45%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kc-figure2 4.5s ease-in-out infinite alternate;
}
.scn-kitchen-council .obadiah {
  position: absolute; bottom: 25%; left: 55%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kc-figure3 5s ease-in-out infinite alternate;
}
.scn-kitchen-council .jonathan {
  position: absolute; bottom: 25%; left: 65%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kc-figure4 4s ease-in-out infinite;
}
@keyframes kc-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes kc-fire { 0% { transform: scale(1) } 50% { transform: scale(1.1) translateY(-2px) } 100% { transform: scale(1) } }
@keyframes kc-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes kc-figure2 { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes kc-figure3 { 0% { transform: translateX(0) } 50% { transform: translateX(-1px) } 100% { transform: translateX(0) } }
@keyframes kc-figure4 { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }

.scn-socrates-children {
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 40%, #1a0e0e 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-socrates-children .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a1a1a 0%, #3a2a1a 50%, #2a1a1a 100%);
  animation: sc-bg 8s ease-in-out infinite alternate;
}
.scn-socrates-children .desk {
  position: absolute; bottom: 35%; left: 25%; width: 50%; height: 5%;
  background: #4a3a2a; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: sc-desk 6s ease-in-out infinite;
}
.scn-socrates-children .book {
  position: absolute; bottom: 35%; left: 35%; width: 20%; height: 10%;
  background: #6a5030; border-radius: 2px 8px 8px 2px; transform: rotate(-5deg);
  animation: sc-book 4s ease-in-out infinite;
}
.scn-socrates-children .father {
  position: absolute; bottom: 30%; left: 30%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom;
  animation: sc-father 3s ease-in-out infinite;
}
.scn-socrates-children .mother {
  position: absolute; bottom: 30%; left: 55%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc-mother 4s ease-in-out infinite alternate;
}
.scn-socrates-children .bust {
  position: absolute; bottom: 60%; left: 40%; width: 20px; height: 30px;
  background: #6a5030; border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  animation: sc-bust 5s ease-in-out infinite;
}
.scn-socrates-children .window {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 40%;
  border: 4px solid #3a2a1a;
  background: radial-gradient(circle, #4a3a2a 0%, #1a0e0e 100%);
  animation: sc-window 10s ease-in-out infinite alternate;
}
@keyframes sc-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sc-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sc-book { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }
@keyframes sc-father { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-5px) rotate(5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-3px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sc-mother { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sc-bust { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes sc-window { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

.scn-one-more-child {
  background: linear-gradient(180deg, #1a0e0e 0%, #2a1a1a 40%, #1a0e0e 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-one-more-child .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  animation: om-bg 10s ease-in-out infinite alternate;
}
.scn-one-more-child .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: #0e0a0a; box-shadow: inset 0 4px 8px rgba(0,0,0,0.7);
}
.scn-one-more-child .father {
  position: absolute; bottom: 20%; left: 30%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom;
  animation: om-father 4s ease-in-out infinite;
}
.scn-one-more-child .mother {
  position: absolute; bottom: 20%; left: 50%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: om-mother 5s ease-in-out infinite;
}
.scn-one-more-child .book {
  position: absolute; bottom: 25%; left: 40%; width: 10%; height: 8%;
  background: #6a5030; border-radius: 2px; transform: rotate(10deg);
  animation: om-book 3s ease-in-out infinite;
}
.scn-one-more-child .candle {
  position: absolute; bottom: 35%; left: 45%; width: 4px; height: 12px;
  background: #8a6a4a; border-radius: 2px;
  animation: om-candle 6s ease-in-out infinite alternate;
}
.scn-one-more-child .shadow {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: om-shadow 8s ease-in-out infinite alternate;
}
@keyframes om-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes om-father { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(8deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes om-mother { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes om-book { 0% { transform: rotate(10deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(10deg) } }
@keyframes om-candle { 0% { height:12px; opacity:.7 } 50% { height:14px; opacity:1 } 100% { height:10px; opacity:.6 } }
@keyframes om-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* lippius-clock */
.scn-lippius-clock {
  background: linear-gradient(180deg, #2b1a0e 0%, #1a1008 60%, #0d0a05 100%), radial-gradient(ellipse at 50% 30%, #4a2e1a 0%, transparent 70%);
  overflow: hidden;
}
.scn-lippius-clock .wall { position:absolute; inset:0; background: linear-gradient(90deg, transparent 0%, rgba(60,40,20,0.2) 50%, transparent 100%); }
.scn-lippius-clock .clock-case { position:absolute; left:50%; top:30%; width:160px; height:200px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a1e 0%, #3a2210 100%); border-radius:10px; box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
.scn-lippius-clock .clock-face { position:absolute; left:50%; top:30%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(circle, #f0e0c0 0%, #d0b080 100%); border-radius:50%; box-shadow: inset 0 0 10px #8a6a40, 0 0 20px rgba(200,170,120,0.3); }
.scn-lippius-clock .hand-hour { position:absolute; left:50%; top:30%; width:4px; height:40px; transform-origin:50% 100%; transform:translateX(-50%) rotate(30deg); background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%); border-radius:2px; animation: lc-hour 43200s linear infinite; }
.scn-lippius-clock .hand-minute { position:absolute; left:50%; top:30%; width:3px; height:55px; transform-origin:50% 100%; transform:translateX(-50%) rotate(180deg); background: #0a0604; border-radius:1.5px; animation: lc-minute 3600s linear infinite; }
.scn-lippius-clock .pendulum { position:absolute; left:50%; top:55%; width:4px; height:80px; transform-origin:50% 0; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a40 0%, #5a3a1e 100%); border-radius:2px; animation: lc-pendulum 2s ease-in-out infinite; }
.scn-lippius-clock .pendulum::after { content:''; position:absolute; bottom:-10px; left:-8px; width:20px; height:20px; background: radial-gradient(circle, #c0a070 0%, #8a6a40 100%); border-radius:50%; }
.scn-lippius-clock .gear-left { position:absolute; left:35%; top:45%; width:40px; height:40px; background: radial-gradient(circle, #8a6a40 0%, #5a3a1e 100%); border-radius:50%; border:3px dashed #c0a070; animation: lc-gear-left 12s linear infinite; }
.scn-lippius-clock .gear-right { position:absolute; left:55%; top:45%; width:30px; height:30px; background: radial-gradient(circle, #7a5a30 0%, #4a2a10 100%); border-radius:50%; border:2px dashed #b09060; animation: lc-gear-right 8s linear infinite; }
.scn-lippius-clock .lamp { position:absolute; left:15%; top:20%; width:16px; height:16px; background: radial-gradient(circle, #ffd080 0%, #d09030 70%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,208,128,0.3); animation: lc-lamp 3s ease-in-out infinite alternate; }
@keyframes lc-hour { 0% { transform:translateX(-50%) rotate(30deg); } 50% { transform:translateX(-50%) rotate(210deg); } 100% { transform:translateX(-50%) rotate(390deg); } }
@keyframes lc-minute { 0% { transform:translateX(-50%) rotate(180deg); } 25% { transform:translateX(-50%) rotate(270deg); } 50% { transform:translateX(-50%) rotate(360deg); } 75% { transform:translateX(-50%) rotate(450deg); } 100% { transform:translateX(-50%) rotate(540deg); } }
@keyframes lc-pendulum { 0% { transform:translateX(-50%) rotate(-15deg); } 50% { transform:translateX(-50%) rotate(15deg); } 100% { transform:translateX(-50%) rotate(-15deg); } }
@keyframes lc-gear-left { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.02); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes lc-gear-right { 0% { transform: rotate(360deg) scale(1); } 50% { transform: rotate(180deg) scale(0.98); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes lc-lamp { 0% { opacity:0.6; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.7; transform:scale(0.98); } }

/* tomb-of-lovers */
.scn-tomb-of-lovers {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #ffd700 100%), radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 40%);
  overflow: hidden;
}
.scn-tomb-of-lovers .sky { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(255,255,200,0.3) 100%); }
.scn-tomb-of-lovers .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
.scn-tomb-of-lovers .arch { position:absolute; bottom:25%; left:50%; width:200px; height:150px; transform:translateX(-50%); background: linear-gradient(180deg, #c0a070 0%, #8a6a40 100%); border-radius:50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 -10px 20px rgba(0,0,0,0.3); }
.scn-tomb-of-lovers .pillar-left { position:absolute; bottom:15%; left:20%; width:20px; height:160px; background: linear-gradient(180deg, #a08060 0%, #705030 100%); border-radius:4px; box-shadow: 2px 0 8px rgba(0,0,0,0.3); animation: tl-pillar 6s ease-in-out infinite; }
.scn-tomb-of-lovers .pillar-right { position:absolute; bottom:15%; right:20%; width:20px; height:160px; background: linear-gradient(180deg, #a08060 0%, #705030 100%); border-radius:4px; box-shadow: -2px 0 8px rgba(0,0,0,0.3); animation: tl-pillar 6s ease-in-out infinite reverse; }
.scn-tomb-of-lovers .sunlight { position:absolute; top:10%; left:-20%; width:200%; height:80%; background: linear-gradient(135deg, transparent 0%, rgba(255,215,0,0.2) 30%, transparent 60%); transform-origin:50% 0; animation: tl-sunlight 12s linear infinite; }
.scn-tomb-of-lovers .shadow { position:absolute; bottom:20%; left:40%; width:20%; height:50px; background: rgba(0,0,0,0.2); border-radius:50%; animation: tl-shadow 5s ease-in-out infinite; }
.scn-tomb-of-lovers .rose { position:absolute; bottom:30%; left:45%; width:14px; height:14px; background: radial-gradient(circle, #c8553d 0%, #a0461a 100%); border-radius:50%; box-shadow:0 0 8px 2px rgba(200,85,61,0.3); animation: tl-rose 4s ease-in-out infinite; }
@keyframes tl-sunlight { 0% { transform:translateX(-30%) rotate(-20deg); opacity:0; } 50% { transform:translateX(20%) rotate(-20deg); opacity:0.5; } 100% { transform:translateX(70%) rotate(-20deg); opacity:0; } }
@keyframes tl-shadow { 0% { opacity:0.2; transform:scaleY(1); } 50% { opacity:0.5; transform:scaleY(1.1); } 100% { opacity:0.2; transform:scaleY(1); } }
@keyframes tl-rose { 0% { transform:rotate(-5deg) scale(1); } 50% { transform:rotate(5deg) scale(1.1); } 100% { transform:rotate(-5deg) scale(1); } }
@keyframes tl-pillar { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }

/* amandus-amanda */
.scn-amandus-amanda {
  background: linear-gradient(180deg, #ffb347 0%, #ffcc33 30%, #87ceeb 60%, #4a90d9 100%), radial-gradient(ellipse at 50% 40%, #ffa07a 0%, transparent 60%);
  overflow: hidden;
}
.scn-amandus-amanda .sky { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(255,200,100,0.2) 100%); }
.scn-amandus-amanda .mountain { position:absolute; bottom:30%; left:-10%; width:120%; height:40%; background: linear-gradient(180deg, #5b3a6b 0%, #2e1a3a 100%); border-radius:50% 50% 0 0 / 100% 100% 0 0; animation: aa-mountain 20s ease-in-out infinite alternate; }
.scn-amandus-amanda .tower { position:absolute; bottom:25%; left:65%; width:50px; height:120px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:6px 6px 4px 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: aa-tower 8s ease-in-out infinite; }
.scn-amandus-amanda .bars { position:absolute; bottom:35%; left:66%; width:48px; height:80px; background: repeating-linear-gradient(90deg, #1a1a1a 0px, #1a1a1a 4px, transparent 4px, transparent 10px); opacity:0.7; animation: aa-bars 4s ease-in-out infinite alternate; }
.scn-amandus-amanda .figure-woman { position:absolute; bottom:20%; left:20%; width:14px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: aa-walk 6s ease-in-out infinite; }
.scn-amandus-amanda .figure-man { position:absolute; bottom:35%; left:68%; width:12px; height:28px; background: #1a1008; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.6; animation: aa-man 8s ease-in-out infinite; }
.scn-amandus-amanda .path { position:absolute; bottom:15%; left:5%; width:90%; height:20px; background: linear-gradient(180deg, transparent 0%, rgba(100,80,50,0.3) 30%, transparent 100%); border-radius:50%; animation: aa-path 12s linear infinite; }
@keyframes aa-walk { 0% { transform:translateX(-20px) rotate(0); } 25% { transform:translateX(10px) rotate(-2deg); } 50% { transform:translateX(40px) rotate(0); } 75% { transform:translateX(70px) rotate(2deg); } 100% { transform:translateX(100px) rotate(0); } }
@keyframes aa-man { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2px) rotate(3deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes aa-bars { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes aa-mountain { 0% { transform:scale(1) translateY(0); } 50% { transform:scale(1.02) translateY(-3px); } 100% { transform:scale(1) translateY(0); } }
@keyframes aa-tower { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes aa-path { 0% { transform:scaleX(1); } 50% { transform:scaleX(1.05); } 100% { transform:scaleX(1); } }

/* pilgrim-intention */
.scn-pilgrim-intention {
  background: linear-gradient(180deg, #ff7f50 0%, #ffa07a 30%, #ffd700 60%, #87ceeb 80%, #4682b4 100%);
  overflow: hidden;
}
.scn-pilgrim-intention .sky { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(255,220,150,0.2) 50%, transparent 100%); }
.scn-pilgrim-intention .sun { position:absolute; top:20%; right:25%; width:60px; height:60px; background: radial-gradient(circle, #fff5e0 0%, #ffa500 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(255,165,0,0.4); animation: pi-sunrise 15s ease-in-out infinite alternate; }
.scn-pilgrim-intention .horizon { position:absolute; bottom:40%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.1) 50%, transparent 100%); }
.scn-pilgrim-intention .pilgrim { position:absolute; bottom:30%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pi-pilgrim 8s ease-in-out infinite; }
.scn-pilgrim-intention .pilgrim::before { content:''; position:absolute; top:-8px; left:2px; width:16px; height:10px; background: #2a1a0a; border-radius:50% 50% 0 0 / 100% 100% 0 0; transform:rotate(-10deg); } /* hat */
.scn-pilgrim-intention .staff { position:absolute; bottom:28%; left:23%; width:3px; height:50px; background: #4a2a10; border-radius:2px; transform-origin:bottom center; animation: pi-staff 3s ease-in-out infinite; }
.scn-pilgrim-intention .path { position:absolute; bottom:15%; left:-10%; width:120%; height:40px; background: radial-gradient(ellipse at 50% 50%, rgba(100,70,40,0.2) 0%, transparent 70%); animation: pi-path 10s linear infinite; }
.scn-pilgrim-intention .tomb-small { position:absolute; bottom:30%; right:30%; width:40px; height:50px; background: linear-gradient(180deg, #c0a070 0%, #8a6a40 100%); border-radius:40% 40% 0 0 / 80% 80% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: pi-tomb 6s ease-in-out infinite; }
@keyframes pi-sunrise { 0% { transform:translateY(10px) scale(0.95); opacity:0.8; } 50% { transform:translateY(0) scale(1); opacity:1; } 100% { transform:translateY(-10px) scale(1.05); opacity:0.9; } }
@keyframes pi-pilgrim { 0% { transform:translateX(-15px) rotate(-2deg); } 50% { transform:translateX(0) rotate(2deg); } 100% { transform:translateX(15px) rotate(-2deg); } }
@keyframes pi-staff { 0% { transform:rotate(-4deg); } 50% { transform:rotate(4deg); } 100% { transform:rotate(-4deg); } }
@keyframes pi-path { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.08) translateY(-2px); } 100% { transform:scaleY(1) translateY(0); } }
@keyframes pi-tomb { 0% { transform:scale(1); } 50% { transform:scale(1.03); } 100% { transform:scale(1); } }

/* straight-line */
.scn-straight-line {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%), radial-gradient(ellipse at 60% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-straight-line .sl-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a1008 100%); animation: sl-bg-pulse 8s ease-in-out infinite alternate; }
.scn-straight-line .sl-table { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-straight-line .sl-candle { position:absolute; bottom:28%; left:25%; width:8px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #c08040 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 12px 4px #ffd080; animation: sl-candle-flicker 2s ease-in-out infinite alternate; }
.scn-straight-line .sl-paper { position:absolute; bottom:18%; left:40%; width:40%; height:12%; background: linear-gradient(135deg, #f0e8d0 0%, #d0c8a0 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
.scn-straight-line .sl-line-1 { position:absolute; bottom:22%; left:42%; width:30%; height:2px; background: #4a3a2a; border-radius: 50%; animation: sl-squiggle1 4s ease-in-out infinite; }
.scn-straight-line .sl-line-2 { position:absolute; bottom:19%; left:42%; width:25%; height:2px; background: #4a3a2a; border-radius: 50%; animation: sl-squiggle2 3.5s ease-in-out infinite; animation-delay: 0.5s; }
.scn-straight-line .sl-inkwell { position:absolute; bottom:25%; left:33%; width:10px; height:12px; background: #1a1008; border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }

@keyframes sl-bg-pulse { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.85 } }
@keyframes sl-candle-flicker { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:0.9; transform: scaleY(0.95) } }
@keyframes sl-squiggle1 { 0% { transform: translateX(0) translateY(0) scaleX(1); border-radius:50%; } 25% { transform: translateX(5px) translateY(-2px) scaleX(1.1); border-radius:40%; } 50% { transform: translateX(10px) translateY(1px) scaleX(0.9); border-radius:50%; } 75% { transform: translateX(15px) translateY(-1px) scaleX(1.05); border-radius:30%; } 100% { transform: translateX(20px) translateY(0) scaleX(1); border-radius:50%; } }
@keyframes sl-squiggle2 { 0% { transform: translateX(0) translateY(0) scaleX(1); border-radius:50%; } 25% { transform: translateX(-3px) translateY(1px) scaleX(0.9); border-radius:30%; } 50% { transform: translateX(-8px) translateY(-2px) scaleX(1.1); border-radius:40%; } 75% { transform: translateX(-13px) translateY(0) scaleX(1); border-radius:50%; } 100% { transform: translateX(-18px) translateY(1px) scaleX(1); border-radius:50%; } }

/* death-at-door */
.scn-death-at-door {
  background: linear-gradient(180deg, #0a0515 0%, #1a1020 40%, #2a1530 100%), radial-gradient(ellipse at 70% 60%, #3a2040 0%, transparent 70%);
}
.scn-death-at-door .dd-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #2a1530 0%, #0a0515 100%); animation: dd-bg-pulse 10s ease-in-out infinite alternate; }
.scn-death-at-door .dd-door { position:absolute; right:5%; bottom:10%; width:30%; height:80%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 4px 0 0 4px; box-shadow: -4px 0 10px rgba(0,0,0,0.7); transform: scaleX(0.98); animation: dd-door-open 6s ease-in-out infinite alternate; }
.scn-death-at-door .dd-death { position:absolute; right:10%; bottom:15%; width:20%; height:60%; background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px 5px rgba(0,0,0,0.8); animation: dd-death-approach 10s ease-in-out infinite; }
.scn-death-at-door .dd-light { position:absolute; right:2%; bottom:30%; width:8px; height:8px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,208,128,0.4); animation: dd-light-flicker 1.5s ease-in-out infinite alternate; }
.scn-death-at-door .dd-floor { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-death-at-door .dd-shadow { position:absolute; bottom:12%; right:0; width:40%; height:20%; background: rgba(0,0,0,0.6); border-radius: 50% 0 0 50%; filter: blur(8px); animation: dd-shadow-grow 10s ease-in-out infinite; }

@keyframes dd-bg-pulse { 0% { opacity:0.7 } 50% { opacity:0.85 } 100% { opacity:0.75 } }
@keyframes dd-door-open { 0% { transform: scaleX(0.98) } 50% { transform: scaleX(1) } 100% { transform: scaleX(0.96) } }
@keyframes dd-death-approach { 0% { transform: translateX(0) scaleY(1) } 30% { transform: translateX(-10px) scaleY(1.02) } 60% { transform: translateX(-20px) scaleY(1.05) } 100% { transform: translateX(-30px) scaleY(1.08) } }
@keyframes dd-light-flicker { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes dd-shadow-grow { 0% { opacity:0.4; transform: scaleX(0.8) } 50% { opacity:0.7; transform: scaleX(1.2) } 100% { opacity:0.5; transform: scaleX(1) } }

/* escape-to-france */
.scn-escape-to-france {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 20%, #8a9aaa 0%, transparent 70%);
}
.scn-escape-to-france .ef-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%); animation: ef-sky-drift 20s linear infinite alternate; }
.scn-escape-to-france .ef-sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); }
.scn-escape-to-france .ef-boat { position:absolute; bottom:20%; left:30%; width:30%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 80% 80% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: ef-boat-rock 5s ease-in-out infinite; }
.scn-escape-to-france .ef-nun { position:absolute; bottom:25%; left:35%; width:12%; height:25%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ef-nun-bob 4s ease-in-out infinite; }
.scn-escape-to-france .ef-sail { position:absolute; bottom:28%; left:32%; width:18%; height:35%; background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; transform: rotate(-5deg); animation: ef-sail-flap 6s ease-in-out infinite; }
.scn-escape-to-france .ef-wave-1 { position:absolute; bottom:10%; left:0; right:0; height:8%; background: linear-gradient(90deg, transparent, #4a5a6a 30%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: ef-wave-move1 8s linear infinite; }
.scn-escape-to-france .ef-wave-2 { position:absolute; bottom:15%; left:0; right:0; height:6%; background: linear-gradient(90deg, transparent, #5a6a7a 20%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: ef-wave-move2 10s linear infinite; animation-delay: 1s; }
.scn-escape-to-france .ef-cloud { position:absolute; top:8%; right:20%; width:15%; height:10%; background: rgba(90,100,110,0.4); border-radius: 50%; filter: blur(8px); animation: ef-cloud-drift 30s linear infinite; }

@keyframes ef-sky-drift { 0% { background-position: 0% 0% } 50% { background-position: 10% 5% } 100% { background-position: 0% 0% } }
@keyframes ef-boat-rock { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(2px,-3px) rotate(1deg) } 50% { transform: translate(-1px,2px) rotate(-1deg) } 75% { transform: translate(1px,-2px) rotate(2deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes ef-nun-bob { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes ef-sail-flap { 0% { transform: rotate(-5deg) scaleX(1) } 25% { transform: rotate(-3deg) scaleX(1.05) } 50% { transform: rotate(-6deg) scaleX(0.95) } 75% { transform: rotate(-4deg) scaleX(1.02) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes ef-wave-move1 { 0% { transform: translateX(-100%) } 100% { transform: translateX(100%) } }
@keyframes ef-wave-move2 { 0% { transform: translateX(100%) } 100% { transform: translateX(-100%) } }
@keyframes ef-cloud-drift { 0% { transform: translateX(0) } 50% { transform: translateX(-20px) } 100% { transform: translateX(0) } }

/* channel-crossing */
.scn-channel-crossing {
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 50%, #1a2a3a 100%), radial-gradient(ellipse at 30% 40%, #7a8a9a 0%, transparent 70%);
}
.scn-channel-crossing .cc-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); animation: cc-sky-glide 25s ease-in-out infinite alternate; }
.scn-channel-crossing .cc-sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.4); }
.scn-channel-crossing .cc-boat { position:absolute; bottom:18%; left:50%; width:25%; height:15%; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 70% 70% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: cc-boat-bob 4s ease-in-out infinite; }
.scn-channel-crossing .cc-sail-aft { position:absolute; bottom:28%; left:45%; width:10%; height:40%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%; transform: rotate(3deg); animation: cc-sail-flap-aft 5s ease-in-out infinite; }
.scn-channel-crossing .cc-sail-fore { position:absolute; bottom:30%; left:55%; width:8%; height:35%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%; transform: rotate(-2deg); animation: cc-sail-flap-fore 4.5s ease-in-out infinite; animation-delay: 0.5s; }
.scn-channel-crossing .cc-figure { position:absolute; bottom:22%; left:45%; width:10%; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cc-figure-look 6s ease-in-out infinite; }
.scn-channel-crossing .cc-wave-1 { position:absolute; bottom:8%; left:0; right:0; height:6%; background: linear-gradient(90deg, transparent, #3a4a5a 20%, transparent 80%); border-radius: 50%; filter: blur(5px); animation: cc-wave-move1 7s linear infinite; }
.scn-channel-crossing .cc-wave-2 { position:absolute; bottom:14%; left:0; right:0; height:5%; background: linear-gradient(90deg, transparent, #4a5a6a 10%, transparent 90%); border-radius: 50%; filter: blur(4px); animation: cc-wave-move2 9s linear infinite; animation-delay: 2s; }
.scn-channel-crossing .cc-cloud { position:absolute; top:5%; left:10%; width:20%; height:8%; background: rgba(80,90,100,0.3); border-radius: 50%; filter: blur(10px); animation: cc-cloud-drift 40s linear infinite; }

@keyframes cc-sky-glide { 0% { background-position: 0% 0% } 50% { background-position: 5% 2% } 100% { background-position: 0% 0% } }
@keyframes cc-boat-bob { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0deg) } 75% { transform: translateX(-50%) translateY(2px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes cc-sail-flap-aft { 0% { transform: rotate(3deg) scaleX(1) } 33% { transform: rotate(5deg) scaleX(1.04) } 66% { transform: rotate(1deg) scaleX(0.96) } 100% { transform: rotate(3deg) scaleX(1) } }
@keyframes cc-sail-flap-fore { 0% { transform: rotate(-2deg) scaleX(1) } 33% { transform: rotate(-4deg) scaleX(1.03) } 66% { transform: rotate(0deg) scaleX(0.97) } 100% { transform: rotate(-2deg) scaleX(1) } }
@keyframes cc-figure-look { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cc-wave-move1 { 0% { transform: translateX(-100%) } 100% { transform: translateX(100%) } }
@keyframes cc-wave-move2 { 0% { transform: translateX(100%) } 100% { transform: translateX(-100%) } }
@keyframes cc-cloud-drift { 0% { transform: translateX(-10px) } 50% { transform: translateX(20px) } 100% { transform: translateX(-10px) } }

.scn-virginity-paradise { background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%), radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 60%); }
.scn-virginity-paradise .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: vp-wall 12s ease-in-out infinite alternate; }
.scn-virginity-paradise .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 0 0 20% 20%; }
.scn-virginity-paradise .sofa { position:absolute; bottom:20%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: vp-sofa 8s ease-in-out infinite; }
.scn-virginity-paradise .figure-father { position:absolute; bottom:30%; left:25%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vp-father 4s ease-in-out infinite; }
.scn-virginity-paradise .figure-mother { position:absolute; bottom:30%; right:25%; width:28px; height:48px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vp-mother 5s ease-in-out infinite; }
.scn-virginity-paradise .candle { position:absolute; bottom:45%; left:50%; width:8px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 0 8px 2px rgba(255,200,100,.5); }
.scn-virginity-paradise .glow { position:absolute; bottom:40%; left:50%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,200,100,.6) 0%, transparent 70%); transform: translate(-50%, -50%); animation: vp-glow 3s ease-in-out infinite alternate; }
.scn-virginity-paradise .floating-orb { position:absolute; top:20%; left:40%; width:20px; height:20px; background: radial-gradient(circle, #ffe0b0 0%, #ffcc80 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 16px 4px rgba(255,200,100,.3); animation: vp-orb 6s ease-in-out infinite; }
@keyframes vp-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes vp-sofa { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(1) } }
@keyframes vp-father { 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 vp-mother { 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 vp-glow { 0% { opacity:.7; transform: translate(-50%, -50%) scale(1) } 50% { opacity:1; transform: translate(-50%, -50%) scale(1.2) } 100% { opacity:.8; transform: translate(-50%, -50%) scale(0.9) } }
@keyframes vp-orb { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.1) rotate(20deg) } 100% { transform: translateY(0) scale(1) } }

.scn-ten-days-siege { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%), radial-gradient(ellipse at 80% 60%, #3a3a4a 0%, transparent 70%); }
.scn-ten-days-siege .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); animation: ts-wall 14s ease-in-out infinite alternate; }
.scn-ten-days-siege .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 0 0 10% 10%; }
.scn-ten-days-siege .table { position:absolute; bottom:25%; left:15%; width:70%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10px; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: ts-table 10s ease-in-out infinite; }
.scn-ten-days-siege .fort { position:absolute; bottom:35%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10px; box-shadow: inset 0 -4px 0 #2a1a0a; animation: ts-fort 6s ease-in-out infinite alternate; }
.scn-ten-days-siege .figure-toby { position:absolute; bottom:35%; left:20%; width:25px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts-toby 5s ease-in-out infinite; }
.scn-ten-days-siege .figure-wadman { position:absolute; bottom:35%; right:20%; width:24px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts-wadman 6s ease-in-out infinite; }
.scn-ten-days-siege .candle { position:absolute; bottom:45%; left:60%; width:8px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 0 8px 2px rgba(255,200,100,.5); }
.scn-ten-days-siege .glow { position:absolute; bottom:40%; left:60%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,200,100,.5) 0%, transparent 70%); transform: translate(-50%, -50%); animation: ts-glow 4s ease-in-out infinite alternate; }
.scn-ten-days-siege .flag { position:absolute; bottom:50%; left:45%; width:10px; height:20px; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%); border-radius: 0 0 50% 50%; transform-origin: bottom center; animation: ts-flag 3s ease-in-out infinite alternate; }
@keyframes ts-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ts-table { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes ts-fort { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ts-toby { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(1px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-1px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ts-wadman { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-1px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ts-glow { 0% { opacity:.6; transform: translate(-50%, -50%) scale(1) } 50% { opacity:1; transform: translate(-50%, -50%) scale(1.3) } 100% { opacity:.7; transform: translate(-50%, -50%) scale(0.8) } }
@keyframes ts-flag { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

.scn-letter-of-instructions { background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%), radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 60%); }
.scn-letter-of-instructions .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: li-wall 15s ease-in-out infinite alternate; }
.scn-letter-of-instructions .desk { position:absolute; bottom:15%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10px; box-shadow: 0 6px 15px rgba(0,0,0,.7); animation: li-desk 12s ease-in-out infinite; }
.scn-letter-of-instructions .chair { position:absolute; bottom:30%; left:10%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20px 20px 10px 10px; transform-origin: bottom center; animation: li-chair 8s ease-in-out infinite alternate; }
.scn-letter-of-instructions .figure-father { position:absolute; bottom:20%; left:15%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: li-father 4s ease-in-out infinite; }
.scn-letter-of-instructions .paper { position:absolute; bottom:30%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius: 4px; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: li-paper 6s ease-in-out infinite; }
.scn-letter-of-instructions .ink { position:absolute; bottom:25%; left:35%; width:12px; height:12px; background: radial-gradient(circle, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50%; box-shadow: 0 0 4px 1px rgba(0,0,0,.5); }
.scn-letter-of-instructions .candle { position:absolute; bottom:40%; left:70%; width:8px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 0 8px 2px rgba(255,200,100,.5); }
.scn-letter-of-instructions .glow { position:absolute; bottom:35%; left:70%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,200,100,.5) 0%, transparent 70%); transform: translate(-50%, -50%); animation: li-glow 3s ease-in-out infinite alternate; }
.scn-letter-of-instructions .quill { position:absolute; bottom:30%; left:55%; width:2px; height:25px; background: linear-gradient(180deg, #a09080 0%, #5a4a3a 100%); border-radius: 2px; transform: rotate(30deg); animation: li-quill 2s ease-in-out infinite alternate; }
@keyframes li-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes li-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes li-chair { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes li-father { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(1px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-1px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes li-paper { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes li-glow { 0% { opacity:.6; transform: translate(-50%, -50%) scale(1) } 50% { opacity:1; transform: translate(-50%, -50%) scale(1.2) } 100% { opacity:.7; transform: translate(-50%, -50%) scale(0.9) } }
@keyframes li-quill { 0% { transform: rotate(25deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(25deg) } }

.scn-instructions-continued { background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%); }
.scn-instructions-continued .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); animation: ic-wall 13s ease-in-out infinite alternate; }
.scn-instructions-continued .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%); border-radius: 0 0 15% 15%; }
.scn-instructions-continued .hearth { position:absolute; bottom:20%; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10px 10px 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.8); }
.scn-instructions-continued .fire { position:absolute; bottom:25%; left:40%; width:20%; height:15%; background: radial-gradient(circle, #ff8040 0%, #ff6020 30%, transparent 100%); border-radius: 50%; animation: ic-fire 2s ease-in-out infinite alternate; }
.scn-instructions-continued .figure-father { position:absolute; bottom:30%; left:15%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ic-father 5s ease-in-out infinite; }
.scn-instructions-continued .figure-toby { position:absolute; bottom:30%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ic-toby 6s ease-in-out infinite; }
.scn-instructions-continued .pipe { position:absolute; bottom:45%; left:25%; width:4px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(-20deg); animation: ic-pipe 4s ease-in-out infinite alternate; }
.scn-instructions-continued .glow { position:absolute; bottom:20%; left:50%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,100,0,.4) 0%, transparent 70%); transform: translate(-50%, -50%); animation: ic-glow 3s ease-in-out infinite alternate; }
@keyframes ic-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ic-fire { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.1) translateY(-2px) } 100% { transform: scale(0.9) translateY(0) } }
@keyframes ic-father { 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 ic-toby { 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 ic-pipe { 0% { transform: rotate(-25deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-25deg) } }
@keyframes ic-glow { 0% { opacity:.5; transform: translate(-50%, -50%) scale(1) } 50% { opacity:.8; transform: translate(-50%, -50%) scale(1.5) } 100% { opacity:.6; transform: translate(-50%, -50%) scale(1.2) } }

.scn-misunderstanding-cleared { background: linear-gradient(180deg, #2a1e14 0%, #3e2c1e 40%, #4a3522 100%), radial-gradient(ellipse at 50% 60%, #5a3d2a 0%, transparent 70%); }
.scn-misunderstanding-cleared .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1f1510 0%, #2c1f14 100%); }
.scn-misunderstanding-cleared .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1c 0%, #241a12 100%); }
.scn-misunderstanding-cleared .table { position:absolute; bottom:25%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #5a3a20 0%, #3a2510 100%); border-radius: 4px; }
.scn-misunderstanding-cleared .pipe { position:absolute; bottom:30%; left:40%; width:8px; height:40px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4px; transform: rotate(-20deg); transform-origin: bottom; animation: mc-pipe 6s ease-in-out infinite; }
.scn-misunderstanding-cleared .figure-toby { position:absolute; bottom:20%; left:20%; width:50px; height:100px; background: linear-gradient(180deg, #3a2a1c 0%, #1f1510 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mc-toby 4s ease-in-out infinite; }
.scn-misunderstanding-cleared .figure-mother { position:absolute; bottom:20%; right:20%; width:45px; height:95px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 35% 35% 20% 20% / 55% 55% 30% 30%; transform-origin: bottom center; animation: mc-mother 4s ease-in-out infinite; }
.scn-misunderstanding-cleared .holding-hand { position:absolute; bottom:35%; left:42%; width:20px; height:10px; background: #3a2510; border-radius: 50%; box-shadow: 0 0 10px rgba(180,120,60,0.5); animation: mc-hand 4s ease-in-out infinite; }
@keyframes mc-pipe { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-20deg); } }
@keyframes mc-toby { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mc-mother { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mc-hand { 0% { opacity:0.8; } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; } }

.scn-tristra-paedia-begun { background: linear-gradient(180deg, #1a1512 0%, #2a1e14 60%, #3a2a1c 100%), radial-gradient(ellipse at 50% 30%, #5a3a20 0%, transparent 80%); }
.scn-tristra-paedia-begun .bg-wall { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, #2a1a10 0%, #1a1210 100%); }
.scn-tristra-paedia-begun .desk { position:absolute; bottom:20%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.scn-tristra-paedia-begun .chair { position:absolute; bottom:20%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #3a2515 0%, #1a1010 100%); border-radius: 10% 10% 0 0; transform-origin: bottom; animation: tp-chair 8s ease-in-out infinite; }
.scn-tristra-paedia-begun .father { position:absolute; bottom:30%; left:42%; width:50px; height:80px; background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); border-radius: 30% 30% 15% 15% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tp-father 6s ease-in-out infinite; }
.scn-tristra-paedia-begun .quill { position:absolute; bottom:45%; left:45%; width:4px; height:30px; background: #4a3020; transform: rotate(-30deg); transform-origin: bottom; animation: tp-quill 2s ease-in-out infinite; }
.scn-tristra-paedia-begun .papers { position:absolute; bottom:28%; left:25%; width:80px; height:50px; background: linear-gradient(180deg, #c8b08a 0%, #a08060 100%); border-radius: 2px; opacity:0.6; animation: tp-papers 12s ease-in-out infinite; }
.scn-tristra-paedia-begun .candle { position:absolute; bottom:42%; left:30%; width:6px; height:20px; background: linear-gradient(180deg, #e0b080 0%, #8a6020 100%); border-radius: 3px; animation: tp-candle 3s ease-in-out infinite; }
.scn-tristra-paedia-begun .candle-glow { position:absolute; bottom:40%; left:28%; width:30px; height:30px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); animation: tp-glow 3s ease-in-out infinite alternate; }
@keyframes tp-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes tp-father { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 70% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tp-quill { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-25deg) translateY(-3px); } 100% { transform: rotate(-30deg); } }
@keyframes tp-papers { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes tp-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes tp-glow { 0% { transform: scale(0.8); opacity:0.7; } 100% { transform: scale(1.2); opacity:1; } }

.scn-john-de-la-casse { background: linear-gradient(180deg, #1a1210 0%, #2a1a14 50%, #3a2218 100%), radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 70%); }
.scn-john-de-la-casse .bg-arch { position:absolute; inset:0; background: linear-gradient(135deg, #1f1410 0%, #2a1a14 100%); }
.scn-john-de-la-casse .throne { position:absolute; bottom:10%; left:30%; right:30%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%); border-radius: 20% 20% 5% 5% / 30% 30% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,0.6); }
.scn-john-de-la-casse .archbishop { position:absolute; bottom:25%; left:40%; width:80px; height:120px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: jc-archbishop 8s ease-in-out infinite; }
.scn-john-de-la-casse .book { position:absolute; bottom:45%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%); border-radius: 2px; transform: translateX(-50%); animation: jc-book 6s ease-in-out infinite; }
.scn-john-de-la-casse .desk { position:absolute; bottom:20%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4px; }
.scn-john-de-la-casse .candle { position:absolute; bottom:40%; left:25%; width:8px; height:30px; background: linear-gradient(180deg, #e0b080 0%, #8a6020 100%); border-radius: 4px; animation: jc-candle 4s ease-in-out infinite; }
.scn-john-de-la-casse .shadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); animation: jc-shadow 12s ease-in-out infinite; }
@keyframes jc-archbishop { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes jc-book { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes jc-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.05); opacity:1; } 100% { transform: scaleY(1); opacity:0.9; } }
@keyframes jc-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-devil-of-education { background: linear-gradient(180deg, #1a1210 0%, #2a1a14 60%, #3a2218 100%), radial-gradient(ellipse at 70% 40%, #5a3a2a 0%, transparent 70%); }
.scn-devil-of-education .bg-study { position:absolute; inset:0; background: radial-gradient(circle at 70% 40%, #2a1a10 0%, #1a1210 100%); }
.scn-devil-of-education .father-silhouette { position:absolute; bottom:20%; left:20%; width:60px; height:110px; background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: de-father 6s ease-in-out infinite; }
.scn-devil-of-education .devil-group { position:absolute; bottom:30%; left:70%; animation: de-devil-group 8s ease-in-out infinite; }
.scn-devil-of-education .devil-group .devil-body { width:30px; height:60px; background: linear-gradient(180deg, #1a0f0a 0%, #0a0505 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; }
.scn-devil-of-education .devil-group .horn-left, .scn-devil-of-education .devil-group .horn-right { position:absolute; top:-10px; width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-bottom:12px solid #1a0f0a; }
.scn-devil-of-education .devil-group .horn-left { left:2px; transform:rotate(-20deg); }
.scn-devil-of-education .devil-group .horn-right { left:18px; transform:rotate(20deg); }
.scn-devil-of-education .books { position:absolute; bottom:15%; left:30%; right:30%; height:15%; background: repeating-linear-gradient(90deg, #3a2a1c 0px, #3a2a1c 8px, #4a3020 8px, #4a3020 16px); border-radius: 2px; animation: de-books 12s ease-in-out infinite; }
.scn-devil-of-education .thought-bubble { position:absolute; top:10%; left:50%; width:60px; height:50px; background: radial-gradient(circle at 50% 50%, rgba(200,180,160,0.3) 0%, transparent 70%); border-radius: 50%; animation: de-thought 4s ease-in-out infinite; }
.scn-devil-of-education .sparkles { position:absolute; top:15%; left:45%; width:10px; height:10px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); animation: de-sparkles 2s ease-in-out infinite; }
@keyframes de-father { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes de-devil-group { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(-4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes de-books { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes de-thought { 0% { transform: scale(0.9); opacity:0.5; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.9); opacity:0.5; } }
@keyframes de-sparkles { 0% { transform: scale(1); opacity:0; } 50% { transform: scale(1.5); opacity:1; } 100% { transform: scale(1); opacity:0; } }

.scn-knowledge-cycles {
  background: linear-gradient(180deg, #2a1f1a 0%, #1c1410 50%, #3b2b20 100%), radial-gradient(circle at 70% 60%, #5a4630 0%, transparent 70%);
}
.scn-knowledge-cycles .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1f1a 0%, #1c1410 100%); }
.scn-knowledge-cycles .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1c1410 0%, #0e0a08 100%); }
.scn-knowledge-cycles .desk { position:absolute; bottom:8%; left:10%; width:80%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:6px; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-knowledge-cycles .books-stack { position:absolute; bottom:25%; left:35%; width:30px; height:45px; background: linear-gradient(180deg, #8a6a40 0%, #6a4a20 50%, #4a2a10 100%); border-radius:2px 2px 0 0; animation: kc-books 6s ease-in-out infinite; transform-origin: bottom center; }
.scn-knowledge-cycles .candle { position:absolute; bottom:26%; left:40%; width:8px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #b08a40 100%); border-radius:2px; }
.scn-knowledge-cycles .flame { position:absolute; bottom:48%; left:38.5%; width:12px; height:16px; background: radial-gradient(circle, #ffe060 0%, #e0a030 60%, transparent 80%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 12px 3px #e0a030; animation: kc-flame 1.5s ease-in-out infinite alternate; }
.scn-knowledge-cycles .figure { position:absolute; bottom:23%; left:48%; width:22px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kc-fig 3s ease-in-out infinite; }
.scn-knowledge-cycles .page { position:absolute; width:14px; height:10px; background: rgba(240,230,200,.8); border-radius:1px; filter: blur(1px); animation: kc-page 12s linear infinite; }
.scn-knowledge-cycles .page-a { top:15%; left:20%; animation-delay:0s; }
.scn-knowledge-cycles .page-b { top:20%; left:70%; animation-delay:6s; }
@keyframes kc-flame { 0% { transform: scale(1, 1) translateY(0); opacity:.9 } 50% { transform: scale(1.1, 1.2) translateY(-1px); opacity:1 } 100% { transform: scale(.9, 1) translateY(1px); opacity:.8 } }
@keyframes kc-books { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes kc-fig { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(.5deg); } }
@keyframes kc-page { 0% { transform: translate(0, 0) rotate(0deg); opacity:.7 } 25% { transform: translate(25vw, -5vh) rotate(5deg); opacity:.9 } 75% { transform: translate(75vw, -10vh) rotate(-2deg); opacity:.8 } 100% { transform: translate(100vw, -15vh) rotate(0deg); opacity:.5 } }

.scn-uncle-toby-remembered {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 50%, #302016 100%), radial-gradient(ellipse at 30% 60%, #8a5a30 0%, transparent 70%);
}
.scn-uncle-toby-remembered .bg-room { position:absolute; inset:0; }
.scn-uncle-toby-remembered .fireplace { position:absolute; bottom:0; left:5%; width:25%; height:40%; background: linear-gradient(180deg, #4a3020 0%, #1a1008 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.7); }
.scn-uncle-toby-remembered .fire-glow { position:absolute; bottom:15%; left:10%; width:15%; height:25%; background: radial-gradient(ellipse, #f0a060 0%, #d06020 40%, transparent 70%); filter: blur(4px); animation: ut-glow 3s ease-in-out infinite alternate; }
.scn-uncle-toby-remembered .figure { position:absolute; bottom:5%; right:20%; 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: ut-breathe 4s ease-in-out infinite; }
.scn-uncle-toby-remembered .pipe { position:absolute; bottom:22%; right:32%; width:14px; height:4px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius:2px; transform:rotate(-15deg); }
.scn-uncle-toby-remembered .smoke { position:absolute; bottom:28%; right:35%; width:8px; height:8px; background: radial-gradient(circle, rgba(200,200,200,.6) 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: ut-smoke 8s ease-out infinite; }
.scn-uncle-toby-remembered .ash { position:absolute; bottom:24%; right:29%; width:3px; height:3px; background: #c08040; border-radius:50%; box-shadow: 0 0 4px 1px #c08040; animation: ut-ash 3s ease-in-out infinite; }
@keyframes ut-glow { 0% { opacity:.5; transform:scale(1); } 50% { opacity:.9; transform:scale(1.1); } 100% { opacity:.6; transform:scale(.95); } }
@keyframes ut-breathe { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } }
@keyframes ut-smoke { 0% { transform: translate(0,0) scale(1); opacity:.6; } 50% { transform: translate(-5px,-15px) scale(2.5); opacity:.4; } 100% { transform: translate(-15px,-40px) scale(4); opacity:0; } }
@keyframes ut-ash { 0% { transform: translate(0,0); opacity:.8; } 50% { transform: translate(2px,-8px); opacity:.5; } 100% { transform: translate(-1px,-20px); opacity:0; } }

.scn-shandy-family-originality {
  background: linear-gradient(180deg, #3e2a1a 0%, #1e1008 50%, #281a10 100%), radial-gradient(circle at 40% 50%, #c08040 0%, transparent 60%);
}
.scn-shandy-family-originality .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3e2a1a 0%, #1e1008 100%); }
.scn-shandy-family-originality .desk { position:absolute; bottom:8%; left:5%; width:90%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:6px; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-shandy-family-originality .figure { position:absolute; bottom:30%; left:50%; width:22px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: sf-fig 5s ease-in-out infinite; }
.scn-shandy-family-originality .candle { position:absolute; bottom:33%; left:40%; width:8px; height:16px; background: linear-gradient(180deg, #e0c080 0%, #b08a40 100%); border-radius:2px; }
.scn-shandy-family-originality .flame { position:absolute; bottom:49%; left:39%; width:10px; height:12px; background: radial-gradient(circle, #ffe060 0%, #e0a030 60%, transparent 80%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 10px 2px #e0a030; animation: sf-flame 2s ease-in-out infinite alternate; }
.scn-shandy-family-originality .ink-blot { position:absolute; bottom:13%; left:25%; width:18px; height:12px; background: radial-gradient(ellipse, #1a1a2a 0%, #0a0a1a 90%); border-radius:60% 40% 70% 30% / 50% 60% 40% 50%; transform:rotate(15deg); animation: sf-ink 7s ease-in-out infinite; }
.scn-shandy-family-originality .picture { position:absolute; top:15%; left:20%; width:26px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border:2px solid #8a6a40; border-radius:2px; transform:rotate(4deg); animation: sf-pic 8s ease-in-out infinite alternate; }
@keyframes sf-flame { 0% { transform: scale(1,1) translateY(0); opacity:.8; } 50% { transform: scale(1.2,1.3) translateY(-1px); opacity:1; } 100% { transform: scale(.9,1) translateY(1px); opacity:.7; } }
@keyframes sf-fig { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(6px) rotate(1deg); } }
@keyframes sf-ink { 0%,100% { transform: rotate(15deg) scale(1); opacity:.9; } 50% { transform: rotate(18deg) scale(1.1); opacity:1; } }
@keyframes sf-pic { 0% { transform: rotate(3deg); } 100% { transform: rotate(6deg); } }

.scn-aunt-dinah-affair {
  background: linear-gradient(180deg, #1a1420 0%, #0d0a14 50%, #1c1628 100%), radial-gradient(circle at 80% 60%, #3a2a4a 0%, transparent 70%);
}
.scn-aunt-dinah-affair .bg-room { position:absolute; inset:0; }
.scn-aunt-dinah-affair .door-shaft { position:absolute; top:5%; right:25%; width:15%; height:45%; background: linear-gradient(0deg, rgba(240,220,160,.7) 0%, transparent 80%); transform:skewX(-8deg); filter:blur(6px); animation: ad-shaft 2s ease-in-out infinite alternate; }
.scn-aunt-dinah-affair .door { position:absolute; top:0; right:5%; width:18%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-left:2px solid #c0a070; border-radius:0 4px 4px 0; box-shadow: 4px 0 12px rgba(0,0,0,.7); }
.scn-aunt-dinah-affair .figure { position:absolute; bottom:15%; left:30%; width:26px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ad-fig 3s ease-in-out infinite alternate; }
.scn-aunt-dinah-affair .candle { position:absolute; bottom:25%; left:15%; width:6px; height:12px; background: linear-gradient(180deg, #e0c080 0%, #b08a40 100%); border-radius:1px; }
.scn-aunt-dinah-affair .table { position:absolute; bottom:20%; left:8%; width:30%; height:6%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,.6); }
.scn-aunt-dinah-affair .mirror { position:absolute; top:10%; left:12%; width:20px; height:28px; background: linear-gradient(180deg, #1a1420 0%, #0d0a14 100%); border-radius:50%; border:2px solid #3a2a20; overflow:hidden; box-shadow: inset 0 0 8px rgba(0,0,0,.8); }
.scn-aunt-dinah-affair .reflection { position:absolute; top:12%; left:14%; width:12px; height:18px; background: radial-gradient(ellipse, rgba(240,220,160,.3) 0%, transparent 70%); border-radius:50%; animation: ad-mirror 4s ease-in-out infinite alternate; }
@keyframes ad-shaft { 0% { opacity:.6; } 100% { opacity:.9; } }
@keyframes ad-fig { 0% { transform: rotate(-3deg); } 100% { transform: rotate(3deg); } }
@keyframes ad-mirror { 0% { opacity:.2; transform:scale(.95); } 100% { opacity:.5; transform:scale(1.05); } }

.scn-conscience-knowledge {
  background:
    linear-gradient(180deg, #2a1e14 0%, #3d2b1f 40%, #4a3525 100%),
    radial-gradient(ellipse at 30% 70%, #5a4530 0%, transparent 70%);
}
.scn-conscience-knowledge .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3d2b1f 0%, #1e150e 100%);
  animation: ck-wall 12s ease-in-out infinite alternate;
}
.scn-conscience-knowledge .desk {
  position: absolute;
  bottom: 10%;
  left: 10%;
  right: 10%;
  height: 30%;
  background: linear-gradient(180deg, #5a3d2a 0%, #3a2518 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  animation: ck-desk 8s ease-in-out infinite alternate;
}
.scn-conscience-knowledge .lamp {
  position: absolute;
  bottom: 40%;
  left: 20%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: ck-lamp 6s ease-in-out infinite;
}
.scn-conscience-knowledge .book {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 80px;
  height: 12px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 50%, #6a4a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ck-book 4s ease-in-out infinite alternate;
}
.scn-conscience-knowledge .figure {
  position: absolute;
  bottom: 18%;
  left: 48%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ck-figure 10s ease-in-out infinite;
}
.scn-conscience-knowledge .glow {
  position: absolute;
  bottom: 42%;
  left: 22%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #f0c060 0%, #d0a040 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ck-glow 3s ease-in-out infinite alternate;
}
@keyframes ck-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.75; }
}
@keyframes ck-desk {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes ck-lamp {
  0% { transform: rotate(-2deg) scaleY(1); }
  25% { transform: rotate(1deg) scaleY(1.01); }
  50% { transform: rotate(3deg) scaleY(1); }
  75% { transform: rotate(-1deg) scaleY(1.01); }
  100% { transform: rotate(-2deg) scaleY(1); }
}
@keyframes ck-book {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ck-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(2px) rotate(1deg); }
  60% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes ck-glow {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}

.scn-protestant-vs-paul {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #252543 50%, #1e1e36 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a5a 0%, transparent 60%);
}
.scn-protestant-vs-paul .bg-dark {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #151520 0%, #0e0e18 100%);
  animation: pv-bg 15s ease-in-out infinite alternate;
}
.scn-protestant-vs-paul .table {
  position: absolute;
  bottom: 15%;
  left: 5%;
  right: 5%;
  height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.7);
  animation: pv-table 6s ease-in-out infinite alternate;
}
.scn-protestant-vs-paul .figure-left {
  position: absolute;
  bottom: 22%;
  left: 12%;
  width: 40px;
  height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: pv-figure-left 4s ease-in-out infinite;
}
.scn-protestant-vs-paul .figure-right {
  position: absolute;
  bottom: 22%;
  right: 12%;
  width: 40px;
  height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform-origin: bottom center;
  animation: pv-figure-right 4.5s ease-in-out infinite;
}
.scn-protestant-vs-paul .candle-left {
  position: absolute;
  bottom: 38%;
  left: 28%;
  width: 8px;
  height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 20%;
  animation: pv-candle-left 3s ease-in-out infinite;
}
.scn-protestant-vs-paul .candle-right {
  position: absolute;
  bottom: 38%;
  right: 28%;
  width: 8px;
  height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 20%;
  animation: pv-candle-right 3.5s ease-in-out infinite;
}
.scn-protestant-vs-paul .book-mid {
  position: absolute;
  bottom: 30%;
  left: 40%;
  right: 40%;
  height: 18px;
  background: linear-gradient(90deg, #4a3020 0%, #6a4a2a 50%, #4a3020 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: pv-book 6s ease-in-out infinite alternate;
}
.scn-protestant-vs-paul .shadow-mid {
  position: absolute;
  bottom: 18%;
  left: 20%;
  right: 20%;
  height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: pv-shadow 8s ease-in-out infinite alternate;
}
@keyframes pv-bg {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes pv-table {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.03) translateY(-3px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes pv-figure-left {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(-5deg) translateX(-2px); }
  50% { transform: rotate(2deg) translateX(1px); }
  75% { transform: rotate(-3deg) translateX(-1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes pv-figure-right {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(5deg) translateX(2px); }
  50% { transform: rotate(-2deg) translateX(-1px); }
  75% { transform: rotate(4deg) translateX(1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes pv-candle-left {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.05) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.9; }
}
@keyframes pv-candle-right {
  0% { transform: scaleY(1) translateY(0); opacity: 0.85; }
  50% { transform: scaleY(1.08) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.85; }
}
@keyframes pv-book {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes pv-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

.scn-lost-son-lament {
  background: 
    linear-gradient(180deg, #0f0c1e 0%, #1f1a3e 50%, #2a2040 100%),
    radial-gradient(ellipse at 40% 60%, #2a2040 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-lost-son-lament .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1a1530 0%, #2a2040 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.6);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-lost-son-lament .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1f1a2e 0%, #0f0a18 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-lost-son-lament .window {
  position: absolute; top: 12%; left: 60%; width: 16%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #a0b0d0 0%, #606080 60%, transparent 80%);
  border: 3px solid #2a2040;
  border-radius: 4px;
  box-shadow: 0 0 30px 6px rgba(160,176,208,0.3), inset 0 0 20px rgba(160,176,208,0.2);
  animation: lsl-window 10s ease-in-out infinite alternate;
}
.scn-lost-son-lament .table {
  position: absolute; bottom: 30%; left: 20%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a120e 100%);
  border-radius: 6% 6% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-lost-son-lament .chair {
  position: absolute; bottom: 32%; left: 30%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a120e 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 5% 5%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-lost-son-lament .father {
  position: absolute; bottom: 32%; left: 36%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #0f0a12 0%, #050308 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lsl-figure 6s ease-in-out infinite;
}
.scn-lost-son-lament .candle {
  position: absolute; bottom: 36%; left: 50%; width: 2%; height: 6%;
  background: linear-gradient(180deg, #d9b88a 0%, #b3926a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 4px 1px #d9b88a;
}
.scn-lost-son-lament .flame {
  position: absolute; bottom: 42%; left: 49.5%; width: 3%; height: 4%;
  background: radial-gradient(circle, #ffd080 0%, #e0a050 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #e0a050, 0 0 40px 16px rgba(224,160,80,0.4);
  animation: lsl-flame 2s ease-in-out infinite alternate;
}
@keyframes lsl-window {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 0.85; transform: scaleY(1.02); box-shadow: 0 0 40px 10px rgba(160,176,208,0.4); }
  100% { opacity: 0.6; transform: scaleY(0.98); box-shadow: 0 0 20px 4px rgba(160,176,208,0.2); }
}
@keyframes lsl-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(1px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-1px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lsl-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.15) translateY(-4px); opacity: 1; }
  100% { transform: scale(0.95) translateY(2px); opacity: 0.85; }
}

.scn-sermon-continued {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #3a2e24 40%, #2e2218 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-sermon-continued .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%);
  box-shadow: inset 0 6px 30px rgba(0,0,0,0.5);
  border-radius: 0 0 15% 15% / 0 0 8% 8%;
}
.scn-sermon-continued .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2e2218 0%, #1a120a 100%);
}
.scn-sermon-continued .pulpit {
  position: absolute; bottom: 25%; left: 40%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #4a3826 0%, #2a1e12 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  border: 1px solid #5a4530;
}
.scn-sermon-continued .trim-figure {
  position: absolute; bottom: 22%; left: 48%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #1a1814 0%, #0e0c0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc-trim 8s ease-in-out infinite;
}
.scn-sermon-continued .handkerchief {
  position: absolute; bottom: 30%; left: 52%; width: 4%; height: 4%;
  background: radial-gradient(circle, #c8b8a0 0%, #a09078 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,184,160,0.3);
  animation: sc-hank 4s ease-in-out infinite;
}
.scn-sermon-continued .pew {
  position: absolute; bottom: 18%; left: 20%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-sermon-continued .window-light {
  position: absolute; top: 15%; right: 10%; width: 18%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #e8d8b0 0%, #c8b890 60%, transparent 85%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 0 40px 12px rgba(232,216,176,0.2);
  animation: sc-window 12s ease-in-out infinite alternate;
}
.scn-sermon-continued .candle-light {
  position: absolute; bottom: 38%; left: 36%; width: 3%; height: 5%;
  background: linear-gradient(180deg, #e8c080 0%, #c8a060 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 8px #e8c080, 0 0 40px 16px rgba(232,192,128,0.4);
  animation: sc-candle 3s ease-in-out infinite alternate;
}
@keyframes sc-trim {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(2px) rotate(1deg); }
  60% { transform: translateX(0) rotate(-2deg); }
  100% { transform: translateX(-1px) rotate(1deg); }
}
@keyframes sc-hank {
  0% { transform: scale(1) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.2) translateY(-3px); opacity: 1; }
  100% { transform: scale(0.9) translateY(2px); opacity: 0.6; }
}
@keyframes sc-window {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.85; transform: scaleX(1.05); box-shadow: 0 0 60px 20px rgba(232,216,176,0.3); }
  100% { opacity: 0.5; transform: scaleX(0.95); }
}
@keyframes sc-candle {
  0% { transform: scale(1) translateY(0); box-shadow: 0 0 20px 8px #e8c080; }
  50% { transform: scale(1.1) translateY(-2px); box-shadow: 0 0 30px 12px #e8c080; }
  100% { transform: scale(0.95) translateY(1px); box-shadow: 0 0 15px 5px #e8c080; }
}

.scn-clergy-exempted {
  background:
    linear-gradient(180deg, #2a1e1a 0%, #3d2c24 40%, #1f1410 100%),
    radial-gradient(ellipse at 30% 60%, #5a3e30 0%, transparent 60%);
}
.scn-clergy-exempted .curtain-left {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 40%;
  background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 50%, #4a2a1a 100%);
  border-right: 4px solid #1a0e0a;
  transform-origin: left center;
  animation: cl-curtain 6s ease-in-out infinite;
}
.scn-clergy-exempted .curtain-right {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 40%;
  background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 50%, #4a2a1a 100%);
  border-left: 4px solid #1a0e0a;
  transform-origin: right center;
  animation: cl-curtain 6s ease-in-out infinite reverse;
}
.scn-clergy-exempted .lectern {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 70px;
  height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 6px 6px 4% 4%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.6);
}
.scn-clergy-exempted .clergy-figure {
  position: absolute;
  bottom: 16%;
  left: 50%;
  width: 30px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e18 0%, #1a100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cl-figure 4s ease-in-out infinite;
}
.scn-clergy-exempted .book {
  position: absolute;
  bottom: 22%;
  left: 48%;
  width: 20px;
  height: 14px;
  background: #806a5a;
  border-radius: 2px;
  box-shadow: 0 2px 0 #5a4030;
  animation: cl-book 5s ease-in-out infinite;
}
.scn-clergy-exempted .lamp {
  position: absolute;
  bottom: 32%;
  left: 32%;
  width: 12px;
  height: 18px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px #c08830, 0 0 40px 16px rgba(192,136,48,0.3);
  animation: cl-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-clergy-exempted .moth-flutter {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 6px;
  height: 6px;
  background: #d4b878;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #f0d890;
  animation: cl-moth 4.5s ease-in-out infinite;
}
@keyframes cl-curtain {
  0%, 100% { width: 40%; }
  50% { width: 35%; }
}
@keyframes cl-figure {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-48%) rotate(-2deg); }
}
@keyframes cl-book {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes cl-lamp-glow {
  0% { box-shadow: 0 0 15px 6px #c08830, 0 0 30px 12px rgba(192,136,48,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 25px 10px #f0c060, 0 0 50px 20px rgba(240,192,96,0.4); opacity: 1; }
  100% { box-shadow: 0 0 18px 8px #c08830, 0 0 36px 14px rgba(192,136,48,0.25); opacity: 0.85; }
}
@keyframes cl-moth {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(12px, -8px) rotate(45deg); }
  50% { transform: translate(-6px, -4px) rotate(120deg); }
  75% { transform: translate(8px, -12px) rotate(200deg); }
  100% { transform: translate(0, 0) rotate(360deg); }
}

.scn-devil-of-education {
  background:
    linear-gradient(180deg, #1c1412 0%, #2a1e1a 40%, #140c0a 100%),
    radial-gradient(ellipse at 70% 40%, #3a2a20 0%, transparent 60%);
}
.scn-devil-of-education .wall {
  position: absolute;
  left: 10%;
  right: 10%;
  top: 10%;
  bottom: 20%;
  background: linear-gradient(180deg, #2a201c 0%, #1a1210 100%);
  border-radius: 8px 8px 0 0;
  border: 2px solid #3a2a24;
}
.scn-devil-of-education .desk {
  position: absolute;
  bottom: 18%;
  left: 20%;
  right: 20%;
  height: 30px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-devil-of-education .father-figure {
  position: absolute;
  bottom: 22%;
  left: 28%;
  width: 28px;
  height: 50px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: de-father 6s ease-in-out infinite;
}
.scn-devil-of-education .devil-figure {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: de-devil 4s ease-in-out infinite;
}
.scn-devil-of-education .devil-figure::after {
  content: '';
  position: absolute;
  top: -8px;
  left: 2px;
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 10px solid #5a2a1a;
  transform: rotate(10deg);
}
.scn-devil-of-education .book-stack {
  position: absolute;
  bottom: 24%;
  left: 45%;
  width: 30px;
  height: 20px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 2px;
  box-shadow: 0 2px 0 #4a3420, 0 4px 0 #5a4030, 0 6px 0 #6a5030;
  animation: de-book 8s ease-in-out infinite;
}
.scn-devil-of-education .candle {
  position: absolute;
  bottom: 26%;
  left: 20%;
  width: 6px;
  height: 24px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a87a 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 4px #f0c090;
  animation: de-candle 5s ease-in-out infinite alternate;
}
.scn-devil-of-education .scroll {
  position: absolute;
  bottom: 18%;
  left: 68%;
  width: 40px;
  height: 10px;
  background: linear-gradient(90deg, #c8b08a 0%, #e0c8a0 50%, #c8b08a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: de-scroll 12s ease-in-out infinite;
}
.scn-devil-of-education .dust-mote {
  position: absolute;
  top: 15%;
  left: 30%;
  width: 4px;
  height: 4px;
  background: rgba(200,180,160,0.4);
  border-radius: 50%;
  filter: blur(1px);
  animation: de-dust 20s linear infinite;
}
@keyframes de-father {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
}
@keyframes de-devil {
  0%, 100% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(6px); }
}
@keyframes de-book {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes de-candle {
  0% { box-shadow: 0 0 8px 4px #f0c090; opacity: 0.9; }
  50% { box-shadow: 0 0 12px 6px #f0d0a0; opacity: 1; }
  100% { box-shadow: 0 0 6px 3px #e0b080; opacity: 0.85; }
}
@keyframes de-scroll {
  0%, 100% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(4px); }
}
@keyframes de-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  25% { transform: translate(20px, -10px) scale(1.5); opacity: 0.6; }
  50% { transform: translate(-10px, -20px) scale(1.2); opacity: 0.4; }
  75% { transform: translate(15px, -5px) scale(1.7); opacity: 0.7; }
  100% { transform: translate(0, -30px) scale(1); opacity: 0.2; }
}

.scn-limerick-lesson {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a1008 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-limerick-lesson .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-limerick-lesson .table { position:absolute; bottom:15%; left:20%; width:60%; height:8%; background: #4a3a2a; border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-limerick-lesson .figure { position:absolute; bottom:23%; left:35%; width:20px; height:40px; background:linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:li-fig 3s ease-in-out infinite; }
.scn-limerick-lesson .lamp { position:absolute; top:10%; left:50%; width:12px; height:24px; background:radial-gradient(circle, #f0c068 0%, #b08040 60%); border-radius:50% 50% 10% 10%; box-shadow:0 0 20px 6px #c08040; animation:li-lamp 4s ease-in-out infinite alternate; }
.scn-limerick-lesson .glass { position:absolute; bottom:22%; left:45%; width:10px; height:14px; background:rgba(200,180,120,.3); border:1px solid rgba(200,180,120,.5); border-radius:0 0 4px 4px; animation:li-glass 2s ease-in-out infinite alternate; }
.scn-limerick-lesson .glow { position:absolute; bottom:20%; left:30%; width:40%; height:30%; background:radial-gradient(ellipse, rgba(200,100,50,.2) 0%, transparent 100%); pointer-events:none; }

@keyframes li-fig   { 0%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(5deg) translateY(-3px)} 100%{transform:rotate(-5deg) translateY(0)} }
@keyframes li-lamp  { 0%{transform:rotate(-8deg)} 50%{transform:rotate(0deg)} 100%{transform:rotate(8deg)} }
@keyframes li-glass { 0%{transform:translateX(0) rotate(0);opacity:.6} 50%{transform:translateX(2px) rotate(3deg);opacity:1} 100%{transform:translateX(0) rotate(0);opacity:.6} }

.scn-le-fevers-condition {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a10 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
}
.scn-le-fevers-condition .bg { position:absolute; inset:0; background:linear-gradient(180deg, #1a1208 0%, #0a0804 100%); }
.scn-le-fevers-condition .bed { position:absolute; bottom:12%; left:25%; width:50%; height:15%; background:#3a2a1a; border-radius:10px 10px 0 0; box-shadow:inset 0 -4px 8px rgba(0,0,0,.4); animation:lf-bed 6s ease-in-out infinite; }
.scn-le-fevers-condition .figure { position:absolute; bottom:27%; left:45%; width:18px; height:36px; background:#0a0500; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:lf-figure 8s ease-in-out infinite; }
.scn-le-fevers-condition .candle { position:absolute; bottom:20%; left:38%; width:6px; height:16px; background:#5a3a1a; border-radius:2px; }
.scn-le-fevers-condition .flame { position:absolute; bottom:36%; left:38%; width:6px; height:8px; background:radial-gradient(circle, #ffd060 0%, #ff8040 100%); border-radius:50% 50% 20% 20%; animation:lf-flame 1.5s ease-in-out infinite alternate; }
.scn-le-fevers-condition .window { position:absolute; top:15%; right:15%; width:20%; height:30%; background:#0a0a1a; border:2px solid #2a2a3a; border-radius:2px; box-shadow:inset 0 0 20px rgba(0,0,0,.8); animation:lf-window 12s ease-in-out infinite alternate; }
.scn-le-fevers-condition .curtain { position:absolute; top:15%; right:15%; width:22%; height:32%; background:linear-gradient(90deg, #3a2a1a 0%, #1a1208 100%); border-radius:2px; opacity:.6; animation:lf-curtain 20s ease-in-out infinite alternate; }

@keyframes lf-bed   { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes lf-figure{ 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes lf-flame { 0%{transform:scale(0.8) rotate(-2deg);opacity:.8} 50%{transform:scale(1.1) rotate(0deg);opacity:1} 100%{transform:scale(0.9) rotate(2deg);opacity:.85} }
@keyframes lf-window{ 0%{opacity:.3;box-shadow:inset 0 0 10px rgba(0,0,0,.8)} 50%{opacity:.5;box-shadow:inset 0 0 30px rgba(0,0,0,.8)} 100%{opacity:.3;box-shadow:inset 0 0 10px rgba(0,0,0,.8)} }
@keyframes lf-curtain{0%{transform:translateX(0)} 50%{transform:translateX(-3px)} 100%{transform:translateX(0)} }

.scn-conscience-self-deceit {
  background: radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, #2a1a12 40%, #1a0e0a 100%);
}
.scn-conscience-self-deceit .csd-wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a12 100%);
}
.scn-conscience-self-deceit .csd-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #2a1a12 0px, #1a0e0a 2px, #2a1a12 4px);
}
.scn-conscience-self-deceit .csd-desk {
  position:absolute; bottom:30%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
}
.scn-conscience-self-deceit .csd-candle {
  position:absolute; bottom:45%; left:45%; width:6px; height:30px; background: linear-gradient(to top, #8a6a3a, #c0a060, #e0c080); border-radius: 2px;
  box-shadow: 0 0 20px 10px rgba(200,160,80,0.4);
  animation: csd-candle 3s ease-in-out infinite;
}
.scn-conscience-self-deceit .csd-figure {
  position:absolute; bottom:35%; left:38%; width:50px; height:70px;
  background: radial-gradient(ellipse 70% 80% at 50% 40%, #1a0e0a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: csd-figure 5s ease-in-out infinite;
}
.scn-conscience-self-deceit .csd-book {
  position:absolute; bottom:38%; left:48%; width:20px; height:14px; background: #3a2a1a; border-radius: 2px;
  transform: rotate(5deg);
}
.scn-conscience-self-deceit .csd-dust {
  position:absolute; top:20%; left:60%; width:4px; height:4px; background: rgba(200,180,150,0.3); border-radius:50%;
  box-shadow: 0 0 6px 2px rgba(200,180,150,0.2);
  animation: csd-dust 15s linear infinite;
}
.scn-conscience-self-deceit .csd-thought {
  position:absolute; top:40%; left:60%; width:8px; height:8px; background: radial-gradient(circle, #a08050 0%, transparent 70%);
  border-radius:50%; box-shadow: 0 0 10px 5px rgba(160,128,80,0.2);
  animation: csd-thought 8s ease-in-out infinite;
}
@keyframes csd-candle {
  0% { transform: scaleY(1); opacity:0.9; box-shadow: 0 0 15px 8px rgba(200,160,80,0.3); }
  50% { transform: scaleY(1.02) scaleX(0.98); opacity:1; box-shadow: 0 0 25px 12px rgba(200,160,80,0.5); }
  100% { transform: scaleY(1); opacity:0.9; box-shadow: 0 0 15px 8px rgba(200,160,80,0.3); }
}
@keyframes csd-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes csd-dust {
  0% { transform: translateY(0) translateX(0) scale(1); opacity:0.3; }
  50% { transform: translateY(-30px) translateX(10px) scale(1.5); opacity:0.1; }
  100% { transform: translateY(-60px) translateX(-5px) scale(0.8); opacity:0; }
}
@keyframes csd-thought {
  0% { transform: rotate(0deg) scale(1); opacity:0.5; }
  33% { transform: rotate(120deg) scale(1.2); opacity:0.8; }
  66% { transform: rotate(240deg) scale(0.8); opacity:0.4; }
  100% { transform: rotate(360deg) scale(1); opacity:0.5; }
}

.scn-smoke-jack-ideas {
  background: radial-gradient(ellipse at 50% 50%, #5a3a2a 0%, #2a1a12 60%, #1a0e0a 100%);
}
.scn-smoke-jack-ideas .sji-wall {
  position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a12 100%);
}
.scn-smoke-jack-ideas .sji-rod {
  position:absolute; bottom:20%; left:50%; width:4px; height:50%; background: linear-gradient(180deg, #6a4a3a, #3a2a1a);
  transform: translateX(-50%);
  animation: sji-wobble 4s ease-in-out infinite;
}
.scn-smoke-jack-ideas .sji-arm {
  position:absolute; bottom:45%; left:50%; width:80px; height:6px; background: #4a3a2a;
  transform: translate(-50%, -50%);
  border-radius: 3px;
  animation: sji-spin 3s linear infinite;
}
.scn-smoke-jack-ideas .sji-smoke1 {
  position:absolute; bottom:55%; left:35%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,180,150,0.4) 0%, transparent 70%);
  border-radius:50%;
  animation: sji-smoke 5s ease-in-out infinite;
}
.scn-smoke-jack-ideas .sji-smoke2 {
  position:absolute; bottom:60%; left:55%; width:15px; height:15px; background: radial-gradient(circle, rgba(200,180,150,0.3) 0%, transparent 70%);
  border-radius:50%;
  animation: sji-smoke 5s ease-in-out infinite reverse;
  animation-delay: 2s;
}
.scn-smoke-jack-ideas .sji-candle {
  position:absolute; bottom:22%; left:50%; width:6px; height:20px; background: linear-gradient(to top, #8a6a3a, #c0a060, #e0c080); border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 15px 8px rgba(200,160,80,0.4);
  animation: sji-candle 2s ease-in-out infinite alternate;
}
.scn-smoke-jack-ideas .sji-spark {
  position:absolute; bottom:40%; left:50%; width:6px; height:6px; background: #ffd060; border-radius:50%;
  box-shadow: 0 0 10px 5px #ffd060;
  animation: sji-spark 1.5s ease-in-out infinite;
}
@keyframes sji-wobble {
  0%,100% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes sji-spin {
  0% { transform: translate(-50%, -50%) rotate(0deg); }
  100% { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes sji-smoke {
  0% { transform: translateY(0) scale(1); opacity:0.5; }
  50% { transform: translateY(-30px) scale(1.5); opacity:0.2; }
  100% { transform: translateY(-60px) scale(0.8); opacity:0; }
}
@keyframes sji-candle {
  0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 10px 5px rgba(200,160,80,0.3); }
  100% { transform: translateX(-50%) scaleY(1.05); box-shadow: 0 0 20px 10px rgba(200,160,80,0.6); }
}
@keyframes sji-spark {
  0%,100% { transform: translate(0,0) scale(1); }
  25% { transform: translate(10px, -10px) scale(1.3); }
  50% { transform: translate(15px, 5px) scale(0.8); }
  75% { transform: translate(-5px, 15px) scale(1.1); }
}

.scn-lost-son-lament { background: linear-gradient(180deg, #1a1a2e 0%, #16213e 40%, #0f3460 70%, #1a1a2e 100%), radial-gradient(ellipse at 30% 80%, #0f3460 0%, transparent 60%); }
.scn-lost-son-lament .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a14 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 80px rgba(0,0,0,0.6); }
.scn-lost-son-lament .window { position:absolute; top:10%; left:5%; width:30%; height:40%; background: #0f1a2e; border: 6px solid #3a2a1a; border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-lost-son-lament .night-sky { position:absolute; top:10%; left:5%; width:30%; height:40%; background: radial-gradient(ellipse at 30% 20%, #2a2a5e 0%, #0a0a1e 70%); border-radius: 4% 4% 8% 8%; opacity:0.8; animation: lsl-sky 20s ease-in-out infinite alternate; }
.scn-lost-son-lament .figure { position:absolute; bottom:10%; left:35%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lsl-figure 6s ease-in-out infinite; }
.scn-lost-son-lament .table { position:absolute; bottom:8%; left:25%; width:50%; height:6px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-lost-son-lament .candle { position:absolute; bottom:28%; left:42%; width:8px; height:20px; background: linear-gradient(180deg, #b08040 0%, #6a4a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 4px rgba(176,128,64,0.5); }
.scn-lost-son-lament .candle-glow { position:absolute; bottom:28%; left:42%; width:8px; height:20px; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, rgba(255,208,128,0.3) 40%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: lsl-glow 3s ease-in-out infinite alternate; }
.scn-lost-son-lament .shadow { position:absolute; bottom:6%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); filter: blur(10px); animation: lsl-shadow 8s ease-in-out infinite; }
.scn-lost-son-lament .dust-mote { position:absolute; top:30%; left:20%; width:4px; height:4px; background: rgba(255,255,200,0.3); border-radius: 50%; filter: blur(1px); animation: lsl-dust 15s linear infinite; }
@keyframes lsl-sky { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.02); } 100% { opacity:0.75; transform: scale(0.98); } }
@keyframes lsl-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes lsl-glow { 0% { opacity:0.6; transform: scale(0.9); box-shadow: 0 0 10px 2px rgba(255,208,128,0.3); } 50% { opacity:1; transform: scale(1.1); box-shadow: 0 0 20px 6px rgba(255,208,128,0.5); } 100% { opacity:0.7; transform: scale(0.95); box-shadow: 0 0 12px 3px rgba(255,208,128,0.35); } }
@keyframes lsl-shadow { 0% { transform: translateX(0) scaleY(1); opacity:0.6; } 50% { transform: translateX(5px) scaleY(0.95); opacity:0.8; } 100% { transform: translateX(-3px) scaleY(1.02); opacity:0.5; } }
@keyframes lsl-dust { 0% { transform: translate(0,0) scale(1); opacity:0.4; } 25% { transform: translate(8px,-10px) scale(1.1); opacity:0.6; } 50% { transform: translate(16px,-20px) scale(0.9); opacity:0.3; } 75% { transform: translate(24px,-30px) scale(1.2); opacity:0.5; } 100% { transform: translate(30px,-40px) scale(1); opacity:0; } }

.scn-limerick-lesson {
  background:
    radial-gradient(ellipse at 80% 60%, #d47a35 0%, transparent 50%),
    linear-gradient(180deg, #4a2010 0%, #2a1008 40%, #1a0805 100%);
}
.scn-limerick-lesson .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(30,12,6,.8) 0%, transparent 100%);
}
.scn-limerick-lesson .wall {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 68%;
  background: linear-gradient(180deg, #5c2a18 0%, #3a1a0c 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-limerick-lesson .table {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a2a10 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-limerick-lesson .figure {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 60% 60% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 8px rgba(0,0,0,.4);
  animation: ll-figure 2.5s ease-in-out infinite;
}
.scn-limerick-lesson .bottle {
  position: absolute; bottom: 14%; left: 60%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #5c3a1a 0%, #3a2212 100%);
  border-radius: 20% 20% 30% 30% / 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ll-bottle 4s ease-in-out infinite;
}
.scn-limerick-lesson .glass {
  position: absolute; bottom: 16%; left: 48%; width: 18px; height: 30px;
  background: linear-gradient(180deg, rgba(200,150,100,.4) 0%, rgba(100,60,30,.2) 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  border: 1px solid rgba(180,120,60,.3);
  box-shadow: 0 0 8px rgba(180,120,60,.2);
  animation: ll-glass 1.8s ease-in-out infinite alternate;
}
.scn-limerick-lesson .flame {
  position: absolute; bottom: 38%; left: 30%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 20%, #ffc080 0%, #d07030 40%, #701808 100%);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 0 24px 6px rgba(255,160,50,.4), 0 0 48px 12px rgba(200,80,20,.2);
  animation: ll-flame 0.6s ease-in-out infinite alternate;
}
.scn-limerick-lesson .book {
  position: absolute; bottom: 14%; left: 18%; width: 40px; height: 10px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform: rotate(-8deg);
  animation: ll-book 6s ease-in-out infinite;
}
@keyframes ll-figure {
  0%   { transform: translateX(0) translateY(0) rotate(0deg); }
  30%  { transform: translateX(4px) translateY(-2px) rotate(3deg); }
  60%  { transform: translateX(8px) translateY(0) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ll-bottle {
  0%   { transform: rotate(0deg) translateY(0); }
  40%  { transform: rotate(5deg) translateY(-1px); }
  80%  { transform: rotate(-3deg) translateY(0); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ll-glass {
  0%   { transform: translateX(0) rotate(0deg); opacity: 0.8; }
  100% { transform: translateX(2px) rotate(1deg); opacity: 1; }
}
@keyframes ll-flame {
  0%   { transform: scaleY(1) scaleX(1); opacity: 0.9; }
  50%  { transform: scaleY(1.2) scaleX(0.9); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.85; }
}
@keyframes ll-book {
  0%   { transform: rotate(-8deg) translateY(0); }
  50%  { transform: rotate(-6deg) translateY(-1px); }
  100% { transform: rotate(-8deg) translateY(0); }
}

.scn-devil-of-education {
  background: 
    radial-gradient(ellipse at 60% 50%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1510 0%, #2b1f14 40%, #1f1410 100%);
}

.scn-devil-of-education .room-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #2b1f14 0%, #3a2a1a 30%, #2b1f14 70%, #1a1510 100%);
  animation: de-wall 20s ease-in-out infinite alternate;
}

.scn-devil-of-education .desk {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 22%;
  background: linear-gradient(180deg, #4a3525 0%, #2e1f12 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
  transform-origin: bottom center;
  animation: de-desk 12s ease-in-out infinite alternate;
}

.scn-devil-of-education .book-stack {
  position: absolute; bottom: 30%; left: 20%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 4px 4px 8px rgba(0,0,0,.5), inset 0 2px 4px rgba(255,200,100,.2);
  animation: de-stack 8s ease-in-out infinite;
}

.scn-devil-of-education .father {
  position: absolute; bottom: 30%; left: 50%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #1a1510 0%, #0f0b08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,.4);
  animation: de-father 6s ease-in-out infinite alternate;
}

.scn-devil-of-education .father-arm {
  position: absolute; bottom: 40%; left: 58%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #1a1510 0%, #0f0b08 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  transform-origin: 0% 100%;
  animation: de-arm 3s ease-in-out infinite;
}

.scn-devil-of-education .devil {
  position: absolute; bottom: 44%; left: 28%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(200,85,61,.3);
  animation: de-devil 2s ease-in-out infinite;
}

.scn-devil-of-education .devil::before {
  content: ''; position: absolute; top: -30%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 30% 50%, #c8553d 0%, transparent 70%);
  border-radius: 50%;
  transform: rotate(15deg);
}

.scn-devil-of-education .candle {
  position: absolute; bottom: 30%; left: 70%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #d4b080 0%, #a08060 100%);
  border-radius: 10% 10% 5% 5%;
  animation: de-candle 4s ease-in-out infinite;
}

.scn-devil-of-education .candle-glow {
  position: absolute; bottom: 35%; left: 69%; width: 8%; height: 12%;
  background: radial-gradient(circle, rgba(255,220,140,0.8) 0%, rgba(255,180,100,0.2) 60%, transparent 100%);
  border-radius: 50%;
  animation: de-glow 3s ease-in-out infinite alternate;
}

.scn-devil-of-education .paper-fly {
  position: absolute; top: 20%; left: 60%; width: 10%; height: 8%;
  background: linear-gradient(180deg, #d4c8a0 0%, #b0a080 100%);
  border-radius: 2% 10% 10% 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: de-paper 15s linear infinite;
}

@keyframes de-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes de-desk {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.98) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}

@keyframes de-stack {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-2deg); }
  75% { transform: translateY(1px) rotate(1deg); }
}

@keyframes de-father {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}

@keyframes de-arm {
  0% { transform: rotate(-30deg); }
  25% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  75% { transform: rotate(0deg); }
  100% { transform: rotate(-30deg); }
}

@keyframes de-devil {
  0% { transform: translateY(0) scale(1) rotate(0deg); }
  50% { transform: translateY(-6px) scale(1.05) rotate(-5deg); }
  100% { transform: translateY(0) scale(1) rotate(5deg); }
}

@keyframes de-candle {
  0% { transform: scaleY(1) translateY(0); }
  25% { transform: scaleY(0.95) translateY(1px); }
  75% { transform: scaleY(1.05) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}

@keyframes de-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.8; transform: scale(0.9); }
}

@keyframes de-paper {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(30px) translateY(-20px) rotate(15deg); }
  50% { transform: translateX(60px) translateY(-10px) rotate(-10deg); }
  75% { transform: translateX(90px) translateY(-30px) rotate(5deg); }
  100% { transform: translateX(120px) translateY(0) rotate(0deg); }
}

.scn-le-fevers-condition {
  background:
    radial-gradient(ellipse at 30% 50%, rgba(180, 100, 40, 0.15) 0%, transparent 60%),
    linear-gradient(180deg, #1a1620 0%, #2a1e1a 40%, #3a2a1e 70%, #2a1e1a 100%);
}
.scn-le-fevers-condition .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2228 0%, #1a161e 100%);
  opacity: 0.7;
  animation: lfc-wall 20s ease-in-out infinite;
}
.scn-le-fevers-condition .window {
  position: absolute; left: 6%; top: 18%; width: 22%; height: 36%;
  background: linear-gradient(180deg, #1a3a5a 0%, #0e223a 100%);
  border: 3px solid #3a2a1e;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(20, 50, 80, 0.5);
  overflow: hidden;
}
.scn-le-fevers-condition .moon {
  position: absolute; left: 10%; top: 22%; width: 8%; height: 10%;
  background: radial-gradient(circle, #e8e0c8 0%, #b8b0a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(200, 190, 160, 0.3);
  animation: lfc-moon 12s ease-in-out infinite alternate;
}
.scn-le-fevers-condition .cloud-out {
  position: absolute; left: 5%; top: 30%; width: 20%; height: 8%;
  background: rgba(180, 190, 200, 0.15);
  filter: blur(6px);
  border-radius: 50%;
  animation: lfc-cloud 30s linear infinite;
}
.scn-le-fevers-condition .table {
  position: absolute; bottom: 22%; right: 18%; width: 28%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-le-fevers-condition .candle {
  position: absolute; bottom: 28%; right: 28%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 60%, #6a4a2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: lfc-candle 3s ease-in-out infinite;
}
.scn-le-fevers-condition .glow {
  position: absolute; bottom: 30%; right: 26%; width: 8%; height: 14%;
  background: radial-gradient(ellipse, rgba(255, 200, 100, 0.7) 0%, rgba(255, 160, 60, 0.2) 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: lfc-glow 2.5s ease-in-out infinite alternate;
}
.scn-le-fevers-condition .figure {
  position: absolute; bottom: 22%; right: 8%; width: 14%; height: 48%;
  background: linear-gradient(180deg, #1e1a18 0%, #0a0806 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -6px 0 10px rgba(0,0,0,0.5);
  animation: lfc-figure 8s ease-in-out infinite;
}
.scn-le-fevers-condition .shadow {
  position: absolute; bottom: 20%; right: 10%; width: 16%; height: 4%;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(6px);
  animation: lfc-shadow 8s ease-in-out infinite;
}

@keyframes lfc-wall {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 0.8; }
}
@keyframes lfc-moon {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes lfc-cloud {
  0% { transform: translateX(0); opacity: 0.15; }
  25% { opacity: 0.25; }
  50% { transform: translateX(30px); opacity: 0.1; }
  75% { opacity: 0.2; }
  100% { transform: translateX(60px); opacity: 0.15; }
}
@keyframes lfc-candle {
  0% { transform: scaleY(1); }
  25% { transform: scaleY(1.06) translateY(-2px); }
  50% { transform: scaleY(0.98); }
  75% { transform: scaleY(1.04) translateY(-1px); }
  100% { transform: scaleY(1); }
}
@keyframes lfc-glow {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes lfc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-2px) rotate(1deg); }
  60% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lfc-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(0.85); opacity: 0.4; }
  100% { transform: scaleX(1); opacity: 0.6; }
}

.scn-clergy-exempted { background: linear-gradient(180deg, #2c2a2a 0%, #1a1a1a 100%), radial-gradient(ellipse at 60% 50%, #3a2a1a 0%, transparent 70%); }
.scn-clergy-exempted .curtain-left { position:absolute; top:0; left:0; bottom:0; width:25%; background: linear-gradient(180deg, #5e1a1d, #3a0f12); border-radius: 0 20% 20% 0 / 0 30% 30% 0; transform-origin: left center; animation: cl-curtain 6s ease-in-out infinite alternate; }
.scn-clergy-exempted .curtain-right { position:absolute; top:0; right:0; bottom:0; width:25%; background: linear-gradient(180deg, #5e1a1d, #3a0f12); border-radius: 20% 0 0 20% / 30% 0 0 30%; transform-origin: right center; animation: cl-curtain 6s ease-in-out infinite alternate-reverse; }
.scn-clergy-exempted .figure { position:absolute; bottom:35%; left:35%; width:36px; height:52px; background: #111; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cl-figure 4s ease-in-out infinite; }
.scn-clergy-exempted .lamp { position:absolute; bottom:45%; right:28%; width:14px; height:18px; background: #f0c060; border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 10px rgba(240,192,96,0.5); animation: cl-lamp 2s ease-in-out infinite alternate; }
.scn-clergy-exempted .stool { position:absolute; bottom:20%; left:33%; width:40px; height:8px; background: #4a3a2a; border-radius: 4px; animation: cl-stool 8s ease-in-out infinite alternate; }
.scn-clergy-exempted .hat { position:absolute; bottom:70%; left:36%; width:30px; height:10px; background: #222; border-radius: 50% 50% 0 0; transform: rotate(5deg); animation: cl-hat 5s ease-in-out infinite alternate; }
@keyframes cl-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1) } }
@keyframes cl-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes cl-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(240,192,96,0.3); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(240,192,96,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(240,192,96,0.4); } }
@keyframes cl-stool { 0% { transform: translateY(0) skewX(0) } 50% { transform: translateY(-2px) skewX(2deg) } 100% { transform: translateY(0) skewX(0) } }
@keyframes cl-hat { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }

.scn-smoke-jack-ideas {
  background: 
    linear-gradient(180deg, #2a1e12 0%, #1a120a 40%, #0d0805 100%),
    radial-gradient(ellipse at 80% 60%, #b85a2a 0%, transparent 50%),
    radial-gradient(ellipse at 20% 70%, #d4753a 0%, transparent 40%);
}
.scn-smoke-jack-ideas .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, transparent 0, transparent 3px, rgba(0,0,0,.05) 3px, rgba(0,0,0,.05) 6px);
}
.scn-smoke-jack-ideas .hearth {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #ff8844 0%, #cc4400 50%, #331100 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 0 30px #331100, 0 4px 12px rgba(0,0,0,.6);
}
.scn-smoke-jack-ideas .spit {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 4px;
  background: #666; border-radius: 2px;
  transform-origin: center;
  animation: sji-spin 4s linear infinite;
}
@keyframes sji-spin {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}
.scn-smoke-jack-ideas .lantern {
  position: absolute; top: 30%; right: 25%; width: 40px; height: 50px;
  background: radial-gradient(circle at 50% 30%, #ffd080, #b06020);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px #d08030;
  animation: sji-pulse 3s ease-in-out infinite alternate;
}
@keyframes sji-pulse {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.85; transform: scale(1); }
}
.scn-smoke-jack-ideas .candle {
  position: absolute; bottom: 20%; left: 20%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #ffe0a0, #c09060);
  border-radius: 2px 2px 0 0;
}
.scn-smoke-jack-ideas .flame {
  position: absolute; bottom: calc(20% + 20px); left: calc(20% + 2px);
  width: 6px; height: 8px;
  background: radial-gradient(circle, #fffa80, #ff8800);
  border-radius: 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: sji-flicker 0.5s infinite alternate;
}
@keyframes sji-flicker {
  0% { transform: scaleY(1) scaleX(0.9); opacity: 0.8; }
  50% { transform: scaleY(1.2) scaleX(0.8); opacity: 0.9; }
  100% { transform: scaleY(0.9) scaleX(1); opacity: 1; }
}
.scn-smoke-jack-ideas .idea-a,
.scn-smoke-jack-ideas .idea-b,
.scn-smoke-jack-ideas .idea-c {
  position: absolute; width: 10px; height: 10px;
  background: #ffcc80; border-radius: 50%;
  box-shadow: 0 0 10px #ffaa50, 0 0 20px rgba(255,170,80,.5);
}
.scn-smoke-jack-ideas .idea-a {
  top: 25%; left: 55%;
  animation: sji-dance-a 5s infinite;
  animation-delay: 0s;
}
.scn-smoke-jack-ideas .idea-b {
  top: 35%; left: 48%;
  animation: sji-dance-b 5s infinite;
  animation-delay: 1.67s;
}
.scn-smoke-jack-ideas .idea-c {
  top: 20%; left: 45%;
  animation: sji-dance-c 5s infinite;
  animation-delay: 3.33s;
}
@keyframes sji-dance-a {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(30px, -40px) rotate(90deg); }
  100% { transform: translate(-20px, 10px) rotate(180deg); }
}
@keyframes sji-dance-b {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(-25px, 35px) rotate(120deg); }
  100% { transform: translate(15px, -20px) rotate(240deg); }
}
@keyframes sji-dance-c {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(40px, 20px) rotate(180deg); }
  100% { transform: translate(-30px, -30px) rotate(360deg); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.hair { position: absolute; pointer-events: none; }
.open { position: absolute; pointer-events: none; }
.anim { position: absolute; pointer-events: none; }
.ng-fan { position: absolute; pointer-events: none; }
.ng-girl { position: absolute; pointer-events: none; }
.ns-aura { position: absolute; pointer-events: none; }
.ns-fig { position: absolute; pointer-events: none; }
.ns-heart { position: absolute; pointer-events: none; }
.ns-light { position: absolute; pointer-events: none; }
.sm-candle { position: absolute; pointer-events: none; }
.sm-fig { position: absolute; pointer-events: none; }
.sm-heart { position: absolute; pointer-events: none; }
.sm-sausage { position: absolute; pointer-events: none; }
.smoke-smoke-a { position: absolute; pointer-events: none; }
.smoke-smoke-b { position: absolute; pointer-events: none; }
.tc-candle { position: absolute; pointer-events: none; }
.tc-fig { position: absolute; pointer-events: none; }
.tc-tear { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-bull-cow-cock-and-bull {
  background: linear-gradient(180deg, #3d2b1f 0%, #2a1f16 60%, #1a120b 100%),
              radial-gradient(ellipse at 20% 70%, #b85a2b 0%, transparent 60%);
}
.scn-bull-cow-cock-and-bull .wall {
  position: absolute; inset: 0 0 35% 0;
  background: repeating-linear-gradient(90deg, #4a3629 0px, #4a3629 2px, #3d2b1f 2px, #3d2b1f 4px);
  opacity: 0.6;
}
.scn-bull-cow-cock-and-bull .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1f16 0%, #1a120b 100%);
}
.scn-bull-cow-cock-and-bull .fireplace {
  position: absolute; left: 8%; bottom: 35%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5e3a22 0%, #3a2214 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.7);
}
.scn-bull-cow-cock-and-bull .fire-glow {
  position: absolute; left: 8%; bottom: 35%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 80%, #ff8c42 0%, #b85a2b 40%, transparent 70%);
  animation: bcb-fire 3s ease-in-out infinite alternate;
}
.scn-bull-cow-cock-and-bull .obadiah {
  position: absolute; left: 40%; bottom: 33%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a120b 0%, #0d0906 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bcb-figure 4s ease-in-out infinite;
}
.scn-bull-cow-cock-and-bull .bull {
  position: absolute; left: 20%; bottom: 32%; width: 44px; height: 30px;
  background: radial-gradient(ellipse at 40% 50%, #2a1f16 0%, #1a120b 100%);
  border-radius: 50% / 60% 40% 60% 40%;
  animation: bcb-bull 6s ease-in-out infinite;
}
.scn-bull-cow-cock-and-bull .bull::before {
  content: ''; position: absolute; left: -6px; top: -4px; width: 12px; height: 8px;
  background: radial-gradient(ellipse, #3d2b1f 0%, #1a120b 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(10deg);
}
.scn-bull-cow-cock-and-bull .cock {
  position: absolute; right: 15%; bottom: 40%; width: 20px; height: 26px;
  background: linear-gradient(180deg, #5e3a22 0%, #3a2214 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  animation: bcb-cock 2s ease-in-out infinite;
}
.scn-bull-cow-cock-and-bull .cock::before {
  content: ''; position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  width: 10px; height: 6px;
  background: #a0461a;
  border-radius: 50% 50% 0 0;
}
.scn-bull-cow-cock-and-bull .candle {
  position: absolute; right: 10%; bottom: 38%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #f5d6a0 0%, #c49a6c 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px #f5d6a0, 0 0 24px 8px rgba(245,214,160,0.5);
  animation: bcb-candle 3s ease-in-out infinite alternate;
}
.scn-bull-cow-cock-and-bull .dust {
  position: absolute; top: 20%; left: 30%; width: 60px; height: 40px;
  background: radial-gradient(circle at 0% 0%, rgba(245,214,160,0.3) 0%, transparent 70%);
  filter: blur(2px);
  animation: bcb-dust 15s linear infinite;
}
@keyframes bcb-fire {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}
@keyframes bcb-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bcb-bull {
  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 bcb-cock {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bcb-candle {
  0% { box-shadow: 0 0 10px 2px #f5d6a0, 0 0 20px 6px rgba(245,214,160,0.4); }
  50% { box-shadow: 0 0 16px 6px #f5d6a0, 0 0 32px 12px rgba(245,214,160,0.6); }
  100% { box-shadow: 0 0 12px 4px #f5d6a0, 0 0 24px 8px rgba(245,214,160,0.5); }
}
@keyframes bcb-dust {
  0% { transform: translateX(0) translateY(0); opacity: 0.3; }
  25% { transform: translateX(10px) translateY(-5px); opacity: 0.5; }
  50% { transform: translateX(20px) translateY(0); opacity: 0.2; }
  75% { transform: translateX(10px) translateY(5px); opacity: 0.4; }
  100% { transform: translateX(0) translateY(0); opacity: 0.3; }
}

/* Scene: king-bohemian-castles-tale - calm dim interior */
.scn-king-bohemian-castles-tale {
  background: linear-gradient(180deg, #2c1e18 0%, #3d2b22 40%, #1f1410 100%), radial-gradient(ellipse at 50% 20%, #4a3528 0%, transparent 60%);
}
.scn-king-bohemian-castles-tale .kbc-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #3a2820 0%, #4d362c 50%, #3a2820 100%);
  animation: kbc-wall 8s ease-in-out infinite alternate;
}
.scn-king-bohemian-castles-tale .kbc-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,.6);
}
.scn-king-bohemian-castles-tale .kbc-fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 160px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.5), 0 0 20px rgba(0,0,0,.4);
}
.scn-king-bohemian-castles-tale .kbc-fire {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 100%, #e06020 0%, #c04010 40%, #7a2000 80%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 40px 12px #e06020, 0 0 80px 24px rgba(224,96,32,.3);
  animation: kbc-fire 2s ease-in-out infinite alternate;
}
.scn-king-bohemian-castles-tale .kbc-chair {
  position: absolute; bottom: 22%; left: 30%; transform: rotate(2deg);
  width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 15% 15% 10% 10% / 20% 20% 15% 15%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-king-bohemian-castles-tale .kbc-trim {
  position: absolute; bottom: 22%; left: 28%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f1210 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: kbc-trim 6s ease-in-out infinite alternate;
}
.scn-king-bohemian-castles-tale .kbc-toby {
  position: absolute; bottom: 22%; left: 60%;
  width: 28px; height: 55px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e0a 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: kbc-toby 7s ease-in-out infinite alternate;
}
.scn-king-bohemian-castles-tale .kbc-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 70%);
  pointer-events: none;
}
@keyframes kbc-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes kbc-fire { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.08) rotate(1deg) } 100% { transform: translateX(-50%) scale(.95) rotate(-1deg) } }
@keyframes kbc-trim { 0% { transform: rotate(-4deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-4deg) } }
@keyframes kbc-toby { 0% { transform: rotate(3deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(3deg) } }

/* Scene: beguine-knee-passion - warm dim interior */
.scn-beguine-knee-passion {
  background: linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 50%, #3a1a12 100%), radial-gradient(ellipse at 50% 30%, #7a4a3a 0%, transparent 60%);
}
.scn-beguine-knee-passion .bkp-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2018 0%, #5a3a28 50%, #3a2018 100%);
}
.scn-beguine-knee-passion .bkp-bed {
  position: absolute; bottom: 20%; left: 20%; width: 140px; height: 80px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.4);
}
.scn-beguine-knee-passion .bkp-beguine {
  position: absolute; bottom: 22%; left: 35%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: bkp-beguine 8s ease-in-out infinite alternate;
}
.scn-beguine-knee-passion .bkp-trim {
  position: absolute; bottom: 22%; left: 55%;
  width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f1210 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 35% 35%;
  transform-origin: bottom center;
  animation: bkp-trim 6s ease-in-out infinite alternate;
}
.scn-beguine-knee-passion .bkp-knee {
  position: absolute; bottom: 25%; left: 58%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #c08060 0%, #a06040 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(160,96,64,.5);
  animation: bkp-knee 3s ease-in-out infinite alternate;
}
.scn-beguine-knee-passion .bkp-candle {
  position: absolute; bottom: 30%; left: 70%;
  width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0a060 0%, #a06020 100%);
  border-radius: 10% 10% 0 0;
}
.scn-beguine-knee-passion .bkp-glow {
  position: absolute; bottom: 25%; left: 68%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #ffc080 0%, transparent 70%);
  box-shadow: 0 0 40px 20px #ffc080;
  animation: bkp-glow 4s ease-in-out infinite alternate;
}
@keyframes bkp-beguine { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(1px) } 100% { transform: rotate(-2deg) } }
@keyframes bkp-trim { 0% { transform: rotate(1deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(1deg) } }
@keyframes bkp-knee { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }
@keyframes bkp-glow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

/* Scene: his-business-love-like-lamb - funny sunlit */
.scn-his-business-love-like-lamb {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #90ee90 70%, #7ccd7c 100%), radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 50%);
}
.scn-his-business-love-like-lamb .hbl-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #a0d0e8 0%, #c0e8f0 50%, transparent 100%);
  animation: hbl-sky 12s ease-in-out infinite alternate;
}
.scn-his-business-love-like-lamb .hbl-garden {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7ccd7c 0%, #4a9e4a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-his-business-love-like-lamb .hbl-sentry {
  position: absolute; bottom: 28%; left: 30%;
  width: 50px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  transform: rotate(-2deg);
  animation: hbl-sentry 8s ease-in-out infinite alternate;
}
.scn-his-business-love-like-lamb .hbl-toby {
  position: absolute; bottom: 24%; left: 32%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: hbl-toby 2s ease-in-out infinite alternate;
}
.scn-his-business-love-like-lamb .hbl-wadman {
  position: absolute; bottom: 24%; left: 55%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #c08060 0%, #a06040 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hbl-wadman 3s ease-in-out infinite alternate;
}
.scn-his-business-love-like-lamb .hbl-lamb {
  position: absolute; bottom: 22%; left: 42%;
  width: 28px; height: 22px;
  background: radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, #d0b080 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: hbl-lamb 4s ease-in-out infinite alternate;
}
.scn-his-business-love-like-lamb .hbl-flower {
  position: absolute; bottom: 26%; left: 60%;
  width: 10px; height: 10px;
  background: radial-gradient(circle, #ffa07a 0%, #ff6b6b 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff6b6b;
  animation: hbl-flower 5s ease-in-out infinite alternate;
}
@keyframes hbl-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes hbl-sentry { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes hbl-toby { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) translateX(2px) } 100% { transform: rotate(-5deg) } }
@keyframes hbl-wadman { 0% { transform: rotate(3deg) } 50% { transform: rotate(-4deg) translateX(-1px) } 100% { transform: rotate(3deg) } }
@keyframes hbl-lamb { 0% { transform: scale(1) } 50% { transform: scale(1.15) } 100% { transform: scale(1) } }
@keyframes hbl-flower { 0% { box-shadow:0 0 6px 2px #ff6b6b } 50% { box-shadow:0 0 12px 6px #ff6b6b } 100% { box-shadow:0 0 6px 2px #ff6b6b } }

/* Scene: walter-letter-instructions-love - calm dim interior */
.scn-walter-letter-instructions-love {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2b1f 40%, #1a120c 100%), radial-gradient(ellipse at 50% 30%, #4a3324 0%, transparent 60%);
}
.scn-walter-letter-instructions-love .wli-study {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1e14 0%, #3d2b1f 50%, #2a1e14 100%);
}
.scn-walter-letter-instructions-love .wli-desk {
  position: absolute; bottom: 22%; left: 20%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 5% 5% 2% 2% / 10% 10% 5% 5%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,.5);
}
.scn-walter-letter-instructions-love .wli-walter {
  position: absolute; bottom: 22%; left: 30%;
  width: 24px; height: 52px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f1210 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: wli-walter 6s ease-in-out infinite alternate;
}
.scn-walter-letter-instructions-love .wli-paper {
  position: absolute; bottom: 28%; left: 35%;
  width: 40px; height: 30px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: wli-paper 8s ease-in-out infinite alternate;
}
.scn-walter-letter-instructions-love .wli-candle {
  position: absolute; bottom: 30%; left: 25%;
  width: 8px; height: 24px;
  background: linear-gradient(180deg, #e0a060 0%, #a06020 100%);
  border-radius: 10% 10% 0 0;
}
.scn-walter-letter-instructions-love .wli-ink {
  position: absolute; bottom: 30%; left: 32%;
  width: 10px; height: 14px;
  background: radial-gradient(circle, #1a0a0a 0%, #0a0505 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-walter-letter-instructions-love .wli-pen {
  position: absolute; bottom: 32%; left: 37%;
  width: 3px; height: 18px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a28 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(-20deg);
  transform-origin: top center;
  animation: wli-pen 2s ease-in-out infinite alternate;
}
@keyframes wli-walter { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-2deg) } }
@keyframes wli-paper { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wli-pen { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-20deg) } }

.scn-bowling-green-conscience {
  background: linear-gradient(180deg, #87CEEB 0%, #b0d4f1 40%, #e0f0d0 100%), radial-gradient(ellipse at 50% 0%, rgba(255,220,100,.3) 0%, transparent 60%);
}
.scn-bowling-green-conscience .sky-bgc {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #b0d4f1 80%);
}
.scn-bowling-green-conscience .sun-bgc {
  position:absolute; top:10%; left:75%; width:50px; height:50px;
  background: radial-gradient(circle, #fff9c4 0%, #ffeb3b 40%, transparent 60%);
  border-radius:50%;
  box-shadow: 0 0 40px 20px rgba(255,235,59,.5);
  animation: bgc-sun 20s ease-in-out infinite;
}
.scn-bowling-green-conscience .green-bgc {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #7cb342 0%, #558b2f 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-bowling-green-conscience .tree-bgc {
  position:absolute; bottom:48%; left:12%; width:40px; height:80px;
  background: linear-gradient(180deg, #4caf50 0%, #2e7d32 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: bgc-tree 12s ease-in-out infinite;
}
.scn-bowling-green-conscience .figure-toby-bgc {
  position:absolute; bottom:38%; left:35%; width:20px; height:45px;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bgc-figure 6s ease-in-out infinite, bgc-walk 4s ease-in-out infinite;
}
.scn-bowling-green-conscience .figure-trim-bgc {
  position:absolute; bottom:38%; left:50%; width:18px; height:40px;
  background: linear-gradient(180deg, #795548 0%, #4e342e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bgc-figure 6s ease-in-out infinite 2s, bgc-walk 4s ease-in-out infinite 1s;
}
.scn-bowling-green-conscience .ball-bgc {
  position:absolute; bottom:40%; left:45%; width:14px; height:14px;
  background: #f5f5f5;
  border-radius:50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: bgc-ball 8s ease-in-out infinite;
}
@keyframes bgc-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-10px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes bgc-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes bgc-figure { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes bgc-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-2deg); } 75% { transform: translateX(12px) rotate(2deg); } 100% { transform: translateX(16px) rotate(0); } }
@keyframes bgc-ball { 0% { transform: translateX(0); } 50% { transform: translateX(15px) rotate(180deg); } 100% { transform: translateX(0) rotate(360deg); } }

.scn-item-hobby-horse-description {
  background: linear-gradient(180deg, #bdbdbd 0%, #d7ccc8 30%, #e0e0e0 100%), radial-gradient(ellipse at 50% 50%, rgba(180,140,100,.3) 0%, transparent 70%);
}
.scn-item-hobby-horse-description .bg-ihh {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(0,0,0,.05) 100%);
}
.scn-item-hobby-horse-description .horse-body-ihh {
  position:absolute; bottom:30%; left:40%; width:70px; height:50px;
  background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: center bottom;
  animation: ihh-rock 3s ease-in-out infinite;
}
.scn-item-hobby-horse-description .horse-head-ihh {
  position:absolute; bottom:55%; left:32%; width:30px; height:40px;
  background: linear-gradient(180deg, #a1887f 0%, #6d4c41 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform-origin: center bottom;
  animation: ihh-nod 3s ease-in-out infinite alternate;
}
.scn-item-hobby-horse-description .horse-leg-ihh {
  position:absolute; bottom:22%; left:38%; width:16px; height:40px;
  background: linear-gradient(180deg, #795548 0%, #4e342e 100%);
  border-radius: 20% 20% 30% 30%;
  transform-origin: top center;
  animation: ihh-leg 2s ease-in-out infinite;
}
.scn-item-hobby-horse-description .rider-ihh {
  position:absolute; bottom:45%; left:38%; width:24px; height:50px;
  background: linear-gradient(180deg, #455a64 0%, #263238 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ihh-bob 3s ease-in-out infinite;
}
.scn-item-hobby-horse-description .stick-ihh {
  position:absolute; bottom:25%; left:44%; width:6px; height:90px;
  background: #6d4c41;
  border-radius: 20%;
  transform: rotate(8deg);
  transform-origin: bottom center;
  animation: ihh-stick 3s ease-in-out infinite;
}
.scn-item-hobby-horse-description .dust-ihh {
  position:absolute; bottom:22%; left:30%; width:40px; height:10px;
  background: rgba(120,100,80,.2);
  border-radius:50%;
  filter: blur(3px);
  animation: ihh-dust 4s ease-in-out infinite;
}
@keyframes ihh-rock { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes ihh-nod { 0% { transform: rotate(0deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes ihh-leg { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(6px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ihh-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes ihh-stick { 0%,100% { transform: rotate(8deg); } 50% { transform: rotate(12deg); } }
@keyframes ihh-dust { 0% { opacity:.2; transform: translateX(0); } 50% { opacity:.4; transform: translateX(10px); } 100% { opacity:.2; transform: translateX(0); } }

.scn-namur-wound-returns-england {
  background: linear-gradient(180deg, #1a1a2e 0%, #16213e 40%, #0f3460 100%), radial-gradient(ellipse at 50% 30%, rgba(15,52,96,.6) 0%, transparent 70%);
}
.scn-namur-wound-returns-england .room-wall-nwr {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #2c3e50 0%, #1a252f 100%);
}
.scn-namur-wound-returns-england .window-nwr {
  position:absolute; top:15%; left:10%; width:60px; height:80px;
  background: radial-gradient(circle at 50% 60%, #5dade2 0%, #2e86c1 70%);
  border: 4px solid #34495e;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(93,173,226,.3);
  animation: nwr-light 8s ease-in-out infinite alternate;
}
.scn-namur-wound-returns-england .bed-nwr {
  position:absolute; bottom:10%; left:30%; width:120px; height:50px;
  background: linear-gradient(180deg, #5d6d7e 0%, #2c3e50 100%);
  border-radius: 10px 10px 20px 20px;
  box-shadow: 0 10px 30px rgba(0,0,0,.7);
}
.scn-namur-wound-returns-england .figure-bed-nwr {
  position:absolute; bottom:18%; left:35%; width:30px; height:60px;
  background: linear-gradient(180deg, #1a2634 0%, #0d1b2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: nwr-breath 6s ease-in-out infinite;
}
.scn-namur-wound-returns-england .lamp-nwr {
  position:absolute; bottom:20%; right:15%; width:12px; height:16px;
  background: radial-gradient(circle, #e67e22 0%, #d35400 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(230,126,34,.5), 0 0 40px 12px rgba(230,126,34,.3);
  animation: nwr-flicker 3s ease-in-out infinite;
}
.scn-namur-wound-returns-england .shadow-nwr {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, rgba(0,0,0,.8) 0%, transparent 100%);
}
@keyframes nwr-light { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes nwr-breath { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(2px); } }
@keyframes nwr-flicker { 0% { opacity:.8; transform: scale(1); } 25% { opacity:1; transform: scale(1.05); } 50% { opacity:.6; transform: scale(0.95); } 75% { opacity:.9; transform: scale(1); } 100% { opacity:.8; transform: scale(1); } }

.scn-wound-history-beguiles-pain {
  background: linear-gradient(180deg, #2c1e14 0%, #3e2723 40%, #4e342e 100%), radial-gradient(ellipse at 50% 70%, rgba(255,150,50,.2) 0%, transparent 60%);
}
.scn-wound-history-beguiles-pain .bg-wall-whb {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #3e2723 0%, #2c1e14 100%);
}
.scn-wound-history-beguiles-pain .fireplace-whb {
  position:absolute; bottom:10%; left:10%; width:80px; height:100px;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 10px 10px 20px 20px;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.8);
}
.scn-wound-history-beguiles-pain .fire-glow-whb {
  position:absolute; bottom:40%; left:18%; width:60px; height:50px;
  background: radial-gradient(circle, #ff9800 0%, #e65100 40%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 30px 15px rgba(255,152,0,.4);
  animation: whb-fire 4s ease-in-out infinite;
}
.scn-wound-history-beguiles-pain .figure-sitting-whb {
  position:absolute; bottom:15%; right:20%; width:28px; height:60px;
  background: linear-gradient(180deg, #4e342e 0%, #2c1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: whb-sit 8s ease-in-out infinite;
}
.scn-wound-history-beguiles-pain .chair-whb {
  position:absolute; bottom:10%; right:15%; width:50px; height:40px;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 10px;
  box-shadow: 0 5px 15px rgba(0,0,0,.5);
}
.scn-wound-history-beguiles-pain .map-whb {
  position:absolute; bottom:30%; left:50%; width:40px; height:30px;
  background: linear-gradient(180deg, #d7ccc8 0%, #bcaaa4 100%);
  border-radius: 5px;
  transform: rotate(5deg);
  box-shadow: 0 3px 8px rgba(0,0,0,.4);
  animation: whb-float 10s ease-in-out infinite;
}
.scn-wound-history-beguiles-pain .papers-whb {
  position:absolute; bottom:28%; left:55%; width:30px; height:20px;
  background: linear-gradient(180deg, #efebe9 0%, #d7ccc8 100%);
  border-radius: 3px;
  transform: rotate(-8deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: whb-float 10s ease-in-out infinite -2s;
}
@keyframes whb-fire { 0% { transform: scale(1) rotate(0deg); opacity:.9; } 50% { transform: scale(1.1) rotate(5deg); opacity:1; } 100% { transform: scale(1) rotate(0deg); opacity:.9; } }
@keyframes whb-sit { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes whb-float { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }

.scn-item-breeches-decision {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2a1a 40%, #1f1510 100%), radial-gradient(ellipse at 50% 30%, #3d2a1a 0%, transparent 70%);
}
.scn-item-breeches-decision .wall { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #3d2a1a 0%, #2a1e14 100%); }
.scn-item-breeches-decision .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #1f1510 0%, #0e0805 100%); }
.scn-item-breeches-decision .table { position: absolute; bottom: 20%; left: 25%; width: 50%; height: 12%; background: linear-gradient(180deg, #6a4628 0%, #4a2e1a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.6); }
.scn-item-breeches-decision .book { position: absolute; bottom: 28%; left: 35%; width: 20%; height: 14%; background: linear-gradient(135deg, #7a5c3a 0%, #5a3e22 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: ibd-book 8s ease-in-out infinite alternate; }
.scn-item-breeches-decision .breeches { position: absolute; bottom: 18%; left: 55%; width: 18%; height: 22%; background: linear-gradient(180deg, #9a7a52 0%, #6a4a2e 100%); border-radius: 30% 30% 10% 10%; transform: rotate(8deg); clip-path: polygon(0 30%, 100% 30%, 90% 100%, 10% 100%); box-shadow: 0 3px 8px rgba(0,0,0,0.4); animation: ibd-breeches 4s ease-in-out infinite; }
.scn-item-breeches-decision .figure { position: absolute; bottom: 10%; left: 20%; width: 20%; height: 60%; background: radial-gradient(ellipse 80% 100% at 50% 100%, #1a1210 0%, #0d0805 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: ibd-figure 6s ease-in-out infinite; }
.scn-item-breeches-decision .lamp { position: absolute; top: 12%; left: 60%; width: 8%; height: 14%; background: linear-gradient(180deg, #b08a5a 0%, #8a663a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px #c8a060; }
.scn-item-breeches-decision .lamp-glow { position: absolute; top: 8%; left: 54%; width: 20%; height: 30%; background: radial-gradient(ellipse, #e8c888 0%, transparent 100%); opacity: 0.6; mix-blend-mode: screen; animation: ibd-glow 3s ease-in-out infinite alternate; }
@keyframes ibd-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ibd-breeches { 0% { transform: rotate(8deg) scale(1); } 25% { transform: rotate(10deg) scale(1.02); } 75% { transform: rotate(6deg) scale(0.98); } 100% { transform: rotate(8deg) scale(1); } }
@keyframes ibd-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(3deg); } 70% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ibd-glow { 0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(1); } }

.scn-bowling-green-campaign {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 30%, #5a9c5a 70%, #3a7a3a 100%), radial-gradient(ellipse at 50% 100%, #3a7a3a 0%, transparent 60%);
}
.scn-bowling-green-campaign .sky { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #a0d0f0 0%, #c0e0fc 100%); animation: bgc-sky 12s ease-in-out infinite alternate; }
.scn-bowling-green-campaign .grass { position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #5a9c5a 0%, #2a6a2a 100%); }
.scn-bowling-green-campaign .fort-wall { position: absolute; bottom: 40%; left: 20%; width: 60%; height: 18%; background: linear-gradient(180deg, #8a7750 0%, #5a4a2e 100%); border-radius: 8px 8px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: bgc-wall 20s ease-in-out infinite alternate; }
.scn-bowling-green-campaign .string-line { position: absolute; bottom: 45%; left: 10%; width: 80%; height: 2px; background: #fff; box-shadow: 0 0 4px rgba(255,255,255,0.6); animation: bgc-string 10s ease-in-out infinite; }
.scn-bowling-green-campaign .cabbage { position: absolute; bottom: 38%; left: 25%; width: 8%; height: 8%; background: radial-gradient(ellipse, #7ab87a 0%, #3a7a3a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: bgc-cabbage 6s ease-in-out infinite; }
.scn-bowling-green-campaign .cauliflower { position: absolute; bottom: 42%; right: 30%; width: 10%; height: 12%; background: radial-gradient(ellipse, #f0e0d0 0%, #c0a880 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: bgc-cauliflower 8s ease-in-out infinite alternate; }
.scn-bowling-green-campaign .digger { position: absolute; bottom: 25%; left: 45%; width: 12%; height: 20%; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: bgc-dig 4s ease-in-out infinite; }
.scn-bowling-green-campaign .digger-shadow { position: absolute; bottom: 22%; left: 43%; width: 16%; height: 6%; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(3px); animation: bgc-shadow 4s ease-in-out infinite; }
@keyframes bgc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bgc-wall { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes bgc-string { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); opacity: 0.8; } 100% { transform: scaleX(1); } }
@keyframes bgc-cabbage { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(3px, -2px) scale(1.02); } 75% { transform: translate(-2px, 1px) scale(0.98); } 100% { transform: translate(0,0) scale(1); } }
@keyframes bgc-cauliflower { 0% { transform: translate(0,0) rotate(0deg); } 33% { transform: translate(-2px, -3px) rotate(5deg); } 66% { transform: translate(2px, -1px) rotate(-3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes bgc-dig { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-6px) rotate(8deg); } 75% { transform: translateY(-3px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bgc-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(0.8); opacity: 0.4; } 100% { transform: scaleX(1); opacity: 0.6; } }

.scn-model-towns-sloping-deals {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 40%, #d4a85a 70%, #8a6a2a 100%), radial-gradient(ellipse at 50% 30%, #b0d4f0 0%, transparent 60%);
}
.scn-model-towns-sloping-deals .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #a0d0f0 0%, #d0e8ff 100%); animation: mts-sky 15s ease-in-out infinite alternate; }
.scn-model-towns-sloping-deals .hill { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #b08a4a 0%, #6a502a 100%); border-radius: 60% 40% 0 0; }
.scn-model-towns-sloping-deals .town-base { position: absolute; bottom: 25%; left: 10%; width: 80%; height: 30%; background: linear-gradient(180deg, #8a7040 0%, #5a4020 100%); border-radius: 10px; box-shadow: inset 0 4px 12px rgba(0,0,0,0.4); }
.scn-model-towns-sloping-deals .house { position: absolute; bottom: 35%; left: 15%; width: 12%; height: 16%; background: linear-gradient(180deg, #d4a85a 0%, #a07a3a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: mts-house 6s ease-in-out infinite; }
.scn-model-towns-sloping-deals .church { position: absolute; bottom: 38%; left: 50%; width: 10%; height: 22%; background: linear-gradient(180deg, #c0a070 0%, #8a6a40 100%); border-radius: 30% 30% 0 0; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); }
.scn-model-towns-sloping-deals .drawbridge { position: absolute; bottom: 30%; left: 65%; width: 14%; height: 6%; background: linear-gradient(180deg, #a08050 0%, #705030 100%); transform-origin: left center; animation: mts-bridge 10s ease-in-out infinite; }
.scn-model-towns-sloping-deals .cannon { position: absolute; bottom: 32%; right: 12%; width: 12%; height: 8%; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 40% 20% 20% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: mts-cannon 14s ease-in-out infinite alternate; }
.scn-model-towns-sloping-deals .smoke-puff { position: absolute; bottom: 42%; right: 15%; width: 8%; height: 6%; background: radial-gradient(ellipse, rgba(255,255,255,0.8) 0%, rgba(200,200,200,0.2) 100%); border-radius: 50%; filter: blur(4px); opacity: 0; animation: mts-smoke 6s ease-in-out infinite; }
@keyframes mts-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mts-house { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes mts-bridge { 0% { transform: rotate(0deg); } 25% { transform: rotate(-30deg); } 75% { transform: rotate(30deg); } 100% { transform: rotate(0deg); } }
@keyframes mts-cannon { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(4px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes mts-smoke { 0% { opacity: 0; transform: translate(0,0) scale(0.5); } 30% { opacity: 0.7; transform: translate(-6px, -10px) scale(1.2); } 100% { opacity: 0; transform: translate(-12px, -20px) scale(1.5); } }

.scn-toby-apologetical-oration {
  background: linear-gradient(180deg, #d4a050 0%, #b08040 30%, #6a4010 100%), radial-gradient(ellipse at 50% 0%, #d4a050 0%, transparent 70%);
}
.scn-toby-apologetical-oration .sun-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #e8c060 0%, #b08040 50%, #6a4010 100%); mix-blend-mode: overlay; opacity: 0.6; animation: tao-sun 20s ease-in-out infinite alternate; }
.scn-toby-apologetical-oration .podium { position: absolute; bottom: 18%; left: 35%; width: 30%; height: 20%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 10px 10px 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
.scn-toby-apologetical-oration .figure-toby { position: absolute; bottom: 25%; left: 38%; width: 24%; height: 55%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: tao-figure 6s ease-in-out infinite; }
.scn-toby-apologetical-oration .arm-gesture { position: absolute; bottom: 45%; left: 62%; width: 10%; height: 30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom left; animation: tao-arm 4s ease-in-out infinite alternate; }
.scn-toby-apologetical-oration .shadow-soldiers { position: absolute; bottom: 5%; left: 5%; width: 30%; height: 70%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.1) 100%); clip-path: polygon(0% 100%, 20% 30%, 40% 100%, 60% 20%, 80% 100%, 100% 40%, 100% 100%); filter: blur(2px); animation: tao-shadows 12s ease-in-out infinite; }
.scn-toby-apologetical-oration .shadow-battle { position: absolute; bottom: 5%; right: 5%; width: 25%; height: 60%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.05) 100%); clip-path: polygon(10% 100%, 30% 20%, 50% 100%, 70% 10%, 90% 100%); filter: blur(3px); animation: tao-battle 16s ease-in-out infinite alternate; }
.scn-toby-apologetical-oration .dust { position: absolute; bottom: 10%; left: 20%; width: 60%; height: 4%; background: radial-gradient(ellipse, rgba(180,140,80,0.4) 0%, transparent 100%); filter: blur(6px); animation: tao-dust 8s ease-in-out infinite; }
@keyframes tao-sun { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes tao-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(2deg); } 70% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tao-arm { 0% { transform: rotate(0deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(0deg); } }
@keyframes tao-shadows { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.05); } 100% { opacity: 0.4; transform: scaleY(1); } }
@keyframes tao-battle { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(0.95); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes tao-dust { 0% { transform: scaleX(1) scaleY(1); opacity: 0.5; } 50% { transform: scaleX(1.2) scaleY(0.8); opacity: 0.8; } 100% { transform: scaleX(1) scaleY(1); opacity: 0.5; } }

.scn-toby-wishes-armies-flanders { background: linear-gradient(180deg, #4a2c1a 0%, #3a1f12 60%, #2a150a 100%), radial-gradient(ellipse at 50% 80%, #6a3a1a 0%, transparent 70%); }
.scn-toby-wishes-armies-flanders .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #5a3020 0%, #7a4a2a 50%, #5a3020 100%); border-radius:0 0 40% 40% / 20% 20% 0 0; }
.scn-toby-wishes-armies-flanders .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a1f12 0%, #2a150a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-toby-wishes-armies-flanders .table { position:absolute; bottom:20%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:4% 4% 0 0; transform: perspective(400px) rotateX(5deg); }
.scn-toby-wishes-armies-flanders .candle{ position:absolute; bottom:31%; left:50%; width:6px; height:18px; background: linear-gradient(180deg, #d0a060 0%, #b08040 100%); border-radius:20% 20% 10% 10%; transform:translateX(-50%); }
.scn-toby-wishes-armies-flanders .glow { position:absolute; bottom:31%; left:50%; width:30px; height:30px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd080cc 0%, #ffa04033 50%, transparent 70%); border-radius:50%; animation: twa-glow 4s ease-in-out infinite alternate; }
.scn-toby-wishes-armies-flanders .toby { position:absolute; bottom:25%; 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: twa-figure 6s ease-in-out infinite; }
.scn-toby-wishes-armies-flanders .slop { position:absolute; bottom:25%; left:52%; width:22px; height:38px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: twa-figure 6s ease-in-out infinite 0.3s; }
.scn-toby-wishes-armies-flanders .map  { position:absolute; top:18%; left:36%; width:40px; height:30px; background: linear-gradient(135deg, #8a6a40 0%, #6a4a2a 100%); border-radius:4px; border:2px solid #4a2a1a; transform: rotate(-3deg); box-shadow: 2px 2px 6px rgba(0,0,0,.5); animation: twa-map 12s ease-in-out infinite; }
@keyframes twa-glow { 0% { transform:translate(-50%,-50%) scale(0.9); opacity:0.7; } 50% { transform:translate(-50%,-50%) scale(1.3); opacity:1; } 100% { transform:translate(-50%,-50%) scale(1); opacity:0.8; } }
@keyframes twa-figure { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-2px) rotate(2deg); } 50% { transform:translateY(0) rotate(0deg); } 75% { transform:translateY(-2px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes twa-map { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } }

.scn-toby-veers-sieges-handkerchief { background: linear-gradient(180deg, #1a1a3e 0%, #2a224a 50%, #1a1a2e 100%), radial-gradient(ellipse at 60% 30%, #3a3a5a 0%, transparent 70%); }
.scn-toby-veers-sieges-handkerchief .bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2e 100%); }
.scn-toby-veers-sieges-handkerchief .chair { position:absolute; bottom:20%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; transform: perspective(200px) rotateY(10deg); }
.scn-toby-veers-sieges-handkerchief .father { position:absolute; bottom:28%; left:22%; width:28px; height:45px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 40% 100%; transform: rotate(15deg); animation: tvh-father 3s ease-in-out infinite alternate; }
.scn-toby-veers-sieges-handkerchief .toby { position:absolute; bottom:25%; left:45%; width:22px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tvh-toby 4s ease-in-out infinite; }
.scn-toby-veers-sieges-handkerchief .handkerchief { position:absolute; bottom:28%; left:48%; width:16px; height:16px; background: radial-gradient(circle, #c8b0a0 0%, #a08070 100%); border-radius:50%; box-shadow: 0 0 6px rgba(0,0,0,.4); animation: tvh-handkerchief 2s ease-in-out infinite alternate; }
.scn-toby-veers-sieges-handkerchief .compass { position:absolute; bottom:28%; left:60%; width:10px; height:10px; background: radial-gradient(circle, #d0b080 0%, #806040 100%); border-radius:50%; box-shadow: 0 0 4px rgba(0,0,0,.4); animation: tvh-compass 6s linear infinite; }
.scn-toby-veers-sieges-handkerchief .shadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); opacity:0.5; animation: tvh-shadow 10s ease-in-out infinite alternate; }
@keyframes tvh-father { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes tvh-toby { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-8px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tvh-handkerchief { 0% { transform: scale(0.8) rotate(0deg); } 50% { transform: scale(1.2) rotate(30deg); } 100% { transform: scale(0.9) rotate(0deg); } }
@keyframes tvh-compass { 0% { transform: rotate(0deg) scale(1); } 33% { transform: rotate(120deg) scale(1.1); } 66% { transform: rotate(240deg) scale(0.9); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes tvh-shadow { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-item-forceps-and-squirt { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%), radial-gradient(ellipse at 30% 50%, #5a3a1a 0%, transparent 70%); }
.scn-item-forceps-and-squirt .room { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); }
.scn-item-forceps-and-squirt .slop { position:absolute; bottom:25%; left:30%; width:24px; height:44px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ifs-slop 4s ease-in-out infinite; }
.scn-item-forceps-and-squirt .forceps { position:absolute; bottom:40%; left:28%; width:30px; height:20px; background: linear-gradient(180deg, #8a6a40 0%, #6a4a2a 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(20deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ifs-forceps 2s ease-in-out infinite alternate; }
.scn-item-forceps-and-squirt .squirt { position:absolute; bottom:42%; left:24%; width:6px; height:18px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:30% 30% 10% 10%; transform: rotate(-10deg); animation: ifs-squirt 3s ease-in-out infinite; }
.scn-item-forceps-and-squirt .toby { position:absolute; bottom:25%; left:55%; width:20px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ifs-toby 5s ease-in-out infinite; }
.scn-item-forceps-and-squirt .thumb { position:absolute; bottom:38%; left:26%; width:8px; height:6px; background: radial-gradient(circle, #c07050 0%, #a05030 100%); border-radius:50%; animation: ifs-thumb 1.5s ease-in-out infinite; }
.scn-item-forceps-and-squirt .table { position:absolute; bottom:20%; left:15%; width:70%; height:10%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:10% 10% 0 0; transform: perspective(300px) rotateX(8deg); }
@keyframes ifs-slop { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ifs-forceps { 0% { transform: rotate(15deg) scale(0.9); } 50% { transform: rotate(30deg) scale(1.1); } 100% { transform: rotate(15deg) scale(1); } }
@keyframes ifs-squirt { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-4px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes ifs-toby { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes ifs-thumb { 0% { transform: scale(0.8); opacity:0.7; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.9); opacity:0.8; } }

.scn-discourse-duration-ideas { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%), radial-gradient(ellipse at 80% 30%, #6a4a2a 0%, transparent 70%); }
.scn-discourse-duration-ideas .study { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:0 0 30% 30% / 20% 20% 0 0; }
.scn-discourse-duration-ideas .father { position:absolute; bottom:25%; left:20%; width:26px; height:48px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 100%; transform: rotate(5deg); animation: ddi-father 6s ease-in-out infinite; }
.scn-discourse-duration-ideas .toby { position:absolute; bottom:25%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ddi-toby 4s ease-in-out infinite; }
.scn-discourse-duration-ideas .horse { position:absolute; bottom:20%; left:60%; width:30px; height:30px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleY(0.8); animation: ddi-horse 3s ease-in-out infinite; }
.scn-discourse-duration-ideas .scroll { position:absolute; top:25%; left:35%; width:18px; height:24px; background: linear-gradient(135deg, #b09070 0%, #907050 100%); border-radius:2px; transform: rotate(-10deg); box-shadow: 2px 2px 4px rgba(0,0,0,.4); animation: ddi-scroll 8s ease-in-out infinite; }
.scn-discourse-duration-ideas .candle{ position:absolute; bottom:32%; left:50%; width:6px; height:16px; background: linear-gradient(180deg, #d0a060 0%, #b08040 100%); border-radius:20% 20% 10% 10%; transform:translateX(-50%); }
.scn-discourse-duration-ideas .glow { position:absolute; bottom:32%; left:50%; width:28px; height:28px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffc080cc 0%, #ffa04033 50%, transparent 70%); border-radius:50%; animation: ddi-glow 4s ease-in-out infinite alternate; }
@keyframes ddi-father { 0% { transform: rotate(3deg) translateY(0); } 25% { transform: rotate(8deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes ddi-toby { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes ddi-horse { 0% { transform: scaleY(0.8) translateY(0); } 50% { transform: scaleY(0.85) translateY(-3px); } 100% { transform: scaleY(0.8) translateY(0); } }
@keyframes ddi-scroll { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ddi-glow { 0% { transform: translate(-50%,-50%) scale(0.9); opacity:0.7; } 50% { transform: translate(-50%,-50%) scale(1.2); opacity:1; } 100% { transform: translate(-50%,-50%) scale(1); opacity:0.8; } }

/* toby-fortification-hobby — warm sunlit interior */
.scn-toby-fortification-hobby {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9b382 40%, #a57c5a 100%), radial-gradient(ellipse at 60% 30%, #fff4d4 0%, transparent 60%);
}
.scn-toby-fortification-hobby .sunbeam {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,245,200,0.3) 0%, transparent 50%); animation: tfh-sunbeam 8s ease-in-out infinite alternate; pointer-events: none;
}
.scn-toby-fortification-hobby .table {
  position: absolute; bottom: 12%; left: 10%; width: 80%; height: 30%; background: linear-gradient(180deg, #9a6b4a 0%, #5a3a22 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.3); animation: tfh-table 12s ease-in-out infinite;
}
.scn-toby-fortification-hobby .map {
  position: absolute; bottom: 28%; left: 25%; width: 50%; height: 18%; background: linear-gradient(135deg, #e6d2a8 0%, #c4b28a 100%); border-radius: 2%; transform: rotate(-2deg); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: tfh-map 20s ease-in-out infinite alternate;
}
.scn-toby-fortification-hobby .fort-model {
  position: absolute; bottom: 30%; left: 60%; width: 60px; height: 40px; background: linear-gradient(180deg, #b88c5e 0%, #7a5030 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform: perspective(200px) rotateX(30deg); box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: tfh-model 15s ease-in-out infinite;
}
.scn-toby-fortification-hobby .toby-figure {
  position: absolute; bottom: 22%; left: 30%; width: 26px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: tfh-toby 6s ease-in-out infinite; transform-origin: bottom center;
}
.scn-toby-fortification-hobby .ruler {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 4px; background: #8a6a3a; border-radius: 2px; transform: rotate(-15deg); animation: tfh-ruler 4s ease-in-out infinite alternate;
}
.scn-toby-fortification-hobby .window-light {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 50%; background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%); border-radius: 10% 10% 0 0; filter: blur(8px); animation: tfh-windowlight 10s ease-in-out infinite alternate;
}
.scn-toby-fortification-hobby .dust {
  position: absolute; top: 20%; left: 20%; width: 60%; height: 40%; background: radial-gradient(circle at 30% 40%, rgba(255,240,200,0.1) 0%, transparent 70%); animation: tfh-dust 30s linear infinite; filter: blur(10px);
}
@keyframes tfh-sunbeam { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.05); } 100% { opacity: 0.5; transform: scaleX(0.95); } }
@keyframes tfh-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes tfh-map { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes tfh-model { 0%,100% { transform: perspective(200px) rotateX(30deg) translateY(0); } 50% { transform: perspective(200px) rotateX(35deg) translateY(-3px); } }
@keyframes tfh-toby { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-1px); } 50% { transform: rotate(6deg) translateY(-2px); } 75% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes tfh-ruler { 0% { transform: rotate(-15deg); } 100% { transform: rotate(-10deg); } }
@keyframes tfh-windowlight { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes tfh-dust { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(20px) scale(1.1); } 100% { transform: translateX(0) scale(1); } }

/* slop-mud-debate-speechless — funny, dim interior, mud, dark browns */
.scn-slop-mud-debate-speechless {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-slop-mud-debate-speechless .wall-shadow { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 50%); }
.scn-slop-mud-debate-speechless .parlour-floor { position: absolute; bottom: 0; left: 0; width: 100%; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; }
.scn-slop-mud-debate-speechless .slop-figure { position: absolute; bottom: 20%; left: 45%; width: 28px; height: 55px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 40% 40% 35% 35% / 60% 60% 45% 45%; transform: rotate(-10deg); animation: smd-slop 2s ease-in-out infinite; transform-origin: bottom center; }
.scn-slop-mud-debate-speechless .mud-splash { position: absolute; bottom: 25%; left: 42%; width: 40px; height: 30px; background: radial-gradient(circle, #5a3a1a 0%, #3a1a0a 60%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: smd-mud 3s ease-in-out infinite; }
.scn-slop-mud-debate-speechless .walter-figure { position: absolute; bottom: 20%; left: 25%; width: 24px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(15deg); animation: smd-walter 4s ease-in-out infinite; transform-origin: bottom center; }
.scn-slop-mud-debate-speechless .toby-figure { position: absolute; bottom: 20%; left: 65%; width: 26px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: smd-toby 5s ease-in-out infinite; transform-origin: bottom center; }
.scn-slop-mud-debate-speechless .candle { position: absolute; top: 40%; left: 70%; width: 8px; height: 20px; background: linear-gradient(180deg, #e8d4a0 0%, #6a4a2a 100%); border-radius: 20% 20% 10% 10%; animation: smd-candle 3s ease-in-out infinite; }
.scn-slop-mud-debate-speechless .candle-glow { position: absolute; top: 38%; left: 68%; width: 16px; height: 24px; background: radial-gradient(circle, #f0c060 0%, rgba(200,160,80,0.4) 40%, transparent 70%); border-radius: 50%; filter: blur(5px); animation: smd-glow 2s ease-in-out infinite alternate; }
@keyframes smd-slop { 0% { transform: rotate(-10deg) translateX(0); } 25% { transform: rotate(-8deg) translateX(3px); } 50% { transform: rotate(-12deg) translateX(-2px); } 75% { transform: rotate(-9deg) translateX(2px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes smd-mud { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1); opacity: 0.7; } }
@keyframes smd-walter { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes smd-toby { 0% { transform: rotate(-5deg) translateX(0); } 33% { transform: rotate(-2deg) translateX(5px); } 66% { transform: rotate(-7deg) translateX(-3px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes smd-candle { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes smd-glow { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.3); } }

/* stevinus-chariot-debate — tense dim interior with sharp shadows */
.scn-stevinus-chariot-debate {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #2a1a1a 100%), radial-gradient(ellipse at 40% 60%, #2a1a2a 0%, transparent 60%);
}
.scn-stevinus-chariot-debate .room-dark { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, transparent 50%); animation: scd-dark 10s ease-in-out infinite alternate; }
.scn-stevinus-chariot-debate .book-stevinus { position: absolute; bottom: 30%; left: 35%; width: 50px; height: 35px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 5%; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: scd-book 8s ease-in-out infinite; }
.scn-stevinus-chariot-debate .toby-figure { position: absolute; bottom: 20%; left: 30%; width: 28px; height: 52px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(2deg); animation: scd-toby 3s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-stevinus-chariot-debate .walter-figure { position: absolute; bottom: 20%; left: 55%; width: 24px; height: 48px; background: linear-gradient(180deg, #4a2a2a 0%, #2a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-8deg); animation: scd-walter 2.5s ease-in-out infinite; transform-origin: bottom center; }
.scn-stevinus-chariot-debate .candle-flicker { position: absolute; top: 35%; left: 50%; width: 10px; height: 22px; background: linear-gradient(180deg, #e8c060 0%, #6a4a2a 100%); border-radius: 20%; animation: scd-candle 0.5s linear infinite; }
.scn-stevinus-chariot-debate .shadow-sharp { position: absolute; bottom: 10%; left: 20%; width: 60%; height: 40%; background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 50%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: scd-shadow 4s ease-in-out infinite alternate; }
.scn-stevinus-chariot-debate .half-moon-model { position: absolute; bottom: 25%; left: 20%; width: 30px; height: 20px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: rotate(20deg); animation: scd-halfmoon 12s ease-in-out infinite; }
.scn-stevinus-chariot-debate .curtain { position: absolute; top: 0; left: 80%; width: 20%; height: 100%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 0 0 0 20%; animation: scd-curtain 15s ease-in-out infinite alternate; }
@keyframes scd-dark { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes scd-book { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } }
@keyframes scd-toby { 0% { transform: rotate(2deg) translateY(0); } 100% { transform: rotate(6deg) translateY(-2px); } }
@keyframes scd-walter { 0% { transform: rotate(-8deg) translateX(0); } 25% { transform: rotate(-6deg) translateX(4px); } 50% { transform: rotate(-10deg) translateX(-2px); } 75% { transform: rotate(-7deg) translateX(3px); } 100% { transform: rotate(-8deg) translateX(0); } }
@keyframes scd-candle { 0% { transform: translateY(0) scaleX(1); } 25% { transform: translateY(-1px) scaleX(0.9); } 50% { transform: translateY(0) scaleX(1); } 75% { transform: translateY(-1px) scaleX(1.1); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes scd-shadow { 0% { transform: scaleY(1); opacity: 0.6; } 100% { transform: scaleY(1.2); opacity: 1; } }
@keyframes scd-halfmoon { 0%,100% { transform: rotate(20deg) scaleX(1); } 50% { transform: rotate(25deg) scaleX(1.05); } }
@keyframes scd-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(-10px); } }

/* trim-sermon-correction-hobby-horse — funny dim interior with map and pointer */
.scn-trim-sermon-correction-hobby-horse {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 40% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-trim-sermon-correction-hobby-horse .interior-wall { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,0,0,0.2) 0%, transparent 50%); }
.scn-trim-sermon-correction-hobby-horse .trim-figure { position: absolute; bottom: 22%; left: 35%; width: 24px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(6deg); animation: tsc-trim 4s ease-in-out infinite; transform-origin: bottom center; }
.scn-trim-sermon-correction-hobby-horse .sermon-paper { position: absolute; bottom: 32%; left: 32%; width: 30px; height: 40px; background: linear-gradient(135deg, #e6d2a8 0%, #c4b28a 100%); border-radius: 5%; transform: rotate(-5deg); animation: tsc-paper 3s ease-in-out infinite; }
.scn-trim-sermon-correction-hobby-horse .toby-figure { position: absolute; bottom: 22%; left: 55%; width: 28px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-3deg); animation: tsc-toby 3.5s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-trim-sermon-correction-hobby-horse .pointer { position: absolute; bottom: 35%; left: 58%; width: 30px; height: 3px; background: #8a6a3a; border-radius: 2px; transform-origin: left center; transform: rotate(40deg); animation: tsc-pointer 2s ease-in-out infinite; }
.scn-trim-sermon-correction-hobby-horse .map-on-wall { position: absolute; top: 20%; left: 60%; width: 25%; height: 30%; background: linear-gradient(135deg, #e6d2a8 0%, #b8a282 100%); border-radius: 5%; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); animation: tsc-map 15s ease-in-out infinite alternate; }
.scn-trim-sermon-correction-hobby-horse .candle-light { position: absolute; top: 30%; left: 20%; width: 8px; height: 18px; background: linear-gradient(180deg, #e8c060 0%, #6a4a2a 100%); border-radius: 20%; animation: tsc-candle 4s ease-in-out infinite; }
.scn-trim-sermon-correction-hobby-horse .shadow-dance { position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%; background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 60%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); animation: tsc-shadow 5s ease-in-out infinite alternate; }
@keyframes tsc-trim { 0% { transform: rotate(6deg) translateY(0); } 25% { transform: rotate(4deg) translateY(-2px); } 50% { transform: rotate(8deg) translateY(0); } 75% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(6deg) translateY(0); } }
@keyframes tsc-paper { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(3px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes tsc-toby { 0% { transform: rotate(-3deg) translateX(0); } 100% { transform: rotate(-7deg) translateX(5px); } }
@keyframes tsc-pointer { 0% { transform: rotate(40deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(40deg); } }
@keyframes tsc-map { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes tsc-candle { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tsc-shadow { 0% { transform: scaleY(1); opacity: 0.5; } 100% { transform: scaleY(1.3); opacity: 0.8; } }

/* Scene: dance-with-nannette */
.scn-dance-with-nannette {
  background: linear-gradient(180deg, #ffcc80 0%, #ffb347 35%, #ff8c00 65%, #d96900 100%), radial-gradient(ellipse at 30% 20%, #ffe082 0%, transparent 60%);
}
.scn-dance-with-nannette .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 60%, transparent 100%); animation: dn-sky 10s ease-in-out infinite alternate; }
.scn-dance-with-nannette .sun { position:absolute; top:8%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #ffb347; animation: dn-sun 8s ease-in-out infinite; }
.scn-dance-with-nannette .hills { position:absolute; bottom:40%; left:0; right:0; height:18%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.3); }
.scn-dance-with-nannette .ground { position:absolute; bottom:0; left:0; right:0; height:42%; background: linear-gradient(180deg, #cd853f 0%, #8b4513 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.4); animation: dn-ground 6s ease-in-out infinite alternate; }
.scn-dance-with-nannette .figure-tr { position:absolute; bottom:18%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dn-dance-tri 1.5s ease-in-out infinite; }
.scn-dance-with-nannette .figure-na { position:absolute; bottom:18%; left:50%; width:18px; height:38px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dn-dance-na 1.5s ease-in-out infinite 0.75s; }
.scn-dance-with-nannette .string { position:absolute; bottom:50%; left:49%; width:2px; height:30px; background: #d2b48c; transform-origin: top center; animation: dn-string 4s ease-in-out infinite; }
@keyframes dn-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dn-sun { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(8px) scale(1.05) } 100% { transform: translateX(-4px) scale(.95) } }
@keyframes dn-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dn-dance-tri { 0% { transform: translateX(0) rotate(-4deg) } 25% { transform: translateX(10px) rotate(2deg) scaleX(.95) } 50% { transform: translateX(20px) rotate(4deg) } 75% { transform: translateX(10px) rotate(0deg) } 100% { transform: translateX(0) rotate(-4deg) } }
@keyframes dn-dance-na { 0% { transform: translateX(0) rotate(4deg) } 25% { transform: translateX(-10px) rotate(-2deg) scaleX(.95) } 50% { transform: translateX(-20px) rotate(-4deg) } 75% { transform: translateX(-10px) rotate(0deg) } 100% { transform: translateX(0) rotate(4deg) } }
@keyframes dn-string { 0%,100% { transform: rotate(-6deg) scaleY(1) } 50% { transform: rotate(6deg) scaleY(.8) } }

/* Scene: perdrillo-pavilion-amours */
.scn-perdrillo-pavilion-amours {
  background: linear-gradient(135deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 60%, #f5deb3 100%), radial-gradient(ellipse at 60% 30%, #fff8dc 0%, transparent 50%);
}
.scn-perdrillo-pavilion-amours .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #f0f8ff 100%); animation: ppa-sky 12s ease-in-out infinite alternate; }
.scn-perdrillo-pavilion-amours .pavilion-roof { position:absolute; top:5%; left:20%; width:60%; height:35%; background: linear-gradient(180deg, #deb887 0%, #cd853f 50%, #8b7355 100%); clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%); box-shadow: 0 8px 20px rgba(0,0,0,.3); animation: ppa-roof 6s ease-in-out infinite; }
.scn-perdrillo-pavilion-amours .pillar-left { position:absolute; top:25%; left:25%; width:6%; height:60%; background: linear-gradient(180deg, #d2b48c 0%, #a0886e 100%); border-radius: 4px; box-shadow: 2px 0 10px rgba(0,0,0,.2); }
.scn-perdrillo-pavilion-amours .pillar-right { position:absolute; top:25%; right:25%; width:6%; height:60%; background: linear-gradient(180deg, #d2b48c 0%, #a0886e 100%); border-radius: 4px; box-shadow: -2px 0 10px rgba(0,0,0,.2); }
.scn-perdrillo-pavilion-amours .floor { position:absolute; bottom:0; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.15); animation: ppa-floor 10s ease-in-out infinite alternate; }
.scn-perdrillo-pavilion-amours .figure-tristram { position:absolute; bottom:18%; left:35%; width:22px; height:42px; background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ppa-write 4s ease-in-out infinite; }
.scn-perdrillo-pavilion-amours .scroll { position:absolute; bottom:22%; left:45%; width:30px; height:15px; background: linear-gradient(180deg, #f5deb3 0%, #ecd9a0 100%); border-radius: 10% 10% 50% 50% / 20% 20% 80% 80%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: ppa-scroll 8s ease-in-out infinite; }
@keyframes ppa-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ppa-roof { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } }
@keyframes ppa-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(.97) } 100% { transform: scaleY(1) } }
@keyframes ppa-write { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-3deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ppa-scroll { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) } }

/* Scene: widow-wadman-night-shift */
.scn-widow-wadman-night-shift {
  background: linear-gradient(180deg, #191970 0%, #2f2f4f 40%, #4a4a6a 100%), radial-gradient(ellipse at 40% 60%, #6a5acd 0%, transparent 70%);
}
.scn-widow-wadman-night-shift .wall-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1c1c2a 0%, #2a2a3c 100%); }
.scn-widow-wadman-night-shift .window-moon { position:absolute; top:10%; left:70%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 30%, #b0c4de 0%, #87ceeb 60%, transparent 100%); border-radius: 0 0 20px 20px; box-shadow: inset 0 0 20px #87ceeb, 0 0 40px #87ceeb; animation: wwn-moon 10s ease-in-out infinite alternate; }
.scn-widow-wadman-night-shift .bed { position:absolute; bottom:10%; left:15%; width:55%; height:30%; background: linear-gradient(180deg, #8b4513 0%, #5c3a1e 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: wwn-bed 6s ease-in-out infinite; }
.scn-widow-wadman-night-shift .figure-wadman { position:absolute; bottom:16%; left:25%; width:22px; height:44px; background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wwn-wadman-shift 3s ease-in-out infinite; }
.scn-widow-wadman-night-shift .nightshift { position:absolute; bottom:30%; left:22%; width:15px; height:30px; background: linear-gradient(180deg, #f5f5dc 0%, #e8e8d0 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; opacity:0.8; animation: wwn-nightshift 3s ease-in-out infinite; }
.scn-widow-wadman-night-shift .pin { position:absolute; bottom:53%; left:28%; width:4px; height:8px; background: #c0c0c0; border-radius: 50% 50% 0 0; transform: rotate(15deg); animation: wwn-pin 3s ease-in-out infinite 1.5s; }
.scn-widow-wadman-night-shift .candle { position:absolute; bottom:20%; right:15%; width:8px; height:20px; background: linear-gradient(180deg, #ffd700 0%, #ff8c00 50%, #8b4513 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px #ffa500; animation: wwn-candle 4s ease-in-out infinite; }
@keyframes wwn-moon { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes wwn-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes wwn-wadman-shift { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes wwn-nightshift { 0% { transform: translateX(0) scaleY(1) opacity:.8 } 50% { transform: translateX(2px) scaleY(1.1) opacity:.6 } 100% { transform: translateX(0) scaleY(1) opacity:.8 } }
@keyframes wwn-pin { 0%,100% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-5px) } }
@keyframes wwn-candle { 0%,100% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.1) scaleX(.95) } }

/* Scene: wadman-sentry-box-approach */
.scn-wadman-sentry-box-approach {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #cd853f 100%), radial-gradient(ellipse at 70% 30%, #ffe082 0%, transparent 60%);
}
.scn-wadman-sentry-box-approach .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: wsb-sky 15s ease-in-out infinite alternate; }
.scn-wadman-sentry-box-approach .sentry-roof { position:absolute; top:5%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%); clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.scn-wadman-sentry-box-approach .sentry-wall { position:absolute; top:15%; left:38%; width:24%; height:40%; background: linear-gradient(180deg, #d2b48c 0%, #b8860b 100%); border-radius: 4px; box-shadow: inset 0 -10px 20px rgba(0,0,0,.2); }
.scn-wadman-sentry-box-approach .table { position:absolute; bottom:30%; left:30%; width:25%; height:6%; background: linear-gradient(180deg, #deb887 0%, #b8860b 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.2); }
.scn-wadman-sentry-box-approach .map { position:absolute; bottom:34%; left:32%; width:15%; height:8%; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 1px 4px rgba(0,0,0,.2); animation: wsb-map 5s ease-in-out infinite; }
.scn-wadman-sentry-box-approach .pipe { position:absolute; bottom:35%; left:36%; width:10px; height:14px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1e 100%); border-radius: 0 0 50% 50%; transform: rotate(20deg); animation: wsb-pipe 4s ease-in-out infinite; }
.scn-wadman-sentry-box-approach .figure-wadman { position:absolute; bottom:22%; left:42%; width:22px; height:44px; background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wsb-wadman 3s ease-in-out infinite; }
.scn-wadman-sentry-box-approach .figure-toby { position:absolute; bottom:22%; left:55%; width:24px; height:46px; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wsb-toby 3s ease-in-out infinite 1s; }
.scn-wadman-sentry-box-approach .leg-press { position:absolute; bottom:18%; left:50%; width:8px; height:12px; background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 100%); border-radius: 40% 40% 10% 10%; transform: rotate(15deg); animation: wsb-leg 3s ease-in-out infinite; }
@keyframes wsb-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes wsb-map { 0%,100% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(5px) } }
@keyframes wsb-pipe { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(30deg) translateY(-2px) } }
@keyframes wsb-wadman { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(6px) rotate(2deg) } 50% { transform: translateX(12px) rotate(0deg) } 75% { transform: translateX(6px) rotate(-2deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes wsb-toby { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-6px) rotate(-2deg) } 50% { transform: translateX(-12px) rotate(0deg) } 75% { transform: translateX(-6px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes wsb-leg { 0%,100% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-3px) } }

.scn-trim-reassures-tom-jew-widow {
  background: 
    linear-gradient(180deg, #2b1a10 0%, #3a2218 40%, #4a2e1e 100%),
    radial-gradient(ellipse at 50% 0%, #5a3a2a 0%, transparent 60%);
}
.scn-trim-reassures-tom-jew-widow .bg-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #3a2218 0%, #2b1a10 100%);
  animation: tr-bg 12s ease-in-out infinite alternate;
}
.scn-trim-reassures-tom-jew-widow .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-trim-reassures-tom-jew-widow .window-night {
  position:absolute; top:15%; left:20%; width:30%; height:40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.4);
  animation: tr-window 20s ease-in-out infinite;
}
.scn-trim-reassures-tom-jew-widow .candle-glow {
  position:absolute; bottom:35%; left:45%; width:20px; height:30px;
  background: radial-gradient(circle, #d09050 0%, #b07040 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #b07040, 0 0 60px 25px rgba(180,110,60,.3);
  animation: tr-candle 4s ease-in-out infinite alternate;
}
.scn-trim-reassures-tom-jew-widow .table {
  position:absolute; bottom:20%; left:38%; width:35%; height:18%;
  background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-trim-reassures-tom-jew-widow .figure-trim {
  position:absolute; bottom:18%; left:30%; width:22px; height:50px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-figure1 6s ease-in-out infinite alternate;
}
.scn-trim-reassures-tom-jew-widow .figure-widow {
  position:absolute; bottom:18%; right:30%; width:20px; height:48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 60% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-figure2 8s ease-in-out infinite alternate;
}
@keyframes tr-bg { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes tr-window { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes tr-candle { 0% { box-shadow: 0 0 20px 6px #b07040, 0 0 40px 15px rgba(180,110,60,.2); } 50% { box-shadow: 0 0 35px 12px #d09050, 0 0 70px 30px rgba(200,120,60,.4); } 100% { box-shadow: 0 0 25px 8px #b07040, 0 0 50px 20px rgba(180,110,60,.3); } }
@keyframes tr-figure1 { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tr-figure2 { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-walter-muses-battles-marriages {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 60%);
}
.scn-walter-muses-battles-marriages .bg-shadow {
  position:absolute; inset:0;
  background: linear-gradient(135deg, rgba(0,0,0,.3) 0%, transparent 50%, rgba(0,0,0,.2) 100%);
  animation: wm-bg 15s ease-in-out infinite alternate;
}
.scn-walter-muses-battles-marriages .desk {
  position:absolute; bottom:20%; left:25%; right:25%; height:20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-walter-muses-battles-marriages .candle-flicker {
  position:absolute; bottom:35%; left:40%; width:18px; height:28px;
  background: radial-gradient(circle, #e0a060 0%, #b07040 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 25px 8px #b07040, 0 0 50px 20px rgba(180,110,60,.3);
  animation: wm-candle 3s ease-in-out infinite alternate;
}
.scn-walter-muses-battles-marriages .scroll {
  position:absolute; bottom:22%; left:35%; width:30%; height:10%;
  background: linear-gradient(90deg, #d0c0a0 0%, #c0b090 50%, #d0c0a0 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: wm-scroll 8s ease-in-out infinite;
}
.scn-walter-muses-battles-marriages .quill {
  position:absolute; bottom:22%; left:60%; width:6px; height:40px;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  border-radius: 50% 50% 0 0; transform-origin: bottom center;
  animation: wm-quill 2s ease-in-out infinite alternate;
}
.scn-walter-muses-battles-marriages .hand-walter {
  position:absolute; bottom:18%; left:58%; width:16px; height:30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wm-hand 1.5s ease-in-out infinite;
}
.scn-walter-muses-battles-marriages .map-wall {
  position:absolute; top:12%; right:10%; width:35%; height:45%;
  background: linear-gradient(135deg, #c0b090 0%, #a09070 50%, #c0b090 100%);
  border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,.3);
  animation: wm-map 20s linear infinite;
}
@keyframes wm-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes wm-candle { 0% { box-shadow: 0 0 20px 6px #b07040, 0 0 40px 15px rgba(180,110,60,.2); } 50% { box-shadow: 0 0 30px 10px #e0a060, 0 0 60px 25px rgba(220,160,80,.4); } 100% { box-shadow: 0 0 22px 7px #b07040, 0 0 45px 18px rgba(180,110,60,.3); } }
@keyframes wm-scroll { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes wm-quill { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-8deg) } }
@keyframes wm-hand { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(5deg) } 75% { transform: translateX(-2px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes wm-map { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }

.scn-item-map-namur-salient-angle {
  background: 
    linear-gradient(180deg, #1a0a00 0%, #2a1a10 40%, #1a0a00 100%),
    radial-gradient(ellipse at 60% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-item-map-namur-salient-angle .bg-deep {
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(0,0,0,.4) 0%, transparent 50%, rgba(0,0,0,.3) 100%);
  animation: im-bg 5s ease-in-out infinite alternate;
}
.scn-item-map-namur-salient-angle .map-large {
  position:absolute; bottom:20%; left:10%; width:70%; height:55%;
  background: linear-gradient(135deg, #b0a080 0%, #908060 50%, #b0a080 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: im-map 10s ease-in-out infinite;
}
.scn-item-map-namur-salient-angle .figure-toby {
  position:absolute; bottom:18%; left:25%; width:24px; height:55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: im-toby 3s ease-in-out infinite alternate;
}
.scn-item-map-namur-salient-angle .figure-trim-lame {
  position:absolute; bottom:15%; right:20%; width:22px; height:50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: im-trim 4s ease-in-out infinite alternate;
}
.scn-item-map-namur-salient-angle .lamp-glare {
  position:absolute; top:20%; left:45%; width:30px; height:30px;
  background: radial-gradient(circle, #d0a060 0%, #b08040 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #b08040, 0 0 80px 30px rgba(180,128,60,.3);
  animation: im-lamp 2s ease-in-out infinite alternate;
}
.scn-item-map-namur-salient-angle .figure-wadman {
  position:absolute; top:10%; right:5%; width:18px; height:40px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%);
  border-radius: 50% 60% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: im-wadman 6s ease-in-out infinite;
}
@keyframes im-bg { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes im-map { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.01) rotate(0.5deg) } 100% { transform: scale(0.99) rotate(-0.5deg) } }
@keyframes im-toby { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes im-trim { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes im-lamp { 0% { box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(180,128,60,.2); } 50% { box-shadow: 0 0 50px 20px #d0a060, 0 0 90px 40px rgba(200,160,80,.4); } 100% { box-shadow: 0 0 35px 12px #b08040, 0 0 70px 25px rgba(180,128,60,.3); } }
@keyframes im-wadman { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(0.98) } 100% { transform: translateY(1px) scaleY(1) } }

.scn-bridget-kiss-truth-lie {
  background: 
    linear-gradient(180deg, #3a2218 0%, #2a1a0e 40%, #1a0e06 100%),
    radial-gradient(ellipse at 40% 30%, #4a2e1e 0%, transparent 60%);
}
.scn-bridget-kiss-truth-lie .bg-room {
  position:absolute; inset:0;
  background: linear-gradient(135deg, rgba(0,0,0,.2) 0%, transparent 50%, rgba(0,0,0,.15) 100%);
  animation: bk-bg 10s ease-in-out infinite alternate;
}
.scn-bridget-kiss-truth-lie .floor-planks {
  position:absolute; bottom:0; left:0; right:0; height:22%;
  background: repeating-linear-gradient(90deg, #2a1a0a 0px, #2a1a0a 8px, #3a2a1a 8px, #3a2a1a 16px);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-bridget-kiss-truth-lie .door {
  position:absolute; bottom:15%; right:8%; width:25%; height:70%;
  background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.4);
  animation: bk-door 8s ease-in-out infinite;
}
.scn-bridget-kiss-truth-lie .figure-bridget {
  position:absolute; bottom:18%; left:45%; width:20px; height:48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 60% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bk-bridget 3s ease-in-out infinite alternate;
}
.scn-bridget-kiss-truth-lie .figure-trim-kiss {
  position:absolute; bottom:18%; left:40%; width:22px; height:50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 60% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bk-trim 3s ease-in-out infinite alternate;
}
.scn-bridget-kiss-truth-lie .chair {
  position:absolute; bottom:10%; left:25%; width:30px; height:40px;
  background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: bk-chair 12s ease-in-out infinite;
}
@keyframes bk-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes bk-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes bk-bridget { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bk-trim { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bk-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }

/* ========== auxiliary-verbs-white-bear ========== */
.scn-auxiliary-verbs-white-bear {
  background: linear-gradient(180deg, #2a1f14 0%, #3d2c1e 30%, #1e140e 100%),
              radial-gradient(ellipse at 50% 60%, #4a3520 0%, transparent 70%);
}
.scn-auxiliary-verbs-white-bear .bg { position:absolute; inset:0; background: linear-gradient(90deg, rgba(40,30,20,.7), rgba(60,40,25,.9), rgba(40,30,20,.7)); }
.scn-auxiliary-verbs-white-bear .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1e140e 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-auxiliary-verbs-white-bear .fire { position:absolute; bottom:28%; left:35%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 80%, #e09040 0%, #c06020 40%, #803010 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,100,30,.5); animation: sb-fire 4s ease-in-out infinite alternate; }
.scn-auxiliary-verbs-white-bear .bear { position:absolute; bottom:22%; left:55%; width:14%; height:35%; background: linear-gradient(180deg, #f0e8e0 0%, #c8b8a8 50%, #a09080 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sb-bear 2s ease-in-out infinite; }
.scn-auxiliary-verbs-white-bear .figure-a { position:absolute; bottom:20%; left:20%; width:12%; height:40%; background: linear-gradient(180deg, #503828 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sb-figures 6s ease-in-out infinite alternate; }
.scn-auxiliary-verbs-white-bear .figure-b { position:absolute; bottom:18%; left:38%; width:10%; height:36%; background: linear-gradient(180deg, #604438 0%, #3a2218 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sb-figures 6s ease-in-out infinite alternate-reverse; }
.scn-auxiliary-verbs-white-bear .book { position:absolute; bottom:24%; left:30%; width:8%; height:4%; background: linear-gradient(135deg, #8a6040 0%, #5a3a20 100%); border-radius: 10% 10% 30% 30%; transform: rotate(-10deg); animation: sb-book 12s ease-in-out infinite; }
@keyframes sb-fire { 0% { transform: scaleY(1) scaleX(1); opacity:0.8 } 50% { transform: scaleY(1.15) scaleX(1.05); opacity:1 } 100% { transform: scaleY(0.95) scaleX(0.98); opacity:0.85 } }
@keyframes sb-bear { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(3deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sb-figures { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(-4px) rotate(-1deg) } }
@keyframes sb-book { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-5deg) scaleX(1.1) } 100% { transform: rotate(-10deg) scaleX(1) } }

/* ========== le-fever-ill-at-inn ========== */
.scn-le-fever-ill-at-inn {
  background: linear-gradient(180deg, #0b0b1a 0%, #1a1a2e 40%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 80%, #1a1a30 0%, transparent 70%);
}
.scn-le-fever-ill-at-inn .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #141428 0%, #0a0a14 100%); }
.scn-le-fever-ill-at-inn .bed { position:absolute; bottom:10%; left:20%; width:60%; height:35%; background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); }
.scn-le-fever-ill-at-inn .sick-figure { position:absolute; bottom:12%; left:38%; width:16%; height:30%; background: linear-gradient(180deg, #2a1a14 0%, #100a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.9; animation: lf-breathe 4s ease-in-out infinite; }
.scn-le-fever-ill-at-inn .boy { position:absolute; bottom:10%; left:58%; width:10%; height:24%; background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lf-kneel 8s ease-in-out infinite alternate; }
.scn-le-fever-ill-at-inn .door-light { position:absolute; left:70%; top:20%; width:18%; height:60%; background: linear-gradient(135deg, rgba(200,180,150,.4) 0%, rgba(100,80,60,.1) 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); animation: lf-door 5s ease-in-out infinite alternate; }
.scn-le-fever-ill-at-inn .candle { position:absolute; bottom:48%; left:35%; width:2%; height:4%; background: radial-gradient(circle, #e0b060 0%, #c08830 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(200,140,60,.5); animation: lf-candle 2s ease-in-out infinite alternate; }
@keyframes lf-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.04) } 100% { transform: scaleY(0.98) } }
@keyframes lf-kneel { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes lf-door { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.7; transform: translateX(4px) } 100% { opacity:.2; transform: translateX(0) } }
@keyframes lf-candle { 0% { transform: scale(.9); opacity:.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(.95); opacity:.8 } }

/* ========== item-sword-le-fever ========== */
.scn-item-sword-le-fever {
  background: linear-gradient(180deg, #4a2e1a 0%, #6a4028 30%, #3a2010 100%),
              radial-gradient(ellipse at 50% 20%, #8a5a38 0%, transparent 60%);
}
.scn-item-sword-le-fever .bg-warm { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 70%, #7a4a2a, transparent 70%); }
.scn-item-sword-le-fever .fireplace { position:absolute; bottom:10%; left:15%; width:30%; height:50%; background: linear-gradient(180deg, #5a3a20 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-item-sword-le-fever .mantel { position:absolute; bottom:55%; left:12%; width:36%; height:6%; background: linear-gradient(180deg, #8a5a30 0%, #5a3a18 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-item-sword-le-fever .sword { position:absolute; bottom:60%; left:28%; width:4%; height:35%; background: linear-gradient(180deg, #c8a860 0%, #a08840 50%, #604820 100%); border-radius: 20% 20% 50% 50%; transform-origin: bottom center; transform: rotate(25deg); box-shadow: 0 0 12px 4px rgba(200,168,80,.3); animation: sw-gleam 3s ease-in-out infinite alternate; }
.scn-item-sword-le-fever .hand { position:absolute; bottom:56%; left:30%; width:10%; height:12%; background: linear-gradient(180deg, #7a5030 0%, #4a2818 100%); border-radius: 50% 50% 40% 40%; transform: rotate(10deg); animation: sw-touch 5s ease-in-out infinite alternate; }
.scn-item-sword-le-fever .glow { position:absolute; bottom:62%; left:26%; width:10%; height:12%; background: radial-gradient(circle, #e0c060 0%, transparent 80%); border-radius: 50%; box-shadow: 0 0 36px 16px rgba(200,160,60,.3); animation: sw-glowpulse 6s ease-in-out infinite alternate; }
@keyframes sw-gleam { 0% { opacity:.7; filter: brightness(.9) } 50% { opacity:1; filter: brightness(1.2) } 100% { opacity:.8; filter: brightness(1) } }
@keyframes sw-touch { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(5deg) scale(1.05) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes sw-glowpulse { 0% { transform: scale(1); opacity:.5 } 50% { transform: scale(1.3); opacity:.9 } 100% { transform: scale(1); opacity:.6 } }

/* ========== false-report-tristram ========== */
.scn-false-report-tristram {
  background: linear-gradient(180deg, #1a1420 0%, #2a1c30 40%, #0e0a14 100%),
              radial-gradient(ellipse at 50% 80%, #2a1c30 0%, transparent 70%);
}
.scn-false-report-tristram .bg-tense { position:absolute; inset:0; background: linear-gradient(135deg, #1a1222 0%, #241830 50%, #0a0810 100%); }
.scn-false-report-tristram .wall-left { position:absolute; left:0; top:0; width:20%; height:100%; background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%); box-shadow: 4px 0 12px rgba(0,0,0,.6); animation: ft-wall 10s ease-in-out infinite alternate; }
.scn-false-report-tristram .bed { position:absolute; bottom:10%; left:35%; width:40%; height:30%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); }
.scn-false-report-tristram .father { position:absolute; bottom:16%; left:30%; width:14%; height:38%; background: linear-gradient(180deg, #3a223a 0%, #180c18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ft-pace 2s ease-in-out infinite alternate; }
.scn-false-report-tristram .mother { position:absolute; bottom:14%; left:48%; width:12%; height:34%; background: linear-gradient(180deg, #4a3248 0%, #281428 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ft-wring 3s ease-in-out infinite alternate; }
.scn-false-report-tristram .doctor { position:absolute; bottom:12%; left:60%; width:12%; height:36%; background: linear-gradient(180deg, #2a1a30 0%, #140a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ft-sway 4s ease-in-out infinite alternate; }
.scn-false-report-tristram .breeches { position:absolute; bottom:36%; left:38%; width:10%; height:6%; background: linear-gradient(135deg, #3a2a3a 0%, #1a0e1a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: ft-breech 7s ease-in-out infinite alternate; }
@keyframes ft-wall { 0% { opacity:.6; transform: translateX(0) } 50% { opacity:1; transform: translateX(-4px) } 100% { opacity:.7; transform: translateX(0) } }
@keyframes ft-pace { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(3deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ft-wring { 0% { transform: translateX(0) rotate(0) scale(1) } 50% { transform: translateX(2px) rotate(8deg) scale(1.02) } 100% { transform: translateX(0) rotate(0) scale(1) } }
@keyframes ft-sway { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-5px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ft-breech { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.1) } 100% { transform: rotate(-5deg) scaleY(1) } }

.scn-item-clock-winding {
  background: linear-gradient(180deg, #1e1a12 0%, #2a2218 40%, #3a2e22 100%), radial-gradient(ellipse at 70% 30%, #5a4a32 0%, transparent 60%);
}
.scn-item-clock-winding .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #3a2e22 0%, #4a3e2e 50%, #3a2e22 100%);
}
.scn-item-clock-winding .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
}
.scn-item-clock-winding .clock-body {
  position: absolute; bottom: 48%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4e32 0%, #4a3420 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-item-clock-winding .clock-face {
  position: absolute; bottom: 58%; left: 50%; width: 36px; height: 36px; transform: translateX(-50%);
  background: radial-gradient(circle, #c8b89a 30%, #a09070 70%, #6a5a3e 100%);
  border-radius: 50%; border: 2px solid #3a2e22;
}
.scn-item-clock-winding .clock-pendulum {
  position: absolute; bottom: 42%; left: 50%; width: 4px; height: 20px; transform: translateX(-50%);
  background: #b08050;
  border-radius: 2px; transform-origin: top center;
  animation: cw1-pendulum 2s ease-in-out infinite alternate;
}
.scn-item-clock-winding .figure-cw {
  position: absolute; bottom: 38%; left: 36%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cw1-figure 6s ease-in-out infinite;
}
.scn-item-clock-winding .candle-cw {
  position: absolute; bottom: 42%; left: 62%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8a878 100%);
  border-radius: 2px 2px 0 0;
}
.scn-item-clock-winding .glow-cw {
  position: absolute; bottom: 40%; left: 62%; width: 40px; height: 40px; transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(232,216,184,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: cw1-glow 4s ease-in-out infinite alternate;
}
@keyframes cw1-pendulum {
  0% { transform: translateX(-50%) rotate(-8deg); }
  50% { transform: translateX(-50%) rotate(8deg); }
  100% { transform: translateX(-50%) rotate(-8deg); }
}
@keyframes cw1-figure {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes cw1-glow {
  0% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.9); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
  100% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.95); }
}

.scn-yorick-mercurial-jester {
  background: linear-gradient(180deg, #b8a88a 0%, #9a8a6a 30%, #7a6a4e 60%, #5a4a32 100%), radial-gradient(ellipse at 30% 50%, #c8b88a 0%, transparent 50%);
}
.scn-yorick-mercurial-jester .sky-yj {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b89a 0%, #a89878 100%);
}
.scn-yorick-mercurial-jester .ground-yj {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a3e 0%, #4a3828 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-yorick-mercurial-jester .road-yj {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: #5a4a32;
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-yorick-mercurial-jester .jester-body {
  position: absolute; bottom: 32%; left: 50%; width: 20px; height: 40px; transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a22 0%, #4a2a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: yj2-bounce 2.5s ease-in-out infinite;
}
.scn-yorick-mercurial-jester .jester-hat {
  position: absolute; bottom: 65%; left: 50%; width: 28px; height: 14px; transform: translateX(-50%);
  background: linear-gradient(90deg, #8a6a2a 0%, #6a4a1a 100%);
  border-radius: 50% 50% 0 0;
  animation: yj2-jiggle 1.5s ease-in-out infinite;
}
.scn-yorick-mercurial-jester .jester-bauble {
  position: absolute; bottom: 36%; left: 44%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8a02a 0%, #a0801a 70%);
  border-radius: 50%;
  animation: yj2-spin 3s linear infinite;
}
.scn-yorick-mercurial-jester .cloud-yj {
  position: absolute; top: 12%; left: 60%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(200,184,154,.6) 0%, rgba(200,184,154,.1) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: yj2-drift 45s linear infinite;
}
@keyframes yj2-bounce {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-4px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes yj2-jiggle {
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(-5deg); }
}
@keyframes yj2-spin {
  0% { transform: rotate(0); }
  100% { transform: rotate(360deg); }
}
@keyframes yj2-drift {
  0% { transform: translateX(0); }
  50% { transform: translateX(20px); }
  100% { transform: translateX(0); }
}

.scn-walter-return-vexed {
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b89a 30%, #a89878 60%, #7a6a4e 100%), radial-gradient(ellipse at 50% 0%, #f0e8d8 0%, transparent 60%);
}
.scn-walter-return-vexed .sky-wr {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a8 100%);
}
.scn-walter-return-vexed .field-wr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3e 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-walter-return-vexed .wall-wr {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(90deg, #5a4a32 0%, #7a6a4e 50%, #5a4a32 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
.scn-walter-return-vexed .tree-wr {
  position: absolute; bottom: 32%; left: 65%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  animation: wr3-shake 2s ease-in-out infinite;
}
.scn-walter-return-vexed .church-wr {
  position: absolute; bottom: 35%; left: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #b0a080 0%, #908070 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.2);
}
.scn-walter-return-vexed .figure-wr {
  position: absolute; bottom: 34%; left: 30%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a0e 0%, #0a0a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: wr3-stride 3s ease-in-out infinite;
}
.scn-walter-return-vexed .shadow-wr {
  position: absolute; bottom: 30%; left: 26%; width: 30px; height: 8px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  animation: wr3-shadow 3s ease-in-out infinite;
}
.scn-walter-return-vexed .fruit-wr {
  position: absolute; bottom: 58%; left: 62%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0a050 0%, #c08030 70%);
  border-radius: 50%;
  animation: wr3-fruit 4s ease-in-out infinite alternate;
}
@keyframes wr3-shake {
  0% { transform: rotate(0); }
  25% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  75% { transform: rotate(-2deg); }
  100% { transform: rotate(0); }
}
@keyframes wr3-stride {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(8px) translateY(-2px); }
  50% { transform: translateX(16px) translateY(0); }
  75% { transform: translateX(8px) translateY(-2px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes wr3-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}
@keyframes wr3-fruit {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.1); }
  100% { transform: translateY(0) scale(1); }
}

.scn-marriage-settlement-clause {
  background: linear-gradient(180deg, #1a1410 0%, #2a2218 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-marriage-settlement-clause .bg-ms {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #2a2218 0%, #3a2e22 50%, #2a2218 100%);
}
.scn-marriage-settlement-clause .desk-ms {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2e22 100%);
  border-radius: 2px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-marriage-settlement-clause .paper-ms {
  position: absolute; bottom: 28%; left: 38%; right: 38%; height: 8%;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b89a 100%);
  border-radius: 1px; transform: rotate(-1deg);
  animation: ms4-unroll 8s ease-in-out infinite;
}
.scn-marriage-settlement-clause .quill-ms {
  position: absolute; bottom: 32%; left: 45%; width: 2px; height: 16px;
  background: #4a3a2a;
  border-radius: 1px;
  animation: ms4-quill 5s ease-in-out infinite alternate;
}
.scn-marriage-settlement-clause .candle-ms {
  position: absolute; bottom: 32%; left: 60%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8a878 100%);
  border-radius: 2px 2px 0 0;
}
.scn-marriage-settlement-clause .figure-walter {
  position: absolute; bottom: 26%; left: 25%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ms4-still 6s ease-in-out infinite;
}
.scn-marriage-settlement-clause .figure-wife {
  position: absolute; bottom: 26%; left: 55%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ms4-still 6s ease-in-out infinite alternate;
}
.scn-marriage-settlement-clause .glow-ms {
  position: absolute; bottom: 30%; left: 60%; width: 30px; height: 30px; transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(232,216,184,.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: ms4-glow 4s ease-in-out infinite alternate;
}
@keyframes ms4-unroll {
  0% { transform: scaleX(0.8) rotate(-1deg); opacity: 0.7; }
  50% { transform: scaleX(1) rotate(-1deg); opacity: 1; }
  100% { transform: scaleX(0.8) rotate(-1deg); opacity: 0.7; }
}
@keyframes ms4-quill {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes ms4-still {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ms4-glow {
  0% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.9); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
  100% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.95); }
}

/* paris-tour-garonne-speed — calm, sunlit, wide horizon with speeding chaise */
.scn-paris-tour-garonne-speed { background: linear-gradient(180deg, #87CEEB 0%, #f5e6c8 70%), radial-gradient(ellipse at 30% 10%, #f5e6c8 0%, transparent 60%); }
.scn-paris-tour-garonne-speed .ptg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, #b8e0f0 100%); animation: ptg-sky 6s ease-in-out infinite alternate; }
.scn-paris-tour-garonne-speed .ptg-sun { position:absolute; top:8%; left:25%; width:50px; height:50px; background: radial-gradient(circle, #FFD700 0%, #f5e6c8 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(255,215,0,.4); animation: ptg-sun 4s ease-in-out infinite alternate; }
.scn-paris-tour-garonne-speed .ptg-road { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8B7355 0%, #6b5340 100%); clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); }
.scn-paris-tour-garonne-speed .ptg-chaise { position:absolute; bottom:25%; left:30%; width:80px; height:30px; background: linear-gradient(135deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 2px 2px 8px rgba(0,0,0,.3); animation: ptg-chaise 3s ease-in-out infinite; }
.scn-paris-tour-garonne-speed .ptg-wheel-f { position:absolute; bottom:20%; left:35%; width:20px; height:20px; background: radial-gradient(circle, #3a2a0a 0%, #1a0a00 100%); border-radius:50%; border: 2px solid #2a1a00; animation: ptg-wheel 0.4s linear infinite; }
.scn-paris-tour-garonne-speed .ptg-wheel-r { position:absolute; bottom:20%; left:42%; width:20px; height:20px; background: radial-gradient(circle, #3a2a0a 0%, #1a0a00 100%); border-radius:50%; border: 2px solid #2a1a00; animation: ptg-wheel 0.4s linear infinite reverse; }
.scn-paris-tour-garonne-speed .ptg-dust { position:absolute; bottom:18%; left:55%; width:40px; height:15px; background: radial-gradient(ellipse at 30% 50%, rgba(200,180,150,0.6) 0%, transparent 100%); filter: blur(3px); animation: ptg-dust 0.8s ease-out infinite; }
@keyframes ptg-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ptg-sun { 0% { transform: scale(.95); box-shadow:0 0 30px 10px rgba(255,215,0,.3) } 50% { transform: scale(1.05); box-shadow:0 0 50px 20px rgba(255,215,0,.5) } 100% { transform: scale(1); box-shadow:0 0 35px 12px rgba(255,215,0,.4) } }
@keyframes ptg-chaise { 0% { transform: translateX(-10px) rotate(-1deg) } 50% { transform: translateX(10px) rotate(1deg) } 100% { transform: translateX(-5px) rotate(0deg) } }
@keyframes ptg-wheel { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(180deg) scale(1.02) } 100% { transform: rotate(360deg) scale(1) } }
@keyframes ptg-dust { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-5px) scale(1.5); opacity:.5 } 100% { transform: translateY(-10px) scale(2); opacity:0 } }

/* saint-maxima-martyrdom — calm, dim-interior, church crypt with tomb and figure */
.scn-saint-maxima-martyrdom { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 50%, #1e0e0a 100%); }
.scn-saint-maxima-martyrdom .smm-vault { position:absolute; top:0; left:10%; width:80%; bottom:60%; background: linear-gradient(180deg, #3a2a2a 0%, #1e1e1e 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-saint-maxima-martyrdom .smm-wall { position:absolute; top:40%; left:15%; right:15%; bottom:0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0a 100%); border-radius: 10px 10px 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.5); }
.scn-saint-maxima-martyrdom .smm-tomb { position:absolute; bottom:25%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-saint-maxima-martyrdom .smm-figure { position:absolute; bottom:28%; left:45%; width:12%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: smm-figure 5s ease-in-out infinite alternate; }
.scn-saint-maxima-martyrdom .smm-bones { position:absolute; bottom:22%; left:38%; width:4%; height:6%; background: linear-gradient(135deg, #c8b8a8 0%, #a89888 100%); border-radius: 20% 20% 40% 40%; transform: rotate(15deg); }
.scn-saint-maxima-martyrdom .smm-light { position:absolute; top:35%; left:40%; width:20%; height:15%; background: radial-gradient(ellipse, rgba(255,215,0,0.15) 0%, transparent 100%); animation: smm-light 3s ease-in-out infinite alternate; }
@keyframes smm-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes smm-light { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.95) } }

/* item-chaise-broken-lyons — funny, sunlit, close-up of ass with pannier */
.scn-item-chaise-broken-lyons { background: linear-gradient(180deg, #f0e0c8 0%, #d0c0a0 100%), radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 60%); }
.scn-item-chaise-broken-lyons .icb-grass { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a9a4a 0%, #5a7a2a 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.1); }
.scn-item-chaise-broken-lyons .icb-ass-body { position:absolute; bottom:20%; left:20%; width:55%; height:45%; background: linear-gradient(135deg, #b8a898 0%, #908070 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; box-shadow: 0 8px 20px rgba(0,0,0,.2); animation: icb-body 3s ease-in-out infinite; }
.scn-item-chaise-broken-lyons .icb-ass-head { position:absolute; bottom:45%; left:65%; width:15%; height:18%; background: linear-gradient(135deg, #c8b8a8 0%, #a09080 100%); border-radius: 50% 50% 30% 30%; animation: icb-head 2s ease-in-out infinite alternate; transform-origin: bottom left; }
.scn-item-chaise-broken-lyons .icb-pannier { position:absolute; bottom:40%; left:30%; width:20%; height:20%; background: linear-gradient(180deg, #7a6a3a 0%, #5a4a2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-item-chaise-broken-lyons .icb-pocket { position:absolute; bottom:35%; left:25%; width:8%; height:12%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 0 0 50% 50%; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: icb-pocket 4s ease-in-out infinite; }
.scn-item-chaise-broken-lyons .icb-macaroon { position:absolute; bottom:45%; left:22%; width:4%; height:4%; background: radial-gradient(circle, #f5e6c8 0%, #d0b080 100%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,215,0,.3); animation: icb-macaroon 2s ease-in-out infinite; }
@keyframes icb-body { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes icb-head { 0% { transform: rotate(-5deg) translate(0,0) } 100% { transform: rotate(10deg) translate(2px,-1px) } }
@keyframes icb-pocket { 0% { transform: skew(0deg) } 50% { transform: skew(5deg) } 100% { transform: skew(0deg) } }
@keyframes icb-macaroon { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-8px) rotate(30deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-5px) rotate(-20deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* item-macaroon-ass — funny, sunlit, silhouette against sky with May-pole */
.scn-item-macaroon-ass { background: linear-gradient(180deg, #f5d0a0 0%, #d0b080 50%, #a08060 100%); }
.scn-item-macaroon-ass .ima-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f5e6c8 0%, #f5d0a0 100%); animation: ima-sky 8s ease-in-out infinite alternate; }
.scn-item-macaroon-ass .ima-sun { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #FFD700 0%, #f5e6c8 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,215,0,.4); animation: ima-sun 5s ease-in-out infinite alternate; }
.scn-item-macaroon-ass .ima-bench { position:absolute; bottom:20%; left:25%; width:30%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-item-macaroon-ass .ima-woman { position:absolute; bottom:28%; left:35%; width:12%; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ima-woman 4s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-item-macaroon-ass .ima-maypole { position:absolute; bottom:35%; left:15%; width:2%; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 10%; }
.scn-item-macaroon-ass .ima-ribbon-a { position:absolute; bottom:45%; left:15%; width:25%; height:1%; background: #c0a060; border-radius: 50%; transform: rotate(-20deg); transform-origin: left center; animation: ima-ribbon-a 6s ease-in-out infinite alternate; }
.scn-item-macaroon-ass .ima-ribbon-b { position:absolute; bottom:50%; left:15%; width:20%; height:1%; background: #a08040; border-radius: 50%; transform: rotate(15deg); transform-origin: left center; animation: ima-ribbon-b 6s ease-in-out infinite alternate-reverse; }
.scn-item-macaroon-ass .ima-ribbon-c { position:absolute; bottom:55%; left:15%; width:18%; height:1%; background: #b09050; border-radius: 50%; transform: rotate(-10deg); transform-origin: left center; animation: ima-ribbon-c 6s ease-in-out infinite alternate; animation-delay: .5s; }
@keyframes ima-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ima-sun { 0% { transform: scale(.95); box-shadow:0 0 20px 8px rgba(255,215,0,.3) } 50% { transform: scale(1.05); box-shadow:0 0 40px 15px rgba(255,215,0,.5) } 100% { transform: scale(1); box-shadow:0 0 25px 10px rgba(255,215,0,.4) } }
@keyframes ima-woman { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ima-ribbon-a { 0% { transform: rotate(-20deg) scaleX(1) } 50% { transform: rotate(15deg) scaleX(1.2) } 100% { transform: rotate(-30deg) scaleX(0.9) } }
@keyframes ima-ribbon-b { 0% { transform: rotate(15deg) scaleX(1) } 50% { transform: rotate(-10deg) scaleX(1.3) } 100% { transform: rotate(20deg) scaleX(0.8) } }
@keyframes ima-ribbon-c { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(25deg) scaleX(1.1) } 100% { transform: rotate(-5deg) scaleX(0.95) } }

.scn-hot-chestnut-breeches { background: linear-gradient(180deg, #2b1e14 0%, #1f1510 40%, #0d0906 100%), radial-gradient(ellipse at 70% 60%, #4a3524 0%, transparent 60%); }
.scn-hot-chestnut-breeches .room-back { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #3f2a1a 0%, #1a110d 100%); animation: hcb-ambient 12s ease-in-out infinite alternate; }
.scn-hot-chestnut-breeches .chair { position:absolute; bottom:10%; left:40%; width:30%; height:35%; background: linear-gradient(180deg, #5e3d28 0%, #362214 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.6); transform: rotate(-2deg); animation: hcb-chair 8s ease-in-out infinite; }
.scn-hot-chestnut-breeches .phutatorius { position:absolute; bottom:15%; left:44%; width:16%; height:32%; background: linear-gradient(180deg, #4a3322 0%, #2a1a10 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hcb-figure 6s ease-in-out infinite; }
.scn-hot-chestnut-breeches .chestnut { position:absolute; bottom:38%; left:52%; width:4%; height:5%; background: radial-gradient(circle, #a85a30 0%, #704020 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,120,50,.4); animation: hcb-nut 1.5s ease-in-out infinite; }
.scn-hot-chestnut-breeches .yorick-hand { position:absolute; bottom:20%; left:55%; width:10%; height:12%; background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: 60% 100%; animation: hcb-hand 2.2s ease-in-out infinite; }
.scn-hot-chestnut-breeches .table { position:absolute; bottom:5%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #5a3a24 0%, #3a2212 100%); border-radius: 4% 4% 20% 20% / 10% 10% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-hot-chestnut-breeches .candle { position:absolute; bottom:42%; left:35%; width:2%; height:15%; background: linear-gradient(180deg, #e8c880 0%, #c8a050 100%); border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%; box-shadow: 0 0 20px 4px #dba040; animation: hcb-candle 3s ease-in-out infinite alternate; }
@keyframes hcb-ambient { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.75; } }
@keyframes hcb-chair { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } }
@keyframes hcb-figure { 0%,100% { transform: rotate(3deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(2px); } }
@keyframes hcb-nut { 0% { transform: translateY(0) rotate(0deg) scale(1); } 30% { transform: translateY(30px) rotate(180deg) scale(1.1); } 60% { transform: translateY(10px) rotate(360deg) scale(.95); } 100% { transform: translateY(0) rotate(720deg) scale(1); } }
@keyframes hcb-hand { 0% { transform: translateX(0) translateY(0) rotate(-20deg); } 50% { transform: translateX(15px) translateY(-5px) rotate(10deg); } 100% { transform: translateX(0) translateY(0) rotate(-20deg); } }
@keyframes hcb-candle { 0%,100% { box-shadow: 0 0 15px 3px #c08030; } 50% { box-shadow: 0 0 30px 8px #e0b060; } }

.scn-yorick-settles-name-dispute { background: linear-gradient(180deg, #3c2a1c 0%, #2a1a10 60%, #1a0e08 100%), radial-gradient(ellipse at 50% 70%, #4a3524 0%, transparent 70%); }
.scn-yorick-settles-name-dispute .room-calm { position:absolute; inset:0; background: linear-gradient(180deg, #3a281a 0%, #1f140e 100%); animation: ysd-room 15s ease-in-out infinite alternate; }
.scn-yorick-settles-name-dispute .window-calm { position:absolute; top:15%; left:10%; width:20%; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 5% 5% 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,.4); }
.scn-yorick-settles-name-dispute .curtain-calm { position:absolute; top:12%; left:8%; width:24%; height:35%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 0% 20% 20% 0% / 0% 40% 40% 0%; opacity:.6; animation: ysd-curtain 20s ease-in-out infinite; }
.scn-yorick-settles-name-dispute .table-calm { position:absolute; bottom:25%; left:38%; width:24%; height:12%; background: linear-gradient(180deg, #6a4a34 0%, #3a2a1a 100%); border-radius: 5% 5% 20% 20% / 10% 10% 30% 30%; box-shadow: 0 6px 16px rgba(0,0,0,.5); }
.scn-yorick-settles-name-dispute .yorick-sit { position:absolute; bottom:27%; left:30%; width:12%; height:28%; background: linear-gradient(180deg, #c8a878 0%, #8a6a50 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ysd-figure 9s ease-in-out infinite; }
.scn-yorick-settles-name-dispute .toby-sit { position:absolute; bottom:27%; left:52%; width:14%; height:30%; background: linear-gradient(180deg, #b09878 0%, #7a6048 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ysd-figure 11s ease-in-out infinite reverse; }
.scn-yorick-settles-name-dispute .candle-calm { position:absolute; bottom:45%; left:46%; width:1.5%; height:12%; background: linear-gradient(180deg, #e8c880 0%, #c8a050 100%); border-radius: 10% 10% 30% 30% / 20% 20% 30% 30%; box-shadow: 0 0 16px 3px #dba040; animation: ysd-candle 4s ease-in-out infinite alternate; }
@keyframes ysd-room { 0% { opacity:.8; } 50% { opacity:.95; } 100% { opacity:.85; } }
@keyframes ysd-curtain { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } }
@keyframes ysd-figure { 0%,100% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } }
@keyframes ysd-candle { 0% { box-shadow: 0 0 12px 2px #b08030; opacity:.9; } 50% { box-shadow: 0 0 24px 6px #e0b060; opacity:1; } 100% { box-shadow: 0 0 14px 3px #b08030; opacity:.85; } }

.scn-wild-chaise-ride-stilton { background: linear-gradient(180deg, #a0c8e8 0%, #7ab0d0 30%, #c8d8e0 60%, #e8e0c0 100%), radial-gradient(ellipse at 50% 0%, #d0e8ff 0%, transparent 60%); }
.scn-wild-chaise-ride-stilton .sky-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8daf0 0%, #d0e8f8 100%); animation: wcr-sky 8s ease-in-out infinite alternate; }
.scn-wild-chaise-ride-stilton .road { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 0% 0% 20% 20% / 0% 0% 40% 40%; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-wild-chaise-ride-stilton .chaise-body { position:absolute; bottom:20%; left:30%; width:25%; height:20%; background: linear-gradient(180deg, #c8a060 0%, #8a6a30 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.4); animation: wcr-chaise .8s ease-in-out infinite; }
.scn-wild-chaise-ride-stilton .wheel-front { position:absolute; bottom:10%; left:35%; width:12%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: wcr-wheel .6s linear infinite; }
.scn-wild-chaise-ride-stilton .wheel-rear { position:absolute; bottom:10%; left:48%; width:12%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: wcr-wheel .6s linear infinite; }
.scn-wild-chaise-ride-stilton .horse-1 { position:absolute; bottom:20%; left:55%; width:20%; height:28%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%); border-radius: 40% 30% 20% 20% / 60% 40% 30% 30%; transform-origin: bottom center; animation: wcr-horse .8s ease-in-out infinite; }
.scn-wild-chaise-ride-stilton .horse-2 { position:absolute; bottom:20%; left:70%; width:18%; height:26%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a12 100%); border-radius: 40% 30% 20% 20% / 60% 40% 30% 30%; transform-origin: bottom center; animation: wcr-horse .9s ease-in-out infinite .1s; }
.scn-wild-chaise-ride-stilton .dust { position:absolute; bottom:12%; left:20%; right:10%; height:10%; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,150,.4) 0%, transparent 70%); filter: blur(4px); animation: wcr-dust 1.2s ease-in-out infinite; }
@keyframes wcr-sky { 0% { opacity:.85; transform: scale(1); } 50% { opacity:1; transform: scale(1.03); } 100% { opacity:.9; transform: scale(1); } }
@keyframes wcr-chaise { 0%,100% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-8px) rotate(1deg); } 60% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes wcr-wheel { 0% { transform: rotate(0deg) scale(1); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes wcr-horse { 0%,100% { transform: translateY(0) rotate(0deg) scaleX(1); } 25% { transform: translateY(-6px) rotate(-3deg) scaleX(.95); } 50% { transform: translateY(-10px) rotate(0deg) scaleX(1); } 75% { transform: translateY(-4px) rotate(3deg) scaleX(1.05); } }
@keyframes wcr-dust { 0%,100% { opacity:.3; transform: translateX(0) scale(1); } 50% { opacity:.7; transform: translateX(-20px) scale(1.2); } }

.scn-bobby-death-news { background: linear-gradient(180deg, #1a1410 0%, #0d0a08 40%, #1f1610 100%), radial-gradient(ellipse at 50% 50%, #2a1e14 0%, transparent 70%); }
.scn-bobby-death-news .room-tense { position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); animation: bdn-ambient 6s ease-in-out infinite alternate; }
.scn-bobby-death-news .desk { position:absolute; bottom:15%; left:28%; width:30%; height:10%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 5% 5% 20% 20% / 10% 10% 30% 30%; box-shadow: 0 6px 16px rgba(0,0,0,.7); }
.scn-bobby-death-news .walter-shandy { position:absolute; bottom:18%; left:32%; width:14%; height:30%; background: linear-gradient(180deg, #2a1e14 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bdn-figure .4s ease-in-out infinite; }
.scn-bobby-death-news .obadiah { position:absolute; bottom:18%; left:50%; width:12%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bdn-figure .5s ease-in-out infinite .1s; }
.scn-bobby-death-news .letter { position:absolute; bottom:35%; left:35%; width:8%; height:5%; background: linear-gradient(180deg, #c8b888 0%, #8a7a5a 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: bdn-letter .7s ease-in-out infinite alternate; }
.scn-bobby-death-news .candle-tense { position:absolute; bottom:40%; left:30%; width:1.2%; height:10%; background: linear-gradient(180deg, #e8c060 0%, #a08030 100%); border-radius: 10% 10% 30% 30% / 20% 20% 30% 30%; box-shadow: 0 0 12px 2px #c08030; animation: bdn-candle 1.5s ease-in-out infinite alternate; }
.scn-bobby-death-news .servant { position:absolute; bottom:20%; right:15%; width:8%; height:25%; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bdn-servant .8s ease-in-out infinite; }
@keyframes bdn-ambient { 0% { opacity:.6; } 50% { opacity:.85; } 100% { opacity:.7; } }
@keyframes bdn-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(2deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 75% { transform: translateX(1px) rotate(1deg); } }
@keyframes bdn-letter { 0% { transform: translateY(0) rotate(0deg); opacity:.8; } 50% { transform: translateY(-3px) rotate(15deg); opacity:1; } 100% { transform: translateY(0) rotate(0deg); opacity:.7; } }
@keyframes bdn-candle { 0% { box-shadow: 0 0 8px 1px #804020; opacity:.8; } 50% { box-shadow: 0 0 20px 5px #c06030; opacity:1; } 100% { box-shadow: 0 0 10px 2px #804020; opacity:.7; } }
@keyframes bdn-servant { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(2px) scaleX(.95); } }

/* ---- Scene: item-jack-boots-mortars ---- */
.scn-item-jack-boots-mortars {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 50%, #3a2a0a 100%),
    radial-gradient(ellipse at 40% 30%, #7a4a2a 0%, transparent 60%);
}
.scn-item-jack-boots-mortars .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a3a2a, #3a2a1a);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
  animation: ijbm-wall 12s ease-in-out infinite alternate;
}
.scn-item-jack-boots-mortars .hearth {
  position: absolute; bottom: 30%; left: 10%; width: 60px; height: 50px;
  background: radial-gradient(circle at 50% 60%, #8a3a1a 0%, #4a2a0a 70%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 40px 20px rgba(180,80,20,.5);
  animation: ijbm-fire 2s ease-in-out infinite alternate;
}
.scn-item-jack-boots-mortars .boot-left,
.scn-item-jack-boots-mortars .boot-right {
  position: absolute; bottom: 28%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a3a1a, #2a1a0a);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  filter: blur(1px);
}
.scn-item-jack-boots-mortars .boot-left {
  left: 35%; transform-origin: bottom center;
  animation: ijbm-boot-wobble 3s ease-in-out infinite;
}
.scn-item-jack-boots-mortars .boot-right {
  right: 35%; transform-origin: bottom center;
  animation: ijbm-boot-wobble 3s ease-in-out 1.5s infinite;
}
.scn-item-jack-boots-mortars .father {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ijbm-father-shake 4s ease-in-out infinite;
}
.scn-item-jack-boots-mortars .toby {
  position: absolute; bottom: 30%; right: 25%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ijbm-toby-lift 5s ease-in-out infinite;
}
.scn-item-jack-boots-mortars .parlor-table {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}

@keyframes ijbm-wall {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes ijbm-fire {
  0% { box-shadow: 0 0 30px 10px rgba(180,80,20,.4); transform: scale(1); }
  50% { box-shadow: 0 0 50px 25px rgba(200,100,30,.7); transform: scale(1.05); }
  100% { box-shadow: 0 0 35px 15px rgba(180,80,20,.5); transform: scale(1); }
}
@keyframes ijbm-boot-wobble {
  0% { transform: rotate(-5deg); }
  30% { transform: rotate(5deg); }
  60% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ijbm-father-shake {
  0% { transform: translateY(0) rotate(-2deg); }
  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 ijbm-toby-lift {
  0% { transform: translateY(0); }
  20% { transform: translateY(-3px); }
  40% { transform: translateY(0); }
  60% { transform: translateY(-5px); }
  80% { transform: translateY(1px); }
  100% { transform: translateY(0); }
}

/* ---- Scene: long-noses-lecture ---- */
.scn-long-noses-lecture {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #3a2a3e 40%, #2a1a2e 100%),
    radial-gradient(ellipse at 70% 30%, #4a3a4e 0%, transparent 70%);
}
.scn-long-noses-lecture .room-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 40%, transparent 30%, rgba(0,0,0,.5) 100%);
  animation: lns-shadow 8s ease-in-out infinite alternate;
}
.scn-long-noses-lecture .bed {
  position: absolute; bottom: 20%; left: 10%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 10px 20px rgba(0,0,0,.7);
}
.scn-long-noses-lecture .father-recumbent {
  position: absolute; bottom: 20%; left: 15%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: lns-father-arm 3s ease-in-out infinite alternate;
}
.scn-long-noses-lecture .chair-fringed {
  position: absolute; bottom: 20%; right: 25%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a, #3a2a1a);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
}
.scn-long-noses-lecture .toby-seated {
  position: absolute; bottom: 20%; right: 28%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lns-toby-tap 2s ease-in-out infinite;
}
.scn-long-noses-lecture .candle {
  position: absolute; bottom: 70%; left: 50%; width: 8px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a0a060, #604020);
  border-radius: 10%;
  box-shadow: 0 0 20px 8px rgba(200,180,80,.6);
  animation: lns-candle 1.5s ease-in-out infinite alternate;
}
.scn-long-noses-lecture .book-leaves {
  position: absolute; bottom: 40%; left: 55%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #8a7a5a, #5a4a2a);
  border-radius: 5%;
  animation: lns-book 6s ease-in-out infinite;
}

@keyframes lns-shadow {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes lns-father-arm {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(5px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes lns-toby-tap {
  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 lns-candle {
  0% { box-shadow: 0 0 20px 6px rgba(200,180,80,.5); }
  50% { box-shadow: 0 0 30px 12px rgba(220,200,100,.8); }
  100% { box-shadow: 0 0 18px 4px rgba(200,180,80,.4); }
}
@keyframes lns-book {
  0% { transform: perspective(100px) rotateY(0deg); }
  25% { transform: perspective(100px) rotateY(10deg); }
  50% { transform: perspective(100px) rotateY(0deg); }
  75% { transform: perspective(100px) rotateY(-10deg); }
  100% { transform: perspective(100px) rotateY(0deg); }
}

/* ---- Scene: slawkenbergius-tale-preview ---- */
.scn-slawkenbergius-tale-preview {
  background:
    linear-gradient(180deg, #3a3a1a 0%, #4a4a2a 30%, #2a2a0a 100%),
    radial-gradient(ellipse at 50% 20%, #5a5a3a 0%, transparent 60%);
}
.scn-slawkenbergius-tale-preview .bookcase {
  position: absolute; top: 10%; left: 5%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #5a4a2a, #3a2a1a);
  border-radius: 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: stp-shelf 20s linear infinite;
}
.scn-slawkenbergius-tale-preview .father-gesturing {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 75px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stp-father-wave 3s ease-in-out infinite;
}
.scn-slawkenbergius-tale-preview .toby-whistling {
  position: absolute; bottom: 25%; right: 25%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stp-toby-bob 4s ease-in-out infinite;
}
.scn-slawkenbergius-tale-preview .open-book {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c0b080, #a09060);
  border-radius: 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: stp-book-flip 5s ease-in-out infinite;
}
.scn-slawkenbergius-tale-preview .thread-paper {
  position: absolute; bottom: 45%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #d0c0a0, #b0a080);
  border-radius: 20%;
  transform-origin: top center;
  animation: stp-thread 6s ease-in-out infinite;
}
.scn-slawkenbergius-tale-preview .chair-toby {
  position: absolute; bottom: 20%; right: 20%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a, #3a2a1a);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
}

@keyframes stp-shelf {
  0% { background-position: 0 0; }
  100% { background-position: 0 20px; }
}
@keyframes stp-father-wave {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-8px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes stp-toby-bob {
  0% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-4px) scale(1.03); }
  60% { transform: translateY(0) scale(1); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes stp-book-flip {
  0% { transform: translateX(-50%) rotateY(0deg); }
  25% { transform: translateX(-50%) rotateY(15deg); }
  50% { transform: translateX(-50%) rotateY(0deg); }
  75% { transform: translateX(-50%) rotateY(-15deg); }
  100% { transform: translateX(-50%) rotateY(0deg); }
}
@keyframes stp-thread {
  0% { transform: rotate(-5deg) translateX(0); }
  30% { transform: rotate(5deg) translateX(3px); }
  60% { transform: rotate(-3deg) translateX(-2px); }
  100% { transform: rotate(0deg) translateX(0); }
}

/* ---- Scene: nose-uproar-strasbourg ---- */
.scn-nose-uproar-strasbourg {
  background:
    linear-gradient(180deg, #6a7a7a 0%, #8a9a9a 30%, #5a6a6a 100%),
    radial-gradient(ellipse at 50% 10%, #9aabab 0%, transparent 70%);
}
.scn-nose-uproar-strasbourg .overcast-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a9a9a, #6a7a7a);
  animation: nus-cloud 30s linear infinite alternate;
}
.scn-nose-uproar-strasbourg .city-roofs {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
}
.scn-nose-uproar-strasbourg .crowd-back {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 25%;
  background:
    linear-gradient(90deg, transparent 0%, #3a3a3a 10%, #4a4a4a 20%, #3a3a3a 30%, #5a5a5a 40%, #4a4a4a 50%, #3a3a3a 60%, #5a5a5a 70%, #4a4a4a 80%, #3a3a3a 90%, transparent 100%);
  filter: blur(4px);
  animation: nus-crowd 4s ease-in-out infinite;
}
.scn-nose-uproar-strasbourg .stranger-nose {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a3a, #5a3a1a);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 10px rgba(138,106,58,.5);
  animation: nus-stranger 6s ease-in-out infinite;
}
.scn-nose-uproar-strasbourg .drummer {
  position: absolute; bottom: 10%; left: 25%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #3a3a2a, #1a1a0a);
  border-radius: 20% 20% 10% 10%;
  animation: nus-drum 1.5s ease-in-out infinite;
}
.scn-nose-uproar-strasbourg .trumpeter {
  position: absolute; bottom: 10%; right: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 20% 20% 10% 10%;
  animation: nus-trumpet 2s ease-in-out infinite;
}
.scn-nose-uproar-strasbourg .sentinel {
  position: absolute; bottom: 25%; left: 15%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a3a2a, #1a2a1a);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: nus-sentinel 3s ease-in-out infinite;
}

@keyframes nus-cloud {
  0% { background-position: 0 0; }
  50% { background-position: 20px 0; }
  100% { background-position: 0 0; }
}
@keyframes nus-crowd {
  0% { transform: translateY(0); }
  30% { transform: translateY(-2px); }
  60% { transform: translateY(1px); }
  100% { transform: translateY(0); }
}
@keyframes nus-stranger {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(5deg) scale(1.02); }
  50% { transform: translateX(-50%) rotate(-5deg) scale(0.98); }
  75% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes nus-drum {
  0% { transform: translateY(0); }
  30% { transform: translateY(-3px); }
  60% { transform: translateY(1px); }
  100% { transform: translateY(0); }
}
@keyframes nus-trumpet {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(10deg); }
  60% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes nus-sentinel {
  0% { transform: rotate(0deg); }
  20% { transform: rotate(5deg); }
  40% { transform: rotate(0deg); }
  60% { transform: rotate(-5deg); }
  80% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}

/* Scene: luther-birth-year-nose-city (calm, overcast) */
.scn-luther-birth-year-nose-city {
  background: linear-gradient(180deg, #7a8a8a 0%, #9a9a9a 40%, #c0c0c0 100%), radial-gradient(ellipse at 50% 30%, #b0b0b0 0%, transparent 60%);
}
.scn-luther-birth-year-nose-city .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a6a6a 0%, transparent 100%);
  animation: lbyn-sky 15s ease-in-out infinite alternate;
}
.scn-luther-birth-year-nose-city .city {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(0deg, #3a3a3a 0%, #4a4a4a 30%, #5a5a5a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: lbyn-city 20s ease-in-out infinite;
}
.scn-luther-birth-year-nose-city .figure {
  position: absolute; bottom: 30%; left: 50%; width: 18px; height: 36px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  animation: lbyn-figure 6s ease-in-out infinite;
}
.scn-luther-birth-year-nose-city .book {
  position: absolute; bottom: 32%; left: 52%; width: 14px; height: 10px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: lbyn-book 4s ease-in-out infinite alternate;
}
.scn-luther-birth-year-nose-city .cloud-a {
  position: absolute; top: 15%; left: -10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(200,200,200,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: lbyn-cloud-a 40s linear infinite;
}
.scn-luther-birth-year-nose-city .cloud-b {
  position: absolute; top: 25%; right: -15%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(180,180,180,0.05) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: lbyn-cloud-b 50s linear infinite reverse;
}
.scn-luther-birth-year-nose-city .mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(200,200,200,0.3) 0%, transparent 70%);
  animation: lbyn-mist 12s ease-in-out infinite alternate;
}
@keyframes lbyn-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes lbyn-city { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(1px) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes lbyn-figure { 0% { transform: translateX(-50%) rotate(-1deg) translateY(0) } 30% { transform: translateX(-50%) rotate(1deg) translateY(-2px) } 70% { transform: translateX(-50%) rotate(-2deg) translateY(1px) } 100% { transform: translateX(-50%) rotate(0) translateY(0) } }
@keyframes lbyn-book { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes lbyn-cloud-a { 0% { transform: translateX(-30px) } 50% { transform: translateX(50vw) } 100% { transform: translateX(120vw) } }
@keyframes lbyn-cloud-b { 0% { transform: translateX(0) } 50% { transform: translateX(-60vw) } 100% { transform: translateX(-120vw) } }
@keyframes lbyn-mist { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }

/* Scene: father-collapsed-grace-of-god (tense, dim interior) */
.scn-father-collapsed-grace-of-god {
  background: linear-gradient(180deg, #1a1010 0%, #2a1a0a 50%, #1a0a05 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-father-collapsed-grace-of-god .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  animation: fcg-wall 10s ease-in-out infinite alternate;
}
.scn-father-collapsed-grace-of-god .bed {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(0deg, #3a2a1a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
  animation: fcg-bed 8s ease-in-out infinite;
}
.scn-father-collapsed-grace-of-god .father {
  position: absolute; bottom: 25%; left: 45%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: fcg-father 5s ease-in-out infinite;
}
.scn-father-collapsed-grace-of-god .toby {
  position: absolute; bottom: 20%; left: 65%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  animation: fcg-toby 6s ease-in-out infinite;
}
.scn-father-collapsed-grace-of-god .trim {
  position: absolute; bottom: 18%; left: 30%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fcg-trim 7s ease-in-out infinite alternate;
}
.scn-father-collapsed-grace-of-god .candle {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: fcg-candle 3s ease-in-out infinite;
}
.scn-father-collapsed-grace-of-god .glow {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffaa44 0%, #b05a1a 50%, transparent 70%);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  opacity: 0.6;
  animation: fcg-glow 4s ease-in-out infinite alternate;
}
@keyframes fcg-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes fcg-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes fcg-father { 0% { transform: rotate(0deg) translateY(0) } 40% { transform: rotate(-3deg) translateY(-2px) } 60% { transform: rotate(2deg) translateY(1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes fcg-toby { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(2px) rotate(1deg) } 70% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fcg-trim { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes fcg-candle { 0% { transform: translateX(-50%) rotate(-2deg) scaleY(1) } 30% { transform: translateX(-50%) rotate(2deg) scaleY(0.95) } 70% { transform: translateX(-50%) rotate(-1deg) scaleY(1.05) } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1) } }
@keyframes fcg-glow { 0% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.9) } 50% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.1) } 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.9) } }

/* Scene: walter-reasoning-like-socrates (tense, dim interior) */
.scn-walter-reasoning-like-socrates {
  background: linear-gradient(180deg, #1a1015 0%, #2a1a15 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 60%);
}
.scn-walter-reasoning-like-socrates .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  animation: wrs-wall 12s ease-in-out infinite alternate;
}
.scn-walter-reasoning-like-socrates .bookshelf {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(0deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.5);
  animation: wrs-bookshelf 15s ease-in-out infinite;
}
.scn-walter-reasoning-like-socrates .walter {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wrs-walter 5s ease-in-out infinite;
}
.scn-walter-reasoning-like-socrates .toby {
  position: absolute; bottom: 22%; left: 60%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  animation: wrs-toby 6s ease-in-out infinite;
}
.scn-walter-reasoning-like-socrates .crutch {
  position: absolute; bottom: 15%; left: 65%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom left;
  animation: wrs-crutch 4s ease-in-out infinite;
}
.scn-walter-reasoning-like-socrates .window {
  position: absolute; top: 10%; right: 5%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 100%);
  border: 2px solid #2a1a1a;
  border-radius: 4px;
  animation: wrs-window 10s ease-in-out infinite alternate;
}
.scn-walter-reasoning-like-socrates .light {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffbb66 0%, #c08040 50%, transparent 70%);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  opacity: 0.5;
  animation: wrs-light 3s ease-in-out infinite alternate;
}
@keyframes wrs-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes wrs-bookshelf { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes wrs-walter { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(3px) rotate(2deg) } 60% { transform: translateX(-2px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wrs-toby { 0% { transform: translateX(0) rotate(0deg) } 40% { transform: translateX(-2px) rotate(-1deg) } 80% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wrs-crutch { 0% { transform: rotate(-5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-5deg) } }
@keyframes wrs-window { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.3 } }
@keyframes wrs-light { 0% { opacity: 0.4; transform: translate(-50%, -50%) scale(0.9) } 50% { opacity: 0.7; transform: translate(-50%, -50%) scale(1.1) } 100% { opacity: 0.4; transform: translate(-50%, -50%) scale(0.9) } }

/* Scene: tristram-baptism-lament (dark, dim interior) */
.scn-tristram-baptism-lament {
  background: linear-gradient(180deg, #0a0505 0%, #121212 40%, #1a1010 100%), radial-gradient(ellipse at 50% 50%, #1a1010 0%, transparent 70%);
}
.scn-tristram-baptism-lament .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0505 0%, #1a1010 100%);
  animation: tbl-room 15s ease-in-out infinite alternate;
}
.scn-tristram-baptism-lament .pond-window {
  position: absolute; top: 10%; right: 5%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a0a0a 100%);
  border: 2px solid #1a1010;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
  animation: tbl-window 12s ease-in-out infinite;
}
.scn-tristram-baptism-lament .pond {
  position: absolute; top: 15%; right: 10%; width: 40px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #2a3a4a 0%, #0a1a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(100,150,200,0.2);
  animation: tbl-pond 8s ease-in-out infinite;
}
.scn-tristram-baptism-lament .walter {
  position: absolute; bottom: 20%; left: 35%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tbl-walter 6s ease-in-out infinite;
}
.scn-tristram-baptism-lament .toby {
  position: absolute; bottom: 25%; left: 60%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  animation: tbl-toby 7s ease-in-out infinite;
}
.scn-tristram-baptism-lament .candle {
  position: absolute; bottom: 40%; left: 50%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: tbl-candle 3s ease-in-out infinite;
}
.scn-tristram-baptism-lament .chair {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: tbl-chair 10s ease-in-out infinite;
}
@keyframes tbl-room { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes tbl-window { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }
@keyframes tbl-pond { 0% { transform: scale(1) translateY(0) } 40% { transform: scale(1.02) translateY(-1px) } 80% { transform: scale(0.98) translateY(1px) } 100% { transform: scale(1) translateY(0) } }
@keyframes tbl-walter { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(2px) rotate(-4deg) } 60% { transform: translateX(-3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tbl-toby { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tbl-candle { 0% { transform: translateX(-50%) rotate(-3deg) scaleY(1) } 30% { transform: translateX(-50%) rotate(2deg) scaleY(0.95) } 70% { transform: translateX(-50%) rotate(-1deg) scaleY(1.05) } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1) } }
@keyframes tbl-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

/* ===== SCENE: trim-hat-drop-mortality ===== */
.scn-trim-hat-drop-mortality {
  background:
    radial-gradient(ellipse at 70% 30%, #3a2a1a 0%, transparent 60%),
    radial-gradient(ellipse at 30% 70%, #1a0e0a 0%, transparent 50%),
    linear-gradient(180deg, #2a1a1a 0%, #1a0e0a 40%, #0a0505 100%);
}
.scn-trim-hat-drop-mortality .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: thdm-wall 12s ease-in-out infinite alternate;
}
.scn-trim-hat-drop-mortality .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: thdm-floor 18s ease-in-out infinite alternate;
}
.scn-trim-hat-drop-mortality .table {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: perspective(100px) rotateX(5deg);
  animation: thdm-table 8s ease-in-out infinite;
}
.scn-trim-hat-drop-mortality .candle {
  position: absolute; bottom: 38%; left: 44%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #d0a060 0%, #8a6a3a 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 12px 4px rgba(200,150,80,0.6);
  animation: thdm-candle 3s ease-in-out infinite alternate;
}
.scn-trim-hat-drop-mortality .hat {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 12px;
  background: radial-gradient(ellipse, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(-10deg);
  animation: thdm-hat 5s ease-in-out infinite;
}
.scn-trim-hat-drop-mortality .figure-trim {
  position: absolute; bottom: 24%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: thdm-figure-trim 6s ease-in-out infinite;
}
.scn-trim-hat-drop-mortality .figure-crowd {
  position: absolute; bottom: 24%; left: 55%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: thdm-figure-crowd 7s ease-in-out infinite reverse;
}
.scn-trim-hat-drop-mortality .tear {
  position: absolute; bottom: 28%; left: 48%; width: 4px; height: 6px;
  background: radial-gradient(circle, rgba(180,200,220,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: thdm-tear 4s ease-in-out infinite;
}
@keyframes thdm-wall {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes thdm-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes thdm-table {
  0%, 100% { transform: perspective(100px) rotateX(5deg) translateX(0); }
  50% { transform: perspective(100px) rotateX(4deg) translateX(2px); }
}
@keyframes thdm-candle {
  0% { opacity: 0.7; box-shadow: 0 0 8px 2px rgba(200,150,80,0.4); }
  50% { opacity: 1; box-shadow: 0 0 16px 6px rgba(200,150,80,0.7); }
  100% { opacity: 0.8; box-shadow: 0 0 10px 3px rgba(200,150,80,0.5); }
}
@keyframes thdm-hat {
  0% { transform: rotate(-10deg) translateY(0); }
  30% { transform: rotate(0deg) translateY(-8px); }
  60% { transform: rotate(-15deg) translateY(0); }
  100% { transform: rotate(-10deg) translateY(2px); }
}
@keyframes thdm-figure-trim {
  0% { transform: rotate(-2deg) translateX(0); }
  25% { transform: rotate(1deg) translateX(3px); }
  50% { transform: rotate(-3deg) translateX(6px); }
  75% { transform: rotate(2deg) translateX(3px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes thdm-figure-crowd {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
}
@keyframes thdm-tear {
  0% { opacity: 0; transform: translateY(0); }
  20% { opacity: 0.8; }
  80% { opacity: 0.8; }
  100% { opacity: 0; transform: translateY(20px); }
}

/* ===== SCENE: tristra-paedia-slow-progress ===== */
.scn-tristra-paedia-slow-progress {
  background:
    radial-gradient(ellipse at 60% 20%, #3a3a2a 0%, transparent 50%),
    radial-gradient(ellipse at 40% 80%, #2a2a3a 0%, transparent 60%),
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%);
}
.scn-tristra-paedia-slow-progress .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: tpsp-wall 15s ease-in-out infinite alternate;
}
.scn-tristra-paedia-slow-progress .bg-window {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(180,200,220,0.3) 0%, rgba(180,200,220,0.1) 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(180,200,220,0.2);
  animation: tpsp-window 20s ease-in-out infinite alternate;
}
.scn-tristra-paedia-slow-progress .desk {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: perspective(150px) rotateX(4deg);
  animation: tpsp-desk 12s ease-in-out infinite;
}
.scn-tristra-paedia-slow-progress .papers {
  position: absolute; bottom: 35%; left: 32%; width: 50px; height: 15px;
  background: linear-gradient(180deg, #c0b080 0%, #a09070 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tpsp-papers 9s ease-in-out infinite;
}
.scn-tristra-paedia-slow-progress .chair {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: tpsp-chair 14s ease-in-out infinite alternate;
}
.scn-tristra-paedia-slow-progress .figure-tristram {
  position: absolute; bottom: 28%; left: 28%; width: 22px; 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: tpsp-figure-t 6s ease-in-out infinite;
}
.scn-tristra-paedia-slow-progress .figure-susannah {
  position: absolute; bottom: 28%; right: 20%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpsp-figure-s 8s ease-in-out infinite reverse;
}
.scn-tristra-paedia-slow-progress .sash {
  position: absolute; top: 20%; right: 20%; width: 30px; height: 4px;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 2px;
  animation: tpsp-sash 18s ease-in-out infinite alternate;
}
@keyframes tpsp-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes tpsp-window { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes tpsp-desk { 0%,100% { transform: perspective(150px) rotateX(4deg) translateY(0); } 50% { transform: perspective(150px) rotateX(3deg) translateY(-1px); } }
@keyframes tpsp-papers { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes tpsp-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tpsp-figure-t { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(2deg) translateX(3px); } 50% { transform: rotate(0deg) translateX(6px); } 75% { transform: rotate(-2deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes tpsp-figure-s { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes tpsp-sash { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(5px); } }

/* ===== SCENE: tristra-paedia-preface ===== */
.scn-tristra-paedia-preface {
  background:
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%),
    radial-gradient(ellipse at 50% 70%, #1a0e0a 0%, transparent 50%),
    linear-gradient(180deg, #2a1a1a 0%, #1a0e0a 40%, #0a0505 100%);
}
.scn-tristra-paedia-preface .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0a 100%);
  border-radius: 0 0 40% 40% / 0 0 15% 15%;
  animation: tpp-wall 14s ease-in-out infinite alternate;
}
.scn-tristra-paedia-preface .book {
  position: absolute; bottom: 35%; left: 44%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #c0a070 0%, #8a6a3a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: perspective(100px) rotateX(10deg);
  animation: tpp-book 10s ease-in-out infinite;
}
.scn-tristra-paedia-preface .lectern {
  position: absolute; bottom: 28%; left: 43%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 5% 5%;
  animation: tpp-lectern 12s ease-in-out infinite alternate;
}
.scn-tristra-paedia-preface .figure-walter {
  position: absolute; bottom: 26%; left: 38%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpp-figure-w 7s ease-in-out infinite;
}
.scn-tristra-paedia-preface .figure-yorick {
  position: absolute; bottom: 26%; left: 54%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpp-figure-y 8s ease-in-out infinite reverse;
}
.scn-tristra-paedia-preface .figure-trim {
  position: absolute; bottom: 24%; left: 65%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tpp-figure-t 9s ease-in-out infinite;
}
.scn-tristra-paedia-preface .candle {
  position: absolute; bottom: 42%; left: 48%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #d0a060 0%, #8a6a3a 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px rgba(200,150,80,0.6);
  animation: tpp-candle 3s ease-in-out infinite alternate;
}
@keyframes tpp-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes tpp-book { 0%,100% { transform: perspective(100px) rotateX(10deg) translateY(0); } 50% { transform: perspective(100px) rotateX(8deg) translateY(-2px); } }
@keyframes tpp-lectern { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes tpp-figure-w { 0% { transform: rotate(-2deg) translateX(0); } 25% { transform: rotate(3deg) translateX(4px); } 50% { transform: rotate(-1deg) translateX(8px); } 75% { transform: rotate(2deg) translateX(4px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes tpp-figure-y { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(5px); } 100% { transform: rotate(2deg) translateX(0); } }
@keyframes tpp-figure-t { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes tpp-candle { 0% { opacity:0.7; box-shadow:0 0 8px 2px rgba(200,150,80,0.4); } 50% { opacity:1; box-shadow:0 0 18px 6px rgba(200,150,80,0.7); } 100% { opacity:0.8; box-shadow:0 0 10px 3px rgba(200,150,80,0.5); } }

/* ===== SCENE: limerick-siege-brandy-geneva ===== */
.scn-limerick-siege-brandy-geneva {
  background:
    radial-gradient(ellipse at 60% 30%, #4a2a1a 0%, transparent 50%),
    radial-gradient(ellipse at 40% 70%, #2a1a0e 0%, transparent 60%),
    linear-gradient(180deg, #3a1a0e 0%, #2a0e0a 40%, #1a0505 100%);
}
.scn-limerick-siege-brandy-geneva .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 0 0 50% 50% / 0 0 25% 25%;
  animation: lsbg-wall 16s ease-in-out infinite alternate;
}
.scn-limerick-siege-brandy-geneva .hearth-fire {
  position: absolute; bottom: 20%; left: 60%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 80%, #ff8040 0%, #8a3a1a 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  filter: blur(3px);
  animation: lsbg-fire 3s ease-in-out infinite alternate;
}
.scn-limerick-siege-brandy-geneva .table {
  position: absolute; bottom: 22%; left: 30%; width: 80px; height: 35px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0e 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: perspective(120px) rotateX(6deg);
  animation: lsbg-table 10s ease-in-out infinite;
}
.scn-limerick-siege-brandy-geneva .bottle {
  position: absolute; bottom: 30%; left: 35%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: lsbg-bottle 8s ease-in-out infinite;
}
.scn-limerick-siege-brandy-geneva .glass-left {
  position: absolute; bottom: 26%; left: 38%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a6a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  animation: lsbg-glass 6s ease-in-out infinite alternate;
}
.scn-limerick-siege-brandy-geneva .glass-right {
  position: absolute; bottom: 26%; left: 44%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a6a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  animation: lsbg-glass 6s ease-in-out infinite alternate-reverse;
}
.scn-limerick-siege-brandy-geneva .figure-toby {
  position: absolute; bottom: 24%; left: 25%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lsbg-figure-toby 7s ease-in-out infinite;
}
.scn-limerick-siege-brandy-geneva .figure-trim {
  position: absolute; bottom: 24%; left: 48%; width: 20px; height: 54px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lsbg-figure-trim 8s ease-in-out infinite reverse;
}
.scn-limerick-siege-brandy-geneva .figure-slop {
  position: absolute; bottom: 24%; right: 18%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lsbg-figure-slop 9s ease-in-out infinite;
}
@keyframes lsbg-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes lsbg-fire { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes lsbg-table { 0%,100% { transform: perspective(120px) rotateX(6deg) translateY(0); } 50% { transform: perspective(120px) rotateX(5deg) translateY(-2px); } }
@keyframes lsbg-bottle { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes lsbg-glass { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes lsbg-figure-toby { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(3deg) translateX(5px); } 50% { transform: rotate(-2deg) translateX(10px); } 75% { transform: rotate(2deg) translateX(5px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes lsbg-figure-trim { 0% { transform: rotate(0deg); } 50% { transform: rotate(-4deg); } 100% { transform: rotate(0deg); } }
@keyframes lsbg-figure-slop { 0% { transform: translateX(0); } 50% { transform: translateX(-8px); } 100% { transform: translateX(0); } }
/* end per-scene blocks */
